pub fn normalize_density(
vals: &[f64],
argvals: &[f64],
) -> Result<Vec<f64>, FdarError>Expand description
Normalize a density so that it integrates to 1 via trapezoidal quadrature.
§Arguments
vals— density values sampled onargvals; must be non-negative.argvals— strictly increasing evaluation grid.
§Errors
Returns FdarError::InvalidDimension if vals.len() != argvals.len().
Returns FdarError::InvalidParameter if any value in vals is negative,
if argvals is not strictly increasing, or if the integral is < 1e-15
(all-zero density).
§Example
use fdars_core::density_fda::normalize_density;
let argvals = vec![0.0, 0.5, 1.0];
let vals = vec![2.0, 2.0, 2.0]; // uniform, scale factor 2
let normed = normalize_density(&vals, &argvals).unwrap();
// integral ≈ 1.0