public final class MathUtils extends Object
ArithmeticUtils
,
Precision
,
MathArrays
Modifier and Type | Field and Description |
---|---|
static double |
DEG_TO_RAD
π/180.
|
static double |
HALF_CIRCLE
180.
|
static double |
HALF_PI
π/2.
|
static double |
RAD_TO_DEG
180/π.
|
static double |
TWO_PI
2 π.
|
Modifier and Type | Method and Description |
---|---|
static void |
checkFinite(double x)
Check that the argument is a real number.
|
static void |
checkFinite(double[] val)
Check that all the elements are real numbers.
|
static void |
checkNotNull(Object o)
Checks that an object is not null.
|
static void |
checkNotNull(Object o,
Localizable pattern,
Object... args)
Checks that an object is not null.
|
static boolean |
containsNaN(double... values)
Evaluate if the given values describe at least one
Double.NaN . |
static byte |
copySign(byte magnitude,
byte sign)
Returns the first argument with the sign of the second argument.
|
static int |
copySign(int magnitude,
int sign)
Returns the first argument with the sign of the second argument.
|
static long |
copySign(long magnitude,
long sign)
Returns the first argument with the sign of the second argument.
|
static double |
findSmallestOffset(double nb,
Double a,
Double b)
Among 2 values, determines the smallest relative distance to a given number.
|
static int |
hash(double value)
Returns an integer hash code representing the given double value.
|
static int |
hash(double[] value)
Returns an integer hash code representing the given double array.
|
static double |
normalizeAngle(double a,
double center)
Normalize an angle in a 2&pi wide interval around a center value.
|
static double |
reduce(double a,
double period,
double offset)
Reduce
|a - offset| to the primary interval [0, |period|) . |
static double[] |
solveQuadraticEquation(double aCoefficient,
double bCoefficient,
double cCoefficient)
Calculation of a quadratic equation (ax^2 + bx + c) and return the positive root
|
static double |
solveQuadraticEquationMaxRoot(double aCoefficient,
double bCoefficient,
double cCoefficient)
Calculation of a quadratic equation (ax^2 + bx + c) and return the positive root
|
static double |
solveQuadraticEquationMinRoot(double aCoefficient,
double bCoefficient,
double cCoefficient)
Calculation of a quadratic equation (ax^2 + bx + c) and return the positive root
|
public static final double TWO_PI
public static final double HALF_PI
public static final double HALF_CIRCLE
public static final double DEG_TO_RAD
public static final double RAD_TO_DEG
public static int hash(double value)
value
- the value to be hashedpublic static int hash(double[] value)
value
- the value to be hashed (may be null)public static double normalizeAngle(double a, double center)
This method has three main uses:
a = MathUtils.normalizeAngle(a, FastMath.PI);
a = MathUtils.normalizeAngle(a, 0.0);
angle = MathUtils.normalizeAngle(end, start) - start;
Note that due to numerical accuracy and since π cannot be represented exactly, the result interval is closed, it cannot be half-closed as would be more satisfactory in a purely mathematical view.
a
- angle to normalizecenter
- center of the desired 2π interval for the resultpublic static double reduce(double a, double period, double offset)
Reduce |a - offset|
to the primary interval [0, |period|)
.
Specifically, the value returned is
a - |period| * floor((a - offset) / |period|) - offset
.
If any of the parameters are NaN
or infinite, the result is NaN
.
a
- Value to reduce.period
- Period.offset
- Value that will be mapped to 0
.[0 |period|)
,
that corresponds to a
.public static byte copySign(byte magnitude, byte sign)
magnitude
- Magnitude of the returned value.sign
- Sign of the returned value.magnitude
and with the
same sign as the sign
argument.MathArithmeticException
- if magnitude == Byte.MIN_VALUE
and sign >= 0
.public static int copySign(int magnitude, int sign)
magnitude
- Magnitude of the returned value.sign
- Sign of the returned value.magnitude
and with the
same sign as the sign
argument.MathArithmeticException
- if magnitude == Integer.MIN_VALUE
and sign >= 0
.public static long copySign(long magnitude, long sign)
magnitude
- Magnitude of the returned value.sign
- Sign of the returned value.magnitude
and with the
same sign as the sign
argument.MathArithmeticException
- if magnitude == Long.MIN_VALUE
and sign >= 0
.public static void checkFinite(double x)
x
- Argument.NotFiniteNumberException
- if x
is not a
finite real number.public static void checkFinite(double[] val)
val
- Arguments.NotFiniteNumberException
- if any values of the array is not a
finite real number.public static void checkNotNull(Object o, Localizable pattern, Object... args)
o
- Object to be checked.pattern
- Message pattern.args
- Arguments to replace the placeholders in pattern
.NullArgumentException
- if o
is null
.public static void checkNotNull(Object o)
o
- Object to be checked.NullArgumentException
- if o
is null
.public static double[] solveQuadraticEquation(double aCoefficient, double bCoefficient, double cCoefficient)
aCoefficient
- - a CoefficientbCoefficient
- - b CoefficientcCoefficient
- - c Coefficientpublic static double solveQuadraticEquationMaxRoot(double aCoefficient, double bCoefficient, double cCoefficient)
aCoefficient
- - a CoefficientbCoefficient
- - b CoefficientcCoefficient
- - c Coefficientpublic static double solveQuadraticEquationMinRoot(double aCoefficient, double bCoefficient, double cCoefficient)
aCoefficient
- - a CoefficientbCoefficient
- - b CoefficientcCoefficient
- - c Coefficientpublic static double findSmallestOffset(double nb, Double a, Double b)
nb
- the given numbera
- the first valueb
- the second valuepublic static boolean containsNaN(double... values)
Double.NaN
.
This method should be used when multiple Double.NaN
evaluations are performed to reduce the complexity.
values
- Values to evaluatetrue
if at least one value is Double.NaN
, false
if all values aren't
Double.NaN
Copyright © 2023 CNES. All rights reserved.