opensrdk-probability 0.8.9

Standard probability library for OpenSRDK toolchain.
Documentation
use crate::{DistributionError, EllipticalParams};
use crate::{ExactEllipticalParams, MultivariateStudentTParams, RandomVariable};

#[derive(Clone, Debug, PartialEq)]
pub(crate) struct MultivariateStudentTWrapper<'a, T>
where
    T: EllipticalParams,
{
    elliptical: &'a T,
}

impl<'a, T> MultivariateStudentTWrapper<'a, T>
where
    T: EllipticalParams,
{
    pub(crate) fn new(elliptical: &'a T) -> Self {
        Self { elliptical }
    }
}

impl<'a, T> RandomVariable for MultivariateStudentTWrapper<'a, T>
where
    T: EllipticalParams,
{
    type RestoreInfo = T::RestoreInfo;

    fn transform_vec(&self) -> (Vec<f64>, Self::RestoreInfo) {
        todo!()
    }

    fn len(&self) -> usize {
        self.elliptical.len()
    }

    fn restore(v: &[f64], info: &Self::RestoreInfo) -> Result<Self, DistributionError> {
        todo!()
    }
}

impl<'a, T> MultivariateStudentTParams<T> for MultivariateStudentTWrapper<'a, T>
where
    T: EllipticalParams,
{
    fn nu(&self) -> f64 {
        1.0
    }

    fn elliptical(&self) -> &T {
        self.elliptical
    }
}

pub type ExactMultivariateCauchyParams = ExactEllipticalParams;