JavaGenes, NASA Ames. Written largely by Al Globus

gov.nasa.alsUtility
Class Utility

java.lang.Object
  extended bygov.nasa.alsUtility.Utility

public class Utility
extends java.lang.Object

Miscellaneous useful functions.


Constructor Summary
Utility()
           
 
Method Summary
static boolean areDifferent(int[] array)
           
static boolean areDifferent(int[] array, int upToIndex)
           
static boolean areDifferent(java.lang.Object[] array)
           
static boolean areDifferent(java.lang.Object[] array, boolean ignoreNull)
           
static int arraySum(int[] array)
           
static java.lang.String arrayToTabSeparated(double[] array)
           
static java.lang.String arrayToTabSeparated(java.lang.String[] array)
           
static java.lang.String[] concatenate(java.lang.String[] array1, java.lang.String[] array2)
           
static boolean containsBadNumbers(double[] d)
          does d contain any numbers that aren't normal?
static boolean[] copy(boolean[] in)
           
static double[] copy(double[] in)
           
static double[][] copy(double[][] in)
           
static double[][][] copy(double[][][] in)
           
static int[] copy(int[] in)
           
static java.lang.String[] copy(java.lang.String[] in)
           
static java.lang.String date()
           
static long date2seconds(java.util.Date date)
           
static void debugPrint(java.lang.String s)
           
static void debugPrintln(java.lang.String s)
           
static double degrees2radians(double degrees)
           
static void deleteFile(java.lang.String filename)
           
static double doubleArraySum(double[] array)
           
static double doubleValue(java.lang.Object aDouble)
           
static double doubleValue(java.util.Vector ofDoubles, int index)
           
static boolean equals(int[] a, int[] b)
           
static java.lang.String[] file2StringArray(java.lang.String filename)
           
static java.lang.String fileSeparator()
           
static double fixDouble(double x)
          convert a double to something that is a specific number.
static java.lang.Class getClass(java.lang.String name)
           
static java.lang.String getFirstLineOfFile(java.lang.String filename)
           
static java.lang.String getLastLineOfFile(java.lang.String filename)
           
static java.lang.Object getSerialized(java.lang.String filename)
           
static java.lang.Object getSerialized(java.net.URL url)
           
static java.lang.String[] getStringKeys(java.util.Hashtable table)
           
static boolean hasNormalNumbers(Vector3d v)
           
static int indexOfGreatest(double[] a)
           
static int indexOfLeast(double[] a)
           
static boolean isAscending(int[] array)
           
static boolean isEqual(int[] x, int[] y)
           
static boolean isEqual(java.lang.String[] x, java.lang.String[] y)
           
static boolean isEven(int i)
           
static boolean isOdd(int i)
           
static boolean isPositive(double[] array)
           
static double largestAbsoluteValue(double[] d)
           
static boolean lessThanOrEqual(double[] less, double[] more)
           
static boolean lessThanOrEqual(double smaller, double larger)
           
static java.lang.String lineSeparator()
           
static java.lang.String list2String(java.util.List list)
           
static void makeDirectory(java.lang.String d)
           
static void makeFile(java.lang.String filename, java.lang.String message)
          make a file with a string in it, end with an additional "\n"
static void makeFile(java.lang.String filename, java.lang.String[] contents)
          make a file with one line per string in it
static void makeFileNoCR(java.lang.String filename, java.lang.String contents)
           
static int makeSequentialNumber(int i)
          Make a number that, when used as a filename, will print out sequential with others (i.e., is in ASCII order as well as numerical order) by inserting leading zeros.
static ExtendedVector makeVector(double[] array)
           
static void multiply(double[][][] array, double factor)
           
static void multiply(double[][] array, double factor)
           
static void multiply(double[] array, double factor)
           
static boolean nearlyEqual(double[][][] a, double[][][] b)
           
static boolean nearlyEqual(double[][] a, double[][] b)
           
static boolean nearlyEqual(double[] x, double[] y)
           
static boolean nearlyEqual(double x, double y)
           
static boolean nearlyEqual(double x, double y, double epsilon)
          will always return false for values of opposite sign
static boolean nearlyEqual(Vector3d a, Vector3d b)
           
