use crate::Sample;
#[inline(always)]
pub(crate) fn check_sample(sample: &Sample)
{
let (n_sample, n_feature) = sample.shape();
assert!(n_sample > 0);
assert!(n_feature > 0);
}
#[inline(always)]
pub(crate) fn check_nu(nu: f64, n_sample: usize) {
let n_sample = n_sample as f64;
assert!((1.0..=n_sample).contains(&nu));
}
#[inline(always)]
pub(crate) fn check_stepsize(size: f64) {
assert!((0.0..=1.0).contains(&size));
}
#[inline(always)]
pub(crate) fn check_capped_simplex_condition(
slice: &[f64],
nu: f64,
)
{
let length = slice.len();
check_nu(nu, length);
assert!((slice.iter().sum::<f64>() - 1.0).abs() < 1e-9);
let ub = 1.0 / nu;
assert!(slice.iter().all(|s| (0.0..=ub).contains(s)));
}