ContinuousDistribution

class ContinuousDistribution

The generic cpplex continuous distribution type.

This module implements various complex continuous distributions.

Defined in header <ContinuousDistribution/ContinuousDistribution.hpp>.

Note

All complex continuous distribution classes make the assumption that the real and complex components are an independent, joint distribution.

Functions

virtual constexpr double pdf(const Complex &z) const noexcept = 0

The PDF of a distribution.

virtual constexpr double cdf(const Complex &z) const noexcept = 0

The CDF of a distribution.

inline double logpdf(const Complex &z) const noexcept

The natural log of the PDF 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 ContinuousDistribution : public ContinuousDistribution
class Chi : public ContinuousDistribution
class ChiSquared : public ContinuousDistribution
class Exponential : public ContinuousDistribution
class Gamma : public ContinuousDistribution
class Laplace : public ContinuousDistribution
class Logistic : public ContinuousDistribution
class LogNormal : public ContinuousDistribution
class MaxwellBoltzman : public ContinuousDistribution
class Normal : public ContinuousDistribution
class Pareto : public ContinuousDistribution
class Rayleigh : public ContinuousDistribution
class Triangular : public ContinuousDistribution
class Uniform : public ContinuousDistribution
class Weibull : public ContinuousDistribution

Example

// Polymorphic implementation.
ContinuousDistribution* dist;
Complex mu = 1 + 1_j;
Complex s = 1 + 2_j;

Complex z = 0.5 + 0.5_j;

Logistic logDist(mu, s);
dist = &logDist;
std::cout << dist->pdf(z) << "\n";

Output:

0.0289212