org.apache.lucene.util

## Class SloppyMath

• ```public class SloppyMath
extends Object```
Math functions that trade off accuracy for speed.
• ### Field Summary

Fields
Modifier and Type Field and Description
`static double` `PIO2`
`static double` `TO_DEGREES`
`static double` `TO_RADIANS`
• ### Constructor Summary

Constructors
Constructor and Description
`SloppyMath()`
• ### Method Summary

Methods
Modifier and Type Method and Description
`static double` `asin(double a)`
Returns the arc sine of a value.
`static double` `cos(double a)`
Returns the trigonometric cosine of an angle.
`static double` `earthDiameter(double latitude)`
Return an approximate value of the diameter of the earth at the given latitude, in kilometers.
`static double` ```haversin(double lat1, double lon1, double lat2, double lon2)```
Returns the Haversine distance in kilometers between two points specified in decimal degrees (latitude/longitude).
`static double` `sin(double a)`
Returns the trigonometric sine of an angle converted as a cos operation.
`static double` `tan(double a)`
Returns the trigonometric tangent of an angle converted in terms of a sin/cos operation.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Field Detail

`public static final double TO_RADIANS`
Constant Field Values
• #### TO_DEGREES

`public static final double TO_DEGREES`
Constant Field Values
• #### PIO2

`public static final double PIO2`
Constant Field Values
• ### Constructor Detail

• #### SloppyMath

`public SloppyMath()`
• ### Method Detail

• #### haversin

```public static double haversin(double lat1,
double lon1,
double lat2,
double lon2)```
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.
`Math.cos(double)`
• #### sin

`public static double sin(double a)`
Returns the trigonometric sine of an angle converted as a cos operation.

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 sine of the argument.
`Math.cos(double)`
• #### tan

`public static double tan(double a)`
Returns the trigonometric tangent of an angle converted in terms of a sin/cos operation.

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 tangent of the argument.
`aand 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
`Math.asin(double)`
`public static double earthDiameter(double latitude)`