IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 13, 2015, 5:50:46 AM (11 years ago)
Author:
eugene
Message:

merged changes from trunk

Location:
branches/eam_branches/ipp-20151113
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20151113

  • branches/eam_branches/ipp-20151113/Ohana/src/misc/src/magtoage.c

    r7080 r39266  
    22# define MMIN 1.0
    33# define MMAX 120.0
    4 extern double drand48();
    5 extern double rnd_gauss();
    6 extern double rnd_integrate ();
    7 extern double gaussian ();
    8 
    9 double gaussian();
    10 double rnd_gauss();
    11 double rnd_integrate();
    124
    135void main (argc, argv)
     
    2921  long A, B;
    3022 
     23  ohana_gaussdev_init();
     24
    3125  lAo =   0.0;
    3226  ldA =   1.0;
     
    118112      }
    119113      else {
    120         v = rnd_gauss (V, dV);
    121         uv = rnd_gauss ((U-V), dUV);
     114        v = ohana_gaussdev_rnd (V, dV);
     115        uv = ohana_gaussdev_rnd ((U-V), dUV);
    122116      }
    123117      x = (uv - UV0 - 0.7*Av) / DUV;
     
    167161}
    168162
    169 double
    170 rnd_gauss (mean, sigma)
    171 double mean, sigma;
    172 {
    173 
    174   double range, x;
    175 
    176   range = drand48();
    177   x = rnd_integrate (*gaussian, range, mean, sigma);
    178 
    179   return (x);
    180 
    181 }
    182 
    183 
    184 double
    185 rnd_integrate (function, range, mean, sigma)
    186 double (*function) ();
    187 double range, mean, sigma;
    188 {
    189 
    190   double val, x, dx, dx1, dx2, dx3, df;
    191 
    192   range += 0.0001;
    193   val = 0;
    194   dx = sigma / 10.0;
    195   dx1 = dx / 3.0;
    196   dx2 = 2.0*dx/3.0;
    197   dx3 = dx;
    198 
    199   for (x = mean - 7*sigma; (val < range) && (x < mean + 7*sigma); x += dx)  {
    200     df = (3.0*function(x    , mean, sigma) +
    201           9.0*function(x+dx1, mean, sigma) +
    202           9.0*function(x+dx2, mean, sigma) +
    203           3.0*function(x+dx3, mean, sigma)) * (dx1/8.0);
    204     val += df;
    205   }
    206   return (x + dx / 2.0);
    207 }
    208 
    209 double
    210 gaussian (x, mean, sigma)
    211 double x, mean, sigma;
    212 {
    213 
    214   double f, X;
    215 
    216   f = exp (-0.5 * SQ(x - mean) / SQ(sigma)) / sqrt(2 * M_PI * SQ(sigma));
    217 
    218   return (f);
    219 
    220 }
    221 
Note: See TracChangeset for help on using the changeset viewer.