source: Sophya/trunk/SophyaLib/NTools/perandom.h@ 3075

Last change on this file since 3075 was 3075, checked in by cmv, 19 years ago

remplacement nbrandom.h (obsolete) -> srandgen.h cmv 14/09/2006

File size: 1.3 KB
RevLine 
[220]1// This may look like C code, but it is really -*- C++ -*-
2// Nombres aleatoires pour Peida.
[2840]3// NON CE N'EST PAS MON CODE ... C. Magneville 1996-2000
[1371]4// DAPNIA/SPP (Saclay) / CEA LAL - IN2P3/CNRS (Orsay)
[220]5
6#ifndef PERANDOM_SEEN
7#define PERANDOM_SEEN
8
[244]9#include "machdefs.h"
[220]10#include <stdlib.h>
11#include "histos.h"
[3075]12#include "srandgen.h"
13#include <complex>
[220]14
[1371]15namespace SOPHYA {
16
[220]17class FunRan : public Histo {
18public:
[1092]19 typedef r_8 (*Func)(r_8);
20 FunRan(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBin=100);
21 FunRan(r_8 *tab, int_4 nBin);
22 FunRan(r_8 *tab, int_4 nBin, r_8 xMin, r_8 xMax);
[2840]23 FunRan(Histo &h, bool pdf=true);
[1092]24 r_8 Random(void);
25 int_4 BinRandom(void);
[220]26};
27
[1371]28class FunRan2D {
[220]29public:
[1092]30// typedef r_8 (*Func)(r_8, r_8);
31// FunRan2D(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBinX=100,
32// r_8 yMin=0.0, r_8 yMax=1.0, int_4 nBinY=100);
33 FunRan2D(r_8 *tab, int_4 nBinX, int_4 nBinY);
34 FunRan2D(r_8 **tab, int_4 nBinX, int_4 nBinY);
[220]35 ~FunRan2D();
[1092]36 void Random(r_8& x, r_8& y);
37 void BinRandom(int_4& x, int_4& y);
[220]38private:
39 FunRan* ranX;
40 FunRan** ranY;
[1092]41 int_4 nx;
[220]42};
43
[3075]44//! Returns a random gaussian complex number with variance sig^2
45inline complex< r_8 > ComplexGaussRan(double sig=1.)
46 {return complex< r_8 >(GauRnd(0.,sig),GauRnd(0.,sig));}
47
[1371]48} // namespace SOPHYA
49
[220]50#endif
Note: See TracBrowser for help on using the repository browser.