docs: def get_scaling_function(y_m, y_M, x_m, x_M):
      """
      Returns a linear function y = k x + b, where y \in [m, M]
      :param y_m:
      :param y_M:
      :param x_m:
      :param x_M:
      :return:
      """
      if x_M <= x_m:
          return lambda _: y_m
      k = (y_M - y_m) / (x_M - x_m)
      b = y_m - k * x_m
      return lambda _: int(k * _ + b)