Changeset 3365 in Sophya for trunk/Cosmo/SimLSS/geneutils.cc
- Timestamp:
- Oct 29, 2007, 7:21:41 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/geneutils.cc
r3330 r3365 278 278 // dtheta in [0,Pi] 279 279 // Return: l'angle solide en steradian 280 // Approx pour theta petit: PI theta^2280 // Approx pour theta petit: PI * theta^2 281 281 { 282 282 return 2.*M_PI * (1.-cos(dtheta)); 283 283 } 284 284 285 //------------------------------------------------------------------- 286 unsigned long PoissRandLimit(double mu,double mumax) 287 { 288 double pp,ppi,x; 289 unsigned long n; 290 291 if(mu>=mumax) { 292 pp = sqrt(mu); 293 while( (x=pp*NorRand()) < -mu ); 294 return (unsigned long)(mu+x+0.5); 295 } 296 297 ppi = pp = exp(-mu); 298 x = drand01(); 299 n = 0; 300 while (x > ppi) { 301 n++; 302 pp = mu*pp/(double)n; 303 ppi += pp; 304 } 305 return n; 285 double FrAngSol(double angsol) 286 // Retourne la demi-ouverture "dtheta" d'une calotte spherique d'angle solide "angsol" 287 // Input: angle solide de la calotte spherique en steradians 288 // Return: demi-ouverture de la calotte spherique en radians 289 { 290 angsol = 1. - angsol/(2.*M_PI); 291 if(angsol<-1. || angsol>1.) return -1.; 292 return acos(angsol); 306 293 } 307 294
Note:
See TracChangeset
for help on using the changeset viewer.