subtract_with_carry_engine Class
Genera una sequenza casuale dalla sottrazione portano con l'algoritmo.
template<class UIntType,
int W, int S, int R>
class subtract_with_carry_engine {
public:
typedef UIntType result_type;
static const int word_size = W;
static const int short_lag = S;
static const int long_lag = R;
static const UIntType default_seed = 19780503U;
explicit subtract_with_carry_engine(UIntType x0 = default_seed);
explicit subtract_with_carry_engine(seed_seq& seq);
void seed(UIntType x0 = default_seed);
void seed(seed_seq& seq);
static const result_type min();
static const result_type max();
result_type operator()();
void discard(unsigned long long count)();
};
Parametri
UIntType
Il tipo di risultato intero.W
Il parametro del motore m.S
Il parametro del motore di.R
Il parametro del motore R.
Note
La classe modello viene descritto motore semplice che produce valori di un tipo integrale senza segno definito utilizzando la relazione per indurre totale x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod M, dove cy(i) ha il valore 1 se x(i - S) - x(i - R) - cy(i - 1) < 0in caso contrario, 0e M ha il valore 2W.Notare che il parametro di template W che sostituisce il parametro di template M per subtract_with_carry). Lo stato del motore è una spy di sovracarico più valori R.Questi valori sono valori R dell'ultimo restituiti se operator() è stato chiamato almeno tempi R in caso contrario, i valori N che sono stati restituiti e gli ultimi valori R - N inizio.
Un argomento di template UIntType deve essere sufficiente per contenere valori fino a M - 1.I valori degli argomenti di modello S e R devono essere maggiori di 0 e S devono essere meno che R.
Requisiti
intestazione: <random>
Spazio dei nomi: deviazione standard
Vedere anche
Riferimenti
subtract_with_carry_engine::discard
subtract_with_carry_engine::operator()