public final class Utils extends java.lang.Object implements RevisionHandler
Modifier and Type | Field and Description |
---|---|
static double |
log2
The natural logarithm of 2.
|
static double |
SMALL
The small deviation allowed in double comparisons.
|
Constructor and Description |
---|
Utils() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
arrayToString(java.lang.Object array)
Returns the given Array in a string representation.
|
static java.lang.String |
backQuoteChars(java.lang.String string)
Converts carriage returns and new lines in a string into \r and \n.
|
static void |
checkForRemainingOptions(java.lang.String[] options)
Checks if the given array contains any non-empty options.
|
static java.lang.String |
convertNewLines(java.lang.String string)
Converts carriage returns and new lines in a string into \r and \n.
|
static java.io.File |
convertToRelativePath(java.io.File absolute)
Converts a File's absolute path to a path relative to the user (ie start)
directory.
|
static double |
correlation(double[] y1,
double[] y2,
int n)
Returns the correlation coefficient of two double vectors.
|
static java.lang.String |
doubleToString(double value,
int afterDecimalPoint)
Rounds a double and converts it into String.
|
static java.lang.String |
doubleToString(double value,
int width,
int afterDecimalPoint)
Rounds a double and converts it into a formatted decimal-justified String.
|
static boolean |
eq(double a,
double b)
Tests if a is equal to b.
|
static java.lang.Object |
forName(java.lang.Class classType,
java.lang.String className,
java.lang.String[] options)
Creates a new instance of an object given it's class name and (optional)
arguments to pass to it's setOptions method.
|
static java.lang.Class |
getArrayClass(java.lang.Class c)
Returns the basic class of an array class (handles multi-dimensional
arrays).
|
static int |
getArrayDimensions(java.lang.Class array)
Returns the dimensions of the given array.
|
static int |
getArrayDimensions(java.lang.Object array)
Returns the dimensions of the given array.
|
static boolean |
getFlag(char flag,
java.lang.String[] options)
Checks if the given array contains the flag "-Char".
|
static boolean |
getFlag(java.lang.String flag,
java.lang.String[] options)
Checks if the given array contains the flag "-String".
|
static java.lang.String |
getGlobalInfo(java.lang.Object object,
boolean addCapabilities)
Utility method for grabbing the global info help (if it exists) from an
arbitrary object.
|
static java.lang.String |
getOption(char flag,
java.lang.String[] options)
Gets an option indicated by a flag "-Char" from the given array of strings.
|
static java.lang.String |
getOption(java.lang.String flag,
java.lang.String[] options)
Gets an option indicated by a flag "-String" from the given array of
strings.
|
static int |
getOptionPos(char flag,
java.lang.String[] options)
Gets the index of an option or flag indicated by a flag "-Char" from the
given array of strings.
|
static int |
getOptionPos(java.lang.String flag,
java.lang.String[] options)
Gets the index of an option or flag indicated by a flag "-String" from the
given array of strings.
|
java.lang.String |
getRevision()
Returns the revision string.
|
static boolean |
gr(double a,
double b)
Tests if a is greater than b.
|
static boolean |
grOrEq(double a,
double b)
Tests if a is greater or equal to b.
|
static double |
info(int[] counts)
Computes entropy for an array of integers.
|
static java.lang.String |
joinOptions(java.lang.String[] optionArray)
Joins all the options in an option array into a single string, as might be
used on the command line.
|
static double |
kthSmallestValue(double[] array,
int k)
Returns the kth-smallest value in the array
|
static int |
kthSmallestValue(int[] array,
int k)
Returns the kth-smallest value in the array.
|
static java.lang.String |
lineWrap(java.lang.String input,
int maxLineWidth)
Implements simple line breaking.
|
static double |
log2(double a)
Returns the logarithm of a for base 2.
|
static double[] |
logs2probs(double[] a)
Converts an array containing the natural logarithms of probabilities stored
in a vector back into probabilities.
|
static void |
main(java.lang.String[] ops)
Main method for testing this class.
|
static int |
maxIndex(double[] doubles)
Returns index of maximum element in a given array of doubles.
|
static int |
maxIndex(int[] ints)
Returns index of maximum element in a given array of integers.
|
static double |
mean(double[] vector)
Computes the mean for an array of doubles.
|
static int |
minIndex(double[] doubles)
Returns index of minimum element in a given array of doubles.
|
static int |
minIndex(int[] ints)
Returns index of minimum element in a given array of integers.
|
static void |
normalize(double[] doubles)
Normalizes the doubles in the array by their sum.
|
static void |
normalize(double[] doubles,
double sum)
Normalizes the doubles in the array using the given value.
|
static java.lang.String |
padLeft(java.lang.String inString,
int length)
Pads a string to a specified length, inserting spaces on the left as
required.
|
static java.lang.String |
padRight(java.lang.String inString,
int length)
Pads a string to a specified length, inserting spaces on the right as
required.
|
static java.lang.String[] |
partitionOptions(java.lang.String[] options)
Returns the secondary set of options (if any) contained in the supplied
options array.
|
static int |
probRound(double value,
java.util.Random rand)
Rounds a double to the next nearest integer value in a probabilistic
fashion (e.g.
|
static double |
probToLogOdds(double prob)
Returns the log-odds for a given probabilitiy.
|
static java.lang.String |
quote(java.lang.String string)
Quotes a string if it contains special characters.
|
static java.util.Properties |
readProperties(java.lang.String resourceName)
Reads properties that inherit from three locations.
|
static java.lang.String |
removeSubstring(java.lang.String inString,
java.lang.String substring)
Removes all occurrences of a string from another string.
|
static void |
replaceMissingWithMAX_VALUE(double[] array)
Replaces all "missing values" in the given array of double values with
MAX_VALUE.
|
static java.lang.String |
replaceSubstring(java.lang.String inString,
java.lang.String subString,
java.lang.String replaceString)
Replaces with a new string, all occurrences of a string from another
string.
|
static java.lang.String |
revertNewLines(java.lang.String string)
Reverts \r and \n in a string into carriage returns and new lines.
|
static int |
round(double value)
Rounds a double to the next nearest integer value.
|
static double |
roundDouble(double value,
int afterDecimalPoint)
Rounds a double to the given number of decimal places.
|
static boolean |
sm(double a,
double b)
Tests if a is smaller than b.
|
static boolean |
smOrEq(double a,
double b)
Tests if a is smaller or equal to b.
|
static int[] |
sort(double[] array)
Sorts a given array of doubles in ascending order and returns an array of
integers with the positions of the elements of the original array in the
sorted array.
|
static int[] |
sort(int[] array)
Sorts a given array of integers in ascending order and returns an array of
integers with the positions of the elements of the original array in the
sorted array.
|
static int[] |
sortWithNoMissingValues(double[] array)
Sorts a given array of doubles in ascending order and returns an array of
integers with the positions of the elements of the original array in the
sorted array.
|
static java.lang.String[] |
splitOptions(java.lang.String quotedOptionString)
Split up a string containing options into an array of strings, one for each
option.
|
static int[] |
stableSort(double[] array)
Sorts a given array of doubles in ascending order and returns an array of
integers with the positions of the elements of the original array in the
sorted array.
|
static double |
sum(double[] doubles)
Computes the sum of the elements of an array of doubles.
|
static int |
sum(int[] ints)
Computes the sum of the elements of an array of integers.
|
static java.lang.String |
unbackQuoteChars(java.lang.String string)
The inverse operation of backQuoteChars().
|
static java.lang.String |
unquote(java.lang.String string)
unquotes are previously quoted string (but only if necessary), i.e., it
removes the single quotes around it.
|
static double |
variance(double[] vector)
Computes the variance for an array of doubles.
|
static double |
xlogx(int c)
Returns c*log2(c) for a given integer value c.
|
public static double log2
public static double SMALL
public static java.util.Properties readProperties(java.lang.String resourceName) throws java.lang.Exception
resourceName
- the location of the resource that should be loaded.
e.g.: "weka/core/Utils.props". (The use of hardcoded forward
slashes here is OK - see jdk1.1/docs/guide/misc/resources.html)
This routine will also look for the file (in this case)
"Utils.props" in the users home directory and the current
directory.java.lang.Exception
- if no default properties are defined, or if an error
occurs reading the properties files.public static final double correlation(double[] y1, double[] y2, int n)
y1
- double vector 1y2
- double vector 2n
- the length of two double vectorspublic static java.lang.String removeSubstring(java.lang.String inString, java.lang.String substring)
inString
- the string to remove substrings from.substring
- the substring to remove.public static java.lang.String replaceSubstring(java.lang.String inString, java.lang.String subString, java.lang.String replaceString)
inString
- the string to replace substrings in.subString
- the substring to replace.replaceString
- the replacement substringpublic static java.lang.String padLeft(java.lang.String inString, int length)
inString
- the input stringlength
- the desired length of the output stringpublic static java.lang.String padRight(java.lang.String inString, int length)
inString
- the input stringlength
- the desired length of the output stringpublic static java.lang.String doubleToString(double value, int afterDecimalPoint)
value
- the double valueafterDecimalPoint
- the (maximum) number of digits permitted after the
decimal pointpublic static java.lang.String doubleToString(double value, int width, int afterDecimalPoint)
value
- the double valuewidth
- the width of the stringafterDecimalPoint
- the number of digits after the decimal pointpublic static java.lang.Class getArrayClass(java.lang.Class c)
c
- the array to inspectpublic static int getArrayDimensions(java.lang.Class array)
array
- the array to determine the dimensions forpublic static int getArrayDimensions(java.lang.Object array)
array
- the array to determine the dimensions forpublic static java.lang.String arrayToString(java.lang.Object array)
array
- the array to return in a string representationpublic static boolean eq(double a, double b)
a
- a doubleb
- a doublepublic static void checkForRemainingOptions(java.lang.String[] options) throws java.lang.Exception
options
- an array of stringsjava.lang.Exception
- if there are any non-empty optionspublic static boolean getFlag(char flag, java.lang.String[] options) throws java.lang.Exception
flag
- the character indicating the flag.options
- the array of strings containing all the options.java.lang.Exception
- if an illegal option was foundpublic static boolean getFlag(java.lang.String flag, java.lang.String[] options) throws java.lang.Exception
flag
- the String indicating the flag.options
- the array of strings containing all the options.java.lang.Exception
- if an illegal option was foundpublic static java.lang.String getOption(char flag, java.lang.String[] options) throws java.lang.Exception
flag
- the character indicating the option.options
- the array of strings containing all the options.java.lang.Exception
- if the option indicated by the flag can't be foundpublic static java.lang.String getOption(java.lang.String flag, java.lang.String[] options) throws java.lang.Exception
flag
- the String indicating the option.options
- the array of strings containing all the options.java.lang.Exception
- if the option indicated by the flag can't be foundpublic static int getOptionPos(char flag, java.lang.String[] options)
flag
- the character indicating the option.options
- the array of strings containing all the options.public static int getOptionPos(java.lang.String flag, java.lang.String[] options)
flag
- the String indicating the option.options
- the array of strings containing all the options.public static java.lang.String quote(java.lang.String string)
string
- the string to be quotedunquote(String)
public static java.lang.String unquote(java.lang.String string)
string
- the string to processquote(String)
public static java.lang.String backQuoteChars(java.lang.String string)
string
- the stringunbackQuoteChars(String)
public static java.lang.String convertNewLines(java.lang.String string)
string
- the stringpublic static java.lang.String revertNewLines(java.lang.String string)
string
- the stringpublic static java.lang.String[] partitionOptions(java.lang.String[] options)
options
- the input array of optionspublic static java.lang.String unbackQuoteChars(java.lang.String string)
string
- the stringbackQuoteChars(String)
public static java.lang.String[] splitOptions(java.lang.String quotedOptionString) throws java.lang.Exception
quotedOptionString
- the string containing the optionsjava.lang.Exception
- in case of an unterminated string, unknown character or a
parse errorpublic static java.lang.String joinOptions(java.lang.String[] optionArray)
optionArray
- the array of optionspublic static java.lang.Object forName(java.lang.Class classType, java.lang.String className, java.lang.String[] options) throws java.lang.Exception
String classifierName = Utils.getOption('W', options);
Classifier c = (Classifier)Utils.forName(Classifier.class,
classifierName,
options);
setClassifier(c);
classType
- the class that the instantiated object should be
assignable to -- an exception is thrown if this is not the caseclassName
- the fully qualified class name of the objectoptions
- an array of options suitable for passing to setOptions. May
be null. Any options accepted by the object will be removed from
the array.java.lang.Exception
- if the class name is invalid, or if the class is not
assignable to the desired class type, or the options supplied
are not acceptable to the objectpublic static double info(int[] counts)
counts
- array of countspublic static boolean smOrEq(double a, double b)
a
- a doubleb
- a doublepublic static boolean grOrEq(double a, double b)
a
- a doubleb
- a doublepublic static boolean sm(double a, double b)
a
- a doubleb
- a doublepublic static boolean gr(double a, double b)
a
- a doubleb
- a doublepublic static int kthSmallestValue(int[] array, int k)
array
- the array of integersk
- the value of kpublic static double kthSmallestValue(double[] array, int k)
array
- the array of doublek
- the value of kpublic static double log2(double a)
a
- a doublepublic static int maxIndex(double[] doubles)
doubles
- the array of doublespublic static int maxIndex(int[] ints)
ints
- the array of integerspublic static double mean(double[] vector)
vector
- the arraypublic static int minIndex(int[] ints)
ints
- the array of integerspublic static int minIndex(double[] doubles)
doubles
- the array of doublespublic static void normalize(double[] doubles)
doubles
- the array of doublejava.lang.IllegalArgumentException
- if sum is Zero or NaNpublic static void normalize(double[] doubles, double sum)
doubles
- the array of doublesum
- the value by which the doubles are to be normalizedjava.lang.IllegalArgumentException
- if sum is zero or NaNpublic static double[] logs2probs(double[] a)
a
- an array holding the natural logarithms of the probabilitiespublic static double probToLogOdds(double prob)
prob
- the probabilitiypublic static int round(double value)
value
- the double valuepublic static int probRound(double value, java.util.Random rand)
value
- the double valuerand
- the random number generatorpublic static void replaceMissingWithMAX_VALUE(double[] array)
array
- the array to be modified.public static double roundDouble(double value, int afterDecimalPoint)
value
- the double valueafterDecimalPoint
- the number of digits after the decimal pointpublic static int[] sort(int[] array)
array
- this array is not changed by the method!public static int[] sort(double[] array)
array
- this array is not changed by the method!public static int[] sortWithNoMissingValues(double[] array)
array
- the array to be sorted, which is modified if it has missing
valuespublic static int[] stableSort(double[] array)
array
- this array is not changed by the method!public static double variance(double[] vector)
vector
- the arraypublic static double sum(double[] doubles)
doubles
- the array of doublepublic static int sum(int[] ints)
ints
- the array of integerspublic static double xlogx(int c)
c
- an integer valuepublic static java.io.File convertToRelativePath(java.io.File absolute) throws java.lang.Exception
absolute
- the File to convert to relative pathjava.lang.Exception
- if the path cannot be constructedpublic static java.lang.String getGlobalInfo(java.lang.Object object, boolean addCapabilities)
object
- the object to grab global info fromaddCapabilities
- true if capabilities information is to be added to
the resultpublic static java.lang.String lineWrap(java.lang.String input, int maxLineWidth)
input
- the string to line wrapmaxLineWidth
- the maximum permitted number of characters in a linepublic java.lang.String getRevision()
getRevision
in interface RevisionHandler
public static void main(java.lang.String[] ops)
ops
- some dummy options