Package org.ujmp.core.util
Class MathUtil
- java.lang.Object
-
- org.ujmp.core.util.MathUtil
-
public abstract class MathUtil extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private static double[]
COFGAMMALN
private static java.util.List<java.text.DateFormat>
dateFormats
static double
EPSILON
static double
LOG10
static double
LOG2
private static java.util.Random
random
private static java.lang.ThreadLocal<java.util.Random>
randoms
static double
ROOT2PI
private static long
seed
-
Constructor Summary
Constructors Constructor Description MathUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
accuracy(Matrix confusionMatrix)
static double
artanh(double x)
static long
binomialCoefficient(int n, int k)
static java.math.BigInteger
binomialCoefficientBig(int n, int k)
static double[]
collectionToDoubleArray(java.util.Collection<? extends java.lang.Number> numbers)
static int[]
collectionToIntArray(java.util.Collection<? extends java.lang.Number> numbers)
static long[]
collectionToLongArray(java.util.Collection<? extends java.lang.Number> numbers)
static java.math.BigDecimal
divide(java.math.BigDecimal v1, java.math.BigDecimal v2)
static boolean
equals(java.lang.Object o1, java.lang.Object o2)
static double
f1Measure(double precision, double recall)
static double
f1Measure(double tp, double fp, double fn)
static double
f1Measure(Matrix confusionMatrix, long catIndex)
static double
f1MeasureMacro(Matrix confusionMatrix)
static double
f1MeasureMicro(Matrix confusionMatrix)
static long
factorial(int n)
static java.math.BigInteger
factorialBig(int n)
static double
fallout(double tn, double fp)
static double
falseNegativeRate(double fn, double tp)
static double
falsePositiveRate(double fp, double tn)
static double
fBetaMeasure(double beta, double precision, double recall)
static double
gammaln(double x)
from numerical recipes in c (p.static double
gauss(double mean, double sigma, double x)
static java.math.BigDecimal
getBigDecimal(java.lang.Object o)
static java.math.BigInteger
getBigInteger(java.lang.Object o)
static boolean
getBoolean(java.lang.Object o)
static byte
getByte(java.lang.Object o)
static char
getChar(java.lang.Object o)
static java.util.Date
getDate(java.lang.Object o)
static double
getDouble(java.lang.Object o)
static float
getFloat(java.lang.Object o)
static int
getInt(java.lang.Object o)
static long
getLong(java.lang.Object o)
static Matrix
getMatrix(java.lang.Object o)
static java.lang.Object
getObject(java.lang.Object o)
static java.lang.Object
getPreferredObject(java.lang.Object o)
static java.util.Random
getRandom()
static long
getSeed()
static short
getShort(java.lang.Object o)
static boolean
greater(java.math.BigInteger i1, java.math.BigInteger i2)
static java.lang.String
guid()
static int
hash(int h)
static int
hexToInt(java.lang.String hex)
static double
hypot(double a, double b)
sqrt(a^2 + b^2) without under/overflow.static double
ignoreNaN(double v)
static long[]
index2PosColumnMajor(long[] size, long index)
static long[]
index2PosRowMajor(long[] size, long index)
static java.lang.String
intToHex(int i)
static boolean
isDigit(char c)
static boolean
isDiscrete(double number)
static boolean
isEventHappening(double probability)
static boolean
isGreater(java.math.BigDecimal v1, java.math.BigDecimal v2)
static boolean
isNaNOrInfinite(double v)
static boolean
isNaNOrInfinite(java.lang.Object o)
static boolean
isNull(java.lang.Object value)
static boolean
isSign(char c)
static boolean
isSmaller(java.math.BigDecimal v1, java.math.BigDecimal v2)
static double
log10(double d)
static double
log2(double d)
static double[]
logToProbs(double[] logs)
static int
longToInt(long value)
static int
longToIntClip(long value)
static double
max(double[] values)
static int
max(int[] values)
static java.lang.String
md5(byte[] data)
static java.lang.String
md5(java.io.File file)
static java.lang.String
md5(java.io.Serializable o)
static java.lang.String
md5(java.lang.String text)
static int
min(int[] values)
static double[]
minus(double[] values, double value)
static java.math.BigDecimal
minus(java.math.BigDecimal v1, java.math.BigDecimal v2)
static double
negativePredictiveValue(double tn, double fn)
static boolean
nextBoolean()
static double
nextDouble()
static double
nextDouble(double min, double max)
static double
nextGaussian()
static double
nextGaussian(double mean, double sigma)
static int
nextInteger(int max)
static int
nextInteger(int min, int max)
Returns a random value in the desired intervalstatic double
norminv(double p, double mu, double sigma)
static double[]
plus(double[] values, double value)
static java.math.BigDecimal
plus(java.math.BigDecimal v1, java.math.BigDecimal v2)
static long
pos2IndexColumnMajor(long[] size, long[] pos)
static long
pos2IndexRowMajor(long[] size, long[] pos)
static double
positivePredictiveValue(double tp, double fp)
static double
precision(double tp, double fp)
static double
precision(Matrix confusionMatrix, long catIndex)
static double
precisionMacro(Matrix confusionMatrix)
static double
precisionMicro(Matrix confusionMatrix)
static java.util.List<java.lang.Integer>
randPermInt(int startInclusive, int endExclusive)
static java.util.List<java.lang.Long>
randPermLong(long startInclusive, long endExclusive)
static double
recall(double tp, double fn)
static double
recall(Matrix confusionMatrix, long catIndex)
static double
recallMacro(Matrix confusionMatrix)
static double
recallMicro(Matrix confusionMatrix)
static double
round(double value, int decimals)
static int
search(long[] values, int fromIndex, int toIndex, long key)
static double
sensitivity(double tp, double fn)
static double[]
sequenceDouble(double startInclusive, double endExclusive)
static double[]
sequenceDouble(double startInclusive, double endExclusive, double stepsize)
static int[]
sequenceInt(int startInclusive, int endExclusive)
static java.util.List<java.lang.Double>
sequenceListDouble(double startInclusive, double endExclusive)
static java.util.List<java.lang.Double>
sequenceListDouble(double startInclusive, double endExclusive, double stepsize)
static java.util.List<java.lang.Integer>
sequenceListInt(int startInclusive, int endExclusive)
static java.util.List<java.lang.Long>
sequenceListLong(long startInclusive, long endExclusive)
static java.util.List<java.lang.Long>
sequenceListLong(long startInclusive, long endExclusive, long stepsize)
static long[]
sequenceLong(long startInclusive, long endExclusive)
static long[]
sequenceLong(long startInclusive, long endExclusive, long stepsize)
static void
setSeed(long seed)
static boolean
smaller(java.math.BigInteger i1, java.math.BigInteger i2)
static double
specificity(double tn, double fp)
static java.math.BigDecimal
sqrt(java.math.BigDecimal n)
static java.math.BigDecimal
times(java.math.BigDecimal v1, java.math.BigDecimal v2)
static double[]
toDoubleArray(int... intArray)
static double[][]
toDoubleArray(int[]... intArray)
static java.util.List<java.lang.Double>
toDoubleList(double[] numbers)
static java.util.List<java.lang.Double>
toDoubleList(int[] numbers)
static java.util.List<java.lang.Double>
toDoubleList(long[] numbers)
static int[]
toIntArray(long... coordinates)
static long[]
toLongArray(int... coordinates)
static java.util.List<java.lang.Long>
toLongList(int[] numbers)
static java.util.List<java.lang.Long>
toLongList(long[] numbers)
static long
totalCorrect(Matrix confusionMatrix)
static double
trueNegativeRate(double tn, double fp)
static boolean
xor(boolean b1, boolean b2)
-
-
-
Field Detail
-
dateFormats
private static java.util.List<java.text.DateFormat> dateFormats
-
EPSILON
public static final double EPSILON
- See Also:
- Constant Field Values
-
ROOT2PI
public static final double ROOT2PI
-
LOG10
public static final double LOG10
-
LOG2
public static final double LOG2
-
COFGAMMALN
private static final double[] COFGAMMALN
-
seed
private static long seed
-
randoms
private static final java.lang.ThreadLocal<java.util.Random> randoms
-
random
private static final java.util.Random random
-
-
Method Detail
-
getRandom
public static java.util.Random getRandom()
-
md5
public static java.lang.String md5(java.lang.String text) throws java.security.NoSuchAlgorithmException
- Throws:
java.security.NoSuchAlgorithmException
-
search
public static final int search(long[] values, int fromIndex, int toIndex, long key)
-
md5
public static java.lang.String md5(byte[] data)
-
md5
public static java.lang.String md5(java.io.File file) throws java.security.NoSuchAlgorithmException, java.io.IOException
- Throws:
java.security.NoSuchAlgorithmException
java.io.IOException
-
md5
public static java.lang.String md5(java.io.Serializable o) throws java.security.NoSuchAlgorithmException, java.io.IOException
- Throws:
java.security.NoSuchAlgorithmException
java.io.IOException
-
xor
public static final boolean xor(boolean b1, boolean b2)
-
logToProbs
public static double[] logToProbs(double[] logs)
-
plus
public static double[] plus(double[] values, double value)
-
minus
public static double[] minus(double[] values, double value)
-
getSeed
public static final long getSeed()
-
round
public static final double round(double value, int decimals)
-
setSeed
public static void setSeed(long seed)
-
log2
public static final double log2(double d)
-
log10
public static final double log10(double d)
-
hash
public static int hash(int h)
-
gauss
public static final double gauss(double mean, double sigma, double x)
-
artanh
public static final double artanh(double x)
-
nextGaussian
public static final double nextGaussian(double mean, double sigma)
-
nextGaussian
public static final double nextGaussian()
-
nextDouble
public static final double nextDouble(double min, double max)
-
nextInteger
public static final int nextInteger(int min, int max)
Returns a random value in the desired interval- Parameters:
min
- minimum value (inclusive)max
- maximum value (exclusive)- Returns:
- a random value
-
nextInteger
public static final int nextInteger(int max)
-
isEventHappening
public static boolean isEventHappening(double probability)
-
nextBoolean
public static boolean nextBoolean()
-
nextDouble
public static double nextDouble()
-
ignoreNaN
public static final double ignoreNaN(double v)
-
isNaNOrInfinite
public static final boolean isNaNOrInfinite(double v)
-
isNaNOrInfinite
public static final boolean isNaNOrInfinite(java.lang.Object o)
-
getMatrix
public static final Matrix getMatrix(java.lang.Object o)
-
getDate
public static final java.util.Date getDate(java.lang.Object o)
-
getDouble
public static final double getDouble(java.lang.Object o)
-
hypot
public static final double hypot(double a, double b)
sqrt(a^2 + b^2) without under/overflow.
-
collectionToLongArray
public static final long[] collectionToLongArray(java.util.Collection<? extends java.lang.Number> numbers)
-
collectionToDoubleArray
public static final double[] collectionToDoubleArray(java.util.Collection<? extends java.lang.Number> numbers)
-
collectionToIntArray
public static final int[] collectionToIntArray(java.util.Collection<? extends java.lang.Number> numbers)
-
toLongList
public static java.util.List<java.lang.Long> toLongList(long[] numbers)
-
toLongList
public static java.util.List<java.lang.Long> toLongList(int[] numbers)
-
toDoubleList
public static java.util.List<java.lang.Double> toDoubleList(double[] numbers)
-
toDoubleList
public static java.util.List<java.lang.Double> toDoubleList(int[] numbers)
-
toDoubleList
public static java.util.List<java.lang.Double> toDoubleList(long[] numbers)
-
toDoubleArray
public static double[] toDoubleArray(int... intArray)
-
toDoubleArray
public static double[][] toDoubleArray(int[]... intArray)
-
sequenceListLong
public static java.util.List<java.lang.Long> sequenceListLong(long startInclusive, long endExclusive)
-
sequenceListLong
public static java.util.List<java.lang.Long> sequenceListLong(long startInclusive, long endExclusive, long stepsize)
-
sequenceListDouble
public static java.util.List<java.lang.Double> sequenceListDouble(double startInclusive, double endExclusive)
-
sequenceListDouble
public static java.util.List<java.lang.Double> sequenceListDouble(double startInclusive, double endExclusive, double stepsize)
-
sequenceListInt
public static java.util.List<java.lang.Integer> sequenceListInt(int startInclusive, int endExclusive)
-
sequenceLong
public static long[] sequenceLong(long startInclusive, long endExclusive)
-
sequenceLong
public static long[] sequenceLong(long startInclusive, long endExclusive, long stepsize)
-
sequenceDouble
public static double[] sequenceDouble(double startInclusive, double endExclusive)
-
sequenceDouble
public static double[] sequenceDouble(double startInclusive, double endExclusive, double stepsize)
-
sequenceInt
public static int[] sequenceInt(int startInclusive, int endExclusive)
-
randPermLong
public static java.util.List<java.lang.Long> randPermLong(long startInclusive, long endExclusive)
-
randPermInt
public static java.util.List<java.lang.Integer> randPermInt(int startInclusive, int endExclusive)
-
equals
public static boolean equals(java.lang.Object o1, java.lang.Object o2)
-
sensitivity
public static double sensitivity(double tp, double fn)
-
specificity
public static double specificity(double tn, double fp)
-
positivePredictiveValue
public static double positivePredictiveValue(double tp, double fp)
-
negativePredictiveValue
public static double negativePredictiveValue(double tn, double fn)
-
falsePositiveRate
public static double falsePositiveRate(double fp, double tn)
-
falseNegativeRate
public static double falseNegativeRate(double fn, double tp)
-
recall
public static double recall(double tp, double fn)
-
precision
public static double precision(double tp, double fp)
-
fallout
public static double fallout(double tn, double fp)
-
trueNegativeRate
public static double trueNegativeRate(double tn, double fp)
-
f1Measure
public static double f1Measure(double precision, double recall)
-
fBetaMeasure
public static double fBetaMeasure(double beta, double precision, double recall)
-
getPreferredObject
public static java.lang.Object getPreferredObject(java.lang.Object o)
-
getBoolean
public static boolean getBoolean(java.lang.Object o)
-
getByte
public static byte getByte(java.lang.Object o)
-
getBigInteger
public static java.math.BigInteger getBigInteger(java.lang.Object o)
-
getBigDecimal
public static java.math.BigDecimal getBigDecimal(java.lang.Object o)
-
getChar
public static char getChar(java.lang.Object o)
-
getFloat
public static float getFloat(java.lang.Object o)
-
getObject
public static java.lang.Object getObject(java.lang.Object o)
-
getInt
public static int getInt(java.lang.Object o)
-
getLong
public static long getLong(java.lang.Object o)
-
getShort
public static short getShort(java.lang.Object o)
-
toIntArray
public static int[] toIntArray(long... coordinates)
-
toLongArray
public static long[] toLongArray(int... coordinates)
-
isNull
public static boolean isNull(java.lang.Object value)
-
norminv
public static double norminv(double p, double mu, double sigma)
-
f1Measure
public static double f1Measure(double tp, double fp, double fn)
-
factorial
public static final long factorial(int n)
-
factorialBig
public static final java.math.BigInteger factorialBig(int n)
-
binomialCoefficient
public static final long binomialCoefficient(int n, int k)
-
binomialCoefficientBig
public static final java.math.BigInteger binomialCoefficientBig(int n, int k)
-
greater
public static final boolean greater(java.math.BigInteger i1, java.math.BigInteger i2)
-
smaller
public static final boolean smaller(java.math.BigInteger i1, java.math.BigInteger i2)
-
max
public static int max(int[] values)
-
max
public static double max(double[] values)
-
min
public static int min(int[] values)
-
plus
public static final java.math.BigDecimal plus(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
minus
public static final java.math.BigDecimal minus(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
times
public static final java.math.BigDecimal times(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
divide
public static final java.math.BigDecimal divide(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
isGreater
public static boolean isGreater(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
isSmaller
public static boolean isSmaller(java.math.BigDecimal v1, java.math.BigDecimal v2)
-
sqrt
public static final java.math.BigDecimal sqrt(java.math.BigDecimal n)
-
gammaln
public static final double gammaln(double x)
from numerical recipes in c (p. 214)
-
pos2IndexRowMajor
public static final long pos2IndexRowMajor(long[] size, long[] pos)
-
pos2IndexColumnMajor
public static final long pos2IndexColumnMajor(long[] size, long[] pos)
-
index2PosRowMajor
public static final long[] index2PosRowMajor(long[] size, long index)
-
index2PosColumnMajor
public static final long[] index2PosColumnMajor(long[] size, long index)
-
totalCorrect
public static final long totalCorrect(Matrix confusionMatrix)
-
accuracy
public static final double accuracy(Matrix confusionMatrix)
-
precisionMacro
public static double precisionMacro(Matrix confusionMatrix)
-
recallMacro
public static double recallMacro(Matrix confusionMatrix)
-
f1MeasureMacro
public static double f1MeasureMacro(Matrix confusionMatrix)
-
precision
public static double precision(Matrix confusionMatrix, long catIndex)
-
recall
public static double recall(Matrix confusionMatrix, long catIndex)
-
f1Measure
public static double f1Measure(Matrix confusionMatrix, long catIndex)
-
precisionMicro
public static double precisionMicro(Matrix confusionMatrix)
-
recallMicro
public static double recallMicro(Matrix confusionMatrix)
-
f1MeasureMicro
public static double f1MeasureMicro(Matrix confusionMatrix)
-
longToIntClip
public static final int longToIntClip(long value)
-
longToInt
public static final int longToInt(long value)
-
isDigit
public static boolean isDigit(char c)
-
isSign
public static boolean isSign(char c)
-
hexToInt
public static int hexToInt(java.lang.String hex)
-
intToHex
public static java.lang.String intToHex(int i)
-
isDiscrete
public static boolean isDiscrete(double number)
-
guid
public static java.lang.String guid()
-
-