Struct rv::dist::VonMises [−][src]
pub struct VonMises { /* fields omitted */ }
VonMises distirbution on the circular interval (0, 2π]
Example
use rv::prelude::*; let vm = VonMises::new(1.0, 2.0).unwrap(); // x is in (0, 2π] assert!(!vm.supports(&-0.001_f64)); assert!(!vm.supports(&6.3_f64)); // 103 VonMises draws let mut rng = rand::thread_rng(); let xs: Vec<f64> = vm.sample(103, &mut rng); assert_eq!(xs.len(), 103);
Implementations
impl VonMises
[src]
impl VonMises
[src]pub fn new(mu: f64, k: f64) -> Result<Self, VonMisesError>
[src]
Create a new VonMises distribution with mean mu, and precision, k.
pub fn new_unchecked(mu: f64, k: f64) -> Self
[src]
Creates a new VonMises without checking whether the parameters are valid.
pub fn mu(&self) -> f64
[src]
Get the mean parameter, mu
Example
let vm = VonMises::new(0.0, 1.0).unwrap(); assert_eq!(vm.mu(), 0.0);
pub fn set_mu(&mut self, mu: f64) -> Result<(), VonMisesError>
[src]
Set the value of mu
Example
use rv::dist::VonMises; let mut vm = VonMises::new(2.0, 1.5).unwrap(); assert_eq!(vm.mu(), 2.0); vm.set_mu(1.3).unwrap(); assert_eq!(vm.mu(), 1.3);
Will error for invalid values
assert!(vm.set_mu(1.3).is_ok()); assert!(vm.set_mu(0.0).is_ok()); assert!(vm.set_mu(2.0 * std::f64::consts::PI).is_ok()); assert!(vm.set_mu(0.0 - 0.001).is_err()); assert!(vm.set_mu(2.0 * std::f64::consts::PI + 0.001).is_err()); assert!(vm.set_mu(std::f64::NEG_INFINITY).is_err()); assert!(vm.set_mu(std::f64::INFINITY).is_err()); assert!(vm.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 k(&self) -> f64
[src]
Get the precision parameter, k
Example
let vm = VonMises::new(0.0, 1.0).unwrap(); assert_eq!(vm.k(), 1.0);
pub fn set_k(&mut self, k: f64) -> Result<(), VonMisesError>
[src]
Set the value of k
Example
let mut vm = VonMises::new(0.0, 1.0).unwrap(); let v1: f64 = vm.variance().unwrap(); assert::close(v1, 0.5536100341034653, 1E-10); vm.set_mu(0.2); vm.set_k(2.0); let v2: f64 = vm.variance().unwrap(); assert::close(v2, 0.3022253420359917, 1E-10);
Will error for invalid values
assert!(vm.set_k(0.1).is_ok()); // Must be greater than zero assert!(vm.set_k(0.0).is_err()); assert!(vm.set_k(-1.0).is_err()); assert!(vm.set_k(std::f64::INFINITY).is_err()); assert!(vm.set_k(std::f64::NEG_INFINITY).is_err()); assert!(vm.set_k(std::f64::NAN).is_err());
pub fn set_k_unchecked(&mut self, k: f64)
[src]
Set the value of k without input validation
Trait Implementations
impl ContinuousDistr<f32> for VonMises
[src]
impl ContinuousDistr<f32> for VonMises
[src]impl ContinuousDistr<f64> for VonMises
[src]
impl ContinuousDistr<f64> for VonMises
[src]impl StructuralPartialEq for VonMises
[src]
impl StructuralPartialEq for VonMises
[src]Auto Trait Implementations
impl RefUnwindSafe for VonMises
impl RefUnwindSafe for VonMises
impl UnwindSafe for VonMises
impl UnwindSafe for VonMises
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>,