Class Interpolation


  • final class Interpolation
    extends java.lang.Object
    Support class for interpolation.
    Since:
    1.1
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Interpolation()
      No instances.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static double interpolate​(double a, double b, double t)
      Linear interpolation between sorted values a <= b using the interpolant t taking care to avoid overflow.
      (package private) static double mean​(double x, double y)
      Compute the arithmetic mean of the two values taking care to avoid overflow.
      (package private) static double mean​(int x, int y)
      Compute the arithmetic mean of the two values.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Interpolation

        private Interpolation()
        No instances.
    • Method Detail

      • mean

        static double mean​(double x,
                           double y)
        Compute the arithmetic mean of the two values taking care to avoid overflow.
        Parameters:
        x - Value.
        y - Value.
        Returns:
        the mean
      • mean

        static double mean​(int x,
                           int y)
        Compute the arithmetic mean of the two values.
        Parameters:
        x - Value.
        y - Value.
        Returns:
        the mean
      • interpolate

        static double interpolate​(double a,
                                  double b,
                                  double t)
        Linear interpolation between sorted values a <= b using the interpolant t taking care to avoid overflow.
         value = a + t * (b - a)
         

        Note

        This function has the same properties of as the C++ function std::lerp for t in (0, 1) and b >= a. It is not a full implementation as it removes explicit checks for t==0 and t==1 and does not support extrapolation as the usage is intended for interpolation of sorted values. The function is monotonic and avoids overflow for finite a and b.

        Interpolation between equal signed infinity arguments will return a. Alternative implementations may return NaN for this case. Thus this method interprets infinity values as equivalent and avoids interpolation.

        Parameters:
        a - Min value.
        b - Max value.
        t - Interpolant in (0, 1).
        Returns:
        the value