STD::POISSON_DISTRIBUTION(3)

πŸ’– NAME πŸ’–

std::poisson_distribution< _IntType > β€” bestie, it's a discrete Poisson random number distribution, no cap. That's the whole vibe. And this page? It's from the libstdc++ Library Functions Manual, section 3, so you already know it's giving "I'm C++ and I'm iconic".


✨ SYNOPSIS ✨

#include <random>

πŸŽ€ Classes

  • struct param_type

πŸŽ€ Public Types

  • typedef _IntType result_type

πŸŽ€ Public Member Functions

  • poisson_distribution (const param_type &__p)
  • poisson_distribution (double __mean)
  • 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)
  • result_type max () const β€” Returns the least upper bound value of the distribution.
  • double mean () const β€” Returns the distribution parameter mean.
  • 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 () β€” Resets the distribution state.

πŸŽ€ Friends

  • template<typename _IntType1, typename _CharT, typename _Traits> std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const std::poisson_distribution< _IntType1 > &__x) β€” Inserts a poisson_distribution random number distribution __x into the output stream __os.
  • bool operator== (const poisson_distribution &__d1, const poisson_distribution &__d2) β€” Return true if two Poisson distributions have the same parameters and the sequences that would be generated are equal.
  • template<typename _IntType1, typename _CharT, typename _Traits> std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, std::poisson_distribution< _IntType1 > &__x) β€” Extracts a poisson_distribution random number distribution __x from the input stream __is.

🌸 Detailed Description 🌸

template<typename _IntType = int>
class std::poisson_distribution< _IntType >

"A discrete Poisson random number distribution. πŸ’…

The formula for the Poisson probability density function is $p(i|) = ac{^i}{i!} e^{-}$ where $$ is the parameter of the distribution. (Yes bestie, that's verbatim β€” do not come for me, I'm just the messenger.)

Since: C++11 ✨


πŸ’œ Member Typedef Documentation πŸ’œ

result_type

template<typename _IntType = int> typedef _IntType
    std::poisson_distribution< _IntType >::result_type

The type of the range of the distribution. That's it, that's the whole type. πŸ¦‹


🫢 Member Function Documentation 🫢

max ()

template<typename _IntType = int> result_type std::poisson_distribution<
    _IntType >::max () const [inline]

Returns the least upper bound value of the distribution.

mean ()

template<typename _IntType = int> double std::poisson_distribution< _IntType
    >::mean () const [inline]

Returns the distribution parameter mean.

min ()

template<typename _IntType = int> result_type std::poisson_distribution<
    _IntType >::min () const [inline]

Returns the greatest lower bound value of the distribution.

operator() β€” the one-argument era

template<typename _IntType = int> template<typename
    _UniformRandomNumberGenerator> result_type std::poisson_distribution<
    _IntType >::operator() (_UniformRandomNumberGenerator & __urng) [inline]

Generating functions.

Referenced by operator()().

operator() β€” the one that takes a param set too

template<typename _IntType> template<typename _UniformRandomNumberGenerator>
    poisson_distribution< _IntType >::result_type std::poisson_distribution<
    _IntType >::operator() (_UniformRandomNumberGenerator & __urng, const
    param_type & __param)

Okay so real talk: it's a rejection algorithm when mean >= 12 and a simple method based upon the multiplication of uniform random variates otherwise. NB: The former is available only if _GLIBCXX_USE_C99_MATH_FUNCS is defined. 🚨 (Yeah, that's a whole conditional, read it twice.)

Reference: Devroye, L. Non-Uniform Random Variates Generation. Springer-Verlag, New York, 1986, Ch. X, Sects. 3.3 & 3.4 (+ Errata!).

References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::log(), and std::numeric_limits< _Tp >::max().

param () const

template<typename _IntType = int> param_type std::poisson_distribution<
    _IntType >::param () const [inline]

Returns the parameter set of the distribution.

param (const param_type & __param)

template<typename _IntType = int> void std::poisson_distribution< _IntType
    >::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 _IntType = int> void std::poisson_distribution< _IntType
    >::reset () [inline]

Resets the distribution state. Fresh start, clean slate, new era. 🧚


operator<<

template<typename _IntType = int> template<typename _IntType1, typename
    _CharT, typename _Traits> std::basic_ostream< _CharT, _Traits > &
    operator<< (std::basic_ostream< _CharT, _Traits > & __os, const
    std::poisson_distribution< _IntType1 > & __x) [friend]

Inserts a poisson_distribution random number distribution __x into the output stream __os.

Parameters

  • __os β€” An output stream.
  • __x β€” A poisson_distribution random number distribution.

Returns

The output stream with the state of __x inserted or in an error state.

operator==

template<typename _IntType = int> bool operator== (const
    poisson_distribution< _IntType > & __d1, const poisson_distribution<
    _IntType > & __d2) [friend]

Return true if two Poisson distributions have the same parameters and the sequences that would be generated are equal. Twin flame behavior fr fr. πŸ‘‘

operator>>

template<typename _IntType = int> template<typename _IntType1, typename
    _CharT, typename _Traits> std::basic_istream< _CharT, _Traits > &
    operator>> (std::basic_istream< _CharT, _Traits > & __is,
    std::poisson_distribution< _IntType1 > & __x) [friend]

Extracts a poisson_distribution random number distribution __x from the input stream __is.

Parameters

  • __is β€” An input stream.
  • __x β€” A poisson_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.


Not a single human hand touched this prose β€” it's Doxygen's baby, born straight out of the libstdc++ source code. 🍼✨

And that's the whole page, bestie. This absolute icon of a manpage (std::poisson_distribution< _IntType >, section 3) ships under the libstdc++ banner β€” that's the source and the version right there in the footer, and the page name is the same one you scrolled past at the top. Now go generate some random numbers. Slay. πŸ’…πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms