from __future__ import annotations import math def fresnel_radius_m(d1_m: float, d2_m: float, d_total_m: float, freq_mhz: float) -> float: if d_total_m <= 0 or freq_mhz <= 0: return 0.0 f_ghz = freq_mhz / 1000.0 return 17.3 * math.sqrt((d1_m * d2_m) / (f_ghz * d_total_m)) def clearance_m( los_height_m: float, total_height_m: float, fresnel_radius_m: float, fresnel_factor: float, ) -> float: return los_height_m - total_height_m - fresnel_radius_m * fresnel_factor