use crate::linalg::{cholesky_rank1_update, cholesky_rank1_downdate};
use crate::matrix::vector::Vector;
use crate::traits::FloatScalar;
use crate::Matrix;
use super::EstimateError;
#[allow(dead_code)]
pub(crate) fn cholupdate<T: FloatScalar, const N: usize>(
l: &mut Matrix<T, N, N>,
v: &mut Vector<T, N>,
sign: T,
) -> Result<(), EstimateError> {
let result = if sign >= T::zero() {
cholesky_rank1_update(l, v.as_mut_slice())
} else {
cholesky_rank1_downdate(l, v.as_mut_slice())
};
result.map_err(|_| EstimateError::CholdowndateFailed)
}