public class MathUtils extends java.lang.Object
Constructor and Description |
---|
MathUtils() |
Modifier and Type | Method and Description |
---|---|
static double |
aggregate(java.util.Collection<? extends java.lang.Number> values,
EAggregationStrategy aggregation)
Aggregate collections of values with a given aggregation strategy.
|
static int |
choose(long n,
long k)
Calculates the number of choices for k from n elements, also known as
binomial coefficients.
|
static double |
constrainValue(double value,
double min,
double max)
Constrains the given value, if it exceeds the given minimum or maximum.
|
static int |
constrainValue(int value,
int min,
int max)
Constrains the given value, if it exceeds the given minimum or maximum.
|
static long |
factorial(int n)
Computes the factorial of n.
|
static boolean |
isNormal(double number)
Checks if the provided number is neither infinite nor NaN.
|
static double |
max(java.util.Collection<? extends java.lang.Number> collection)
Find maximum.
|
static double |
mean(java.util.Collection<? extends java.lang.Number> collection)
Find mean.
|
static double |
median(java.util.Collection<? extends java.lang.Number> collection)
Find median.
|
static double |
min(java.util.Collection<? extends java.lang.Number> collection)
Find minimum.
|
static double |
percentile25(java.util.Collection<? extends java.lang.Number> collection)
Find the 25-percentile.
|
static double |
percentile75(java.util.Collection<? extends java.lang.Number> collection)
Find the 75-percentile.
|
static void |
printBasicDescriptiveStatistics(java.util.Collection<? extends java.lang.Number> values)
Prints the min, max, mean, percentile25, median, and percentile75 of the
given values to System.out.
|
static void |
printBasicDescriptiveStatistics(java.util.Collection<? extends java.lang.Number> values,
java.io.PrintStream printStream)
Prints the min, max, sum, mean, percentile25, median, and percentile75 of
the given values to the given
PrintStream . |
static CounterSet<Range> |
rangeDistribution(java.util.List<java.lang.Double> values,
java.util.Set<Range> ranges)
Computes a distribution of the given list of values and the given ranges.
|
static double |
stdDev(java.util.Collection<? extends java.lang.Number> collection,
boolean sample)
Calculate standard deviation of the data set.
|
static double |
sum(java.util.Collection<? extends java.lang.Number> collection)
Sum values.
|
static double |
variance(java.util.Collection<? extends java.lang.Number> collection,
boolean sample)
Calculate variance of the data set.
|
public MathUtils()
public static double sum(java.util.Collection<? extends java.lang.Number> collection)
SumAggregator
,
EAggregationStrategy.SUM
public static double max(java.util.Collection<? extends java.lang.Number> collection)
MaxAggregator
,
EAggregationStrategy.MAX
public static double min(java.util.Collection<? extends java.lang.Number> collection)
MinAggregator
,
EAggregationStrategy.MIN
public static double mean(java.util.Collection<? extends java.lang.Number> collection)
Double.NaN
for empty input collectionMeanAggregator
,
EAggregationStrategy.MEAN
public static double median(java.util.Collection<? extends java.lang.Number> collection)
Double.NaN
for empty input collectionPercentileAggregator
,
EAggregationStrategy.MEDIAN
public static double percentile25(java.util.Collection<? extends java.lang.Number> collection)
Double.NaN
for empty input collectionPercentileAggregator
,
EAggregationStrategy.MEDIAN
public static double percentile75(java.util.Collection<? extends java.lang.Number> collection)
Double.NaN
for empty input collectionPercentileAggregator
,
EAggregationStrategy.MEDIAN
public static double variance(java.util.Collection<? extends java.lang.Number> collection, boolean sample)
sample
- if true sample variance is calculated, population variance
otherwisepublic static double stdDev(java.util.Collection<? extends java.lang.Number> collection, boolean sample)
sample
- if true sample standard deviation is calculated, population
variance otherwisepublic static double aggregate(java.util.Collection<? extends java.lang.Number> values, EAggregationStrategy aggregation)
Double.NaN
for
empty input collectionspublic static long factorial(int n)
public static boolean isNormal(double number)
public static int choose(long n, long k)
public static CounterSet<Range> rangeDistribution(java.util.List<java.lang.Double> values, java.util.Set<Range> ranges)
It is not checked whether the ranges are disjoint. Moreover, it is not checked whether every value can be mapped to a range. Thus, the resulting counter set may have an overall value that is less than or greater than the size of the list of given values.
public static void printBasicDescriptiveStatistics(java.util.Collection<? extends java.lang.Number> values)
public static void printBasicDescriptiveStatistics(java.util.Collection<? extends java.lang.Number> values, java.io.PrintStream printStream)
PrintStream
.public static int constrainValue(int value, int min, int max)
public static double constrainValue(double value, double min, double max)