STD::PIECEWISE_LINEAR_DISTRIBUTION(3cxx)

πŸ’– NAME πŸ’–

Okay so welcome to the <pink>std::piecewise_linear_distribution< _RealType >(3cxx)</pink> page, bestie β€” this is the libstdc++ manual entry for std::piecewise_linear_distribution< _RealType >, and the official one-liner is: A piecewise_linear_distribution random number distribution. That's the whole name vibe, slay. πŸŽ€


🌸 SYNOPSIS 🌸

#include <random>

πŸŽ€ Classes πŸŽ€

  • struct param_type β€” the manual lists this parameter struct right here.

πŸŽ€ Public Types πŸŽ€

  • typedef _RealType result_type β€” the public type alias, exactly as printed.

πŸŽ€ Public Member Functions πŸŽ€

Here's the full squad, signatures kept exactly as printed because we do not mess with code, no cap:

       template<typename _InputIteratorB , typename _InputIteratorW >
           piecewise_linear_distribution (_InputIteratorB __bfirst,
           _InputIteratorB __bend, _InputIteratorW __wbegin)
       piecewise_linear_distribution (const param_type &__p)
       template<typename _Func > piecewise_linear_distribution
           (initializer_list< _RealType > __bl, _Func __fw)
       template<typename _Func > piecewise_linear_distribution (size_t __nw,
           _RealType __xmin, _RealType __xmax, _Func __fw)
       template<typename _ForwardIterator , typename
           _UniformRandomNumberGenerator > void __generate (_ForwardIterator
           __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng)
       template<typename _ForwardIterator , typename
           _UniformRandomNumberGenerator > void __generate (_ForwardIterator
           __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng,
           const param_type &__p)
       template<typename _UniformRandomNumberGenerator > void __generate
           (result_type *__f, result_type *__t, _UniformRandomNumberGenerator
           &__urng, const param_type &__p)
       std::vector< double > densities () const
           Return a vector of the probability densities of the distribution.
       std::vector< _RealType > intervals () const
           Return the intervals of the distribution.
       result_type max () const
           Returns the least upper bound value of the distribution.
       result_type min () const
           Returns the greatest lower bound value of the distribution.
       template<typename _UniformRandomNumberGenerator > result_type operator()
           (_UniformRandomNumberGenerator &__urng)
           Generating functions.
       template<typename _UniformRandomNumberGenerator > result_type operator()
           (_UniformRandomNumberGenerator &__urng, const param_type &__p)
       param_type param () const
           Returns the parameter set of the distribution.
       void param (const param_type &__param)
           Sets the parameter set of the distribution.
       void reset ()

So real quick, the vibe check on these:

  • There are four constructor overloads up there: the iterator-pair one with __bfirst, __bend, and __wbegin; the param_type one; the initializer_list< _RealType > __bl + _Func __fw one; and the size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw one. Signatures above, untouched. πŸ’…
  • There are three __generate overloads: two take _ForwardIterator __f, _ForwardIterator __t, _UniformRandomNumberGenerator &__urng and one of those also takes const param_type &__p; the third takes result_type *__f, result_type *__t, _UniformRandomNumberGenerator &__urng, const param_type &__p.
  • densities() β€” returns a vector of the probability densities of the distribution.
  • intervals() β€” returns the intervals of the distribution.
  • max() β€” returns the least upper bound value of the distribution.
  • min() β€” returns the greatest lower bound value of the distribution.
  • operator() β€” the original literally labels these Generating functions. There are two overloads: one with _UniformRandomNumberGenerator &__urng, and one with _UniformRandomNumberGenerator &__urng, const param_type &__p.
  • param() β€” returns the parameter set of the distribution.
  • param(const param_type &__param) β€” sets the parameter set of the distribution.
  • reset() β€” resets the distribution state.

🫢 Friends 🫢

       template<typename _RealType1 , typename _CharT , typename _Traits >
           std::basic_ostream< _CharT, _Traits > & operator<<
           (std::basic_ostream< _CharT, _Traits > &__os, const
           std::piecewise_linear_distribution< _RealType1 > &__x)
       bool operator== (const piecewise_linear_distribution &__d1, const
           piecewise_linear_distribution &__d2)
       template<typename _RealType1 , typename _CharT , typename _Traits >
           std::basic_istream< _CharT, _Traits > & operator>>
           (std::basic_istream< _CharT, _Traits > &__is,
           std::piecewise_linear_distribution< _RealType1 > &__x)
  • operator<< β€” inserts a piecewise_linear_distribution random number distribution __x into the output stream __os.
  • operator== β€” returns true if two piecewise linear distributions have the same parameters.
  • operator>> β€” extracts a piecewise_linear_distribution random number distribution __x from the input stream __is.

