pub fn calculate_heading_probability(
heading_difference_degrees: f64,
heading_scale: f64,
heading_cutoff_degrees: f64,
) -> f64Expand description
Calculate probability based on heading difference using exponential decay.
§Arguments
heading_difference_degrees- Absolute angular difference between GNSS heading and segment heading (degrees)heading_scale- Decay scale parameter (degrees). At diff = scale, probability ≈ 0.368heading_cutoff_degrees- Maximum heading difference to accept (degrees). Above this, probability = 0
§Returns
Probability value in range [0, 1]. Returns 0 if difference exceeds cutoff.
§Examples
ⓘ
let p = calculate_heading_probability(30.0, 45.0, 90.0);
assert!((p - (-30.0 / 45.0).exp()).abs() < 0.001); // exp(-0.667) ≈ 0.513
let p_rejected = calculate_heading_probability(100.0, 45.0, 90.0);
assert_eq!(p_rejected, 0.0); // exceeds cutoff