Skip to main content

calculate_heading_probability

Function calculate_heading_probability 

Source
pub fn calculate_heading_probability(
    heading_difference_degrees: f64,
    heading_scale: f64,
    heading_cutoff_degrees: f64,
) -> f64
Expand 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.368
  • heading_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