14#ifndef ARCANE_RANDOM_MRG32K3A_H
15#define ARCANE_RANDOM_MRG32K3A_H
19#include "arcane/utils/FatalErrorException.h"
21#include "arcane/random/RandomGlobal.h"
56template<
typename RealType, Int32 val>
62 static const bool has_fixed_range =
true;
63 static const Int32 min_value=0;
64 static const Int32 max_value=1;
87 for(Integer i=0;i<6;i++)
101 _state[1] = _state[0];
102 _state[2] = _state[1];
103 _state[3] = _state[2];
104 _state[4] = _state[3];
105 _state[5] = _state[4];
143 p = 1403580.0*state[1] - 810728.0*state[0];
144 k =
static_cast<long>(
p/4294967087.0);
p-=
k*4294967087.0;
if (
p <0.0)
p+=4294967087.0;
145 state[0] = state[1]; state[1]=state[2]; state[2]=
p;
147 p=527612.0*state[5] - 1370589.0*state[3];
148 k=
static_cast<long>(
p/4294944443.0);
p-=
k*4294944443.0;
if(
p<0.0)
p+=4294944443.0;
149 state[3] = state[4]; state[4]=state[5]; state[5]=
p;
151 if(state[2] <= state[5])
return ((state[2]-state[5]+4294967087.0)/4294967087.0);
152 else return ((state[2]-state[5]) / 4294967087.0);
186 {
return (_state[0] ==
rhs._state[0]) && (_state[1] ==
rhs._state[1]) && (_state[2] ==
rhs._state[2]) && (_state[3] ==
rhs._state[3]) && (_state[4] ==
rhs._state[4]) && (_state[5] ==
rhs._state[5]) ; }
190 state_type _state[6];
196typedef TMrg32k3a<Real,0> Mrg32k3a;
Lecteur des fichiers de maillage via la bibliothèque LIMA.
RealType getState(Integer i) const
Méthode qui retourne l'état du générateur pour l'index i. L'état complet du générateur est donnée par...
result_type min() const
Retourne la valeur minimum possible d'une séquence.
TMrg32k3a(state_type *state)
Constructeur avec initialisation du tableau de graines à partir du tableau state. state doit être un ...
TMrg32k3a(Int32 x0=1)
Constructeur avec initialisation du tableau de graines à partir de la valeur x0. L'appel à la méthode...
static RealType apply(state_type *state)
Retourne la valeur pseudo aléatoire à partir de l'état state. L'état du générateur state doit être co...
RealType operator()()
Surdéfinition de l'opérateur () qui retourne la valeur pseudo aléatoire du générateur....
void seed(Int32 x0)
Initialisation du tableau de graines à partir de la valeur x0. Le tableau de graines de ce générateur...
bool validation(RealType x) const
Fonction de validation (je ne sais pas trop a quoi elle sert!)
result_type max() const
Retourne la valeur maximum possible d'une séquence.
bool operator==(const TMrg32k3a &rhs) const
Surdéfinition de l'opérateur ==.