static java.lang.Object newInstance(java.lang.Object object)
           
static java.lang.Object newInstance(java.lang.Object instance, java.lang.Object argument)
          probably doesn't work.
static java.lang.Object newInstance(java.lang.String className)
           
static boolean normalNumber(double x)
          is this number a regular number? I.e., not NaN or infinity.
static int numberOfThisCharInString(java.lang.String string, char c)
           
static java.io.PrintWriter outputFile(java.lang.String filename)
           
static double power(double x, int p)
           
static void printIntArray(int[] array)
           
static double radians2degrees(double radians)
           
static void randomize(int[] array)
          will be slow on large arrays.
static java.lang.String readOneLineFile(java.lang.String filename)
           
static java.lang.String[] removeDuplicates(java.lang.String[] strings)
           
static void removeFile(java.lang.String filename)
           
static boolean sameDimensions(double[][][] a, double[][][] b)
           
static boolean sameDimensions(double[][] a, double[][] b)
           
static boolean sameDimensions(double[] a, double[] b)
           
static void serialize(java.io.Serializable object, java.lang.String filename)
          serialize object and put it in filename
static void setPermissions(java.lang.String file, java.lang.String permissions)
          sets the permissions of file to permissions using chmod.
static void setToConstant(double[][][] array, double value)
           
static void setToConstant(double[][] array, double value)
           
static void setToConstant(double[] array, double value)
           
static int signOf(double value)
           
static java.lang.String simpleClassName(java.lang.String fullClassName)
          probably doesn't work.
static void sort(int[] array)
          sort array using a bubble sort
static void sortArray(long[] array)
          sort array using a bubble sort
static void sortVectorOfDouble(java.util.Vector vector)
           
static java.util.Date stkDateString2Date(java.lang.String stkDateString)
           
static boolean string2boolean(java.lang.String string)
           
static double string2double(java.lang.String string)
           
static int string2integer(java.lang.String string)
           
static long string2long(java.lang.String string)
           
static java.lang.String stringSeparator()
           
static java.lang.String tabSeparatedString(java.util.Vector v)
           
static double TanimotoDistance(double x, double y)
           
static double TanimotoDistanceOneSideOfZero(double x, double y)
           
static double[] toArrayOfDoubleValues(java.util.Vector ofDoubles)
           
static java.lang.String toString(boolean[] array)
           
static java.lang.String toString(double[] array)
           
static java.lang.String toString(double[][] array)
           
static java.lang.String toString(double[][][] array)
           
static java.lang.String toString(double[][][][] array)
           
static java.lang.String toString(int[] array)
           
static java.lang.String toString(java.lang.Object[] array)
           
static boolean twoNearlyEqual(double[] x)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Utility

public Utility()
Method Detail

concatenate

public static java.lang.String[] concatenate(java.lang.String[] array1,
                                             java.lang.String[] array2)

indexOfLeast

public static int indexOfLeast(double[] a)

indexOfGreatest

public static int indexOfGreatest(double[] a)

sameDimensions

public static boolean sameDimensions(double[][][] a,
                                     double[][][] b)

sameDimensions

public static boolean sameDimensions(double[][] a,
                                     double[][] b)

sameDimensions

public static boolean sameDimensions(double[] a,
                                     double[] b)

setToConstant

public static void setToConstant(double[][][] array,
                                 double value)

setToConstant

public static void setToConstant(double[][] array,
                                 double value)

setToConstant

public static void setToConstant(double[] array,
                                 double value)

multiply

public static void multiply(double[][][] array,
                            double factor)

multiply

public static void multiply(double[][] array,
                            double factor)

multiply

public static void multiply(double[] array,
                            double factor)

copy

public static double[][][] copy(double[][][] in)

copy

public static double[][] copy(double[][] in)

copy

public static double[] copy(double[] in)

copy

public static int[] copy(int[] in)

copy

public static java.lang.String[] copy(java.lang.String[] in)

copy

public static boolean[] copy(boolean[] in)

printIntArray

public static void printIntArray(int[] array)

randomize

public static void randomize(int[] array)
will be slow on large arrays. Algorithm is O(n^2)


signOf

public static int signOf(double value)
Returns:
0 if value == 0, -1 if value < 0, 1 otherwise

