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

Class template piecewise_linear_distribution

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 piecewise_linear_distribution

boost::random::piecewise_linear_distribution

Synopsis

// In header: <boost/random/piecewise_linear_distribution.hpp>
template<typename RealType = double> 
class piecewise_linear_distribution {
public:
  // types
  typedef std::size_t input_type; 
  typedef RealType    result_type;
  // member classes/structs/unions
  class param_type {
  public:
    // types
    typedef piecewise_linear_distribution distribution_type;
    // construct/copy/destruct
    param_type();
    template<typename IntervalIter, typename WeightIter> 
      param_type(IntervalIter, IntervalIter, WeightIter);
    template<typename T, typename F> 
      param_type(const std::initializer_list< T > &, F);
    template<typename IntervalRange, typename WeightRange> 
      param_type(const IntervalRange &, const WeightRange &);
    template<typename F> param_type(std::size_t, RealType, RealType, F);
    // friend functions
    template<typename CharT, typename Traits> 
      friend std::basic_ostream< CharT, Traits > & 
      operator<<(std::basic_ostream< CharT, Traits > &, const param_type &);
    template<typename CharT, typename Traits> 
      friend std::basic_istream< CharT, Traits > & 
      operator>>(std::basic_istream< CharT, Traits > &, const param_type &);
    friend bool operator==(const param_type &, const param_type &);
    friend bool operator!=(const param_type &, const param_type &);
    // public member functions
    std::vector< RealType > intervals() const;
    std::vector< RealType > densities() const;
  };
  // construct/copy/destruct
  piecewise_linear_distribution();
  template<typename IntervalIter, typename WeightIter> 
    piecewise_linear_distribution(IntervalIter, IntervalIter, WeightIter);
  template<typename T, typename F> 
    piecewise_linear_distribution(std::initializer_list< T >, F);
  template<typename IntervalsRange, typename WeightsRange> 
    piecewise_linear_distribution(const IntervalsRange &, 
                                  const WeightsRange &);
  template<typename F> 
    piecewise_linear_distribution(std::size_t, RealType, RealType, F);
  explicit piecewise_linear_distribution(const param_type &);
  // public member functions
  template<typename URNG> RealType operator()(URNG &) const;
  template<typename URNG> 
    RealType operator()(URNG &, const param_type &) const;
  result_type min() const;
  result_type max() const;
  std::vector< RealType > densities() const;
  std::vector< RealType > intervals() const;
  param_type param() const;
  void param(const param_type &);
  void reset();
  // friend functions
  template<typename CharT, typename Traits> 
    friend std::basic_ostream< CharT, Traits > & 
    operator<<(std::basic_ostream< CharT, Traits > &, 
               const piecewise_linear_distribution &);
  template<typename CharT, typename Traits> 
    friend std::basic_istream< CharT, Traits > & 
    operator>>(std::basic_istream< CharT, Traits > &, 
               const piecewise_linear_distribution &);
  friend bool operator==(const piecewise_linear_distribution &, 
                         const piecewise_linear_distribution &);
  friend bool operator!=(const piecewise_linear_distribution &, 
                         const piecewise_linear_distribution &);
};

Description

Класс piecewise_linear_distribution моделирует случайное распределение.

piecewise_linear_distribution public construct/copy/destruct

  1. piecewise_linear_distribution();

    Создает новый piecewise_linear_distribution, который производит значения, равномерно распределенные в диапазоне [0, 1].

  2. template<typenametypenameWeightIter>piecewise_linear_distribution(intervalIter,intervalIter last_interval,WeightIter first_weight;

    Создает piecewise_linear_distribution из двух диапазонов итераторов, содержащих границы интервала и веса на границах. Если границ меньше двух, то это эквивалентно конструктору по умолчанию и создает распределение, которое производит значения, равномерно распределенные в диапазоне [0, 1].

    Значения границ интервала должны быть строго увеличены, а количество весов должно быть равно количеству границ интервала. Если есть лишние веса, они игнорируются.

    Например,

    >>>>>>>>> 

  3. templatetypename T, typename F>piecewise_linear_distribution::initializer_list<  il, F f;

    Построение piecewise_linear_distribution из списка инициализатора, содержащего границы интервала и унарную функцию, определяющую веса. Каждый вес определяется путем вызова функции на соответствующей границе интервала.

    Если список инициализатора содержит менее двух элементов, это эквивалентно конструктору по умолчанию, и распределение будет производить значения, равномерно распределенные в диапазоне [0, 1].

  4. templatetypenameIntervalsRange,WeightsRange>piecewise_linear_distributionIntervalsRange , constWeightsRange & weights_arg;

    Строит из Boost piecewise_linear_distribution. Диапазоны, удерживающие границы интервала и веса. Если границ интервала меньше двух, это эквивалентно конструктору по умолчанию, и распределение будет производить значения, равномерно распределенные в диапазоне [0, 1]. Количество весов должно быть равно количеству интервальных границ.

  5. templatetypename F>piecewise_linear_distribution::size_t nw,  xmin,  xmax, F f;

    Создает piecewise_linear_distribution, который приблизительно соответствует функции. Диапазон распределения — [xmin, xmax]. Этот диапазон делится на равные по размеру интервалы nw, и веса обнаруживаются путем вызова унарной функции f на границах интервала.

  6. explicit piecewise_linear_distribution(const param_type & param);

    Построение piecewise_linear_distribution из его параметров.

piecewise_linear_distribution public member functions

  1. template<typename URNG> RealTypeоператор()URNG  urng) const;

    Вернет значение, распределенное по параметрам piecewise_linear_distribution.

  2. templatetypename URNG> RealTypeоператор()URNG & constparam_type &const;

    Вернет значение, распределенное по параметрам, указанным парамом.

  3. result_type min() const;

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

  4. result_type max() const;

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

  5. std::vector< RealType > плотности()конст;

    Возвращает вектор, содержащий плотности вероятности в интервальных границах.

  6. std::векторRealType > интервалы()конст;

    Вернет вектор, содержащий границы интервала.

  7. param_type param() const;

    Возвращает параметры распределения.

  8. void param(const param_type & param);

    Устанавливает параметры распределения.

  9. void reset();

    Последующие применения распределения не зависят от значений, произведенных каким-либо двигателем до вызова сброса.

piecewise_linear_distribution friend functions

  1. templatetypename CharT,Traitsstd,CharT> > операторbasic_ostream<>constpiecewise_linear_distribution
    Writes a distribution to a std::ostream.

  2. template CharT,typenameTraitsBasic_istream,CharT> операторBasic_istream,>>Constpiecewise_linear_distribution
    std::istream

  3. friend boolоператор(constpiecewise_linear_distribution, constpiecewise_linear_distribution& rhs;

    Вернет истинность, если два распределения вернут одну и ту же последовательность значений, при прохождении равными генераторами.

  4. friend boolоператор!=constpiecewise_linear_distribution , constpiecewise_linear_distribution& rhs;

    Вернет истинность, если два распределения могут возвращать разные последовательности значений, при прохождении равных генераторов.


PrevUpHomeNext

Статья Class template piecewise_linear_distribution раздела 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 19:27:54/0.0078961849212646/0