#[must_use]
#[inline]
pub fn coherence_length(center_wavelength: f64, bandwidth: f64) -> f64 {
center_wavelength * center_wavelength / bandwidth
}
#[must_use]
#[inline]
pub fn coherence_time(center_wavelength_m: f64, bandwidth_m: f64) -> f64 {
coherence_length(center_wavelength_m, bandwidth_m) / 299_792_458.0
}
#[must_use]
#[inline]
pub fn spatial_coherence_angle(wavelength: f64, source_diameter: f64) -> f64 {
wavelength / source_diameter
}
#[must_use]
#[inline]
pub fn coherence_area(wavelength: f64, distance: f64, source_diameter: f64) -> f64 {
let l = wavelength * distance / source_diameter;
l * l
}
#[must_use]
#[inline]
pub fn coherence_ratio(path_difference: f64, center_wavelength: f64, bandwidth: f64) -> f64 {
path_difference / coherence_length(center_wavelength, bandwidth)
}