arraySum

public static int arraySum(int[] array)

doubleArraySum

public static double doubleArraySum(double[] array)

getFirstLineOfFile

public static java.lang.String getFirstLineOfFile(java.lang.String filename)

getLastLineOfFile

public static java.lang.String getLastLineOfFile(java.lang.String filename)

deleteFile

public static void deleteFile(java.lang.String filename)

stkDateString2Date

public static java.util.Date stkDateString2Date(java.lang.String stkDateString)

date2seconds

public static long date2seconds(java.util.Date date)
Returns:
number of seconds date represents. Throws away any spare milliseconds.

areDifferent

public static boolean areDifferent(int[] array)

areDifferent

public static boolean areDifferent(int[] array,
                                   int upToIndex)
Parameters:
upToIndex - check the array up to this index (inclusive)

areDifferent

public static boolean areDifferent(java.lang.Object[] array)

areDifferent

public static boolean areDifferent(java.lang.Object[] array,
                                   boolean ignoreNull)

removeDuplicates

public static java.lang.String[] removeDuplicates(java.lang.String[] strings)

lessThanOrEqual

public static boolean lessThanOrEqual(double[] less,
                                      double[] more)

readOneLineFile

public static java.lang.String readOneLineFile(java.lang.String filename)

list2String

public static java.lang.String list2String(java.util.List list)

file2StringArray

public static java.lang.String[] file2StringArray(java.lang.String filename)

numberOfThisCharInString

public static int numberOfThisCharInString(java.lang.String string,
                                           char c)

TanimotoDistance

public static double TanimotoDistance(double x,
                                      double y)

TanimotoDistanceOneSideOfZero

public static double TanimotoDistanceOneSideOfZero(double x,
                                                   double y)

nearlyEqual

public static boolean nearlyEqual(Vector3d a,
                                  Vector3d b)

nearlyEqual

public static boolean nearlyEqual(double x,
                                  double y)

lessThanOrEqual

public static boolean lessThanOrEqual(double smaller,
                                      double larger)

isPositive

public static boolean isPositive(double[] array)

nearlyEqual

public static boolean nearlyEqual(double x,
                                  double y,
                                  double epsilon)
will always return false for values of opposite sign


nearlyEqual

public static boolean nearlyEqual(double[][][] a,
                                  double[][][] b)

nearlyEqual

public static boolean nearlyEqual(double[][] a,
                                  double[][] b)

nearlyEqual

public static boolean nearlyEqual(double[] x,
                                  double[] y)

twoNearlyEqual

public static boolean twoNearlyEqual(double[] x)
Returns:
true if at least two elements of x[] are nearlyEqual()

isEqual

public static boolean isEqual(java.lang.String[] x,
                              java.lang.String[] y)

isEqual

public static boolean isEqual(int[] x,
                              int[] y)

degrees2radians

public static double degrees2radians(double degrees)

radians2degrees

public static double radians2degrees(double radians)

newInstance

public static java.lang.Object newInstance(java.lang.Object object)
Returns:
a new instance using the no arguments constructor of the class object is an instance of

newInstance

public static java.lang.Object newInstance(java.lang.String className)
Returns:
a new instance using the no arguments constructor of the class className

newInstance

public static java.lang.Object newInstance(java.lang.Object instance,
                                           java.lang.Object argument)
probably doesn't work. Don't use.

Returns:
a new instance with the same class as instance. Use the instructor that takes parameter argument

string2boolean

public static boolean string2boolean(java.lang.String string)

string2integer

public static int string2integer(java.lang.String string)

string2long

public static long string2long(java.lang.String string)

string2double

public static double string2double(java.lang.String string)

toArrayOfDoubleValues

public static double[] toArrayOfDoubleValues(java.util.Vector ofDoubles)

doubleValue

public static double doubleValue(java.util.Vector ofDoubles,
                                 int index)

doubleValue

public static double doubleValue(java.lang.Object aDouble)

isOdd

public static boolean isOdd(int i)

isEven

public static boolean isEven(int i)

getStringKeys

public static java.lang.String[] getStringKeys(java.util.Hashtable table)
Parameters:
table - a hashtable with String keys
Returns:
an array of strings containing the keys to table. They better really be strings!

