def linear_interp(x, in_min, in_max, out_min, out_max):
    """ linear interpolation function
        maps `x` between `in_min` -> `in_max`
        into `out_min` -> `out_max`
    """
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min