Skip to main content

normalize_density

Function normalize_density 

Source
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 on argvals; 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