pub struct Normal {
pub mean: f64,
pub std_dev: f64,
}Expand description
Normal (Gaussian) distribution N(μ, σ²) as a typed struct.
Implements Distribution for use with fit_all / fit_best.
§Examples
use rs_stats::distributions::normal_distribution::Normal;
use rs_stats::distributions::traits::Distribution;
let n = Normal::new(0.0, 1.0).unwrap();
assert!((n.mean() - 0.0).abs() < 1e-10);
assert!((n.pdf(0.0).unwrap() - 0.398_942_280_401_4).abs() < 1e-10);Fields§
§mean: f64Mean μ
std_dev: f64Standard deviation σ (must be > 0)
Implementations§
Source§impl Normal
impl Normal
Sourcepub fn new(mean: f64, std_dev: f64) -> StatsResult<Self>
pub fn new(mean: f64, std_dev: f64) -> StatsResult<Self>
Creates a Normal distribution with validation.
Sourcepub fn fit(data: &[f64]) -> StatsResult<Self>
pub fn fit(data: &[f64]) -> StatsResult<Self>
Maximum-likelihood estimate from data.
MLE: μ = mean(data), σ = population std-dev. Single-pass online
(Welford) — never walks data twice and never allocates.
Trait Implementations§
Source§impl Distribution for Normal
impl Distribution for Normal
Source§fn num_params(&self) -> usize
fn num_params(&self) -> usize
Number of free parameters (used when computing AIC / BIC).
Source§fn inverse_cdf(&self, p: f64) -> StatsResult<f64>
fn inverse_cdf(&self, p: f64) -> StatsResult<f64>
Quantile (inverse CDF): find x such that F(x) = p.
Source§fn log_likelihood(&self, data: &[f64]) -> StatsResult<f64>
fn log_likelihood(&self, data: &[f64]) -> StatsResult<f64>
Sum of log-likelihoods: Σ ln f(xᵢ).
impl Copy for Normal
Auto Trait Implementations§
impl Freeze for Normal
impl RefUnwindSafe for Normal
impl Send for Normal
impl Sync for Normal
impl Unpin for Normal
impl UnsafeUnpin for Normal
impl UnwindSafe for Normal
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