use super::LowerTriangular;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use std::clone::Clone;
pub trait CholeskyDecomposition<T> {
fn dec_cholesky(&self) -> Result<CholeskyDec<T>, String>;
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone)]
pub struct CholeskyDec<T> {
l: LowerTriangular<T>,
}
impl<T> CholeskyDec<T> {
pub fn new(l: LowerTriangular<T>) -> CholeskyDec<T> {
CholeskyDec { l }
}
}
impl<T> CholeskyDec<T> {
pub fn l(self) -> LowerTriangular<T> {
self.l
}
}