Class 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 interval
      static 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)  
      • Methods inherited from class java.lang.Object

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

      • dateFormats

        private static java.util.List<java.text.DateFormat> dateFormats
      • 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
    • Constructor Detail

      • MathUtil

        public MathUtil()
    • 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()