prodef 0.2.0

A simple Rust crate for handling probability distributions, primarily intended for use with Bayesian inference.
Documentation

ProDeF - Probability Density Functions

A simple Rust crate for handling probability distributions, primarily intended for use with Bayesian inference. Provides efficient, type-safe APIs for evaluating, sampling, and manipulating probability densities across univariate, multivariate, and non-parametric representations.

All probability density functions (PDFs) implement the [Density] trait, the core trait of this crate, providing common operations like:

  • Evaluation: Compute probability density (non-normalized) for a given sample point
  • Sampling: Generate random samples according to the given distribution
  • Domain queries: Checking valid input ranges

The Domain type defines the valid input space for any density function. A domain may be bounded, unbounded, or have a special structure. Currently only unbounded domains or hypercubes are supported.

Distribution Types

  • MultivariateDensity Combines multiple independent univariate distributions into a multivariate distribution. Use when the individual dimensions are statistically independent.
  • MultivariateNormalDensity A multivariate normal distribution with arbitrary covariance. Use when modeling correlated multi-dimensional data.
  • ParticleDensity A non-parametric density represented by weighted particles / samples. Use for complex distributions that can't be expressed analytically or for particle filters.

For the univariate case, one can use the following distributions directly:

Disclaimer

Some documentation and tests were created or enhanced using AI assistance. All code has been manually reviewed and verified to ensure correctness and adherence to project standards.