Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template xor_combine_engine

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template xor_combine_engine

boost::random::xor_combine_engine

Synopsis

// In header: <boost/random/xor_combine.hpp>
template<typename URNG1, int s1, typename URNG2, int s2> 
class xor_combine_engine {
public:
  // types
  typedef URNG1                   base1_type; 
  typedef URNG2                   base2_type; 
  typedef base1_type::result_type result_type;
  // construct/copy/destruct
  xor_combine_engine();
  xor_combine_engine(const base1_type &, const base2_type &);
  explicit xor_combine_engine(result_type);
  template<typename SeedSeq> explicit xor_combine_engine(SeedSeq &);
  template<typename It> xor_combine_engine(It &, It);
  // public member functions
  void seed();
  void seed(result_type);
  template<typename SeedSeq> void seed(SeedSeq &);
  template<typename It> void seed(It &, It);
  const base1_type & base1() const;
  const base2_type & base2() const;
  result_type operator()();
  template<typename Iter> void generate(Iter, Iter);
  void discard(boost::uintmax_t);
  // public static functions
  static result_type min();
  static result_type max();
  // friend functions
  template<typename CharT, typename Traits> 
    friend std::basic_ostream< CharT, Traits > & 
    operator<<(std::basic_ostream< CharT, Traits > &, 
               const xor_combine_engine &);
  template<typename CharT, typename Traits> 
    friend std::basic_istream< CharT, Traits > & 
    operator>>(std::basic_istream< CharT, Traits > &, 
               const xor_combine_engine &);
  friend bool operator==(const xor_combine_engine &, 
                         const xor_combine_engine &);
  friend bool operator!=(const xor_combine_engine &, 
                         const xor_combine_engine &);
  // public data members
  static const bool has_fixed_range;
  static const int shift1;
  static const int shift2;
};

Description

Обоснования<xor_combine_engine>моделигенератора псевдослучайных чисел. Чтобы произвести свой выход, он вызывает каждый из генераторов базы, сдвигает их результаты и сверяет их вместе.

xor_combine_engine public construct/copy/destruct

  1. <
    xor_combine_engine();
    >

    Конструкторы a<xor_combine_engine>по умолчанию строят оба базовых генератора.

  2. <
    xor_combine_engine(constbase1_type&rng1,constbase2_type&rng2);
    >

    Конструирует<xor_combine>, копируя два базовых генератора.

  3. <
    explicitxor_combine_engine(result_typev);
    >

    Конструирует<xor_combine_engine>, засеивая оба генератора оснований<v>.

    [Warning]Предупреждение

    Точный алгоритм, используемый этой функцией, может измениться в будущем.

  4. <
    template<typenameSeedSeq>explicitxor_combine_engine(SeedSeq&seq);
    >

    Конструирует<xor_combine_engine>, засеивая оба базовых генератора значениями, произведенными<seq>.

  5. <
    template<typenameIt>xor_combine_engine(It&first,Itlast);
    >

    Конструирует<xor_combine_engine>, засеивая оба генератора оснований значениями из диапазона итераторов [первый, последний] и сначала изменяется, чтобы указать на элемент после последнего используемого. Если в диапазоне недостаточно элементов, чтобы засеять оба генератора, бросает<std::invalid_argument>.

xor_combine_engine public member functions

  1. <
    voidseed();
    >

    Звонки<seed()>для обоих генераторов базы.

  2. <
    voidseed(result_typev);
    >

    <seeds>оба генератора базы<v>.

  3. <
    template<typenameSeedSeq>voidseed(SeedSeq&seq);
    >

    <seeds>оба базовых генератора со значениями, произведенными<seq>

    .
  4. <
    template<typenameIt>voidseed(It&first,Itlast);
    >

    сеет как базовые генераторы со значениями из диапазона итераторов [первый, последний], так и изменения сначала, чтобы указать на элемент после последнего используемого. Если в диапазоне недостаточно элементов, чтобы засеять оба генератора, бросает<std::invalid_argument>

    .
  5. <
    constbase1_type&base1()const;
    >

    Возвращает первый базовый генератор.

  6. <
    constbase2_type&base2()const;
    >

    Возвращает второй генератор базы.

  7. <
    result_typeoperator()();
    >

    Возвращает следующее значение генератора.

  8. <
    template<typenameIter>voidgenerate(Iterfirst,Iterlast);
    >

    Заполняет диапазон случайными значениями

  9. <
    voiddiscard(boost::uintmax_tz);
    >

    Улучшает состояние генератора<z>

    .

xor_combine_engine public static functions

  1. <
    staticresult_typemin();
    >

    Возвращает наименьшее значение, которое может произвести генератор.

  2. <
    staticresult_typemax();
    >

    Возвращает наибольшее значение, которое может произвести генератор.

xor_combine_engine friend functions

  1. <
    template<typenameCharT,typenameTraits>
     friendstd::basic_ostream<CharT,Traits>&
     operator<<(std::basic_ostream<CharT,Traits>&os,
                constxor_combine_engine&s);
    >

    Записывает текстовое представление генератора на<std::ostream>

    .
  2. <
    template<typenameCharT,typenameTraits>
     friendstd::basic_istream<CharT,Traits>&
     operator>>(std::basic_istream<CharT,Traits>&is,
                constxor_combine_engine&s);
    >

    Читает текстовое представление генератора из<std::istream>

    .
  3. <
    friendbooloperator==(constxor_combine_engine&x,
                          constxor_combine_engine&y);
    >

    Возвращается истинно, если два генератора будут производить одинаковые последовательности.

  4. <
    friendbooloperator!=(constxor_combine_engine&lhs,
                          constxor_combine_engine&rhs);
    >

    Возвращается верно, если два генератора будут производить разные последовательности.


PrevUpHomeNext

Статья Class template xor_combine_engine раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:48:00/0.029000997543335/1