pub struct MultivarNormDist<T> { /* private fields */ }Expand description
Multivariate normal distribution for given average vectors and covariance matrices.
Example
use multivariate_optimization::distributions::MultivarNormDist;
use multivariate_optimization::triangular::Triangular;
use rand::{thread_rng, Rng};
let averages: Vec<f64> = vec![1.51, 1.57, -0.29];
let covariances = Triangular::<f64>::new(3, |(i, j)| {
// needs to handle only cases for i >= j
// assert!(i >= j);
if i == j { 1.0 } else { 0.5 }
});
let dist = MultivarNormDist::new(averages, covariances);
let mut rng = thread_rng();
let value = rng.sample(dist);
println!("Sample vector: {:?}", value);Implementations§
source§impl<T: Num> MultivarNormDist<T>
impl<T: Num> MultivarNormDist<T>
sourcepub fn new(averages: Vec<T>, covariances: Triangular<T>) -> MultivarNormDist<T>
pub fn new(averages: Vec<T>, covariances: Triangular<T>) -> MultivarNormDist<T>
Create multivariate normal distribution for given averages and covariances.
Trait Implementations§
source§impl<T: Debug> Debug for MultivarNormDist<T>
impl<T: Debug> Debug for MultivarNormDist<T>
source§impl<T: Num> Distribution<Vec<T, Global>> for MultivarNormDist<T>
impl<T: Num> Distribution<Vec<T, Global>> for MultivarNormDist<T>
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vec<T>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vec<T>
Generate a random value of
T, using rng as the source of randomness.source§impl<T: Num> MultivarDist<T> for MultivarNormDist<T>
impl<T: Num> MultivarDist<T> for MultivarNormDist<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for MultivarNormDist<T>where T: RefUnwindSafe,
impl<T> Send for MultivarNormDist<T>where T: Send,
impl<T> Sync for MultivarNormDist<T>where T: Sync,
impl<T> Unpin for MultivarNormDist<T>where T: Unpin,
impl<T> UnwindSafe for MultivarNormDist<T>where T: 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