getClass

public static java.lang.Class getClass(java.lang.String name)

simpleClassName

public static java.lang.String simpleClassName(java.lang.String fullClassName)
probably doesn't work. Don't use.

Parameters:
fullClassName - a (potentially qualified) class name
Returns:
the class name without package information

lineSeparator

public static java.lang.String lineSeparator()
Returns:
the string used to separate lines on the current machine

fileSeparator

public static java.lang.String fileSeparator()
Returns:
the string used to separate filenames and directories on the current machine

stringSeparator

public static java.lang.String stringSeparator()
Returns:
"/"

sortArray

public static void sortArray(long[] array)
sort array using a bubble sort


toString

public static java.lang.String toString(java.lang.Object[] array)

toString

public static java.lang.String toString(boolean[] array)

toString

public static java.lang.String toString(int[] array)

toString

public static java.lang.String toString(double[][][][] array)

toString

public static java.lang.String toString(double[][][] array)

toString

public static java.lang.String toString(double[][] array)

toString

public static java.lang.String toString(double[] array)

equals

public static boolean equals(int[] a,
                             int[] b)

sort

public static void sort(int[] array)
sort array using a bubble sort


isAscending

public static boolean isAscending(int[] array)

sortVectorOfDouble

public static void sortVectorOfDouble(java.util.Vector vector)

makeVector

public static ExtendedVector makeVector(double[] array)

tabSeparatedString

public static java.lang.String tabSeparatedString(java.util.Vector v)
Parameters:
v - a vector of strings
Returns:
a string containing each string in v separated by tabs

arrayToTabSeparated

public static java.lang.String arrayToTabSeparated(java.lang.String[] array)

arrayToTabSeparated

public static java.lang.String arrayToTabSeparated(double[] array)

makeFileNoCR

public static void makeFileNoCR(java.lang.String filename,
                                java.lang.String contents)

makeFile

public static void makeFile(java.lang.String filename,
                            java.lang.String message)
make a file with a string in it, end with an additional "\n"

Parameters:
message - the string to put in the file

makeFile

public static void makeFile(java.lang.String filename,
                            java.lang.String[] contents)
make a file with one line per string in it

Parameters:
contents - the strings to put in the file

debugPrint

public static void debugPrint(java.lang.String s)

debugPrintln

public static void debugPrintln(java.lang.String s)

outputFile

public static java.io.PrintWriter outputFile(java.lang.String filename)
Returns:
filename open for writing.

removeFile

public static void removeFile(java.lang.String filename)

normalNumber

public static boolean normalNumber(double x)
is this number a regular number? I.e., not NaN or infinity.


hasNormalNumbers

public static boolean hasNormalNumbers(Vector3d v)

containsBadNumbers

public static boolean containsBadNumbers(double[] d)
does d contain any numbers that aren't normal?


largestAbsoluteValue

public static double largestAbsoluteValue(double[] d)
Returns:
the largest absolute value in Delta

fixDouble

public static double fixDouble(double x)
convert a double to something that is a specific number. NaN Becomes 0 positive infinity becomes maximum value negative infinity becomes minimum value


makeDirectory

public static void makeDirectory(java.lang.String d)
Parameters:
d - the name of the directory to make

power

public static double power(double x,
                           int p)
Returns:
x raised to the p

date

public static java.lang.String date()
Returns:
the date as a string

serialize

public static void serialize(java.io.Serializable object,
                             java.lang.String filename)
serialize object and put it in filename


getSerialized

public static java.lang.Object getSerialized(java.lang.String filename)
Returns:
the object serialized in filename

getSerialized

public static java.lang.Object getSerialized(java.net.URL url)
Returns:
the object serialized in url

setPermissions

public static void setPermissions(java.lang.String file,
                                  java.lang.String permissions)
sets the permissions of file to permissions using chmod. Doesn't seem to work on IRIX.


makeSequentialNumber

public static int makeSequentialNumber(int i)
Make a number that, when used as a filename, will print out sequential with others (i.e., is in ASCII order as well as numerical order) by inserting leading zeros. Only works for numbers up to 999,999


JavaGenes, NASA Ames. Written largely by Al Globus