Skip to main content

Crate simsam

Crate simsam 

Source
Expand description

simsam — sample from custom discrete and continuous distributions.

Build a distribution from a PDF or CDF (closures, histograms, location-scale transforms, or simsym symbolic expressions), then draw samples via inverse transform sampling — similar to SciPy rv_continuous.

§Features

§Limitations

  • Continuous distributions require finite support [lo, hi] (use Truncated on a wide interval).
  • Inverse transform assumes a unimodal CDF on that interval.

§Example

use simsam::{from_pdf_fn, Interval};

let support = Interval::new(0.0, 1.0).unwrap();
let sampler = from_pdf_fn(|x| 3.0 * x * x, support).unwrap();
let x = sampler.sample().unwrap();
assert!((0.0..=1.0).contains(&x));
assert!((sampler.mean().unwrap() - 0.75).abs() < 1e-2);

Structs§

AffineCdf
Normalized CDF built from a user-provided Cdf, affine-scaled to [0, 1] on support.
BuildOptions
Options for building a continuous sampler from PDF or CDF.
CdfFn
Closure-backed CDF with explicit support.
CdfMcEstimator
Monte-Carlo estimator for normalization and CDF of an N-D PDF on a bounded support.
CdfMcOptions
ConditionalFactorSampler
ContinuousSampler
Continuous distribution sampler.
DiscreteSampler
Finite discrete distribution sampler via inverse transform.
DpdfFn
Closure-backed dPDF with explicit support.
GaussianCopula
Gaussian copula sampler.
GibbsOptions
GibbsSamplerNd
HermitePpfTable
Precomputed inverse-CDF table with monotone cubic Hermite interpolation (fast ppf).
HistogramPdf
Piecewise-constant PDF from a histogram (SciPy rv_histogram).
HmcOptions
HmcSamplerNd
HyperRect
Axis-aligned bounded support in R^n: lo[i] <= x[i] <= hi[i].
IntegratedPdf
CDF obtained by integrating and normalizing a PDF on support.
Interval
Finite support interval [lo, hi] with lo < hi.
InvertOptions
LocScale
Location-scale transform: Y = loc + scale * X for base PDF on base_support.
MetropolisHastingsNd
Random-walk Metropolis–Hastings sampler on a bounded hyper-rectangle.
MhOptions
PdfFn
Closure-backed PDF with explicit support.
PdfNdFn
Closure-backed ND PDF with explicit support.
RejectionOptions
RejectionSamplerNd
Generic N-D rejection sampler on a bounded hyper-rectangle.
TdrBuildConfig
TDR configuration used when SampleMethod::Tdr is selected.
TdrHat
Built TDR hat function; immutable after construction.
TdrOptions
TdrSampler
1D Transformed Density Rejection sampler.
Truncated
Truncate a base PDF to [lo, hi] and renormalize.

Enums§

BuildError
Error while constructing a distribution or sampler.
PpfMethod
How to invert the CDF when computing ppf (inverse transform sampling path).
SampleError
Error during sampling (e.g. invalid quantile).
SampleMethod
How to draw samples from a continuous distribution.
TdrTransform
Transformation parameter for TDR.

Traits§

Cdf
Cumulative distribution function, monotone on support with cdf(lo) ≈ 0, cdf(hi) ≈ 1.
CdfDiscrete
Discrete cumulative distribution at support index k (inclusive).
CdfSource
Internal CDF source for inverse-transform sampling.
ConditionalFactorization
Conditional factorization x0 ~ f0(), x1 ~ f1(x0), …, x_{n-1} ~ f_{n-1}(x0..x_{n-2}).
ConditionalSampler
Trait for sampling coordinate i conditional on other coordinates.
Dpdf
Derivative of a probability density function dpdf = d/dx pdf(x).
HasSupport
Distribution support.
HasSupportNd
LogPdfNd
Log-density (up to additive constant). Prefer this for MCMC.
Pdf
Probability density function on a finite support.
PdfNd
Joint probability density function on a bounded hyper-rectangle support.
Pmf
Probability mass function on a finite support.

Functions§

default_quad_tol
from_cdf_fn
Build a sampler from a CDF closure on [lo, hi].
from_histogram
Build from a histogram (HistogramPdf).
from_pdf_dpdf_fn
Build a sampler from PDF and explicit dPDF closures.
from_pdf_fn
Build a sampler from a PDF closure on [lo, hi] with default options.
from_pdf_fn_with_options
Build a sampler from a PDF closure with custom BuildOptions.
from_pdf_loc_scale
Build from a base PDF with y = loc + scale * x.
tdr_from_fns
Convenience constructor from closures.