docs: private List<Float> interpolateDownwards(float max, int steps) {
  
          List<Float> result = new ArrayList<Float>();
          if (max > 0) {
              // We try to generate a "nice" descending list of non-negative floats
              // where the step size is bigger for bigger "max" values.
              float base = (max > 1) ? (float)Math.floor(max) : max;
              float stepSize = 1000f;
  
              // reduce step size until the smallest element is greater than max/10.
              while ((base - (steps * stepSize)) < (max / 10.0f)) {
                  stepSize = reduceStepSize(stepSize);
              }
              // we have determined the step size, now we generate the actual numbers
              for (int i = 0; i < steps; i++) {
                  result.add(new Float(base - ((i + 1) * stepSize)));
              }
              Collections.reverse(result);
          } else {
              LOG.warn("Invalid navpos value: " + max);
              for (int i = 0; i < steps; i++) {
                  result.add(new Float(max - (i + 1)));
              }
              Collections.reverse(result);
          }
          return result;
      }