subtract_with_carry_01 Class
Génère une séquence aléatoire par la virgule flottante soustraient avec présentent des l'algorithme.Conservé pour la compatibilité TR1.Utilisez plutôt subtract_with_carry_engine Class.
template<class RealType,
int W, int S, int R>
class subtract_with_carry_01 {
public:
typedef RealType result_type;
static const int word_size = W;
static const int short_lag = S;
static const int long_lag = R;
subtract_with_carry_01();
explicit subtract_with_carry_01(unsigned long x0);
template<class Gen>
subtract_with_carry_01(Gen& gen);
subtract_with_carry_01(const subtract_with_carry_01& right);
subtract_with_carry_01(subtract_with_carry_01& right);
void seed(unsigned long x0 = 19780503UL);
template<class Gen>
void seed(Gen& gen);
result_type min() const;
result_type max() const;
result_type operator()();
};
Paramètres
RealType
Le type de résultat à virgule flottante.W
Le paramètre du moteur de W.S
Le paramètre du moteur de.R
Le paramètre du moteur de R.
Notes
La classe de modèle décrit un moteur simple qui produit des valeurs d'un type à virgule flottante spécifié par l'utilisateur à l'aide de la relation de récurrence x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod 1, où cy(i) a la valeur 2-W si x(i - S) - x(i - R) - cy(i - 1) < 0, sinon 0.L'état du moteur a les valeurs d' R de bout retournées si operator() a été appelé au moins les temps d' R , sinon les valeurs d' M qui retournées et le dernier R - Valeurs d'M de la valeur de départ.
L'argument template RealType doit être suffisamment grande pour contenir des valeurs avec les bits de fraction d' W .Les valeurs des arguments template S et R doivent être supérieures à 0 et S doivent être moins qu' R.
Configuration requise
en-tête : <random>
l'espace de noms : DST