Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template piecewise_constant_distribution

boost::random::piecewise_constant_distribution

Synopsis

// In header: <boost/random/piecewise_constant_distribution.hpp>

template<typename RealType, typename WeightType> 
class piecewise_constant_distribution {
public:
  // types
  typedef  ; 
  typedef     ;

  // member classes/structs/unions

  class param_type {
  public:
    // types
    typedef piecewise_constant_distribution ;

    // construct/copy/destruct
    ();
    template<typename IntervalIter, typename WeightIter> 
      (, , );
    template<typename T, typename F> 
      (, );
    template<typename IntervalRange, typename WeightRange> 
      (, );
    template<typename F> (, , , );

    // friend functions
    template<typename CharT, typename Traits> 
       
      (, param_type &);
    template<typename CharT, typename Traits> 
       
      (, param_type &);
     (param_type &, param_type &);
     (param_type &, param_type &);

    // public member functions
     () ;
     () ;
  };

  // construct/copy/destruct
  ();
  template<typename IntervalIter, typename WeightIter> 
    (, , );
  template<typename T, typename F> 
    (, );
  template<typename IntervalsRange, typename WeightsRange> 
    (, 
                                    );
  template<typename F> 
    (, , , );
  (param_type &);

  // public member functions
  template<typename URNG>  () ;
  template<typename URNG> 
     (, param_type &) ;
   () ;
   () ;
   () ;
   () ;
  param_type () ;
   (param_type &);
   ();

  // friend functions
  template<typename CharT, typename Traits> 
     
    (, 
               piecewise_constant_distribution &);
  template<typename CharT, typename Traits> 
     
    (, 
               piecewise_constant_distribution &);
   (piecewise_constant_distribution &, 
                  piecewise_constant_distribution &);
   (piecewise_constant_distribution &, 
                  piecewise_constant_distribution &);
};

Description

The class piecewise_constant_distribution models a random distribution .

piecewise_constant_distribution public construct/copy/destruct

  1. ();

    Creates a new piecewise_constant_distribution with a single interval, [0, 1).

  2. template<typename IntervalIter, typename WeightIter> 
      ( first_interval, 
                                       last_interval, 
                                       first_weight);

    Constructs a piecewise_constant_distribution from two iterator ranges containing the interval boundaries and the interval weights. If there are less than two boundaries, then this is equivalent to the default constructor and creates a single interval, [0, 1).

    The values of the interval boundaries must be strictly increasing, and the number of weights must be one less than the number of interval boundaries. If there are extra weights, they are ignored.

    For example,

    The distribution has a 50% chance of producing a value between 0 and 1 and a 50% chance of producing a value between 1 and 4.

  3. template<typename T, typename F> 
      ( il,  f);

    Constructs a piecewise_constant_distribution from an initializer_list containing the interval boundaries and a unary function specifying the weights. Each weight is determined by calling the function at the midpoint of the corresponding interval.

    If the initializer_list contains less than two elements, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1).

  4. template<typename IntervalsRange, typename WeightsRange> 
      ( intervals_arg, 
                                       weights_arg);

    Constructs a piecewise_constant_distribution from Boost.Range ranges holding the interval boundaries and the weights. If there are less than two interval boundaries, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). The number of weights must be one less than the number of interval boundaries.

  5. template<typename F> 
      ( nw,  xmin, 
                                       xmax,  f);

    Constructs a piecewise_constant_distribution that approximates a function. The range of the distribution is [xmin, xmax). This range is divided into nw equally sized intervals and the weights are found by calling the unary function f on the midpoints of the intervals.

  6. (param_type & param);

    Constructs a piecewise_constant_distribution from its parameters.

piecewise_constant_distribution public member functions

  1. template<typename URNG>  ( urng) ;

    Returns a value distributed according to the parameters of the piecewist_constant_distribution.

  2. template<typename URNG> 
       ( urng, param_type & param) ;

    Returns a value distributed according to the parameters specified by param.

  3.  () ;

    Returns the smallest value that the distribution can produce.

  4.  () ;

    Returns the largest value that the distribution can produce.

  5.  () ;

    Returns a vector containing the probability density over each interval.

  6.  () ;

    Returns a vector containing the interval boundaries.

  7. param_type () ;

    Returns the parameters of the distribution.

  8.  (param_type & param);

    Sets the parameters of the distribution.

  9.  ();

    Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset.

piecewise_constant_distribution friend functions

  1. template<typename CharT, typename Traits> 
       
      ( os, 
                 piecewise_constant_distribution & pcd);

    Writes a distribution to a std::ostream.

  2. template<typename CharT, typename Traits> 
       
      ( is, 
                 piecewise_constant_distribution & pcd);

    Reads a distribution from a std::istream

  3.  (piecewise_constant_distribution & lhs, 
                    piecewise_constant_distribution & rhs);

    Returns true if the two distributions will return the same sequence of values, when passed equal generators.

  4.  (piecewise_constant_distribution & lhs, 
                    piecewise_constant_distribution & rhs);

    Returns true if the two distributions may return different sequences of values, when passed equal generators.


PrevUpHomeNext