Struct rv::dist::InvGaussian [−][src]
pub struct InvGaussian { /* fields omitted */ }
Inverse Gaussian distribution, N-1(μ, λ) over real values.
Implementations
impl InvGaussian
[src]
impl InvGaussian
[src]pub fn new(mu: f64, lambda: f64) -> Result<Self, InvGaussianError>
[src]
Create a new Inverse Gaussian distribution
Aruments
- mu: mean > 0
- lambda: shape > 0
use rv::dist::InvGaussian; let invgauss = InvGaussian::new(1.0, 3.0).unwrap();
Mu and lambda must be finite and greater than 0.
use std::f64::{NAN, INFINITY}; assert!(InvGaussian::new(0.0, 3.0).is_err()); assert!(InvGaussian::new(NAN, 3.0).is_err()); assert!(InvGaussian::new(INFINITY, 3.0).is_err()); assert!(InvGaussian::new(1.0, 0.0).is_err()); assert!(InvGaussian::new(1.0, NAN).is_err()); assert!(InvGaussian::new(1.0, INFINITY).is_err());
pub fn new_unchecked(mu: f64, lambda: f64) -> Self
[src]
Creates a new InvGaussian without checking whether the parameters are valid.
pub fn mu(&self) -> f64
[src]
pub fn set_mu(&mut self, mu: f64) -> Result<(), InvGaussianError>
[src]
Set the value of mu
Example
let mut ig = InvGaussian::new(2.0, 1.5).unwrap(); assert_eq!(ig.mu(), 2.0); ig.set_mu(1.3).unwrap(); assert_eq!(ig.mu(), 1.3);
Will error for invalid values
assert!(ig.set_mu(1.3).is_ok()); assert!(ig.set_mu(0.0).is_err()); assert!(ig.set_mu(-1.0).is_err()); assert!(ig.set_mu(std::f64::NEG_INFINITY).is_err()); assert!(ig.set_mu(std::f64::INFINITY).is_err()); assert!(ig.set_mu(std::f64::NAN).is_err());
pub fn set_mu_unchecked(&mut self, mu: f64)
[src]
Set the value of mu without input validation
pub fn lambda(&self) -> f64
[src]
Get lambda parameter
Example
let ig = InvGaussian::new(2.0, 1.5).unwrap(); assert_eq!(ig.lambda(), 1.5);
pub fn set_lambda(&mut self, lambda: f64) -> Result<(), InvGaussianError>
[src]
Set the value of lambda
Example
let mut ig = InvGaussian::new(1.0, 2.0).unwrap(); assert_eq!(ig.lambda(), 2.0); ig.set_lambda(2.3).unwrap(); assert_eq!(ig.lambda(), 2.3);
Will error for invalid values
assert!(ig.set_lambda(2.3).is_ok()); assert!(ig.set_lambda(0.0).is_err()); assert!(ig.set_lambda(-1.0).is_err()); assert!(ig.set_lambda(std::f64::INFINITY).is_err()); assert!(ig.set_lambda(std::f64::NEG_INFINITY).is_err()); assert!(ig.set_lambda(std::f64::NAN).is_err());
pub fn set_lambda_unchecked(&mut self, lambda: f64)
[src]
Set the value of lambda without input validation
pub fn params(&self) -> (f64, f64)
[src]
Return (mu, lambda)
Trait Implementations
impl Clone for InvGaussian
[src]
impl Clone for InvGaussian
[src]fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl ContinuousDistr<f32> for InvGaussian
[src]
impl ContinuousDistr<f32> for InvGaussian
[src]impl ContinuousDistr<f64> for InvGaussian
[src]
impl ContinuousDistr<f64> for InvGaussian
[src]impl HasSuffStat<f32> for InvGaussian
[src]
impl HasSuffStat<f32> for InvGaussian
[src]type Stat = InvGaussianSuffStat
fn empty_suffstat(&self) -> Self::Stat
[src]
impl HasSuffStat<f64> for InvGaussian
[src]
impl HasSuffStat<f64> for InvGaussian
[src]type Stat = InvGaussianSuffStat
fn empty_suffstat(&self) -> Self::Stat
[src]
impl PartialEq<InvGaussian> for InvGaussian
[src]
impl PartialEq<InvGaussian> for InvGaussian
[src]impl Rv<f32> for InvGaussian
[src]
impl Rv<f32> for InvGaussian
[src]impl Rv<f64> for InvGaussian
[src]
impl Rv<f64> for InvGaussian
[src]Auto Trait Implementations
impl RefUnwindSafe for InvGaussian
impl RefUnwindSafe for InvGaussian
impl Send for InvGaussian
impl Send for InvGaussian
impl Sync for InvGaussian
impl Sync for InvGaussian
impl Unpin for InvGaussian
impl Unpin for InvGaussian
impl UnwindSafe for InvGaussian
impl UnwindSafe for InvGaussian
Blanket Implementations
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,