Package org.joml
Class Math
java.lang.Object
org.joml.Math
Contains fast approximations of some
Math operations.
By default, Math methods will be used by all other JOML classes. In order to use the approximations in this class, start the JVM with the parameter -Djoml.fastmath.
There are two algorithms for approximating sin/cos:
- arithmetic polynomial approximation contributed by roquendm
- theagentd's linear interpolation variant of Riven's algorithm from http://www.java-gaming.org/
-Djoml.sinLookup. The lookup table bit length of the second algorithm can also be adjusted
for improved accuracy via -Djoml.sinLookup.bits=<n>, where <n> is the number of bits of the lookup table.- Author:
- Kai Burjack
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleabs(double r) static floatabs(float r) static intabs(int r) static doubleacos(double r) static floatacos(float r) static doubleasin(double r) static floatasin(float r) static doubleatan2(double y, double x) static floatatan2(float y, float x) static doublebiLerp(double q00, double q10, double q01, double q11, double tx, double ty) static floatbiLerp(float q00, float q10, float q01, float q11, float tx, float ty) static doubleceil(double v) static floatceil(float v) static doubleclamp(double a, double b, double val) static floatclamp(float a, float b, float val) static intclamp(int a, int b, int val) static doublecos(double rad) static floatcos(float rad) static doublecosFromSin(double sin, double angle) static floatcosFromSin(float sin, float angle) static doubleexp(double a) static doublefloor(double v) static floatfloor(float v) static doublefma(double a, double b, double c) static floatfma(float a, float b, float c) static doubleinvsqrt(double r) static floatinvsqrt(float r) static booleanisFinite(double d) static booleanisFinite(float f) static doublelerp(double a, double b, double t) static floatlerp(float a, float b, float t) static doublemax(double a, double b) static floatmax(float a, float b) static intmax(int x, int y) static doublemin(double a, double b) static floatmin(float a, float b) static intmin(int x, int y) static doublerandom()static longround(double v) static intround(float v) static introundHalfDown(double v) static introundHalfDown(float v) static introundHalfEven(double v) static introundHalfEven(float v) static introundHalfUp(double v) static introundHalfUp(float v) static introundUsing(double v, int mode) static introundUsing(float v, int mode) static doublesafeAcos(double v) static floatsafeAcos(float v) static doublesafeAsin(double r) static floatsafeAsin(float r) static doublesignum(double v) static floatsignum(float v) static intsignum(int v) static intsignum(long v) static doublesin(double rad) static floatsin(float rad) static doublesqrt(double r) static floatsqrt(float r) static doubletan(double r) static floattan(float r) static doubletoDegrees(double angles) static doubletoRadians(double angles) static floattoRadians(float angles) static doubletriLerp(double q000, double q100, double q010, double q110, double q001, double q101, double q011, double q111, double tx, double ty, double tz) static floattriLerp(float q000, float q100, float q010, float q110, float q001, float q101, float q011, float q111, float tx, float ty, float tz)
-
Field Details
-
PI
public static final double PI- See Also:
-
-
Constructor Details
-
Math
public Math()
-
-
Method Details
-
sin
public static float sin(float rad) -
sin
public static double sin(double rad) -
cos
public static float cos(float rad) -
cos
public static double cos(double rad) -
cosFromSin
public static float cosFromSin(float sin, float angle) -
cosFromSin
public static double cosFromSin(double sin, double angle) -
sqrt
public static float sqrt(float r) -
sqrt
public static double sqrt(double r) -
invsqrt
public static float invsqrt(float r) -
invsqrt
public static double invsqrt(double r) -
tan
public static float tan(float r) -
tan
public static double tan(double r) -
acos
public static float acos(float r) -
acos
public static double acos(double r) -
safeAcos
public static float safeAcos(float v) -
safeAcos
public static double safeAcos(double v) -
atan2
public static float atan2(float y, float x) -
atan2
public static double atan2(double y, double x) -
asin
public static float asin(float r) -
asin
public static double asin(double r) -
safeAsin
public static float safeAsin(float r) -
safeAsin
public static double safeAsin(double r) -
abs
public static float abs(float r) -
abs
public static double abs(double r) -
abs
public static int abs(int r) -
max
public static int max(int x, int y) -
min
public static int min(int x, int y) -
min
public static double min(double a, double b) -
min
public static float min(float a, float b) -
max
public static float max(float a, float b) -
max
public static double max(double a, double b) -
clamp
public static float clamp(float a, float b, float val) -
clamp
public static double clamp(double a, double b, double val) -
clamp
public static int clamp(int a, int b, int val) -
toRadians
public static float toRadians(float angles) -
toRadians
public static double toRadians(double angles) -
toDegrees
public static double toDegrees(double angles) -
floor
public static double floor(double v) -
floor
public static float floor(float v) -
ceil
public static double ceil(double v) -
ceil
public static float ceil(float v) -
round
public static long round(double v) -
round
public static int round(float v) -
exp
public static double exp(double a) -
isFinite
public static boolean isFinite(double d) -
isFinite
public static boolean isFinite(float f) -
fma
public static float fma(float a, float b, float c) -
fma
public static double fma(double a, double b, double c) -
roundUsing
public static int roundUsing(float v, int mode) -
roundUsing
public static int roundUsing(double v, int mode) -
lerp
public static float lerp(float a, float b, float t) -
lerp
public static double lerp(double a, double b, double t) -
biLerp
public static float biLerp(float q00, float q10, float q01, float q11, float tx, float ty) -
biLerp
public static double biLerp(double q00, double q10, double q01, double q11, double tx, double ty) -
triLerp
public static float triLerp(float q000, float q100, float q010, float q110, float q001, float q101, float q011, float q111, float tx, float ty, float tz) -
triLerp
public static double triLerp(double q000, double q100, double q010, double q110, double q001, double q101, double q011, double q111, double tx, double ty, double tz) -
roundHalfEven
public static int roundHalfEven(float v) -
roundHalfDown
public static int roundHalfDown(float v) -
roundHalfUp
public static int roundHalfUp(float v) -
roundHalfEven
public static int roundHalfEven(double v) -
roundHalfDown
public static int roundHalfDown(double v) -
roundHalfUp
public static int roundHalfUp(double v) -
random
public static double random() -
signum
public static double signum(double v) -
signum
public static float signum(float v) -
signum
public static int signum(int v) -
signum
public static int signum(long v)
-