15#ifndef ARCANE_RANDOM_INVERSIVECONGRUENTIAL_H
16#define ARCANE_RANDOM_INVERSIVECONGRUENTIAL_H
20#include "arcane/utils/FatalErrorException.h"
22#include "arcane/random/RandomGlobal.h"
54template<
typename IntType, IntType a, IntType c, IntType m, IntType val>
58 typedef IntType result_type;
59 static const bool has_fixed_range =
true;
60 static const result_type min_value = (
c == 0 ? 1 : 0 );
61 static const result_type max_value = m-1;
69 result_type
min()
const {
return c == 0 ? 1 : 0; }
77 result_type
max()
const {
return m-1; }
131 return x = do_mod::mult_add(a,do_mod::invert(x),
c);
149 {
return _x ==
rhs._x; }
159typedef InversiveCongruential<
Int32, 9102, 2147483647-36884165,
160 2147483647, 0> Hellekalek1995;
result_type max() const
Retourne la valeur maximum possible d'une séquence.
bool validation(IntType x) const
Fonction de validation (je ne sais pas trop a quoi elle sert!)
void seed(IntType x0)
Initialisation de la graine du générateur à partir de la valeur x0.
result_type min() const
Retourne la valeur minimum possible d'une séquence.
InversiveCongruential(IntType x0=1)
Constructeur avec initialisation de la graine à partir de la valeur x0.
IntType getState() const
Méthode qui retourne l'état générateur.
IntType operator()()
Surdéfinition de l'opérateur () qui retourne la valeur pseudo aléatoire du générateur....
bool operator==(const InversiveCongruential &rhs) const
Surdéfinition de l'opérateur ==.
static IntType apply(IntType x)
Retourne la valeur pseudo aléatoire à partir de l'état x. Le membre privée _x du générateur n'est pas...
Lecteur des fichiers de maillage via la bibliothèque LIMA.