IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3894


Ignore:
Timestamp:
May 11, 2005, 9:35:40 PM (21 years ago)
Author:
eugene
Message:

cleaned gaussdeviate, added vsmooth

Location:
trunk/Ohana/src/opihi
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.data/gaussdeviate.c

    r2598 r3894  
    2929   
    3030}
     31
     32double int_gauss (int i);
     33
     34int gaussintegral (int argc, char **argv) {
     35 
     36  int i, Npts;
     37  double mean, sigma;
     38  Vector *vec;
     39
     40  if (argc != 5) goto usage;
     41
     42  if ((vec = SelectVector (argv[1], ANYVECTOR, TRUE)) == NULL) return (FALSE);   
     43
     44  Npts = atoi (argv[2]);
     45  mean = atof (argv[3]);
     46  sigma = atof (argv[4]);
     47
     48  vec[0].Nelements = Npts;
     49  REALLOCATE (vec[0].elements, float, Npts);
     50
     51  gauss_init (Npts);
     52  for (i = 0; i < Npts; i++) {
     53    vec[0].elements[i] = int_gauss (i);
     54  }
     55  return (TRUE);
     56
     57 usage:
     58  fprintf (stderr, "USAGE: gaussintegral Npts mean sigma\n");
     59  return (FALSE);
     60   
     61}
  • trunk/Ohana/src/opihi/cmd.data/init.c

    r3105 r3894  
    2727int gaussjordan      PROTO((int, char **));
    2828int gaussdeviate     PROTO((int, char **));
     29int gaussintegral    PROTO((int, char **));
    2930int grid             PROTO((int, char **));
    3031int gridify          PROTO((int, char **));
     
    9596int vroll            PROTO((int, char **));
    9697int vpop             PROTO((int, char **));
     98int vsmooth          PROTO((int, char **));
    9799int wd               PROTO((int, char **));
    98100int write_vectors    PROTO((int, char **));
     
    127129  {"gaussj",       gaussjordan,      "solve Ax = B (N-D)"},
    128130  {"gaussdev",     gaussdeviate,     "generate a gaussian deviate vector"},
     131  {"gaussint",     gaussintegral,    "return the integrated gaussian vector"},
    129132  {"grid",         grid,             "plot cartesian grid"},
    130133  {"gridify",      gridify,          "convert vector triplet to buffer"},
     
    193196  {"vload",        vload,            "load vectors on Kii"},
    194197  {"vstat",        vstat,            "get info from imreg database"},
     198  {"vsmooth",      vsmooth,          "gaussian smooth of a vector"},
    195199  {"vroll",        vroll,            "roll vector elements"},
    196200  {"vpop",         vpop,             "remove first element"},
  • trunk/Ohana/src/opihi/lib.data/gaussian.c

    r2598 r3894  
    11# include "data.h"
    22
    3 static int Ngaussint;
     3static int Ngaussint = 0;
    44static double *gaussint;
    55
     
    2424  double mean, sigma;
    2525 
     26  /* no need to generate this if it already exists */
     27  if (Ngaussint == Nbin) return;
     28
    2629  A = time(NULL);
    2730  for (B = 0; A == time(NULL); B++);
     
    4548          3.0*gaussian(x+dx3, mean, sigma)) * (dx1/8.0);
    4649    val += df;
    47     if (val > (i / (double) Ngaussint)) {
     50    if (val > (i + 0.5) / (double) Ngaussint) {
    4851      gaussint[i] = x + dx / 2.0;
    4952      i++;
     
    6568}
    6669 
     70double int_gauss (int i) {
     71  double y;
     72  y = gaussint[i];
     73  return (y);
     74}
     75 
Note: See TracChangeset for help on using the changeset viewer.