pub struct ContinuousSampler<D> { /* private fields */ }Expand description
Continuous distribution sampler.
Sampling uses SampleMethod (inverse transform or TDR). ppf and statistics always
use numerical inverse CDF.
Implementations§
Source§impl<P> ContinuousSampler<IntegratedPdf<P>>where
P: Pdf + HasSupport,
impl<P> ContinuousSampler<IntegratedPdf<P>>where
P: Pdf + HasSupport,
pub fn from_pdf(pdf: P, opts: BuildOptions) -> Result<Self, BuildError>where
P: HasSupport,
pub fn from_pdf_with_dpdf<DpdfT>( pdf: P, dpdf: DpdfT, opts: BuildOptions, ) -> Result<ContinuousSampler<IntegratedPdf<P>>, BuildError>
Source§impl<C> ContinuousSampler<AffineCdf<C>>where
C: Cdf,
impl<C> ContinuousSampler<AffineCdf<C>>where
C: Cdf,
pub fn from_cdf(cdf: C, opts: BuildOptions) -> Result<Self, BuildError>where
C: HasSupport,
Source§impl<D> ContinuousSampler<D>where
D: CdfSource,
impl<D> ContinuousSampler<D>where
D: CdfSource,
Sourcepub fn set_hermite_table(&mut self, grid_size: usize)
pub fn set_hermite_table(&mut self, grid_size: usize)
Rebuild or replace the Hermite PPF table (inverse-transform path only).
Sourcepub fn clear_hermite_table(&mut self)
pub fn clear_hermite_table(&mut self)
Use bisection-only PPF (removes Hermite table).
pub fn uses_hermite_table(&self) -> bool
pub fn uses_tdr(&self) -> bool
pub fn support(&self) -> Interval
pub fn cdf(&self, x: f64) -> f64
pub fn pdf_at(&self, x: f64) -> Option<f64>
pub fn has_pdf(&self) -> bool
pub fn ppf(&self, u: f64) -> Result<f64, SampleError>
pub fn sample(&self) -> Result<f64, SampleError>
pub fn sample_with_rng<R: Rng + ?Sized>( &self, rng: &mut R, ) -> Result<f64, SampleError>
pub fn sample_n(&self, n: usize) -> Result<Vec<f64>, SampleError>
pub fn sample_n_with_rng<R: Rng + ?Sized>( &self, rng: &mut R, n: usize, ) -> Result<Vec<f64>, SampleError>
Source§impl<D> ContinuousSampler<D>where
D: CdfSource,
impl<D> ContinuousSampler<D>where
D: CdfSource,
Sourcepub fn pdf(&self, x: f64) -> Option<f64>
pub fn pdf(&self, x: f64) -> Option<f64>
Probability density at x (zero outside support). Requires an underlying PDF.
Sourcepub fn logpdf(&self, x: f64) -> Option<f64>
pub fn logpdf(&self, x: f64) -> Option<f64>
Natural logarithm of the PDF; None if PDF unavailable or non-positive.
Sourcepub fn isf(&self, q: f64) -> Result<f64, SampleError>
pub fn isf(&self, q: f64) -> Result<f64, SampleError>
Inverse survival function isf(q) = ppf(1 - q).
Sourcepub fn median(&self) -> Result<f64, SampleError>
pub fn median(&self) -> Result<f64, SampleError>
Median ppf(0.5).
Sourcepub fn mean(&self) -> Result<f64, SampleError>
pub fn mean(&self) -> Result<f64, SampleError>
Mean E[X] via expect(|x| x).
Sourcepub fn var(&self) -> Result<f64, SampleError>
pub fn var(&self) -> Result<f64, SampleError>
Variance Var[X].
Sourcepub fn std(&self) -> Result<f64, SampleError>
pub fn std(&self) -> Result<f64, SampleError>
Standard deviation.
Sourcepub fn entropy(&self) -> Result<f64, SampleError>
pub fn entropy(&self) -> Result<f64, SampleError>
Differential entropy H = -∫ f log f dx (nats).
Trait Implementations§
Source§impl<D> Distribution<f64> for ContinuousSampler<D>where
D: CdfSource,
impl<D> Distribution<f64> for ContinuousSampler<D>where
D: CdfSource,
Auto Trait Implementations§
impl<D> Freeze for ContinuousSampler<D>where
D: Freeze,
impl<D> RefUnwindSafe for ContinuousSampler<D>where
D: RefUnwindSafe,
impl<D> Send for ContinuousSampler<D>where
D: Send,
impl<D> Sync for ContinuousSampler<D>where
D: Sync,
impl<D> Unpin for ContinuousSampler<D>where
D: Unpin,
impl<D> UnsafeUnpin for ContinuousSampler<D>where
D: UnsafeUnpin,
impl<D> UnwindSafe for ContinuousSampler<D>where
D: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more