//! The limma routines edgeR depends on.
//!
//! Not a general limma port: only the pieces `estimateDisp`, `glmQLFit` and
//! `voomLmFit` actually reach for.
use crate*;
/// Checks that prior weights are non-negative.
///
/// ### Params
///
/// * `w` - Prior weights to check
///
/// ### Returns
///
/// `Ok(())` when every entry is non-negative, otherwise
/// [`EdgeErrors::InvalidArgument`] naming the first offending index.
pub