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

Last change on this file since 2840 was 2840, checked in by cmv, 20 years ago

Refonte totale de FunRan qui n'etait pas OK.
Arret de l'interpolation entre bin pour le tirage aleatoire
car ca pose un pb dans le premier et dernier bin.. A voir + tard
eventuellement. cmv 10/11/2005

File size: 1.1 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"
12#include "nbrandom.h"
13
[1371]14namespace SOPHYA {
15
[220]16class FunRan : public Histo {
17public:
[1092]18 typedef r_8 (*Func)(r_8);
19 FunRan(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBin=100);
20 FunRan(r_8 *tab, int_4 nBin);
21 FunRan(r_8 *tab, int_4 nBin, r_8 xMin, r_8 xMax);
[2840]22 FunRan(Histo &h, bool pdf=true);
[1092]23 r_8 Random(void);
24 int_4 BinRandom(void);
[220]25};
26
[1371]27class FunRan2D {
[220]28public:
[1092]29// typedef r_8 (*Func)(r_8, r_8);
30// FunRan2D(Func f, r_8 xMin=0.0, r_8 xMax=1.0, int_4 nBinX=100,
31// r_8 yMin=0.0, r_8 yMax=1.0, int_4 nBinY=100);
32 FunRan2D(r_8 *tab, int_4 nBinX, int_4 nBinY);
33 FunRan2D(r_8 **tab, int_4 nBinX, int_4 nBinY);
[220]34 ~FunRan2D();
[1092]35 void Random(r_8& x, r_8& y);
36 void BinRandom(int_4& x, int_4& y);
[220]37private:
38 FunRan* ranX;
39 FunRan** ranY;
[1092]40 int_4 nx;
[220]41};
42
[1371]43} // namespace SOPHYA
44
[220]45#endif
Note: See TracBrowser for help on using the repository browser.