Class JdkMath
- java.lang.Object
-
- org.apache.commons.math4.core.jdkmath.JdkMath
-
public final class JdkMath extends Object
Wrapper for alternative implementations ofMath
functions. For example, a call toMath.sin(x)
can be replaced by a call toJdkMath.sin(x)
.This class is a "drop-in" replacement for both Math and StrictMath, up to the minimal JDK version required by this library (meaning that, although the library can be used on more recent JVMs, the
JdkMath
class may be missing the methods that were absent in older JDKs).Based on the value, at class initialization, of the system property
org.apache.commons.math.jdkmath
, this class redirects to a specific implementation:CM
:AccurateMath
JDK
:Math
CM
is the default value.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JdkMath.Impl
Available implementations ofMath
functions.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
abs(double x)
static float
abs(float x)
static int
abs(int x)
static long
abs(long x)
static double
acos(double x)
static double
acosh(double x)
static int
addExact(int x, int y)
static long
addExact(long x, long y)
static double
asin(double x)
static double
asinh(double x)
static double
atan(double x)
static double
atan2(double y, double x)
static double
atanh(double x)
static double
cbrt(double x)
static double
ceil(double x)
static double
copySign(double x, double y)
static float
copySign(float x, float y)
static double
cos(double x)
static double
cosh(double x)
static int
decrementExact(int x)
static long
decrementExact(long x)
static double
exp(double x)
static double
expm1(double x)
static double
floor(double x)
static int
floorDiv(int x, int y)
static long
floorDiv(long x, long y)
static int
floorMod(int x, int y)
static long
floorMod(long x, long y)
static int
getExponent(double x)
static int
getExponent(float x)
static double
hypot(double x, double y)
static double
IEEEremainder(double x, double y)
static int
incrementExact(int x)
static long
incrementExact(long x)
static double
log(double x)
static double
log10(double x)
static double
log1p(double x)
static double
max(double x, double y)
static float
max(float x, float y)
static int
max(int x, int y)
static long
max(long x, long y)
static double
min(double x, double y)
static float
min(float x, float y)
static int
min(int x, int y)
static long
min(long x, long y)
static int
multiplyExact(int x, int y)
static long
multiplyExact(long x, long y)
static int
negateExact(int x)
static long
negateExact(long x)
static double
nextAfter(double x, double y)
static float
nextAfter(float x, double y)
static double
nextDown(double x)
static float
nextDown(float x)
static double
nextUp(double x)
static float
nextUp(float x)
static double
pow(double x, double y)
static double
random()
static double
rint(double x)
static long
round(double x)
static int
round(float x)
static double
scalb(double x, int y)
static float
scalb(float x, int y)
static double
signum(double x)
static float
signum(float x)
static double
sin(double x)
static double
sinh(double x)
static double
sqrt(double x)
static int
subtractExact(int x, int y)
static long
subtractExact(long x, long y)
static double
tan(double x)
static double
tanh(double x)
static double
toDegrees(double x)
static int
toIntExact(long x)
static double
toRadians(double x)
static double
ulp(double x)
static float
ulp(float x)
-
-
-
Method Detail
-
abs
public static int abs(int x)
- Parameters:
x
- Number.- Returns:
- abs(x).
- See Also:
Math.abs(int)
-
abs
public static long abs(long x)
- Parameters:
x
- Number.- Returns:
- abs(x).
- See Also:
Math.abs(long)
-
abs
public static float abs(float x)
- Parameters:
x
- Number.- Returns:
- abs(x).
- See Also:
Math.abs(float)
-
abs
public static double abs(double x)
- Parameters:
x
- Number.- Returns:
- abs(x).
- See Also:
Math.abs(double)
-
acos
public static double acos(double x)
- Parameters:
x
- Number.- Returns:
- acos(x).
- See Also:
Math.acos(double)
-
acosh
public static double acosh(double x)
- Parameters:
x
- Number.- Returns:
- acosh(x).
-
addExact
public static int addExact(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- addExact(x, y).
- See Also:
Math.addExact(int,int)
-
addExact
public static long addExact(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- addExact(x, y).
- See Also:
Math.addExact(long,long)
-
asin
public static double asin(double x)
- Parameters:
x
- Number.- Returns:
- asin(x).
- See Also:
Math.asin(double)
-
asinh
public static double asinh(double x)
- Parameters:
x
- Number.- Returns:
- asinh(x).
-
atan
public static double atan(double x)
- Parameters:
x
- Number.- Returns:
- atan(x).
- See Also:
Math.atan(double)
-
atan2
public static double atan2(double y, double x)
- Parameters:
y
- Number.x
- Number.- Returns:
- atan2(y, x).
- See Also:
Math.atan2(double,double)
-
atanh
public static double atanh(double x)
- Parameters:
x
- Number.- Returns:
- atanh(x).
-
cbrt
public static double cbrt(double x)
- Parameters:
x
- Number.- Returns:
- cbrt(x).
- See Also:
Math.cbrt(double)
-
ceil
public static double ceil(double x)
- Parameters:
x
- Number.- Returns:
- ceil(x).
- See Also:
Math.ceil(double)
-
copySign
public static float copySign(float x, float y)
- Parameters:
x
- Number.y
- Number.- Returns:
- copySign(x, y).
- See Also:
Math.copySign(float,float)
-
copySign
public static double copySign(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- copySign(x, y).
- See Also:
Math.copySign(double,double)
-
cos
public static double cos(double x)
- Parameters:
x
- Number.- Returns:
- cos(x).
- See Also:
Math.cos(double)
-
cosh
public static double cosh(double x)
- Parameters:
x
- Number.- Returns:
- cosh(x).
- See Also:
Math.cosh(double)
-
decrementExact
public static int decrementExact(int x)
- Parameters:
x
- Number.- Returns:
- decrementExact(x).
- See Also:
Math.decrementExact(int)
-
decrementExact
public static long decrementExact(long x)
- Parameters:
x
- Number.- Returns:
- decrementExact(x).
- See Also:
Math.decrementExact(long)
-
exp
public static double exp(double x)
- Parameters:
x
- Number.- Returns:
- exp(x).
- See Also:
Math.exp(double)
-
expm1
public static double expm1(double x)
- Parameters:
x
- Number.- Returns:
- expm1(x).
- See Also:
Math.expm1(double)
-
floor
public static double floor(double x)
- Parameters:
x
- Number.- Returns:
- floor(x).
- See Also:
Math.floor(double)
-
floorDiv
public static int floorDiv(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- floorDiv(x, y).
- See Also:
Math.floorDiv(int,int)
-
floorDiv
public static long floorDiv(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- floorDiv(x, y).
- See Also:
Math.floorDiv(long,long)
-
floorMod
public static int floorMod(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- floorMod(x, y).
- See Also:
Math.floorMod(int,int)
-
floorMod
public static long floorMod(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- floorMod(x, y).
- See Also:
Math.floorMod(long,long)
-
getExponent
public static int getExponent(float x)
- Parameters:
x
- Number.- Returns:
- getExponent(x).
- See Also:
Math.getExponent(float)
-
getExponent
public static int getExponent(double x)
- Parameters:
x
- Number.- Returns:
- getExponent(x).
- See Also:
Math.getExponent(double)
-
hypot
public static double hypot(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- hypot(x, y).
- See Also:
Math.hypot(double,double)
-
IEEEremainder
public static double IEEEremainder(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- IEEEremainder(x, y).
- See Also:
Math.IEEEremainder(double,double)
-
incrementExact
public static int incrementExact(int x)
- Parameters:
x
- Number.- Returns:
- incrementExact(x).
- See Also:
Math.incrementExact(int)
-
incrementExact
public static long incrementExact(long x)
- Parameters:
x
- Number.- Returns:
- incrementExact(x).
- See Also:
Math.incrementExact(long)
-
log
public static double log(double x)
- Parameters:
x
- Number.- Returns:
- log(x).
- See Also:
Math.log(double)
-
log10
public static double log10(double x)
- Parameters:
x
- Number.- Returns:
- log10(x).
- See Also:
Math.log10(double)
-
log1p
public static double log1p(double x)
- Parameters:
x
- Number.- Returns:
- log1p(x).
- See Also:
Math.log1p(double)
-
max
public static int max(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- max(x, y).
- See Also:
Math.max(int,int)
-
max
public static long max(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- max(x, y).
- See Also:
Math.max(long,long)
-
max
public static float max(float x, float y)
- Parameters:
x
- Number.y
- Number.- Returns:
- max(x, y).
- See Also:
Math.max(float,float)
-
max
public static double max(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- max(x, y).
- See Also:
Math.max(double,double)
-
min
public static int min(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- min(x, y).
- See Also:
Math.min(int,int)
-
min
public static long min(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- min(x, y).
- See Also:
Math.min(long,long)
-
min
public static float min(float x, float y)
- Parameters:
x
- Number.y
- Number.- Returns:
- min(x, y).
- See Also:
Math.min(float,float)
-
min
public static double min(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- min(x, y).
- See Also:
Math.min(double,double)
-
multiplyExact
public static int multiplyExact(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- multiplyExact(x, y).
- See Also:
Math.multiplyExact(int,int)
-
multiplyExact
public static long multiplyExact(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- multiplyExact(x, y).
- See Also:
Math.multiplyExact(long,long)
-
negateExact
public static int negateExact(int x)
- Parameters:
x
- Number.- Returns:
- negateExact(x).
- See Also:
Math.negateExact(int)
-
negateExact
public static long negateExact(long x)
- Parameters:
x
- Number.- Returns:
- negateExact(x).
- See Also:
Math.negateExact(long)
-
nextAfter
public static double nextAfter(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- nextAfter(x, y).
- See Also:
Math.nextAfter(double, double)
-
nextAfter
public static float nextAfter(float x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- nextAfter(x, y).
- See Also:
Math.nextAfter(float,double)
-
nextDown
public static double nextDown(double x)
- Parameters:
x
- Number.- Returns:
- nextDown(x).
- See Also:
Math.nextDown(double)
-
nextDown
public static float nextDown(float x)
- Parameters:
x
- Number.- Returns:
- nextDown(x).
- See Also:
Math.nextDown(float)
-
nextUp
public static double nextUp(double x)
- Parameters:
x
- Number.- Returns:
- nextUp(x).
- See Also:
Math.nextUp(double)
-
nextUp
public static float nextUp(float x)
- Parameters:
x
- Number.- Returns:
- nextUp(x).
- See Also:
Math.nextUp(float)
-
pow
public static double pow(double x, double y)
- Parameters:
x
- Number.y
- Number.- Returns:
- pow(x, y).
- See Also:
Math.pow(double,double)
-
random
public static double random()
- Returns:
- a random number between 0 and 1.
- See Also:
Math.random()
-
rint
public static double rint(double x)
- Parameters:
x
- Number.- Returns:
- rint(x).
- See Also:
Math.rint(double)
-
round
public static int round(float x)
- Parameters:
x
- Number.- Returns:
- round(x).
- See Also:
Math.round(float)
-
round
public static long round(double x)
- Parameters:
x
- Number.- Returns:
- round(x).
- See Also:
Math.round(double)
-
scalb
public static double scalb(double x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- scalb(x, y).
- See Also:
Math.scalb(double,int)
-
scalb
public static float scalb(float x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- scalb(x, y).
- See Also:
Math.scalb(float,int)
-
signum
public static double signum(double x)
- Parameters:
x
- Number.- Returns:
- signum(x).
- See Also:
Math.signum(double)
-
signum
public static float signum(float x)
- Parameters:
x
- Number.- Returns:
- signum(x).
- See Also:
Math.signum(float)
-
sin
public static double sin(double x)
- Parameters:
x
- Number.- Returns:
- sin(x).
- See Also:
Math.sin(double)
-
sinh
public static double sinh(double x)
- Parameters:
x
- Number.- Returns:
- sinh(x).
- See Also:
Math.sinh(double)
-
sqrt
public static double sqrt(double x)
- Parameters:
x
- Number.- Returns:
- sqrt(x).
- See Also:
Math.sqrt(double)
-
subtractExact
public static int subtractExact(int x, int y)
- Parameters:
x
- Number.y
- Number.- Returns:
- subtractExact(x, y).
- See Also:
Math.subtractExact(int,int)
-
subtractExact
public static long subtractExact(long x, long y)
- Parameters:
x
- Number.y
- Number.- Returns:
- subtractExact(x, y).
- See Also:
Math.subtractExact(long,long)
-
tan
public static double tan(double x)
- Parameters:
x
- Number.- Returns:
- tan(x).
- See Also:
Math.tan(double)
-
tanh
public static double tanh(double x)
- Parameters:
x
- Number.- Returns:
- tanh(x).
- See Also:
Math.tanh(double)
-
toDegrees
public static double toDegrees(double x)
- Parameters:
x
- Number.- Returns:
- toDegrees(x).
- See Also:
Math.toDegrees(double)
-
toIntExact
public static int toIntExact(long x)
- Parameters:
x
- Number.- Returns:
- toIntExact(x).
- See Also:
Math.toIntExact(long)
-
toRadians
public static double toRadians(double x)
- Parameters:
x
- Number.- Returns:
- toRadians(x).
- See Also:
Math.toRadians(double)
-
ulp
public static double ulp(double x)
- Parameters:
x
- Number.- Returns:
- ulp(x).
- See Also:
Math.ulp(double)
-
ulp
public static float ulp(float x)
- Parameters:
x
- Number.- Returns:
- ulp(x).
- See Also:
Math.ulp(float)
-
-