Udostępnij za pośrednictwem


variate_generator Class

Otacza silnika i dystrybucji.

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
    };

Parametry

  • Engine
    Typ silnika losowe.

  • Dist
    Typ rozkładu.

Uwagi

Klasa szablonu opisuje obiekt posiada silnika i dystrybucji i produkuje, przekazując obiekt zawinięty silnika do wartości distribution obiektu operator().

Argument szablonu Engine może być typu Eng, Eng*, lub Eng&, gdzie Eng jest silnik.Typ Eng jest podstawowym typu silnika.Odpowiedni obiekt typu Eng jest silnik obiektu źródłowego.

Szablon używa silnika opakowane zgodnie z typem wartości produkowanych przez engine obiektu typu wartości wymagane przez distribution obiektu.Zawinięty silnika operator() zwraca wartości typu Dist::input_type, wygenerowany następujący:

Jeśli Engine::result_type i Dist::input_type są integralną oba typy go zwraca eng(), są konwertowane na wpisz Dist::input_type.

Jeśli Engine::result_type i Dist::input_type są zarówno zmiennoprzecinkowych typów go zwraca (eng() - eng.min()) / (eng.max() - eng.min()), są konwertowane na wpisz Dist::input_type.

Jeśli Engine::result_type jest typem całkowitym i Dist::input_type zmiennoprzecinkowych wpisać go zwraca (eng() - eng.min()) / (eng.max() - eng.min() + 1), są konwertowane na wpisz Dist::input_type.

Jeśli Engine::result_type jest typu zmiennoprzecinkowego i Dist::input_type jest integralną wpisz zwraca ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), są konwertowane na wpisz Dist::input_type.

Wymagania

Nagłówek: <random>

Obszar nazw: std

Zobacz też

Informacje

<random>

variate_generator::distribution

variate_generator::distribution_type

variate_generator::engine

variate_generator::engine_type

variate_generator::engine_value_type

variate_generator::operator()

variate_generator::variate_generator