Skip to content

ajefweiss/prodef-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • ConstantDensity - A degenerate distribution at a fixed value
  • CosineDensity - Cosine distribution over the interval [-π/2, π/2]
  • LogUniformDensity - Uniform distribution in log-space (for positive values)
  • NormalDensity - Normal distribution
  • UniformDensity - Uniform distribution over an interval

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.

About

A simple Rust crate for handling probability distributions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages