Skip to main content

linear_interpolation

Function linear_interpolation 

Source
pub fn linear_interpolation<T>(
    min_in: T,
    max_in: T,
    current_in: T,
    min_out: T,
    max_out: T,
) -> Result<T, LinearInterpolationInvalidValuesError>
where T: Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T> + PartialOrd + Clone,
Expand description

Computes a linearly interpolated output value for a given input within a known range.

Given an input range [min_in, max_in] and a corresponding output range [min_out, max_out], maps current_in proportionally to its position in the output range.

Formula:

out = (min_out * (max_in - current_in) + max_out * (current_in - min_in)) / (max_in - min_in)

Returns [Err(LinearInterpolationInvalidValuesError)] if current_in is outside [min_in, max_in].

See also: https://en.wikipedia.org/wiki/Linear_interpolation