use core::f64::consts::TAU;
use libm::{exp, sqrt};
pub fn pdf(x: f64, mu: f64, sigma: f64) -> f64 {
if sigma < 0.0 {
return f64::NAN; }
let variance = sigma * sigma;
if variance == 0.0 {
return f64::NAN; }
let diff = x - mu;
exp(diff * diff / (-2.0 * variance)) / sqrt(TAU * variance)
}