πŸ¦‹ Detailed Description πŸ¦‹

template<typename _RealType = double>
    class std::piecewise_linear_distribution< _RealType >

A piecewise_linear_distribution random number distribution. πŸ’–

The math formatting in the original is a little glitched, so here is exactly what it says, not fixed, because the rule is keep every detail:

       This distribution produces random numbers $ x, b_0  x < b_n ho_n) =
       distributed over each subinterval $ [b_i, b_{i+1}ho_0,c...,ing to the
       probability mass function $ p(x | b_0, ..., b_n,
       $, for $ b_i  x < b_{i+1} $.

Since:

  • C++11

🌟 Member Typedef Documentation 🌟

template<typename _RealType  = double> typedef _RealType
    std::piecewise_linear_distribution< _RealType >::result_type
  • result_type β€” the type of the range of the distribution. Cute and simple.

πŸ’œ Member Function Documentation πŸ’œ

Each one below keeps its [inline] badge and reference notes, bestie.

  • densities() β€” template<typename _RealType = double> std::vector< double > std::piecewise_linear_distribution< _RealType >::densities () const [inline]
    • Returns a vector of the probability densities of the distribution.
    • References: std::vector< _Tp, _Alloc >::empty().
  • intervals() β€” template<typename _RealType = double> std::vector< _RealType > std::piecewise_linear_distribution< _RealType >::intervals () const [inline]
    • Returns the intervals of the distribution.
    • References: std::vector< _Tp, _Alloc >::empty().
  • max() β€” template<typename _RealType = double> result_type std::piecewise_linear_distribution< _RealType >::max () const [inline]
    • Returns the least upper bound value of the distribution.
    • References: std::vector< _Tp, _Alloc >::back(), and std::vector< _Tp, _Alloc >::empty().
  • min() β€” template<typename _RealType = double> result_type std::piecewise_linear_distribution< _RealType >::min () const [inline]
    • Returns the greatest lower bound value of the distribution.
    • References: std::vector< _Tp, _Alloc >::empty(), and std::vector< _Tp, _Alloc >::front().
  • operator() β€” template<typename _RealType = double> template<typename _UniformRandomNumberGenerator > result_type std::piecewise_linear_distribution< _RealType >::operator() (_UniformRandomNumberGenerator & __urng) [inline]
    • Generating functions.
    • References: std::piecewise_linear_distribution< _RealType >::operator()().
    • Referenced by: std::piecewise_linear_distribution< _RealType >::operator()().
  • param() β€” template<typename _RealType = double> param_type std::piecewise_linear_distribution< _RealType >::param () const [inline]
    • Returns the parameter set of the distribution.
  • param(const param_type &__param) β€” template<typename _RealType = double> void std::piecewise_linear_distribution< _RealType >::param (const param_type & __param) [inline]
    • Sets the parameter set of the distribution.
    • Parameters:
      • __param β€” the new parameter set of the distribution.
  • reset() β€” template<typename _RealType = double> void std::piecewise_linear_distribution< _RealType >::reset () [inline]
    • Resets the distribution state.

  • operator<< β€” template<typename _RealType = double> template<typename _RealType1 , typename _CharT , typename _Traits > std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > & __os, const std::piecewise_linear_distribution< _RealType1 > & __x) [friend]
    • Inserts a piecewise_linear_distribution random number distribution __x into the output stream __os.
    • Parameters:
      • __os β€” an output stream.
      • __x β€” a piecewise_linear_distribution random number distribution.
    • Returns:
      • The output stream with the state of __x inserted or in an error state.
  • operator== β€” template<typename _RealType = double> bool operator== (const piecewise_linear_distribution< _RealType > & __d1, const piecewise_linear_distribution< _RealType > & __d2) [friend]
    • Return true if two piecewise linear distributions have the same parameters.
  • operator>> β€” template<typename _RealType = double> template<typename _RealType1 , typename _CharT , typename _Traits > std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > & __is, std::piecewise_linear_distribution< _RealType1 > & __x) [friend]
    • Extracts a piecewise_linear_distribution random number distribution __x from the input stream __is.
    • Parameters:
      • __is β€” an input stream.
      • __x β€” a piecewise_linear_distribution random number generator engine.
    • Returns:
      • The input stream with __x extracted or in an error state.

✨ Author ✨

Generated automatically by Doxygen for libstdc++ from the source code β€” yes, the docs are literally built by Doxygen, no cap. 🫢


Okay bestie, that's the whole page. Footer energy: libstdstd::piecewise...on< _RealType >(3cxx) β€” source/version: libstdc++; date didn't show up in the footer, so we are not inventing one. Stay random, stay iconic. πŸ’–βœ¨

πŸ“¦ where this page comes from