org.apache.lucene.util

Class SloppyMath



  • public class SloppyMath
    extends Object
    Math functions that trade off accuracy for speed.
    • Method Detail

      • haversinMeters

        public static double haversinMeters(double lat1,
                                            double lon1,
                                            double lat2,
                                            double lon2)
        Returns the Haversine distance in meters between two points specified in decimal degrees (latitude/longitude). This works correctly even if the dateline is between the two points.

        Error is at most 4E-1 (40cm) from the actual haversine distance, but is typically much smaller for reasonable distances: around 1E-5 (0.01mm) for distances less than 1000km.

        Parameters:
        lat1 - Latitude of the first point.
        lon1 - Longitude of the first point.
        lat2 - Latitude of the second point.
        lon2 - Longitude of the second point.
        Returns:
        distance in meters.
      • haversinKilometers

        @Deprecated
        public static double haversinKilometers(double lat1,
                                                            double lon1,
                                                            double lat2,
                                                            double lon2)
        Deprecated. Use instead
        Returns the Haversine distance in kilometers between two points specified in decimal degrees (latitude/longitude). This works correctly even if the dateline is between the two points.
        Parameters:
        lat1 - Latitude of the first point.
        lon1 - Longitude of the first point.
        lat2 - Latitude of the second point.
        lon2 - Longitude of the second point.
        Returns:
        distance in kilometers.
      • cos

        public static double cos(double a)
        Returns the trigonometric cosine of an angle.

        Error is around 1E-15.

        Special cases:

        • If the argument is NaN or an infinity, then the result is NaN.
        Parameters:
        a - an angle, in radians.
        Returns:
        the cosine of the argument.
        See Also:
        Math.cos(double)
      • asin

        public static double asin(double a)
        Returns the arc sine of a value.

        The returned angle is in the range -pi/2 through pi/2. Error is around 1E-7.

        Special cases:

        • If the argument is NaN or its absolute value is greater than 1, then the result is NaN.
        Parameters:
        a - the value whose arc sine is to be returned.
        Returns:
        arc sine of the argument
        See Also:
        Math.asin(double)
      • toDegrees

        public static double toDegrees(double radians)
        Convert to degrees.
        Parameters:
        radians - radians to convert to degrees
        Returns:
        degrees
      • toRadians

        public static double toRadians(double degrees)
        Convert to radians.
        Parameters:
        degrees - degrees to convert to radians
        Returns:
        radians