...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::random::triangle_distribution
// In header: <boost/random/triangle_distribution.hpp> template<typename RealType = double> class triangle_distribution { public: // types typedef RealType input_type; typedef RealType result_type; // member classes/structs/unions class param_type { public: // types typedef triangle_distribution distribution_type; // construct/copy/destruct explicit param_type(RealType = 0.0, RealType = 0.5, RealType = 1.0); // public member functions RealType a() const; RealType b() const; RealType c() const; // 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 &); }; // construct/copy/destruct explicit triangle_distribution(RealType = 0.0, RealType = 0.5, RealType = 1.0); explicit triangle_distribution(const param_type &); // public member functions result_type a() const; result_type b() const; result_type c() const; RealType min() const; RealType max() const; param_type param() const; void param(const param_type &); void reset(); template<typename Engine> result_type operator()(Engine &); template<typename Engine> result_type operator()(Engine &, const param_type &); // friend functions template<typename CharT, typename Traits> friend std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > &, const triangle_distribution &); template<typename CharT, typename Traits> friend std::basic_istream< CharT, Traits > & operator>>(std::basic_istream< CharT, Traits > &, const triangle_distribution &); friend bool operator==(const triangle_distribution &, const triangle_distribution &); friend bool operator!=(const triangle_distribution &, const triangle_distribution &); };
Instantiations of triangle_distribution
model a random distribution . A triangle_distribution
has three parameters, a
, b
, and c
, which are the smallest, the most probable and the largest values of the distribution respectively.
triangle_distribution
public
construct/copy/destructexplicit triangle_distribution(RealType a = 0.0, RealType b = 0.5, RealType c = 1.0);
Constructs a
with the parameters triangle_distribution
a
, b
, and c
.
Preconditions: a <= b <= c.
explicit triangle_distribution(const param_type & param);
Constructs a
from its parameters. triangle_distribution
triangle_distribution
public member functionsresult_type a() const;
Returns the a
parameter of the distribution
result_type b() const;
Returns the b
parameter of the distribution
result_type c() const;
Returns the c
parameter of the distribution
RealType min() const;
Returns the smallest value that the distribution can produce.
RealType max() const;
Returns the largest value that the distribution can produce.
param_type param() const;
Returns the parameters of the distribution.
void param(const param_type & param);
Sets the parameters of the distribution.
void reset();
Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset.
template<typename Engine> result_type operator()(Engine & eng);
Returns a random variate distributed according to the triangle distribution.
template<typename Engine> result_type operator()(Engine & eng, const param_type & param);
Returns a random variate distributed according to the triangle distribution with parameters specified by param.
triangle_distribution
friend functionstemplate<typename CharT, typename Traits> friend std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > & os, const triangle_distribution & td);
Writes the distribution to a std::ostream
.
template<typename CharT, typename Traits> friend std::basic_istream< CharT, Traits > & operator>>(std::basic_istream< CharT, Traits > & is, const triangle_distribution & td);
Reads the distribution from a std::istream
.
friend bool operator==(const triangle_distribution & lhs, const triangle_distribution & rhs);
Returns true if the two distributions will produce identical sequences of values given equal generators.
friend bool operator!=(const triangle_distribution & lhs, const triangle_distribution & rhs);
Returns true if the two distributions may produce different sequences of values given equal generators.