variate_generator Class
Envolve um mecanismo distribuição e uma.
template<class Engine, class Dist>
class variate_generator {
public:
typedef Engine engine_type;
typedef engine-value-type engine_value_type;
typedef Dist distribution_type;
typedef typename Dist::result_type result_type;
variate_generator(engine_type eng0, distribution_type dist0);
result_type operator()();
template<class T>
result_type operator()(T value);
engine_value_type& engine();
const engine_value_type& engine() const;
distribution_type& distribution();
const distribution_type& distribution() const;
result_type min() const;
result_type max() const;
private:
Engine eng; // exposition only
Dist dist; // exposition only
};
Parâmetros
Engine
O tipo do mecanismo aleatório.Dist
O tipo de distribuição.
Comentários
A classe de modelo descreve um objeto que contém um mecanismo e distribuição e uma produz valores passando o objeto set da operator()mecanismo de objeto de distribution .
O argumento Engine de modelo pode ser um tipo Eng, Eng*, ou Eng&, onde Eng é um mecanismo.O tipo Eng é o tipo subjacente do mecanismo.O objeto de tipo correspondente Eng o é o objeto subjacente do mecanismo.
O modelo usa um mecanismo definido para corresponder ao tipo dos valores gerados pelo objeto de engine para o tipo de valores necessários para o objeto de distribution .operator() set do mecanismo retorna os valores do tipo Dist::input_typegerados, como segue:
se Engine::result_type e Dist::input_type são ambos os tipos integrais que retorna eng(), convertido para o tipo Dist::input_type.
se Engine::result_type e Dist::input_type são ambos os tipos de ponto flutuante retorna (eng() - eng.min()) / (eng.max() - eng.min()), convertido para o tipo Dist::input_type.
se Engine::result_type é um tipo integral e Dist::input_type é um tipo de ponto flutuante retorna (eng() - eng.min()) / (eng.max() - eng.min() + 1), convertido para o tipo Dist::input_type.
se Engine::result_type é um tipo de ponto flutuante e Dist::input_type é um tipo integral que retorna o ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), convertido para o tipo Dist::input_type.
Requisitos
Cabeçalho: <random>
namespace: STD
Consulte também
Referência
variate_generator::distribution
variate_generator::distribution_type
variate_generator::engine_type