- Timestamp:
- Dec 13, 2015, 5:50:46 AM (11 years ago)
- Location:
- branches/eam_branches/ipp-20151113
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Ohana/src/misc/src/magtoage.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20151113
-
branches/eam_branches/ipp-20151113/Ohana/src/misc/src/magtoage.c
r7080 r39266 2 2 # define MMIN 1.0 3 3 # 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();12 4 13 5 void main (argc, argv) … … 29 21 long A, B; 30 22 23 ohana_gaussdev_init(); 24 31 25 lAo = 0.0; 32 26 ldA = 1.0; … … 118 112 } 119 113 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); 122 116 } 123 117 x = (uv - UV0 - 0.7*Av) / DUV; … … 167 161 } 168 162 169 double170 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 double185 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 double210 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.
