Hauptseite   Klassenhierarchie   Übersicht   Auflistung der Dateien   Elementübersicht   Datei-Elemente  

generators_b.c Dateireferenz

Implementation der in generators_b.h definierten Zufallszahlgeneratoren. Mehr...

#include "generators_b.h"

Makrodefinitionen

#define IA   16807
#define IM   2147483647
#define AM   (1.0/IM)
#define IQ   127773
#define IR   2836
#define MASK   123459876
#define IA   16807
#define IM   2147483647
#define AM   (1.0/IM)
#define IQ   127773
#define IR   2836
#define NTAB   32
#define NDIV   (1+(IM-1)/NTAB)
#define EPS   1.2e-7
#define RNMX   (1.0-EPS)
#define IM1   2147483563
#define IM2   2147483399
#define AM   (1.0/IM1)
#define IMM1   (IM1-1)
#define IA1   40014
#define IA2   40692
#define IQ1   53668
#define IQ2   52774
#define IR1   12211
#define IR2   3791
#define NTAB   32
#define NDIV   (1+IMM1/NTAB)
#define EPS   1.2e-7
#define RNMX   (1.0-EPS)

Typendefinitionen

typedef unsigned int uint

Funktionen

float ran0 (long *idum)
 Der Zufallszahlengenerator RAN0. Mehr...

float ran1 (long *idum)
 Der Zufallszahlengenerator RAN1. Mehr...

float ran2 (long *idum)
 Der Zufallszahlengenerator RAN2. Mehr...

float ranbh (long *ibm)
 Der Zufallszahlengenerator RANBH. Mehr...

float shuffle (long *idum)
uint mzran13 ()
void ran13set (uint xx, uint yy, uint zz, int nn)
float mzruni ()

Variablen

float gly
float glv [98]


Ausführliche Beschreibung


Dokumentation der Funktionen

float ran0 long *    idum
 

Generator RAN0

Quelle: Numerical Recipes in C 2nd edition (Press et al 1992) S. 278f Autoren: Park and Miller, Communications of the ACM 31, 1192 (1988).

Anmerkung Sormann: dieser Generator wird in den Numerical Recipes als "Minimal Standard Generator" bezeichnet.

Periode = 2**31-2 = 2147483646

SEED = jeder INTEGER-Wert ausser 123459876

Probleme: der Generator ist korrelationsanfaellig, wenn die Zahl der random numbers > 10**7 wird.

float ran1 long *    idum
 

Generator RAN1 Quelle: Numerical Recipes in C 2nd edition (Press et al 1992) S. 280f Kombination des Park-Miller-Generators mit dem Bays-Durham Shuffle.

Anmerkung Sormann: Laut Aussage von Press et al besteht dieser Generator sehr viele statistische Tests, solange die Zahl der berechneten random numbers 10**8 nicht uebersteigt.

Periode = ca. 2 . 10**9

SEED = jeder NEGATIVE INTEGER-Wert

float ran2 long *    idum
 

Generator RAN2 Quelle: Numerical Recipes in C 2nd edition (Press et al 1992) S. 282f Generators von L'Ecuyer mit dem Bays-Durham Shuffle. (L'Ecuyer, Communications of the ACM 31, 742 (1988)).

Anmerkung Sormann: Press et al sind von diesem Generator so ueberzeugt, dass sie demjenigen, der mittels eines statistischen Tests ein Fehlverhalten des Generators nachweist, 1000 US Dollar bezahlen.

Periode = ca. 2.3 . 10**18 (!!)

SEED = jeder NEGATIVE INTEGER-Wert

float ranbh long *    ibm
 

Generator RANBH: Random number generator fuer [0,1] nach Binder-Heermann, "Monte-Carlo Simulation in Statistical Physics", Springer 1988, S.76

At first CALL, IBM must be an ODD INTEGER !!


Erzeugt am Mon Jan 21 11:39:46 2002 für Positron von doxygen1.2.12 geschrieben von Dimitri van Heesch, © 1997-2001