DiscreteDistribution
-
class DiscreteDistribution
The generic cpplex discrete distribution type.
This module implements various complex discrete distributions.
Defined in header <DiscreteDistribution/DiscreteDistribution.hpp>.
Note
All complex discrete distribution classes make the assumption that the real and complex components are an independent, joint distribution.
Functions
-
virtual constexpr double cdf(const Complex &z) const noexcept = 0
The CDF of a distribution.
-
inline double logpmf(const Complex &z) const noexcept
The natural log of the PMF of a distribution.
-
inline double logcdf(const Complex &z) const noexcept
The natural log of the CDF of a distribution.
-
virtual constexpr std::vector<Complex> rand(const int numSamples) const noexcept = 0
Samples from a distribution.
-
virtual constexpr double entropy() const noexcept = 0
Returns the entropy of a distribution.
Distributions
-
class Bernoulli : public DiscreteDistribution
-
class Binomial : public DiscreteDistribution
-
class Geometric : public DiscreteDistribution
-
class NegativeBinomial : public DiscreteDistribution
-
class Poisson : public DiscreteDistribution
Example
// Polymorphic implementation
DiscreteDistribution* dist;
Complex lambda = 5 + 5_j;
Complex z = 3 + 3_j;
Poisson poissonDist(lambda);
dist = &poissonDist;
std::cout << dist->pmf(z) << "\n";
Output:
0.0197048