STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Public Attributes | List of all members
piecewise_constant_distribution< _Ty >::param_type Struct Reference
Inheritance diagram for piecewise_constant_distribution< _Ty >::param_type:
discrete_distribution< _Ty >::param_type

Public Types

typedef _Myt distribution_type
 
- Public Types inherited from discrete_distribution< _Ty >::param_type
typedef _Myt distribution_type
 

Public Member Functions

 param_type ()
 
template<class _InIt1 , class _InIt2 >
 param_type (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2)
 
template<class _Fn >
 param_type (initializer_list< _Ty > _Ilist, _Fn _Func)
 
template<class _Fn >
 param_type (size_t _Count, _Ty _Low, _Ty _High, _Fn _Func)
 
bool operator== (const param_type &_Right) const
 
bool operator!= (const param_type &_Right) const
 
vector< _Ty > intervals () const
 
vector< _Ty > densities () const
 
void _Init ()
 
- Public Member Functions inherited from discrete_distribution< _Ty >::param_type
 param_type (_Noinit)
 
 param_type ()
 
template<class _InIt >
 param_type (_InIt _First, _InIt _Last)
 
 param_type (initializer_list< double > _Ilist)
 
template<class _Fn >
 param_type (size_t _Count, double _Low, double _High, _Fn _Func)
 
bool operator== (const param_type &_Right) const
 
bool operator!= (const param_type &_Right) const
 
_Myvec probabilities () const
 
void _Init (bool _Renorm=true)
 

Public Attributes

vector< _Ty > _Bvec
 
- Public Attributes inherited from discrete_distribution< _Ty >::param_type
_Myvec _Pvec
 
_Myvec _Pcdf
 

Member Typedef Documentation

template<class _Ty = double>
typedef _Myt piecewise_constant_distribution< _Ty >::param_type::distribution_type

Constructor & Destructor Documentation

template<class _Ty = double>
piecewise_constant_distribution< _Ty >::param_type::param_type ( )
inline
5827  { // default constructor
5828  _Bvec.push_back(_Ty(0));
5829  _Bvec.push_back(_Ty(1));
5830  }
vector< _Ty > _Bvec
Definition: random:5913
void push_back(const _Ty &_Val)
Definition: vector:945
template<class _Ty = double>
template<class _InIt1 , class _InIt2 >
piecewise_constant_distribution< _Ty >::param_type::param_type ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2 
)
inline
5835  : _Mypbase(_Noinit())
5836  { // construct from [_First1, _Last1) and [_First2, ...)
5837  for (; _First1 != _Last1; ++_First1)
5838  _Bvec.push_back(*_First1);
5839 
5840  if (2 <= _Bvec.size())
5841  for (size_t _Idx = 0; _Idx < _Bvec.size() - 1; ++_Idx)
5842  this->_Pvec.push_back(*_First2++);
5843  _Init();
5844  }
_Mypbase::_Noinit _Noinit
Definition: random:5818
vector< _Ty > _Bvec
Definition: random:5913
void _Init()
Definition: random:5908
size_type size() const _NOEXCEPT
Definition: vector:1708
_Myvec _Pvec
Definition: random:5640
void push_back(const _Ty &_Val)
Definition: vector:945
_Mybase::param_type _Mypbase
Definition: random:5817
template<class _Ty = double>
template<class _Fn >
piecewise_constant_distribution< _Ty >::param_type::param_type ( initializer_list< _Ty >  _Ilist,
_Fn  _Func 
)
inline
5849  : _Mypbase(_Noinit())
5850  { // construct from _Ilist and function
5851  if (2 <= _Ilist.size())
5852  _Bvec.assign(_Ilist);
5853  else
5854  { // default construct
5855  _Bvec.push_back(_Ty(0));
5856  _Bvec.push_back(_Ty(1));
5857  }
5858 
5859  _Ty _Low = _Bvec.front();
5860  _Ty _Range = _Bvec.back() - _Low;
5861  size_t _Count = _Bvec.size() - 1;
5862 
5863  _Range /= (_Ty)_Count;
5864  for (size_t _Idx = 0; _Idx < _Count; ++_Idx)
5865  _Pvec.push_back(_Func(_Low + _Idx * _Range));
5866  _Init();
5867  }
_Mypbase::_Noinit _Noinit
Definition: random:5818
constexpr size_t size() const _NOEXCEPT
Definition: initializer_list:49
vector< _Ty > _Bvec
Definition: random:5913
void assign(_CRT_GUARDOVERFLOW const size_type _Newsize, const _Ty &_Val)
Definition: vector:1286
void _Init()
Definition: random:5908
_Ty & front()
Definition: vector:1783
size_type size() const _NOEXCEPT
Definition: vector:1708
_Myvec _Pvec
Definition: random:5640
_Diff _Count
Definition: algorithm:1941
void push_back(const _Ty &_Val)
Definition: vector:945
_Ty & back()
Definition: vector:1811
_Mybase::param_type _Mypbase
Definition: random:5817
template<class _Ty = double>
template<class _Fn >
piecewise_constant_distribution< _Ty >::param_type::param_type ( size_t  _Count,
_Ty  _Low,
_Ty  _High,
_Fn  _Func 
)
inline
5871  : _Mypbase(_Count, _Low, _High, _Func)
5872  { // construct from value range and function
5873  _Ty _Range = _High - _Low;
5874  if (_Count <= 0)
5875  _Count = 1;
5876 
5877  _Range /= (_Ty)_Count;
5878  for (size_t _Idx = 0; _Idx <= _Count; ++_Idx)
5879  _Bvec.push_back(_Low + _Idx * _Range);
5880  }
vector< _Ty > _Bvec
Definition: random:5913
_Diff _Count
Definition: algorithm:1941
void push_back(const _Ty &_Val)
Definition: vector:945
_Mybase::param_type _Mypbase
Definition: random:5817

Member Function Documentation

template<class _Ty = double>
void piecewise_constant_distribution< _Ty >::param_type::_Init ( )
inline
5909  { // initialize
5910  ((_Mypbase *)this)->_Init();
5911  }
_Mybase::param_type _Mypbase
Definition: random:5817
template<class _Ty = double>
vector<_Ty> piecewise_constant_distribution< _Ty >::param_type::densities ( ) const
inline
5899  { // return densities vector
5900  vector<_Ty> _Ans(this->_Pvec.begin(),
5901  this->_Pvec.end());
5902 
5903  for (size_t _Idx = 0; _Idx < _Ans.size(); ++_Idx)
5904  _Ans[_Idx] /= _Bvec[_Idx + 1] - _Bvec[_Idx];
5905  return (_Ans);
5906  }
vector< _Ty > _Bvec
Definition: random:5913
iterator begin() _NOEXCEPT
Definition: vector:1643
iterator end() _NOEXCEPT
Definition: vector:1653
_Myvec _Pvec
Definition: random:5640
template<class _Ty = double>
vector<_Ty> piecewise_constant_distribution< _Ty >::param_type::intervals ( ) const
inline
5894  { // return intervals vector
5895  return (_Bvec);
5896  }
vector< _Ty > _Bvec
Definition: random:5913
template<class _Ty = double>
bool piecewise_constant_distribution< _Ty >::param_type::operator!= ( const param_type _Right) const
inline
5889  { // test for inequality
5890  return (!(*this == _Right));
5891  }
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Ty = double>
bool piecewise_constant_distribution< _Ty >::param_type::operator== ( const param_type _Right) const
inline
5883  { // test for equality
5884  return (*(_Mypbase *)this == *(_Mypbase *)&_Right
5885  && _Bvec == _Right._Bvec);
5886  }
vector< _Ty > _Bvec
Definition: random:5913
_Mybase::param_type _Mypbase
Definition: random:5817
constexpr const _Ty &() _Right
Definition: algorithm:3723

Member Data Documentation

template<class _Ty = double>
vector<_Ty> piecewise_constant_distribution< _Ty >::param_type::_Bvec

The documentation for this struct was generated from the following file: