Changeset 3615 in Sophya for trunk/SophyaLib


Ignore:
Timestamp:
May 1, 2009, 1:34:31 PM (16 years ago)
Author:
cmv
Message:

Modifs relatives a l'introduction de RandomGeneratorInterface + delete de srandgen.c, cmv 01/05/2009

Location:
trunk/SophyaLib
Files:
1 deleted
33 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/Makefile

    r3602 r3615  
    44 
    55clean:
    6          rm -f $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)srandgen.o
     6         rm -f $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)gnumd5.o
    77        rm -f $(SOPHYALIBP)libBaseTools.a
    88 
    9 $(SOPHYALIBP)libBaseTools.a : $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)srandgen.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o
     9$(SOPHYALIBP)libBaseTools.a : $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o
    1010        $(AR) $(ARFLAGS) $@ $?
    1111        touch $(SOPHYAINCP)/SophyaConfInfo/libsophya.objlist
     
    8484  pexceptions.h ppersist.h gnumd5.h ppfbinstream.h rawstream.h \
    8585  ppfnametag.h fiondblock.h ndatablock.h anydataobj.h dvlist.h objfio.h \
    86   mutyv.h timestamp.h stsrand.h randr48.h randinterf.h randfmt.h \
    87   dsfmtflags.h dSFMT.h fiosegdb.h segdatablock.h thsafeop.h \
    88   ppftpointerio.h ppfwrapstlv.h sversion.h
     86  mutyv.h timestamp.h randr48.h randinterf.h randfmt.h dsfmtflags.h \
     87  dSFMT.h fiosegdb.h segdatablock.h thsafeop.h ppftpointerio.h \
     88  ppfwrapstlv.h sversion.h
    8989        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sophyainit.cc
    9090 
     
    107107        $(CCOMPILE) -o $@  gnumd5.c
    108108 
    109 $(SOPHYAOBJP)srandgen.o: srandgen.c $(SOPHYAINCP)machdefs.h \
    110   srandgen.h smathconst.h
    111         $(CCOMPILE) -o $@  srandgen.c
    112  
  • trunk/SophyaLib/BaseTools/objlist.list

    r3602 r3615  
    1515rawstream.o
    1616sophyainit.o
    17 srandgen.o
    1817stsrand.o
    1918timestamp.o
  • trunk/SophyaLib/BaseTools/randfmt.cc

    r3603 r3615  
    1919FMTRandGen::~FMTRandGen()
    2020{
     21}
     22
     23void FMTRandGen::ShowRandom()
     24{
     25  cout<<"RandomGenerator is FMTRandGen"<<endl;
    2126}
    2227
  • trunk/SophyaLib/BaseTools/randfmt.h

    r3602 r3615  
    3030  virtual void SetSeed(vector<uint_4> seed);
    3131  virtual void AutoInit(int lp=0);
     32  virtual void ShowRandom();
    3233
    3334  friend class ObjFileIO<FMTRandGen> ;
  • trunk/SophyaLib/BaseTools/randinterf.cc

    r3611 r3615  
    2828
    2929   \sa frand01 drand01 frandpm1 drandpm1
    30    \sa GauRnd PoissRand
     30   \sa Gaussian Poisson
    3131
    3232*/
     
    6262}
    6363
     64void RandomGeneratorInterface::ShowRandom()
     65{
     66  cout<<"RandomGenerator is RandomGeneratorInterface i.e. UNDEFINED"<<endl;
     67}
    6468
    6569/////////////////////////////////////////////////////////////////////////
     
    172176}
    173177
     178void RandomGeneratorInterface::AutoInit(int lp)
     179{
     180  printf("RandomGeneratorInterface::AutoInit(): undefined code !!!\n");
     181  throw MathExc("RandomGeneratorInterface::AutoInit(): undefined code !!!");
     182}
     183
    174184/////////////////////////////////////////////////////////////////////////
    175185/////////////////////////////////////////////////////////////////////////
     
    773783}
    774784
     785/////////////////////////////////////////////////////////////////////////
     786/////////////////////////////////////////////////////////////////////////
     787/////////////////////////////////////////////////////////////////////////
     788
     789int RandomGeneratorInterface::Gaussian2DRho(double &x,double &y,double mx,double my,double sx,double sy,double ro)
     790/*
     791++
     792|       Tirage de 2 nombres aleatoires x et y distribues sur une gaussienne 2D
     793|       de centre (mx,my), de coefficient de correlation rho (ro) et telle que
     794|       les sigmas finals des variables x et y soient sx,sy (ce sont
     795|       les valeurs des distributions marginales des variables aleatoires x et y
     796|       c'est a dire les sigmas des projections x et y de l'histogramme 2D
     797|       de la gaussienne). Retourne 0 si ok.
     798|
     799| - La densite de probabilite (normalisee a 1) sur laquelle on tire est:
     800|   N*exp[-0.5*{[(dx/sx)^2-2*ro/(sx*sy)*dx*dy+(dy/sy)^2]/(1-ro^2)}]
     801|     avec dx = x-mx, dy = y-my et N = 1/[2Pi*sx*sy*sqrt(1-ro^2)]
     802| - Dans ce cas la distribution marginale est (ex en X):
     803|   1/(sqrt(2Pi)*sx) * exp[-0.5*{dx^2/sx^2}]
     804| - La matrice des covariances C des variables x,y est:
     805|   |   sx^2      ro*sx*sy |
     806|   |                      |  et det(C) = (1-ro^2)*sx^2*sy^2
     807|   | ro*sx*sy      sy^2   |
     808| - La matrice inverse C^(-1) est:
     809|   |   1/sx^2      -ro/(sx*sy) |
     810|   |                           | * 1/(1-ro^2)
     811|   | -ro/(sx*sy)      1/sy^2   |
     812|
     813| - Remarque:
     814| le sigma que l'on obtient quand on fait une coupe de la gaussienne 2D
     815| en y=0 (ou x=0) est: SX0(y=0) = sx*sqrt(1-ro^2) different de sx
     816|                      SY0(x=0) = sy*sqrt(1-ro^2) different de sy
     817| La distribution qui correspond a des sigmas SX0,SY0
     818| pour les coupes en y=0,x=0 de la gaussienne 2D serait:
     819|   N*exp[-0.5*{ (dx/SX0)^2-2*ro/(SX0*SY0)*dx*dy+(dy/SY0)^2 }]
     820| avec N = sqrt(1-ro^2)/(2Pi*SX0*SY0) et les variances
     821| des variables x,y sont toujours
     822|  sx=SX0/sqrt(1-ro^2), sy=SY0/sqrt(1-ro^2)
     823--
     824*/
     825{
     826double a,b,sa;
     827
     828if( ro <= -1. || ro >= 1. ) return 1;
     829
     830while( (b=Flat01()) == 0. );
     831b = sqrt(-2.*log(b));
     832a = 2.*M_PI * Flat01();
     833sa = sin(a);
     834
     835x = mx + sx*b*(sqrt(1.-ro*ro)*cos(a)+ro*sa);
     836y = my + sy*b*sa;
     837
     838return 0;
     839}
     840
     841void RandomGeneratorInterface::Gaussian2DAng(double &x,double &y,double mx,double my,double sa,double sb,double teta)
     842/*
     843++
     844|       Tirage de 2 nombres aleatoires x et y distribues sur une gaussienne 2D
     845|       de centre (x=mx,y=my), de sigmas grand axe et petit axe (sa,sb)
     846|       et dont le grand axe fait un angle teta (radian) avec l'axe des x.
     847|
     848| - La densite de probabilite (normalisee a 1) sur laquelle on tire est:
     849| N*exp[-0.5*{ (A/sa)**2+(C/sc)**2 }],  N=1/(2Pi*sa*sc)
     850| ou A et B sont les coordonnees selon le grand axe et le petit axe
     851| et teta = angle(x,A), le resultat subit ensuite une rotation d'angle teta.
     852| - La matrice des covariances C des variables A,B est:
     853|   | sa^2   0   |
     854|   |            |  et det(C) = (1-ro^2)*sa^2*sb^2
     855|   |  0    sb^2 |
     856| - La distribution x,y resultante est:
     857| N*exp[-0.5*{[(dx/sx)^2-2*ro/(sx*sy)*dx*dy+(dy/sy)^2]/(1-ro^2)}]
     858| ou N est donne dans NormCo et sx,sy,ro sont calcules a partir
     859| de sa,sc,teta (voir fonctions paramga ou gaparam). La matrice des
     860| covariances des variables x,y est donnee dans la fonction NormCo.
     861--
     862*/
     863{
     864double c,s,X,Y;
     865
     866while( (s = Flat01()) == 0. );
     867s = sqrt(-2.*log(s));
     868c = 2.*M_PI * Flat01();
     869
     870X = sa*s*cos(c);
     871Y = sb*s*sin(c);
     872
     873c = cos(teta); s = sin(teta);
     874x = mx + c*X - s*Y;
     875y = my + s*X + c*Y;
     876}
    775877
    776878}  /* namespace SOPHYA */
     
    780882/////////////////////////////////////////////////////////////////
    781883/*
    782 **** Remarques sur complex< r_8 > ComplexGaussRan(double sig) ****
     884**** Remarques sur complex< r_8 > ComplexGaussian(double sig) ****
    783885
    784886--- variables gaussiennes x,y independantes
  • trunk/SophyaLib/BaseTools/randinterf.h

    r3612 r3615  
    110110
    111111  // --- Le tirage gaussien complexe (cf texte a la fin du .cc)
    112   inline complex< r_8 > ComplexGaussRan(void)
     112  inline complex< r_8 > ComplexGaussian(void)
    113113         {return complex< r_8 >(Gaussian(),Gaussian());}
    114   inline complex< r_8 > ComplexGaussRan(double sig)
     114  inline complex< r_8 > ComplexGaussian(double sig)
    115115         {return complex< r_8 >(sig*Gaussian(),sig*Gaussian());}
    116116  /*! \brief Returns the module of a random complex number generated by ComplexGaussRan */
    117   inline double ModComplexGaussRan(double sig=1.)
     117  inline double ModComplexGaussian(double sig=1.)
    118118         {double r=-log(1.-Next()); return sig*sqrt(2.*r);}
    119119
    120 //! Return the pointer to the default global RandomGenerator object
     120  // --- Le tirage sur une distribution gaussienne a 2D
     121  /*! \brief Return 2 random numbers following a gaussian 2D distribution */
     122  virtual int  Gaussian2DRho(double &x,double &y,double mx,double my,double sx,double sy,double ro);
     123  virtual void Gaussian2DAng(double &x,double &y,double mx,double my,double sa,double sb,double teta);
     124
     125  //! Return the pointer to the default global RandomGenerator object
    121126  static inline RandomGeneratorInterface* GetGlobalRandGenP()
    122127    { return gl_rndgen_p; }
    123128
    124 // Permet de definir l'instance global du generateur aleatoire
     129  //! Initialisation automatique
     130  virtual void AutoInit(int lp=0);
     131
     132  //! Print
     133  virtual void ShowRandom();
     134
     135  // Permet de definir l'instance global du generateur aleatoire
    125136  static void SetGlobalRandGenP(RandomGeneratorInterface* rgp);
    126137
  • trunk/SophyaLib/BaseTools/randr48.cc

    r3604 r3615  
    1616DR48RandGen::~DR48RandGen()
    1717{
     18}
     19
     20void DR48RandGen::ShowRandom()
     21{
     22  cout<<"RandomGenerator is DR48RandGen"<<endl;
    1823}
    1924
     
    112117}
    113118
     119
     120void ThSDR48RandGen::ShowRandom()
     121{
     122  cout<<"RandomGenerator is ThSDR48RandGen"<<endl;
     123}
    114124
    115125void ThSDR48RandGen::SetSeed(long int seed)
  • trunk/SophyaLib/BaseTools/randr48.h

    r3612 r3615  
    1414#include "randinterf.h"
    1515
     16
     17/* ------- SPECIFIQUE Mac Darwin OSX  <= 10.2 (gcc < 3.x) -------- */
     18#if defined(Darwin) &&  defined(__GNUC__) && (__GNUC__ < 3)
     19#include "osx_values.h"
     20/* Declaration de drand48 et srand48 etc , mis ds SysSpec, Reza 11/02/2003 */
     21#ifdef __cplusplus
     22extern "C" {
     23#endif
     24unsigned short int * seed48(unsigned short int seed16v[3]);
     25void srand48(long seedval);
     26#ifdef __cplusplus
     27}
     28#endif
     29#define drand48() ((double)(random())/LONG_MAX)
     30#endif
     31/* ------- FIN SPECIFIQUE Mac OSX / Darwin V <= 10.2 --------- */
     32
     33
    1634namespace SOPHYA {
    1735
     
    2745  virtual void GetSeed(uint_2 seed[3]);
    2846  virtual void AutoInit(int lp=0);
     47  virtual void ShowRandom();
    2948
    3049  friend class ObjFileIO<DR48RandGen> ;
     
    5473  virtual void GetSeed(uint_2 seed[3]);
    5574  virtual void AutoInit(int lp=0);
     75  virtual void ShowRandom();
    5676
    5777  friend class ObjFileIO<ThSDR48RandGen> ;
  • trunk/SophyaLib/BaseTools/smakefile

    r3602 r3615  
    44 
    55clean:
    6          rm -f $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)srandgen.o
     6         rm -f $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)gnumd5.o
    77        rm -f $(SOPHYALIBP)libBaseTools.a
    88 
    9 $(SOPHYALIBP)libBaseTools.a : $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)srandgen.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o
     9$(SOPHYALIBP)libBaseTools.a : $(SOPHYAOBJP)datatype.o $(SOPHYAOBJP)dSFMT.o $(SOPHYAOBJP)dvlist.o $(SOPHYAOBJP)fiondblock.o $(SOPHYAOBJP)gnumd5.o $(SOPHYAOBJP)mutyv.o $(SOPHYAOBJP)ndatablock.o $(SOPHYAOBJP)pexceptions.o $(SOPHYAOBJP)ppersist.o $(SOPHYAOBJP)ppfbinstream.o $(SOPHYAOBJP)ppftpointerio.o $(SOPHYAOBJP)randfmt.o $(SOPHYAOBJP)randinterf.o $(SOPHYAOBJP)randr48.o $(SOPHYAOBJP)rawstream.o $(SOPHYAOBJP)sophyainit.o $(SOPHYAOBJP)stsrand.o $(SOPHYAOBJP)timestamp.o
    1010        $(AR) $(ARFLAGS) $@ $?
    1111        touch $(SOPHYAINCP)/SophyaConfInfo/libsophya.objlist
     
    8484  pexceptions.h ppersist.h gnumd5.h ppfbinstream.h rawstream.h \
    8585  ppfnametag.h fiondblock.h ndatablock.h anydataobj.h dvlist.h objfio.h \
    86   mutyv.h timestamp.h stsrand.h randr48.h randinterf.h randfmt.h \
    87   dsfmtflags.h dSFMT.h fiosegdb.h segdatablock.h thsafeop.h \
    88   ppftpointerio.h ppfwrapstlv.h sversion.h
     86  mutyv.h timestamp.h randr48.h randinterf.h randfmt.h dsfmtflags.h \
     87  dSFMT.h fiosegdb.h segdatablock.h thsafeop.h ppftpointerio.h \
     88  ppfwrapstlv.h sversion.h
    8989        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sophyainit.cc
    9090 
     
    107107        $(CCOMPILE) -o $@  gnumd5.c
    108108 
    109 $(SOPHYAOBJP)srandgen.o: srandgen.c $(SOPHYAINCP)machdefs.h \
    110   srandgen.h smathconst.h
    111         $(CCOMPILE) -o $@  srandgen.c
    112  
  • trunk/SophyaLib/BaseTools/srandgen.h

    r3597 r3615  
    1 /* fonctions pour generateurs aleatoires    */
    2 /*                         cmv  23/06/94     */
    3 /*  R.Ansari 04/2000  Copie de nbrand.h .c  */
     1/* fonctions pour generateurs aleatoires  cmv 23/06/94 */
     2/*  Copie de nbrand.h .c  .Ansari 04/2000              */
     3/* interface avec RandomGeneratorInterface cmv 04/2009 */
    44
    55#ifndef SRANDGEN_H_SEEN
     
    88#include "machdefs.h"
    99#include <stdlib.h>
     10#include <complex>
     11#include "randinterf.h"
    1012
    11 /* ------- SPECIFIQUE Mac Darwin OSX  <= 10.2 (gcc < 3.x) -------- */
    12 #if defined(Darwin) &&  defined(__GNUC__) && (__GNUC__ < 3)
    13 #include "osx_values.h"
    14 /* Declaration de drand48 et srand48 etc , mis ds SysSpec
    15                                           Reza 11/02/2003 */
    16 #ifdef __cplusplus
    17 extern "C" {
    18 #endif
    19 unsigned short int * seed48(unsigned short int seed16v[3]);
    20 void srand48(long seedval);
    21 /* Faute de mieux pour le moment : */
    22 #ifdef __cplusplus
    23 }
    24 #endif
    25 #define drand48() ((double)(random())/LONG_MAX)
    26 #endif
    27 /* ------- FIN SPECIFIQUE Mac OSX / Darwin V <= 10.2 --------- */
     13/* Declaration en fonctions inline interface avec RandomGeneratorInterface global*/
    2814
    29 #ifdef __cplusplus
    30 /* Declaration en fonctions inlines pour du C++ */
    31 inline float frand01() { return ( (float) drand48() ); }
    32 inline double drand01() { return ( drand48() ); }
    33 inline double ranf01() { return ( drand48() ); }
     15namespace SOPHYA {
    3416
    35 inline float frandpm1() { return ( 2. * (float) drand48()  - 1.); }
    36 inline double drandpm1() { return ( 2. * drand48() - 1.); }
    37 inline double ranfpm1() { return ( 2. * drand48() - 1.); }
    38 #else
    39 /* les memes en define pour du C */
    40 #define frand01() ( (float) drand48() )
    41 #define drand01() ( drand48() )
    42 #define ranf01() drand01()
    4317
    44 #define frandpm1() ( 2. * frand01() - 1.)
    45 #define drandpm1() ( 2. * drand01() - 1.)
    46 #define ranfpm1() drandpm1()
    47 #endif
     18inline double drand01()
     19  {return RandomGeneratorInterface::GetGlobalRandGenP()->Flat01();}
     20inline double drandpm1()
     21  {return RandomGeneratorInterface::GetGlobalRandGenP()->Flatpm1();}
    4822
    49 struct tirage_alea {
    50   int Nbin;
    51   double Min,Max,Lbin;
    52   double *Tab;
    53 };
    54 typedef struct tirage_alea TIREALEA;
     23inline double NorRand()
     24  {return RandomGeneratorInterface::GetGlobalRandGenP()->Gaussian();}
     25inline double Gaussian(double sigma,double mu)
     26  {return RandomGeneratorInterface::GetGlobalRandGenP()->Gaussian(sigma,mu);}
    5527
    56 #ifdef __cplusplus
    57 extern "C" {
    58 #endif
     28inline complex< r_8 > ComplexGaussian()
     29  {return RandomGeneratorInterface::GetGlobalRandGenP()->ComplexGaussian();}
     30inline complex< r_8 > ComplexGaussian(double sig)
     31  {return RandomGeneratorInterface::GetGlobalRandGenP()->ComplexGaussian(sig);}
     32inline double ModComplexGaussian(double sig=1.)
     33  {return RandomGeneratorInterface::GetGlobalRandGenP()->ModComplexGaussian(sig);}
    5934
    60 void Ini_Ranf_Quick(long seed_val, int lp);
    61 void Ini_Ranf(unsigned short seed_16v[3], int lp);
    62 void Get_Ranf(unsigned short seed_16v[3], int lp);
    63 void Auto_Ini_Ranf(int lp);
     35inline double Poisson(double mu, double mumax=-1)
     36  {return RandomGeneratorInterface::GetGlobalRandGenP()->Poisson(mu,mumax);}
    6437
    65 void SetGauRange(double range);
    66 double NorRand1(void);
    67 double GauRnd1(double am, double s);
    68 double NorRand(void);
    69 double GauRnd(double am, double s);
    70 int NormCo(double *a,double *b
    71           ,double mx,double my,double sx,double sy,double ro);
    72 void NormGau(double *x,double *y
    73             ,double mx,double my,double sa,double sb,double teta);
     38inline double Exponential()
     39  {return RandomGeneratorInterface::GetGlobalRandGenP()->Exponential();}
    7440
    75 int PoissRand(double mu);
    76 unsigned long PoissRandLimit(double mu,double mumax /* =10. */ );
     41inline int Gaussian2DRho(double &x,double &y,double mx,double my,double sx,double sy,double ro)
     42  {return RandomGeneratorInterface::GetGlobalRandGenP()->Gaussian2DRho(x,y,mx,my,sx,sy,ro);}
     43inline void Gaussian2DAng(double &x,double &y,double mx,double my,double sa,double sb,double teta)
     44  {return RandomGeneratorInterface::GetGlobalRandGenP()->Gaussian2DAng(x,y,mx,my,sa,sb,teta);}
    7745
    78 TIREALEA *init_tirage_alea(int nbin,double xmin,double xmax,double (*fonc) (double));
    79 double tirage_alea(TIREALEA *alea);
    80 int end_tirage_alea(TIREALEA *alea);
     46inline void AutoInitRand(int lp)
     47  {return RandomGeneratorInterface::GetGlobalRandGenP()->AutoInit(lp);}
    8148
    82 #ifdef __cplusplus
    83 }
    84 #endif
     49inline void ShowRandom()
     50  {return RandomGeneratorInterface::GetGlobalRandGenP()->ShowRandom();}
     51
     52}  /* namespace SOPHYA */
    8553
    8654#endif
    87 
  • trunk/SophyaLib/BuildMgr/change_smake2make.csh

    r3073 r3615  
    1010#--- Recherche des repertoires sous CVS
    1111if( $#argv > 0 ) then
    12   set dcvs = $1
     12  set dcvs = ( $* )
    1313else
    1414  set dcvs =
  • trunk/SophyaLib/HiStats/Makefile

    r3572 r3615  
    3434  $(SOPHYAINCP)ndatablock.h \
    3535  $(SOPHYAINCP)utilarr.h \
     36  $(SOPHYAINCP)randinterf.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
    3738  $(SOPHYAINCP)tvector_tsnl.h \
     
    6364  $(SOPHYAINCP)ndatablock.h \
    6465  $(SOPHYAINCP)utilarr.h \
     66  $(SOPHYAINCP)randinterf.h \
    6567  $(SOPHYAINCP)tmatrix_tsnl.h \
    6668  $(SOPHYAINCP)tvector_tsnl.h \
     
    9799  $(SOPHYAINCP)ndatablock.h \
    98100  $(SOPHYAINCP)utilarr.h \
     101  $(SOPHYAINCP)randinterf.h \
    99102  $(SOPHYAINCP)tmatrix_tsnl.h \
    100103  $(SOPHYAINCP)tvector_tsnl.h \
     
    132135  $(SOPHYAINCP)ndatablock.h \
    133136  $(SOPHYAINCP)utilarr.h \
     137  $(SOPHYAINCP)randinterf.h \
    134138  $(SOPHYAINCP)tmatrix_tsnl.h \
    135139  $(SOPHYAINCP)tvector_tsnl.h \
     
    159163  $(SOPHYAINCP)ndatablock.h \
    160164  $(SOPHYAINCP)utilarr.h \
     165  $(SOPHYAINCP)randinterf.h \
    161166  $(SOPHYAINCP)tmatrix.h \
    162167  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    186191  $(SOPHYAINCP)ndatablock.h \
    187192  $(SOPHYAINCP)utilarr.h \
     193  $(SOPHYAINCP)randinterf.h \
    188194  $(SOPHYAINCP)tmatrix.h \
    189195  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    222228  $(SOPHYAINCP)ndatablock.h \
    223229  $(SOPHYAINCP)utilarr.h \
     230  $(SOPHYAINCP)randinterf.h \
    224231  $(SOPHYAINCP)tmatrix_tsnl.h \
    225232  $(SOPHYAINCP)tvector_tsnl.h \
     
    262269  $(SOPHYAINCP)ndatablock.h \
    263270  $(SOPHYAINCP)utilarr.h \
     271  $(SOPHYAINCP)randinterf.h \
    264272  $(SOPHYAINCP)tmatrix_tsnl.h \
    265273  $(SOPHYAINCP)tvector_tsnl.h \
     
    298306  $(SOPHYAINCP)ndatablock.h \
    299307  $(SOPHYAINCP)utilarr.h \
     308  $(SOPHYAINCP)randinterf.h \
    300309  $(SOPHYAINCP)tmatrix_tsnl.h \
    301310  $(SOPHYAINCP)tvector_tsnl.h \
     
    371380  $(SOPHYAINCP)ndatablock.h \
    372381  $(SOPHYAINCP)utilarr.h \
     382  $(SOPHYAINCP)randinterf.h \
    373383  $(SOPHYAINCP)tmatrix_tsnl.h \
    374384  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/HiStats/smakefile

    r3572 r3615  
    3434  $(SOPHYAINCP)ndatablock.h \
    3535  $(SOPHYAINCP)utilarr.h \
     36  $(SOPHYAINCP)randinterf.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
    3738  $(SOPHYAINCP)tvector_tsnl.h \
     
    6364  $(SOPHYAINCP)ndatablock.h \
    6465  $(SOPHYAINCP)utilarr.h \
     66  $(SOPHYAINCP)randinterf.h \
    6567  $(SOPHYAINCP)tmatrix_tsnl.h \
    6668  $(SOPHYAINCP)tvector_tsnl.h \
     
    9799  $(SOPHYAINCP)ndatablock.h \
    98100  $(SOPHYAINCP)utilarr.h \
     101  $(SOPHYAINCP)randinterf.h \
    99102  $(SOPHYAINCP)tmatrix_tsnl.h \
    100103  $(SOPHYAINCP)tvector_tsnl.h \
     
    132135  $(SOPHYAINCP)ndatablock.h \
    133136  $(SOPHYAINCP)utilarr.h \
     137  $(SOPHYAINCP)randinterf.h \
    134138  $(SOPHYAINCP)tmatrix_tsnl.h \
    135139  $(SOPHYAINCP)tvector_tsnl.h \
     
    159163  $(SOPHYAINCP)ndatablock.h \
    160164  $(SOPHYAINCP)utilarr.h \
     165  $(SOPHYAINCP)randinterf.h \
    161166  $(SOPHYAINCP)tmatrix.h \
    162167  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    186191  $(SOPHYAINCP)ndatablock.h \
    187192  $(SOPHYAINCP)utilarr.h \
     193  $(SOPHYAINCP)randinterf.h \
    188194  $(SOPHYAINCP)tmatrix.h \
    189195  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    222228  $(SOPHYAINCP)ndatablock.h \
    223229  $(SOPHYAINCP)utilarr.h \
     230  $(SOPHYAINCP)randinterf.h \
    224231  $(SOPHYAINCP)tmatrix_tsnl.h \
    225232  $(SOPHYAINCP)tvector_tsnl.h \
     
    262269  $(SOPHYAINCP)ndatablock.h \
    263270  $(SOPHYAINCP)utilarr.h \
     271  $(SOPHYAINCP)randinterf.h \
    264272  $(SOPHYAINCP)tmatrix_tsnl.h \
    265273  $(SOPHYAINCP)tvector_tsnl.h \
     
    298306  $(SOPHYAINCP)ndatablock.h \
    299307  $(SOPHYAINCP)utilarr.h \
     308  $(SOPHYAINCP)randinterf.h \
    300309  $(SOPHYAINCP)tmatrix_tsnl.h \
    301310  $(SOPHYAINCP)tvector_tsnl.h \
     
    371380  $(SOPHYAINCP)ndatablock.h \
    372381  $(SOPHYAINCP)utilarr.h \
     382  $(SOPHYAINCP)randinterf.h \
    373383  $(SOPHYAINCP)tmatrix_tsnl.h \
    374384  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/Manual/Makefile

    r3151 r3615  
    66clean:
    77        rm -rf *.o dox_filter
    8         if [ -d /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual/ ] ; then cd /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual// ; rm -rf html latex man rtf; fi
     8        if [ -d /home/local/SophyaWork/Linux/doc/ ] ; then cd /home/local/SophyaWork/Linux/doc// ; rm -rf html latex man rtf; fi
    99
    1010#-------------------------------------------------------
    1111copy:
    12         if [ ! -d /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex ] ; then mkdir /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex; fi
    13         cp -p *.tex *.sty *.eps *.inc /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/.
     12        if [ ! -d /home/local/SophyaWork/Linux/doc//latex ] ; then mkdir /home/local/SophyaWork/Linux/doc//latex; fi
     13        cp -p *.tex *.sty *.eps *.inc /home/local/SophyaWork/Linux/doc//latex/.
    1414
    1515#-------------------------------------------------------
     
    2525
    2626#-------------------------------------------------------
    27 sophya: copy /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/sophya.ps
     27sophya: copy /home/local/SophyaWork/Linux/doc//latex/sophya.ps
    2828
    29 /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/sophya.ps: sophya.tex defsophya.sty blue_sophya_400.eps ex1.inc
    30         cd /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/; \
     29/home/local/SophyaWork/Linux/doc//latex/sophya.ps: sophya.tex defsophya.sty blue_sophya_400.eps ex1.inc
     30        cd /home/local/SophyaWork/Linux/doc//latex/; \
    3131        latex sophya.tex; \
    3232        makeindex sophya; \
     
    3434        dvips -o sophya.ps sophya.dvi
    3535
    36 piapp: copy /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/piapp.ps
     36piapp: copy /home/local/SophyaWork/Linux/doc//latex/piapp.ps
    3737
    38 /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/piapp.ps: piapp.tex piahelp.tex defsophya.sty
    39         cd /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/; \
     38/home/local/SophyaWork/Linux/doc//latex/piapp.ps: piapp.tex piahelp.tex defsophya.sty
     39        cd /home/local/SophyaWork/Linux/doc//latex/; \
    4040        latex piapp.tex; \
    4141        makeindex piapp; \
     
    4343        dvips -o piapp.ps piapp.dvi
    4444
    45 pmixer: copy /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/pmixer.ps
     45pmixer: copy /home/local/SophyaWork/Linux/doc//latex/pmixer.ps
    4646
    47 /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/pmixer.ps: pmixer.tex
    48         cd /home/manip/mnt/planck/cmv/SophyaWork/Linux/../Manual//latex/; \
     47/home/local/SophyaWork/Linux/doc//latex/pmixer.ps: pmixer.tex
     48        cd /home/local/SophyaWork/Linux/doc//latex/; \
    4949        latex pmixer.tex; \
    5050        latex pmixer; \
  • trunk/SophyaLib/Manual/piahelp.tex

    r3490 r3615  
    328328\begin{verbatim}
    329329> Automatic random number generator initialisation
    330    by Auto_Ini_Ranf(int lp)
     330   by AutoInitRand(int lp)
    331331   Usage: autoiniranf
    332332\end{verbatim}
  • trunk/SophyaLib/NTools/Makefile

    r3608 r3615  
    3333  $(SOPHYAINCP)ndatablock.h \
    3434  $(SOPHYAINCP)utilarr.h \
     35  $(SOPHYAINCP)randinterf.h \
    3536  $(SOPHYAINCP)tmatrix.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    6768  $(SOPHYAINCP)ndatablock.h \
    6869  $(SOPHYAINCP)utilarr.h \
     70  $(SOPHYAINCP)randinterf.h \
    6971  $(SOPHYAINCP)tmatrix_tsnl.h \
    7072  $(SOPHYAINCP)fioarr.h \
     
    114116  $(SOPHYAINCP)ndatablock.h \
    115117  $(SOPHYAINCP)utilarr.h \
     118  $(SOPHYAINCP)randinterf.h \
    116119  $(SOPHYAINCP)tmatrix_tsnl.h \
    117120  $(SOPHYAINCP)tvector_tsnl.h \
     
    120123 
    121124$(SOPHYAOBJP)dynccd.o: dynccd.cc $(SOPHYAINCP)sopnamsp.h \
    122   $(SOPHYAINCP)machdefs.h fmath.h perandom.h \
    123   $(SOPHYAINCP)tvector.h \
    124   $(SOPHYAINCP)tmatrix.h \
    125   $(SOPHYAINCP)machdefs.h \
    126   $(SOPHYAINCP)tarray.h \
    127   $(SOPHYAINCP)basarr.h \
    128   $(SOPHYAINCP)anydataobj.h \
     125  $(SOPHYAINCP)machdefs.h fmath.h \
     126  $(SOPHYAINCP)srandgen.h \
     127  $(SOPHYAINCP)machdefs.h \
     128  $(SOPHYAINCP)randinterf.h \
     129  $(SOPHYAINCP)anydataobj.h perandom.h \
     130  $(SOPHYAINCP)tvector.h \
     131  $(SOPHYAINCP)tmatrix.h \
     132  $(SOPHYAINCP)tarray.h \
     133  $(SOPHYAINCP)basarr.h \
    129134  $(SOPHYAINCP)mutyv.h \
    130135  $(SOPHYAINCP)timestamp.h \
     
    146151  $(SOPHYAINCP)perrors.h \
    147152  $(SOPHYAINCP)fmath.h \
    148   $(SOPHYAINCP)tvector.h \
    149   $(SOPHYAINCP)srandgen.h classfunc.h cimage.h \
     153  $(SOPHYAINCP)tvector.h classfunc.h cimage.h \
    150154  $(SOPHYAINCP)tmatrix.h \
    151155  $(SOPHYAINCP)fioarr.h dynccd.h \
     
    175179  $(SOPHYAINCP)ndatablock.h \
    176180  $(SOPHYAINCP)utilarr.h \
     181  $(SOPHYAINCP)randinterf.h \
    177182  $(SOPHYAINCP)tmatrix_tsnl.h \
    178183  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    207212  $(SOPHYAINCP)ndatablock.h \
    208213  $(SOPHYAINCP)utilarr.h \
     214  $(SOPHYAINCP)randinterf.h \
    209215  $(SOPHYAINCP)tmatrix_tsnl.h \
    210216  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    239245  $(SOPHYAINCP)ndatablock.h \
    240246  $(SOPHYAINCP)utilarr.h \
     247  $(SOPHYAINCP)randinterf.h \
    241248  $(SOPHYAINCP)tmatrix_tsnl.h \
    242249  $(SOPHYAINCP)tvector.h \
     
    266273  $(SOPHYAINCP)ndatablock.h \
    267274  $(SOPHYAINCP)utilarr.h \
     275  $(SOPHYAINCP)randinterf.h \
    268276  $(SOPHYAINCP)tmatrix_tsnl.h \
    269277  $(SOPHYAINCP)tvector.h \
     
    292300  $(SOPHYAINCP)ndatablock.h \
    293301  $(SOPHYAINCP)utilarr.h \
     302  $(SOPHYAINCP)randinterf.h \
    294303  $(SOPHYAINCP)tmatrix_tsnl.h \
    295304  $(SOPHYAINCP)tvector.h \
     
    319328  $(SOPHYAINCP)ndatablock.h \
    320329  $(SOPHYAINCP)utilarr.h \
     330  $(SOPHYAINCP)randinterf.h \
    321331  $(SOPHYAINCP)tmatrix_tsnl.h \
    322332  $(SOPHYAINCP)tvector_tsnl.h \
     
    346356  $(SOPHYAINCP)ndatablock.h \
    347357  $(SOPHYAINCP)utilarr.h \
     358  $(SOPHYAINCP)randinterf.h \
    348359  $(SOPHYAINCP)tmatrix_tsnl.h \
    349360  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    378389  $(SOPHYAINCP)ndatablock.h \
    379390  $(SOPHYAINCP)utilarr.h \
     391  $(SOPHYAINCP)randinterf.h \
    380392  $(SOPHYAINCP)tmatrix_tsnl.h \
    381393  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    418430  $(SOPHYAINCP)ndatablock.h \
    419431  $(SOPHYAINCP)utilarr.h \
     432  $(SOPHYAINCP)randinterf.h \
    420433  $(SOPHYAINCP)tmatrix_tsnl.h \
    421434  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    458471  $(SOPHYAINCP)ndatablock.h \
    459472  $(SOPHYAINCP)utilarr.h \
     473  $(SOPHYAINCP)randinterf.h \
    460474  $(SOPHYAINCP)tmatrix_tsnl.h \
    461475  $(SOPHYAINCP)tvector_tsnl.h \
     
    488502  $(SOPHYAINCP)ndatablock.h \
    489503  $(SOPHYAINCP)utilarr.h \
     504  $(SOPHYAINCP)randinterf.h \
    490505  $(SOPHYAINCP)tmatrix_tsnl.h cimage.h \
    491506  $(SOPHYAINCP)fioarr.h \
     
    512527  $(SOPHYAINCP)machdefs.h \
    513528  $(SOPHYAINCP)pexceptions.h \
    514   $(SOPHYAINCP)machdefs.h perandom.h \
    515   $(SOPHYAINCP)tvector.h \
    516   $(SOPHYAINCP)tmatrix.h \
    517   $(SOPHYAINCP)tarray.h \
    518   $(SOPHYAINCP)basarr.h \
    519   $(SOPHYAINCP)anydataobj.h \
     529  $(SOPHYAINCP)machdefs.h \
     530  $(SOPHYAINCP)srandgen.h \
     531  $(SOPHYAINCP)randinterf.h \
     532  $(SOPHYAINCP)anydataobj.h perandom.h \
     533  $(SOPHYAINCP)tvector.h \
     534  $(SOPHYAINCP)tmatrix.h \
     535  $(SOPHYAINCP)tarray.h \
     536  $(SOPHYAINCP)basarr.h \
    520537  $(SOPHYAINCP)mutyv.h \
    521538  $(SOPHYAINCP)timestamp.h \
     
    537554  $(SOPHYAINCP)perrors.h \
    538555  $(SOPHYAINCP)fmath.h \
    539   $(SOPHYAINCP)tvector.h \
    540   $(SOPHYAINCP)srandgen.h classfunc.h pemath.h
     556  $(SOPHYAINCP)tvector.h classfunc.h
    541557        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  perandom.cc
    542558 
     
    564580  $(SOPHYAINCP)ndatablock.h \
    565581  $(SOPHYAINCP)utilarr.h \
     582  $(SOPHYAINCP)randinterf.h \
    566583  $(SOPHYAINCP)tmatrix_tsnl.h \
    567584  $(SOPHYAINCP)tvector_tsnl.h \
     
    594611  $(SOPHYAINCP)ndatablock.h \
    595612  $(SOPHYAINCP)utilarr.h \
     613  $(SOPHYAINCP)randinterf.h \
    596614  $(SOPHYAINCP)tmatrix_tsnl.h \
    597615  $(SOPHYAINCP)tvector_tsnl.h \
     
    629647  $(SOPHYAINCP)ndatablock.h \
    630648  $(SOPHYAINCP)utilarr.h \
     649  $(SOPHYAINCP)randinterf.h \
    631650  $(SOPHYAINCP)tmatrix_tsnl.h \
    632651  $(SOPHYAINCP)tvector_tsnl.h generalfit.h \
     
    680699  $(SOPHYAINCP)ndatablock.h \
    681700  $(SOPHYAINCP)utilarr.h \
     701  $(SOPHYAINCP)randinterf.h \
    682702  $(SOPHYAINCP)tmatrix.h \
    683703  $(SOPHYAINCP)tmatrix_tsnl.h \
  • trunk/SophyaLib/NTools/dynccd.cc

    r2882 r3615  
    55
    66#include "fmath.h"
     7#include "srandgen.h"
    78#include "perandom.h"
    89
  • trunk/SophyaLib/NTools/perandom.cc

    r3608 r3615  
    11#include "sopnamsp.h"
    22#include "machdefs.h"
     3#include <iostream>
    34#include "pexceptions.h"
     5#include "srandgen.h"
    46#include "perandom.h"
    5 #include "pemath.h"
    6 #include <iostream>
    77
    88
     
    290290}
    291291
    292 
    293 
    294 /////////////////////////////////////////////////////////////////
    295 /*
    296 **** Remarques sur complex< r_8 > ComplexGaussRan(double sig) ****
    297 
    298 --- variables gaussiennes x,y independantes
    299 x gaussien: pdf f(x) = 1/(sqrt(2Pi) Sx) exp(-(x-Mx)^2/(2 Sx^2))
    300 y gaussien: pdf f(y) = 1/(sqrt(2Pi) Sy) exp(-(y-My)^2/(2 Sy^2))
    301 x,y independants --> pdf f(x,y) = f(x) f(y)
    302 On a:
    303   <x>   = Integrate[x*f(x)]   = Mx
    304   <x^2> = Integrate[x^2*f(x)] = Mx^2 + Sx^2
    305 
    306 --- On cherche la pdf g(r,t) du module et de la phase
    307   x = r cos(t) ,  y = r sin(t)
    308   r=sqrt(x^2+y^2 , t=atan2(y,x)
    309   (r,t) --> (x,y): le Jacobien = r
    310 
    311   g(r,t) = r f(x,y) = r f(x) f(y)
    312          = r/(2Pi Sx Sy) exp(-(x-Mx)^2/(2 Sx^2)) exp(-(y-My)^2/(2 Sy^2))
    313 
    314 - Le cas general est complique
    315   (cf D.Pelat cours DEA "bruits et signaux" section 4.5)
    316 
    317 - Cas ou "Mx = My = 0" et "Sx = Sy = S"
    318   c'est la pdf du module et de la phase d'un nombre complexe
    319      dont les parties reelles et imaginaires sont independantes
    320      et sont distribuees selon des gaussiennes de variance S^2
    321   g(r,t) = r/(2Pi S^2) exp(-r^2/(2 S^2))
    322   La distribution de "r" est donc:
    323     g(r) = Integrate[g(r,t),{t,0,2Pi}]
    324          = r/S^2 exp(-r^2/(2 S^2))
    325   La distribution de "t" est donc:
    326     g(t) = Integrate[g(r,t),{r,0,Infinity}]
    327          = 1 / 2Pi  (distribution uniforme sur [0,2Pi[)
    328   Les variables aleatoires r,t sont independantes:
    329     g(r,t) = g(r) g(t)
    330 On a:
    331   <r>   = Integrate[r*g(r)]   = sqrt(PI/2)*S
    332   <r^2> = Integrate[r^2*g(r)] = 2*S^2
    333   <r^3> = Integrate[r^3*g(r)] = 3*sqrt(PI/2)*S^3
    334   <r^4> = Integrate[r^4*g(r)] = 8*S^4
    335 
    336 - Attention:
    337 La variable complexe "c = x+iy = r*exp(i*t)" ainsi definie verifie:
    338               <|c|^2> = <c c*> = <x^2+y^2> = <r^2> = 2 S^2
    339 Si on veut generer une variable complexe gaussienne telle que
    340      <c c*> = s^2 alors il faut prendre S = s/sqrt(2) comme argument
    341 
    342 */
  • trunk/SophyaLib/NTools/perandom.h

    r3608 r3615  
    1212#include "tvector.h"
    1313#include "histos.h"
    14 #include "srandgen.h"
    1514#include "classfunc.h"
    16 #include <complex>
    1715
    1816namespace SOPHYA { 
     
    5452};
    5553
    56 
    57 /*!
    58   \ingroup NTools
    59   \brief Returns a random complex number such that real and imaginary parts are gaussians with variance sig^2
    60 */
    61 inline complex< r_8 > ComplexGaussRan(void)
    62   {return complex< r_8 >(NorRand(),NorRand());}
    63 inline complex< r_8 > ComplexGaussRan(double sig)
    64   {return complex< r_8 >(GauRnd(0.,sig),GauRnd(0.,sig));}
    65 
    66 /*!
    67   \ingroup NTools
    68   \brief Returns the module of a random complex number generated by ComplexGaussRan
    69 */
    70 inline double ModComplexGaussRan(double sig=1.)
    71   {double r=-log(1.-drand01()); return sig*sqrt(2.*r);}
    72 
    7354} // namespace SOPHYA
    7455
  • trunk/SophyaLib/NTools/smakefile

    r3608 r3615  
    3333  $(SOPHYAINCP)ndatablock.h \
    3434  $(SOPHYAINCP)utilarr.h \
     35  $(SOPHYAINCP)randinterf.h \
    3536  $(SOPHYAINCP)tmatrix.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
     
    6768  $(SOPHYAINCP)ndatablock.h \
    6869  $(SOPHYAINCP)utilarr.h \
     70  $(SOPHYAINCP)randinterf.h \
    6971  $(SOPHYAINCP)tmatrix_tsnl.h \
    7072  $(SOPHYAINCP)fioarr.h \
     
    114116  $(SOPHYAINCP)ndatablock.h \
    115117  $(SOPHYAINCP)utilarr.h \
     118  $(SOPHYAINCP)randinterf.h \
    116119  $(SOPHYAINCP)tmatrix_tsnl.h \
    117120  $(SOPHYAINCP)tvector_tsnl.h \
     
    120123 
    121124$(SOPHYAOBJP)dynccd.o: dynccd.cc $(SOPHYAINCP)sopnamsp.h \
    122   $(SOPHYAINCP)machdefs.h fmath.h perandom.h \
    123   $(SOPHYAINCP)tvector.h \
    124   $(SOPHYAINCP)tmatrix.h \
    125   $(SOPHYAINCP)machdefs.h \
    126   $(SOPHYAINCP)tarray.h \
    127   $(SOPHYAINCP)basarr.h \
    128   $(SOPHYAINCP)anydataobj.h \
     125  $(SOPHYAINCP)machdefs.h fmath.h \
     126  $(SOPHYAINCP)srandgen.h \
     127  $(SOPHYAINCP)machdefs.h \
     128  $(SOPHYAINCP)randinterf.h \
     129  $(SOPHYAINCP)anydataobj.h perandom.h \
     130  $(SOPHYAINCP)tvector.h \
     131  $(SOPHYAINCP)tmatrix.h \
     132  $(SOPHYAINCP)tarray.h \
     133  $(SOPHYAINCP)basarr.h \
    129134  $(SOPHYAINCP)mutyv.h \
    130135  $(SOPHYAINCP)timestamp.h \
     
    146151  $(SOPHYAINCP)perrors.h \
    147152  $(SOPHYAINCP)fmath.h \
    148   $(SOPHYAINCP)tvector.h \
    149   $(SOPHYAINCP)srandgen.h classfunc.h cimage.h \
     153  $(SOPHYAINCP)tvector.h classfunc.h cimage.h \
    150154  $(SOPHYAINCP)tmatrix.h \
    151155  $(SOPHYAINCP)fioarr.h dynccd.h \
     
    175179  $(SOPHYAINCP)ndatablock.h \
    176180  $(SOPHYAINCP)utilarr.h \
     181  $(SOPHYAINCP)randinterf.h \
    177182  $(SOPHYAINCP)tmatrix_tsnl.h \
    178183  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    207212  $(SOPHYAINCP)ndatablock.h \
    208213  $(SOPHYAINCP)utilarr.h \
     214  $(SOPHYAINCP)randinterf.h \
    209215  $(SOPHYAINCP)tmatrix_tsnl.h \
    210216  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    239245  $(SOPHYAINCP)ndatablock.h \
    240246  $(SOPHYAINCP)utilarr.h \
     247  $(SOPHYAINCP)randinterf.h \
    241248  $(SOPHYAINCP)tmatrix_tsnl.h \
    242249  $(SOPHYAINCP)tvector.h \
     
    266273  $(SOPHYAINCP)ndatablock.h \
    267274  $(SOPHYAINCP)utilarr.h \
     275  $(SOPHYAINCP)randinterf.h \
    268276  $(SOPHYAINCP)tmatrix_tsnl.h \
    269277  $(SOPHYAINCP)tvector.h \
     
    292300  $(SOPHYAINCP)ndatablock.h \
    293301  $(SOPHYAINCP)utilarr.h \
     302  $(SOPHYAINCP)randinterf.h \
    294303  $(SOPHYAINCP)tmatrix_tsnl.h \
    295304  $(SOPHYAINCP)tvector.h \
     
    319328  $(SOPHYAINCP)ndatablock.h \
    320329  $(SOPHYAINCP)utilarr.h \
     330  $(SOPHYAINCP)randinterf.h \
    321331  $(SOPHYAINCP)tmatrix_tsnl.h \
    322332  $(SOPHYAINCP)tvector_tsnl.h \
     
    346356  $(SOPHYAINCP)ndatablock.h \
    347357  $(SOPHYAINCP)utilarr.h \
     358  $(SOPHYAINCP)randinterf.h \
    348359  $(SOPHYAINCP)tmatrix_tsnl.h \
    349360  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    378389  $(SOPHYAINCP)ndatablock.h \
    379390  $(SOPHYAINCP)utilarr.h \
     391  $(SOPHYAINCP)randinterf.h \
    380392  $(SOPHYAINCP)tmatrix_tsnl.h \
    381393  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    418430  $(SOPHYAINCP)ndatablock.h \
    419431  $(SOPHYAINCP)utilarr.h \
     432  $(SOPHYAINCP)randinterf.h \
    420433  $(SOPHYAINCP)tmatrix_tsnl.h \
    421434  $(SOPHYAINCP)tvector_tsnl.h generaldata.h \
     
    458471  $(SOPHYAINCP)ndatablock.h \
    459472  $(SOPHYAINCP)utilarr.h \
     473  $(SOPHYAINCP)randinterf.h \
    460474  $(SOPHYAINCP)tmatrix_tsnl.h \
    461475  $(SOPHYAINCP)tvector_tsnl.h \
     
    488502  $(SOPHYAINCP)ndatablock.h \
    489503  $(SOPHYAINCP)utilarr.h \
     504  $(SOPHYAINCP)randinterf.h \
    490505  $(SOPHYAINCP)tmatrix_tsnl.h cimage.h \
    491506  $(SOPHYAINCP)fioarr.h \
     
    512527  $(SOPHYAINCP)machdefs.h \
    513528  $(SOPHYAINCP)pexceptions.h \
    514   $(SOPHYAINCP)machdefs.h perandom.h \
    515   $(SOPHYAINCP)tvector.h \
    516   $(SOPHYAINCP)tmatrix.h \
    517   $(SOPHYAINCP)tarray.h \
    518   $(SOPHYAINCP)basarr.h \
    519   $(SOPHYAINCP)anydataobj.h \
     529  $(SOPHYAINCP)machdefs.h \
     530  $(SOPHYAINCP)srandgen.h \
     531  $(SOPHYAINCP)randinterf.h \
     532  $(SOPHYAINCP)anydataobj.h perandom.h \
     533  $(SOPHYAINCP)tvector.h \
     534  $(SOPHYAINCP)tmatrix.h \
     535  $(SOPHYAINCP)tarray.h \
     536  $(SOPHYAINCP)basarr.h \
    520537  $(SOPHYAINCP)mutyv.h \
    521538  $(SOPHYAINCP)timestamp.h \
     
    537554  $(SOPHYAINCP)perrors.h \
    538555  $(SOPHYAINCP)fmath.h \
    539   $(SOPHYAINCP)tvector.h \
    540   $(SOPHYAINCP)srandgen.h classfunc.h pemath.h
     556  $(SOPHYAINCP)tvector.h classfunc.h
    541557        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  perandom.cc
    542558 
     
    564580  $(SOPHYAINCP)ndatablock.h \
    565581  $(SOPHYAINCP)utilarr.h \
     582  $(SOPHYAINCP)randinterf.h \
    566583  $(SOPHYAINCP)tmatrix_tsnl.h \
    567584  $(SOPHYAINCP)tvector_tsnl.h \
     
    594611  $(SOPHYAINCP)ndatablock.h \
    595612  $(SOPHYAINCP)utilarr.h \
     613  $(SOPHYAINCP)randinterf.h \
    596614  $(SOPHYAINCP)tmatrix_tsnl.h \
    597615  $(SOPHYAINCP)tvector_tsnl.h \
     
    629647  $(SOPHYAINCP)ndatablock.h \
    630648  $(SOPHYAINCP)utilarr.h \
     649  $(SOPHYAINCP)randinterf.h \
    631650  $(SOPHYAINCP)tmatrix_tsnl.h \
    632651  $(SOPHYAINCP)tvector_tsnl.h generalfit.h \
     
    680699  $(SOPHYAINCP)ndatablock.h \
    681700  $(SOPHYAINCP)utilarr.h \
     701  $(SOPHYAINCP)randinterf.h \
    682702  $(SOPHYAINCP)tmatrix.h \
    683703  $(SOPHYAINCP)tmatrix_tsnl.h \
  • trunk/SophyaLib/Samba/Makefile

    r3572 r3615  
    1212 
    1313$(SOPHYAOBJP)alm.o: alm.cc $(SOPHYAINCP)sopnamsp.h alm.h \
    14   $(SOPHYAINCP)stsrand.h \
    15   $(SOPHYAINCP)machdefs.h \
    16   $(SOPHYAINCP)objfio.h \
    17   $(SOPHYAINCP)anydataobj.h \
    18   $(SOPHYAINCP)ppersist.h \
    19   $(SOPHYAINCP)pexceptions.h \
    20   $(SOPHYAINCP)gnumd5.h \
    21   $(SOPHYAINCP)ppfbinstream.h \
    22   $(SOPHYAINCP)rawstream.h \
    23   $(SOPHYAINCP)ppfnametag.h \
    24   $(SOPHYAINCP)ndatablock.h \
     14  $(SOPHYAINCP)randinterf.h \
     15  $(SOPHYAINCP)machdefs.h \
     16  $(SOPHYAINCP)anydataobj.h \
    2517  $(SOPHYAINCP)nbmath.h \
    2618  $(SOPHYAINCP)smathconst.h \
    2719  $(SOPHYAINCP)triangmtx.h \
    28   $(SOPHYAINCP)tvector.h \
    29   $(SOPHYAINCP)tmatrix.h \
    30   $(SOPHYAINCP)tarray.h \
    31   $(SOPHYAINCP)basarr.h \
    32   $(SOPHYAINCP)mutyv.h \
    33   $(SOPHYAINCP)timestamp.h \
    34   $(SOPHYAINCP)dvlist.h \
    35   $(SOPHYAINCP)utilarr.h \
     20  $(SOPHYAINCP)ndatablock.h \
     21  $(SOPHYAINCP)pexceptions.h \
     22  $(SOPHYAINCP)tvector.h \
     23  $(SOPHYAINCP)tmatrix.h \
     24  $(SOPHYAINCP)tarray.h \
     25  $(SOPHYAINCP)basarr.h \
     26  $(SOPHYAINCP)mutyv.h \
     27  $(SOPHYAINCP)timestamp.h \
     28  $(SOPHYAINCP)objfio.h \
     29  $(SOPHYAINCP)ppersist.h \
     30  $(SOPHYAINCP)gnumd5.h \
     31  $(SOPHYAINCP)ppfbinstream.h \
     32  $(SOPHYAINCP)rawstream.h \
     33  $(SOPHYAINCP)ppfnametag.h \
     34  $(SOPHYAINCP)dvlist.h \
     35  $(SOPHYAINCP)utilarr.h \
     36  $(SOPHYAINCP)randinterf.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
    3738  $(SOPHYAINCP)tvector_tsnl.h
     
    4142  $(SOPHYAINCP)fmath.h bruit.h \
    4243  $(SOPHYAINCP)srandgen.h \
    43   $(SOPHYAINCP)machdefs.h
     44  $(SOPHYAINCP)machdefs.h \
     45  $(SOPHYAINCP)randinterf.h \
     46  $(SOPHYAINCP)anydataobj.h
    4447        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  bruit.cc
    4548 
     
    9194  $(SOPHYAINCP)ndatablock.h \
    9295  $(SOPHYAINCP)utilarr.h \
     96  $(SOPHYAINCP)randinterf.h \
    9397  $(SOPHYAINCP)tmatrix_tsnl.h \
    9498  $(SOPHYAINCP)tvector_tsnl.h alm.h \
    95   $(SOPHYAINCP)stsrand.h \
     99  $(SOPHYAINCP)randinterf.h \
    96100  $(SOPHYAINCP)nbmath.h \
    97101  $(SOPHYAINCP)smathconst.h \
     
    129133  $(SOPHYAINCP)ndatablock.h \
    130134  $(SOPHYAINCP)utilarr.h \
     135  $(SOPHYAINCP)randinterf.h \
    131136  $(SOPHYAINCP)tmatrix_tsnl.h \
    132137  $(SOPHYAINCP)tvector_tsnl.h \
     
    195200  $(SOPHYAINCP)ndatablock.h \
    196201  $(SOPHYAINCP)utilarr.h \
     202  $(SOPHYAINCP)randinterf.h \
    197203  $(SOPHYAINCP)tmatrix_tsnl.h \
    198204  $(SOPHYAINCP)tvector_tsnl.h \
     
    200206  $(SOPHYAINCP)fftpserver.h \
    201207  $(SOPHYAINCP)fftservintf.h \
    202   $(SOPHYAINCP)stsrand.h alm.h \
     208  $(SOPHYAINCP)randinterf.h alm.h \
    203209  $(SOPHYAINCP)nbmath.h \
    204210  $(SOPHYAINCP)triangmtx.h \
  • trunk/SophyaLib/Samba/smakefile

    r3572 r3615  
    1212 
    1313$(SOPHYAOBJP)alm.o: alm.cc $(SOPHYAINCP)sopnamsp.h alm.h \
    14   $(SOPHYAINCP)stsrand.h \
    15   $(SOPHYAINCP)machdefs.h \
    16   $(SOPHYAINCP)objfio.h \
    17   $(SOPHYAINCP)anydataobj.h \
    18   $(SOPHYAINCP)ppersist.h \
    19   $(SOPHYAINCP)pexceptions.h \
    20   $(SOPHYAINCP)gnumd5.h \
    21   $(SOPHYAINCP)ppfbinstream.h \
    22   $(SOPHYAINCP)rawstream.h \
    23   $(SOPHYAINCP)ppfnametag.h \
    24   $(SOPHYAINCP)ndatablock.h \
     14  $(SOPHYAINCP)randinterf.h \
     15  $(SOPHYAINCP)machdefs.h \
     16  $(SOPHYAINCP)anydataobj.h \
    2517  $(SOPHYAINCP)nbmath.h \
    2618  $(SOPHYAINCP)smathconst.h \
    2719  $(SOPHYAINCP)triangmtx.h \
    28   $(SOPHYAINCP)tvector.h \
    29   $(SOPHYAINCP)tmatrix.h \
    30   $(SOPHYAINCP)tarray.h \
    31   $(SOPHYAINCP)basarr.h \
    32   $(SOPHYAINCP)mutyv.h \
    33   $(SOPHYAINCP)timestamp.h \
    34   $(SOPHYAINCP)dvlist.h \
    35   $(SOPHYAINCP)utilarr.h \
     20  $(SOPHYAINCP)ndatablock.h \
     21  $(SOPHYAINCP)pexceptions.h \
     22  $(SOPHYAINCP)tvector.h \
     23  $(SOPHYAINCP)tmatrix.h \
     24  $(SOPHYAINCP)tarray.h \
     25  $(SOPHYAINCP)basarr.h \
     26  $(SOPHYAINCP)mutyv.h \
     27  $(SOPHYAINCP)timestamp.h \
     28  $(SOPHYAINCP)objfio.h \
     29  $(SOPHYAINCP)ppersist.h \
     30  $(SOPHYAINCP)gnumd5.h \
     31  $(SOPHYAINCP)ppfbinstream.h \
     32  $(SOPHYAINCP)rawstream.h \
     33  $(SOPHYAINCP)ppfnametag.h \
     34  $(SOPHYAINCP)dvlist.h \
     35  $(SOPHYAINCP)utilarr.h \
     36  $(SOPHYAINCP)randinterf.h \
    3637  $(SOPHYAINCP)tmatrix_tsnl.h \
    3738  $(SOPHYAINCP)tvector_tsnl.h
     
    4142  $(SOPHYAINCP)fmath.h bruit.h \
    4243  $(SOPHYAINCP)srandgen.h \
    43   $(SOPHYAINCP)machdefs.h
     44  $(SOPHYAINCP)machdefs.h \
     45  $(SOPHYAINCP)randinterf.h \
     46  $(SOPHYAINCP)anydataobj.h
    4447        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  bruit.cc
    4548 
     
    9194  $(SOPHYAINCP)ndatablock.h \
    9295  $(SOPHYAINCP)utilarr.h \
     96  $(SOPHYAINCP)randinterf.h \
    9397  $(SOPHYAINCP)tmatrix_tsnl.h \
    9498  $(SOPHYAINCP)tvector_tsnl.h alm.h \
    95   $(SOPHYAINCP)stsrand.h \
     99  $(SOPHYAINCP)randinterf.h \
    96100  $(SOPHYAINCP)nbmath.h \
    97101  $(SOPHYAINCP)smathconst.h \
     
    129133  $(SOPHYAINCP)ndatablock.h \
    130134  $(SOPHYAINCP)utilarr.h \
     135  $(SOPHYAINCP)randinterf.h \
    131136  $(SOPHYAINCP)tmatrix_tsnl.h \
    132137  $(SOPHYAINCP)tvector_tsnl.h \
     
    195200  $(SOPHYAINCP)ndatablock.h \
    196201  $(SOPHYAINCP)utilarr.h \
     202  $(SOPHYAINCP)randinterf.h \
    197203  $(SOPHYAINCP)tmatrix_tsnl.h \
    198204  $(SOPHYAINCP)tvector_tsnl.h \
     
    200206  $(SOPHYAINCP)fftpserver.h \
    201207  $(SOPHYAINCP)fftservintf.h \
    202   $(SOPHYAINCP)stsrand.h alm.h \
     208  $(SOPHYAINCP)randinterf.h alm.h \
    203209  $(SOPHYAINCP)nbmath.h \
    204210  $(SOPHYAINCP)triangmtx.h \
  • trunk/SophyaLib/SkyMap/Makefile

    r3405 r3615  
    3333  $(SOPHYAINCP)ndatablock.h \
    3434  $(SOPHYAINCP)utilarr.h \
     35  $(SOPHYAINCP)randinterf.h \
    3536  $(SOPHYAINCP)tmatrix_tsnl.h \
    3637  $(SOPHYAINCP)tvector_tsnl.h \
     
    6465  $(SOPHYAINCP)ndatablock.h \
    6566  $(SOPHYAINCP)utilarr.h \
     67  $(SOPHYAINCP)randinterf.h \
    6668  $(SOPHYAINCP)tmatrix_tsnl.h \
    6769  $(SOPHYAINCP)tvector_tsnl.h localmap.h \
     
    100102  $(SOPHYAINCP)ndatablock.h \
    101103  $(SOPHYAINCP)utilarr.h \
     104  $(SOPHYAINCP)randinterf.h \
    102105  $(SOPHYAINCP)tmatrix_tsnl.h \
    103106  $(SOPHYAINCP)tvector_tsnl.h \
     
    134137  $(SOPHYAINCP)ndatablock.h \
    135138  $(SOPHYAINCP)utilarr.h \
     139  $(SOPHYAINCP)randinterf.h \
    136140  $(SOPHYAINCP)tmatrix_tsnl.h \
    137141  $(SOPHYAINCP)tvector_tsnl.h \
     
    167171  $(SOPHYAINCP)ndatablock.h \
    168172  $(SOPHYAINCP)utilarr.h \
     173  $(SOPHYAINCP)randinterf.h \
    169174  $(SOPHYAINCP)tmatrix_tsnl.h \
    170175  $(SOPHYAINCP)tvector_tsnl.h \
     
    199204  $(SOPHYAINCP)ndatablock.h \
    200205  $(SOPHYAINCP)utilarr.h \
     206  $(SOPHYAINCP)randinterf.h \
    201207  $(SOPHYAINCP)tmatrix_tsnl.h \
    202208  $(SOPHYAINCP)tvector_tsnl.h \
     
    260266  $(SOPHYAINCP)ndatablock.h \
    261267  $(SOPHYAINCP)utilarr.h \
     268  $(SOPHYAINCP)randinterf.h \
    262269  $(SOPHYAINCP)tmatrix_tsnl.h \
    263270  $(SOPHYAINCP)tvector_tsnl.h \
     
    293300  $(SOPHYAINCP)ndatablock.h \
    294301  $(SOPHYAINCP)utilarr.h \
     302  $(SOPHYAINCP)randinterf.h \
    295303  $(SOPHYAINCP)tmatrix_tsnl.h \
    296304  $(SOPHYAINCP)tvector_tsnl.h \
     
    327335  $(SOPHYAINCP)dvlist.h \
    328336  $(SOPHYAINCP)utilarr.h \
     337  $(SOPHYAINCP)randinterf.h \
    329338  $(SOPHYAINCP)tmatrix_tsnl.h \
    330339  $(SOPHYAINCP)tvector_tsnl.h \
     
    373382  $(SOPHYAINCP)ndatablock.h \
    374383  $(SOPHYAINCP)utilarr.h \
     384  $(SOPHYAINCP)randinterf.h \
    375385  $(SOPHYAINCP)tmatrix_tsnl.h \
    376386  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/SkyMap/smakefile

    r3405 r3615  
    3333  $(SOPHYAINCP)ndatablock.h \
    3434  $(SOPHYAINCP)utilarr.h \
     35  $(SOPHYAINCP)randinterf.h \
    3536  $(SOPHYAINCP)tmatrix_tsnl.h \
    3637  $(SOPHYAINCP)tvector_tsnl.h \
     
    6465  $(SOPHYAINCP)ndatablock.h \
    6566  $(SOPHYAINCP)utilarr.h \
     67  $(SOPHYAINCP)randinterf.h \
    6668  $(SOPHYAINCP)tmatrix_tsnl.h \
    6769  $(SOPHYAINCP)tvector_tsnl.h localmap.h \
     
    100102  $(SOPHYAINCP)ndatablock.h \
    101103  $(SOPHYAINCP)utilarr.h \
     104  $(SOPHYAINCP)randinterf.h \
    102105  $(SOPHYAINCP)tmatrix_tsnl.h \
    103106  $(SOPHYAINCP)tvector_tsnl.h \
     
    134137  $(SOPHYAINCP)ndatablock.h \
    135138  $(SOPHYAINCP)utilarr.h \
     139  $(SOPHYAINCP)randinterf.h \
    136140  $(SOPHYAINCP)tmatrix_tsnl.h \
    137141  $(SOPHYAINCP)tvector_tsnl.h \
     
    167171  $(SOPHYAINCP)ndatablock.h \
    168172  $(SOPHYAINCP)utilarr.h \
     173  $(SOPHYAINCP)randinterf.h \
    169174  $(SOPHYAINCP)tmatrix_tsnl.h \
    170175  $(SOPHYAINCP)tvector_tsnl.h \
     
    199204  $(SOPHYAINCP)ndatablock.h \
    200205  $(SOPHYAINCP)utilarr.h \
     206  $(SOPHYAINCP)randinterf.h \
    201207  $(SOPHYAINCP)tmatrix_tsnl.h \
    202208  $(SOPHYAINCP)tvector_tsnl.h \
     
    260266  $(SOPHYAINCP)ndatablock.h \
    261267  $(SOPHYAINCP)utilarr.h \
     268  $(SOPHYAINCP)randinterf.h \
    262269  $(SOPHYAINCP)tmatrix_tsnl.h \
    263270  $(SOPHYAINCP)tvector_tsnl.h \
     
    293300  $(SOPHYAINCP)ndatablock.h \
    294301  $(SOPHYAINCP)utilarr.h \
     302  $(SOPHYAINCP)randinterf.h \
    295303  $(SOPHYAINCP)tmatrix_tsnl.h \
    296304  $(SOPHYAINCP)tvector_tsnl.h \
     
    327335  $(SOPHYAINCP)dvlist.h \
    328336  $(SOPHYAINCP)utilarr.h \
     337  $(SOPHYAINCP)randinterf.h \
    329338  $(SOPHYAINCP)tmatrix_tsnl.h \
    330339  $(SOPHYAINCP)tvector_tsnl.h \
     
    373382  $(SOPHYAINCP)ndatablock.h \
    374383  $(SOPHYAINCP)utilarr.h \
     384  $(SOPHYAINCP)randinterf.h \
    375385  $(SOPHYAINCP)tmatrix_tsnl.h \
    376386  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/SkyT/Makefile

    r3405 r3615  
    111111  $(SOPHYAINCP)ndatablock.h \
    112112  $(SOPHYAINCP)utilarr.h \
     113  $(SOPHYAINCP)randinterf.h \
    113114  $(SOPHYAINCP)tmatrix_tsnl.h \
    114115  $(SOPHYAINCP)tvector_tsnl.h \
     
    142143  $(SOPHYAINCP)ndatablock.h \
    143144  $(SOPHYAINCP)utilarr.h \
     145  $(SOPHYAINCP)randinterf.h \
    144146  $(SOPHYAINCP)tmatrix_tsnl.h \
    145147  $(SOPHYAINCP)tvector_tsnl.h gaussfilt.h
     
    169171  $(SOPHYAINCP)ndatablock.h \
    170172  $(SOPHYAINCP)utilarr.h \
     173  $(SOPHYAINCP)randinterf.h \
    171174  $(SOPHYAINCP)tmatrix_tsnl.h \
    172175  $(SOPHYAINCP)tvector_tsnl.h
     
    194197  $(SOPHYAINCP)ndatablock.h \
    195198  $(SOPHYAINCP)utilarr.h \
     199  $(SOPHYAINCP)randinterf.h \
    196200  $(SOPHYAINCP)tmatrix_tsnl.h \
    197201  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/SkyT/smakefile

    r3405 r3615  
    111111  $(SOPHYAINCP)ndatablock.h \
    112112  $(SOPHYAINCP)utilarr.h \
     113  $(SOPHYAINCP)randinterf.h \
    113114  $(SOPHYAINCP)tmatrix_tsnl.h \
    114115  $(SOPHYAINCP)tvector_tsnl.h \
     
    142143  $(SOPHYAINCP)ndatablock.h \
    143144  $(SOPHYAINCP)utilarr.h \
     145  $(SOPHYAINCP)randinterf.h \
    144146  $(SOPHYAINCP)tmatrix_tsnl.h \
    145147  $(SOPHYAINCP)tvector_tsnl.h gaussfilt.h
     
    169171  $(SOPHYAINCP)ndatablock.h \
    170172  $(SOPHYAINCP)utilarr.h \
     173  $(SOPHYAINCP)randinterf.h \
    171174  $(SOPHYAINCP)tmatrix_tsnl.h \
    172175  $(SOPHYAINCP)tvector_tsnl.h
     
    194197  $(SOPHYAINCP)ndatablock.h \
    195198  $(SOPHYAINCP)utilarr.h \
     199  $(SOPHYAINCP)randinterf.h \
    196200  $(SOPHYAINCP)tmatrix_tsnl.h \
    197201  $(SOPHYAINCP)tvector_tsnl.h \
  • trunk/SophyaLib/SysTools/Makefile

    r3405 r3615  
    1515  $(SOPHYAINCP)pexceptions.h \
    1616  $(SOPHYAINCP)machdefs.h \
    17   $(SOPHYAINCP)srandgen.h
     17  $(SOPHYAINCP)srandgen.h \
     18  $(SOPHYAINCP)randinterf.h \
     19  $(SOPHYAINCP)anydataobj.h
    1820        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  cexpre.cc
    1921 
     
    3537  $(SOPHYAINCP)strutilxx.h cexpre.h \
    3638  $(SOPHYAINCP)pexceptions.h rpneval.h \
    37   $(SOPHYAINCP)srandgen.h zthread.h
     39  $(SOPHYAINCP)srandgen.h \
     40  $(SOPHYAINCP)randinterf.h zthread.h
    3841        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  commander.cc
    3942 
    40 $(SOPHYAOBJP)ctimer.o: ctimer.cc $(SOPHYAINCP)sopnamsp.h \
    41   $(SOPHYAINCP)machdefs.h ctimer.h
     43$(SOPHYAOBJP)ctimer.o: ctimer.cc $(SOPHYAINCP)machdefs.h \
     44  $(SOPHYAINCP)sopnamsp.h ctimer.h
    4245        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ctimer.cc
    4346 
     
    7073  $(SOPHYAINCP)machdefs.h \
    7174  $(SOPHYAINCP)strutilxx.h \
    72   $(SOPHYAINCP)srandgen.h
     75  $(SOPHYAINCP)srandgen.h \
     76  $(SOPHYAINCP)randinterf.h \
     77  $(SOPHYAINCP)anydataobj.h
    7378        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  rpneval.cc
    7479 
  • trunk/SophyaLib/SysTools/cexpre.cc

    r2804 r3615  
    220220static double _CE_rand01() { return drand01(); }
    221221static double _CE_randpm1() { return drandpm1(); }
    222 static double _CE_gaurand() { return GauRnd(0., 1.); }
     222static double _CE_gaurand() { return Gaussian(1.,0.); }
    223223//---------------------------------------------------------
    224224CE_FuncExp::CE_FuncExp(string const & func)
  • trunk/SophyaLib/SysTools/commander.cc

    r3581 r3615  
    584584kw = "autoiniranf";
    585585usage  = "> Automatic random number generator initialisation\n";
    586 usage += "   by Auto_Ini_Ranf(int lp) \n";
     586usage += "   by AutoInitRand(int lp) \n";
    587587usage += "   Usage: autoiniranf";
    588588RegisterCommand(kw, usage, NULL, grp);
     
    19551955  }
    19561956else if (kw == "autoiniranf") {
    1957   Auto_Ini_Ranf(1);
     1957  AutoInitRand(1);
    19581958  return(0);
    19591959}
  • trunk/SophyaLib/SysTools/rpneval.cc

    r2913 r3615  
    238238    }
    239239    else if (args[k] == "gaurand") {
    240       double rnd = GauRnd(0., 1.);
     240      double rnd = Gaussian(1.,0.);
    241241      rpnstack_.push(rnd);
    242242    }
  • trunk/SophyaLib/SysTools/smakefile

    r3405 r3615  
    1515  $(SOPHYAINCP)pexceptions.h \
    1616  $(SOPHYAINCP)machdefs.h \
    17   $(SOPHYAINCP)srandgen.h
     17  $(SOPHYAINCP)srandgen.h \
     18  $(SOPHYAINCP)randinterf.h \
     19  $(SOPHYAINCP)anydataobj.h
    1820        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  cexpre.cc
    1921 
     
    3537  $(SOPHYAINCP)strutilxx.h cexpre.h \
    3638  $(SOPHYAINCP)pexceptions.h rpneval.h \
    37   $(SOPHYAINCP)srandgen.h zthread.h
     39  $(SOPHYAINCP)srandgen.h \
     40  $(SOPHYAINCP)randinterf.h zthread.h
    3841        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  commander.cc
    3942 
    40 $(SOPHYAOBJP)ctimer.o: ctimer.cc $(SOPHYAINCP)sopnamsp.h \
    41   $(SOPHYAINCP)machdefs.h ctimer.h
     43$(SOPHYAOBJP)ctimer.o: ctimer.cc $(SOPHYAINCP)machdefs.h \
     44  $(SOPHYAINCP)sopnamsp.h ctimer.h
    4245        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  ctimer.cc
    4346 
     
    7073  $(SOPHYAINCP)machdefs.h \
    7174  $(SOPHYAINCP)strutilxx.h \
    72   $(SOPHYAINCP)srandgen.h
     75  $(SOPHYAINCP)srandgen.h \
     76  $(SOPHYAINCP)randinterf.h \
     77  $(SOPHYAINCP)anydataobj.h
    7378        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  rpneval.cc
    7479 
  • trunk/SophyaLib/TArray/Makefile

    r3405 r3615  
    4949  $(SOPHYAINCP)dvlist.h \
    5050  $(SOPHYAINCP)mutyv.h \
    51   $(SOPHYAINCP)ndatablock.h utilarr.h tmatrix.h \
     51  $(SOPHYAINCP)ndatablock.h utilarr.h \
     52  $(SOPHYAINCP)randinterf.h tmatrix.h \
    5253  tmatrix_tsnl.h tvector.h tvector_tsnl.h \
    5354  $(SOPHYAINCP)ppersist.h \
     
    7172  $(SOPHYAINCP)dvlist.h \
    7273  $(SOPHYAINCP)mutyv.h \
    73   $(SOPHYAINCP)ndatablock.h utilarr.h
     74  $(SOPHYAINCP)ndatablock.h utilarr.h \
     75  $(SOPHYAINCP)randinterf.h
    7476        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  matharr.cc
    7577 
     
    9193  $(SOPHYAINCP)mutyv.h \
    9294  $(SOPHYAINCP)ndatablock.h utilarr.h \
    93   tmatrix_tsnl.h tvector.h tvector_tsnl.h \
     95  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h \
     96  tvector.h tvector_tsnl.h \
    9497  $(SOPHYAINCP)smathconst.h
    9598        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sopemtx.cc
     
    111114  $(SOPHYAINCP)dvlist.h \
    112115  $(SOPHYAINCP)mutyv.h \
    113   $(SOPHYAINCP)ndatablock.h utilarr.h
     116  $(SOPHYAINCP)ndatablock.h utilarr.h \
     117  $(SOPHYAINCP)randinterf.h
    114118        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tarray.cc
    115119 
     
    131135  $(SOPHYAINCP)dvlist.h \
    132136  $(SOPHYAINCP)mutyv.h \
    133   $(SOPHYAINCP)ndatablock.h utilarr.h tmatrix.h \
     137  $(SOPHYAINCP)ndatablock.h utilarr.h \
     138  $(SOPHYAINCP)randinterf.h tmatrix.h \
    134139  tmatrix_tsnl.h tvector.h tvector_tsnl.h \
    135140  $(SOPHYAINCP)ppersist.h
     
    154159  $(SOPHYAINCP)mutyv.h \
    155160  $(SOPHYAINCP)ndatablock.h utilarr.h \
    156   tmatrix_tsnl.h
     161  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h
    157162        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tmatrix.cc
    158163 
     
    175180  $(SOPHYAINCP)mutyv.h \
    176181  $(SOPHYAINCP)ndatablock.h utilarr.h \
    177   tmatrix_tsnl.h tvector_tsnl.h
     182  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h \
     183  tvector_tsnl.h
    178184        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tvector.cc
    179185 
     
    191197  $(SOPHYAINCP)rawstream.h \
    192198  $(SOPHYAINCP)ppfnametag.h \
    193   $(SOPHYAINCP)stsrand.h \
    194   $(SOPHYAINCP)ndatablock.h
     199  $(SOPHYAINCP)randinterf.h \
     200  $(SOPHYAINCP)randr48.h \
     201  $(SOPHYAINCP)ndatablock.h \
     202  $(SOPHYAINCP)randinterf.h
    195203        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  utilarr.cc
    196204 
  • trunk/SophyaLib/TArray/smakefile

    r3405 r3615  
    4949  $(SOPHYAINCP)dvlist.h \
    5050  $(SOPHYAINCP)mutyv.h \
    51   $(SOPHYAINCP)ndatablock.h utilarr.h tmatrix.h \
     51  $(SOPHYAINCP)ndatablock.h utilarr.h \
     52  $(SOPHYAINCP)randinterf.h tmatrix.h \
    5253  tmatrix_tsnl.h tvector.h tvector_tsnl.h \
    5354  $(SOPHYAINCP)ppersist.h \
     
    7172  $(SOPHYAINCP)dvlist.h \
    7273  $(SOPHYAINCP)mutyv.h \
    73   $(SOPHYAINCP)ndatablock.h utilarr.h
     74  $(SOPHYAINCP)ndatablock.h utilarr.h \
     75  $(SOPHYAINCP)randinterf.h
    7476        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  matharr.cc
    7577 
     
    9193  $(SOPHYAINCP)mutyv.h \
    9294  $(SOPHYAINCP)ndatablock.h utilarr.h \
    93   tmatrix_tsnl.h tvector.h tvector_tsnl.h \
     95  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h \
     96  tvector.h tvector_tsnl.h \
    9497  $(SOPHYAINCP)smathconst.h
    9598        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  sopemtx.cc
     
    111114  $(SOPHYAINCP)dvlist.h \
    112115  $(SOPHYAINCP)mutyv.h \
    113   $(SOPHYAINCP)ndatablock.h utilarr.h
     116  $(SOPHYAINCP)ndatablock.h utilarr.h \
     117  $(SOPHYAINCP)randinterf.h
    114118        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tarray.cc
    115119 
     
    131135  $(SOPHYAINCP)dvlist.h \
    132136  $(SOPHYAINCP)mutyv.h \
    133   $(SOPHYAINCP)ndatablock.h utilarr.h tmatrix.h \
     137  $(SOPHYAINCP)ndatablock.h utilarr.h \
     138  $(SOPHYAINCP)randinterf.h tmatrix.h \
    134139  tmatrix_tsnl.h tvector.h tvector_tsnl.h \
    135140  $(SOPHYAINCP)ppersist.h
     
    154159  $(SOPHYAINCP)mutyv.h \
    155160  $(SOPHYAINCP)ndatablock.h utilarr.h \
    156   tmatrix_tsnl.h
     161  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h
    157162        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tmatrix.cc
    158163 
     
    175180  $(SOPHYAINCP)mutyv.h \
    176181  $(SOPHYAINCP)ndatablock.h utilarr.h \
    177   tmatrix_tsnl.h tvector_tsnl.h
     182  $(SOPHYAINCP)randinterf.h tmatrix_tsnl.h \
     183  tvector_tsnl.h
    178184        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tvector.cc
    179185 
     
    191197  $(SOPHYAINCP)rawstream.h \
    192198  $(SOPHYAINCP)ppfnametag.h \
    193   $(SOPHYAINCP)stsrand.h \
    194   $(SOPHYAINCP)ndatablock.h
     199  $(SOPHYAINCP)randinterf.h \
     200  $(SOPHYAINCP)randr48.h \
     201  $(SOPHYAINCP)ndatablock.h \
     202  $(SOPHYAINCP)randinterf.h
    195203        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  utilarr.cc
    196204 
Note: See TracChangeset for help on using the changeset viewer.