drasys.or.util
Class Array

java.lang.Object
  |
  +--drasys.or.util.Array

public class Array
extends java.lang.Object

Array utility class.


Constructor Summary
Array()
           
 
Method Summary
static void copy(int n, boolean[] x, int begX, int incX, boolean scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, boolean[] x, int begX, int incX, boolean[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, byte[] x, int begX, int incX, byte scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, byte[] x, int begX, int incX, byte[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, double[] x, int begX, int incX, double scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, double[] x, int begX, int incX, double[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, float[] x, int begX, int incX, float scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, float[] x, int begX, int incX, float[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, int[] x, int begX, int incX, int scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, int[] x, int begX, int incX, int[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, long[] x, int begX, int incX, long scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, long[] x, int begX, int incX, long[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, java.lang.Object[] x, int begX, int incX, java.lang.Object scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, java.lang.Object[] x, int begX, int incX, java.lang.Object[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, short[] x, int begX, int incX, short scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, short[] x, int begX, int incX, short[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static void copy(int n, java.lang.String[] x, int begX, int incX, java.lang.String scaler)
          Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static void copy(int n, java.lang.String[] x, int begX, int incX, java.lang.String[] y, int begY, int incY)
          Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}
static int count(int n, boolean[] x, int begX, int incX, boolean key)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, byte[] x, int begX, int incX, byte low, byte high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, double[] x, int begX, int incX, double low, double high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, float[] x, int begX, int incX, float low, float high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, int[] x, int begX, int incX, int low, int high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, long[] x, int begX, int incX, long low, long high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, java.lang.Object[] x, int begX, int incX, java.lang.Object key)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, short[] x, int begX, int incX, short low, short high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int count(int n, java.lang.String[] x, int begX, int incX, java.lang.String low, java.lang.String high)
          Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static boolean equals(int n, boolean[] x, int begX, int incX, boolean[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, byte[] x, int begX, int incX, byte[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, double[] x, int begX, int incX, double[] y, int begY, int incY, double epsilon)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, float[] x, int begX, int incX, float[] y, int begY, int incY, float epsilon)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, int[] x, int begX, int incX, int[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, long[] x, int begX, int incX, long[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, java.lang.Object[] x, int begX, int incX, java.lang.Object[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, short[] x, int begX, int incX, short[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static boolean equals(int n, java.lang.String[] x, int begX, int incX, java.lang.String[] y, int begY, int incY)
          Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int find(int n, boolean[] x, int begX, int incX, boolean key)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, byte[] x, int begX, int incX, byte low, byte high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, double[] x, int begX, int incX, double low, double high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, float[] x, int begX, int incX, float low, float high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, int[] x, int begX, int incX, int low, int high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, long[] x, int begX, int incX, long low, long high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, java.lang.Object[] x, int begX, int incX, java.lang.Object key)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, short[] x, int begX, int incX, short low, short high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int find(int n, java.lang.String[] x, int begX, int incX, java.lang.String low, java.lang.String high)
          Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
static int position(int[] a, int v)
          Finds the position of the first instance of 'v' in the array 'a'.
static boolean[] resize(int n, boolean[] array)
          Resize an array.
static boolean[][] resize(int n, boolean[][] array)
          Resize an array of arrays.
static boolean[] resize(int n, boolean[] array, boolean fill)
          Resize and initialize an array.
static byte[] resize(int n, byte[] array)
          Resize an array.
static byte[][] resize(int n, byte[][] array)
          Resize an array of arrays.
static byte[] resize(int n, byte[] array, byte fill)
          Resize and initialize an array.
static double[] resize(int n, double[] array)
          Resize an array.
static double[][] resize(int n, double[][] array)
          Resize an array of arrays.
static double[] resize(int n, double[] array, double fill)
          Resize and initialize an array.
static float[] resize(int n, float[] array)
          Resize an array.
static float[][] resize(int n, float[][] array)
          Resize an array of arrays.
static float[] resize(int n, float[] array, float fill)
          Resize and initialize an array.
static int[] resize(int n, int[] array)
          Resize an array.
static int[][] resize(int n, int[][] array)
          Resize an array of arrays.
static int[] resize(int n, int[] array, int fill)
          Resize and initialize an array.
static long[] resize(int n, long[] array)
          Resize an array.
static long[][] resize(int n, long[][] array)
          Resize an array of arrays.
static long[] resize(int n, long[] array, long fill)
          Resize and initialize an array.
static java.lang.Object[] resize(int n, java.lang.Object[] array)
          Resize an array.
static java.lang.Object[][] resize(int n, java.lang.Object[][] array)
          Resize an array of arrays.
static java.lang.Object[] resize(int n, java.lang.Object[] array, java.lang.Object fill)
          Resize and initialize an array.
static short[] resize(int n, short[] array)
          Resize an array.
static short[][] resize(int n, short[][] array)
          Resize an array of arrays.
static short[] resize(int n, short[] array, short fill)
          Resize and initialize an array.
static java.lang.String[] resize(int n, java.lang.String[] array)
          Resize an array.
static java.lang.String[][] resize(int n, java.lang.String[][] array)
          Resize an array of arrays.
static java.lang.String[] resize(int n, java.lang.String[] array, java.lang.String fill)
          Resize and initialize an array.
static int sum(int n, byte[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sum(int n, double[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sum(int n, float[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sum(int n, int[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static long sum(int n, long[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sum(int n, short[] x, int begX, int incX)
          Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfProducts(int n, byte[] x, int begX, int incX, byte[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static double sumOfProducts(int n, double[] x, int begX, int incX, double[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static double sumOfProducts(int n, float[] x, int begX, int incX, float[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfProducts(int n, int[] x, int begX, int incX, int[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static long sumOfProducts(int n, long[] x, int begX, int incX, long[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfProducts(int n, short[] x, int begX, int incX, short[] y, int begY, int incY)
          Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, byte[] x, int begX, int incX, byte scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, byte[] x, int begX, int incX, byte[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static double sumOfSquaredDifferences(int n, double[] x, int begX, int incX, double scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sumOfSquaredDifferences(int n, double[] x, int begX, int incX, double[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static double sumOfSquaredDifferences(int n, float[] x, int begX, int incX, float scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sumOfSquaredDifferences(int n, float[] x, int begX, int incX, float[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, int[] x, int begX, int incX, int scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, int[] x, int begX, int incX, int[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static long sumOfSquaredDifferences(int n, long[] x, int begX, int incX, long scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static long sumOfSquaredDifferences(int n, long[] x, int begX, int incX, long[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, short[] x, int begX, int incX, short scaler)
          Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfSquaredDifferences(int n, short[] x, int begX, int incX, short[] y, int begY, int incY)
          Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1
static int sumOfSquares(int n, byte[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sumOfSquares(int n, double[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static double sumOfSquares(int n, float[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfSquares(int n, int[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static long sumOfSquares(int n, long[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static int sumOfSquares(int n, short[] x, int begX, int incX)
          Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1
static java.lang.String toObject(int n, java.lang.Object[] x, int begX, int incX)
          Returns a Object representation of the array elements x[i].
static java.lang.String toString(int n, boolean[] x, int begX, int incX)
          Returns a boolean representation of the array elements x[i].
static java.lang.String toString(int n, byte[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, double[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, float[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, int[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, long[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, short[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static java.lang.String toString(int n, java.lang.String[] x, int begX, int incX)
          Returns a string representation of the array elements x[i].
static byte[] union(byte[] a, byte[] b)
          Returns the union of the two sets of bytes.
static int[] union(int[] a, int[] b)
          Returns the union of the two sets of integers.
static long[] union(long[] a, long[] b)
          Returns the union of the two sets of longs.
static short[] union(short[] a, short[] b)
          Returns the union of the two sets of shorts.
static java.lang.String[] union(java.lang.String[] a, java.lang.String[] b)
          Returns the union of the two sets of Strings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Array

public Array()
Method Detail

resize

public static float[] resize(int n,
                             float[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static float[] resize(int n,
                             float[] array,
                             float fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static float[][] resize(int n,
                               float[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        float[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             float[] x,
                             int begX,
                             int incX,
                             float[] y,
                             int begY,
                             int incY,
                             float epsilon)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        float[] x,
                        int begX,
                        int incX,
                        float low,
                        float high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       float[] x,
                       int begX,
                       int incX,
                       float low,
                       float high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        float[] x,
                        int begX,
                        int incX,
                        float[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        float[] x,
                        int begX,
                        int incX,
                        float scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static double sum(int n,
                         float[] x,
                         int begX,
                         int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static double sumOfSquares(int n,
                                  float[] x,
                                  int begX,
                                  int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static double sumOfSquaredDifferences(int n,
                                             float[] x,
                                             int begX,
                                             int incX,
                                             float scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static double sumOfSquaredDifferences(int n,
                                             float[] x,
                                             int begX,
                                             int incX,
                                             float[] y,
                                             int begY,
                                             int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static double sumOfProducts(int n,
                                   float[] x,
                                   int begX,
                                   int incX,
                                   float[] y,
                                   int begY,
                                   int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

resize

public static double[] resize(int n,
                              double[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static double[] resize(int n,
                              double[] array,
                              double fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static double[][] resize(int n,
                                double[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        double[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1
Repeated elements are not printed.

equals

public static boolean equals(int n,
                             double[] x,
                             int begX,
                             int incX,
                             double[] y,
                             int begY,
                             int incY,
                             double epsilon)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        double[] x,
                        int begX,
                        int incX,
                        double low,
                        double high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       double[] x,
                       int begX,
                       int incX,
                       double low,
                       double high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        double[] x,
                        int begX,
                        int incX,
                        double[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        double[] x,
                        int begX,
                        int incX,
                        double scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static double sum(int n,
                         double[] x,
                         int begX,
                         int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static double sumOfSquares(int n,
                                  double[] x,
                                  int begX,
                                  int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static double sumOfSquaredDifferences(int n,
                                             double[] x,
                                             int begX,
                                             int incX,
                                             double scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static double sumOfSquaredDifferences(int n,
                                             double[] x,
                                             int begX,
                                             int incX,
                                             double[] y,
                                             int begY,
                                             int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static double sumOfProducts(int n,
                                   double[] x,
                                   int begX,
                                   int incX,
                                   double[] y,
                                   int begY,
                                   int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

union

public static byte[] union(byte[] a,
                           byte[] b)
Returns the union of the two sets of bytes. The arguments 'a' and 'b' will be in ascending order after the method returns. The returned array will be in ascending order.

resize

public static byte[] resize(int n,
                            byte[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static byte[] resize(int n,
                            byte[] array,
                            byte fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static byte[][] resize(int n,
                              byte[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        byte[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             byte[] x,
                             int begX,
                             int incX,
                             byte[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        byte[] x,
                        int begX,
                        int incX,
                        byte low,
                        byte high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       byte[] x,
                       int begX,
                       int incX,
                       byte low,
                       byte high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        byte[] x,
                        int begX,
                        int incX,
                        byte[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        byte[] x,
                        int begX,
                        int incX,
                        byte scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static int sum(int n,
                      byte[] x,
                      int begX,
                      int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static int sumOfSquares(int n,
                               byte[] x,
                               int begX,
                               int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          byte[] x,
                                          int begX,
                                          int incX,
                                          byte scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          byte[] x,
                                          int begX,
                                          int incX,
                                          byte[] y,
                                          int begY,
                                          int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static int sumOfProducts(int n,
                                byte[] x,
                                int begX,
                                int incX,
                                byte[] y,
                                int begY,
                                int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

union

public static short[] union(short[] a,
                            short[] b)
Returns the union of the two sets of shorts. The arguments 'a' and 'b' will be in ascending order after the method returns. The returned array will be in ascending order.

resize

public static short[] resize(int n,
                             short[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static short[] resize(int n,
                             short[] array,
                             short fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static short[][] resize(int n,
                               short[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        short[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             short[] x,
                             int begX,
                             int incX,
                             short[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        short[] x,
                        int begX,
                        int incX,
                        short low,
                        short high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       short[] x,
                       int begX,
                       int incX,
                       short low,
                       short high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        short[] x,
                        int begX,
                        int incX,
                        short[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        short[] x,
                        int begX,
                        int incX,
                        short scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static int sum(int n,
                      short[] x,
                      int begX,
                      int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static int sumOfSquares(int n,
                               short[] x,
                               int begX,
                               int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          short[] x,
                                          int begX,
                                          int incX,
                                          short scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          short[] x,
                                          int begX,
                                          int incX,
                                          short[] y,
                                          int begY,
                                          int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static int sumOfProducts(int n,
                                short[] x,
                                int begX,
                                int incX,
                                short[] y,
                                int begY,
                                int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

position

public static int position(int[] a,
                           int v)
Finds the position of the first instance of 'v' in the array 'a'. Returns -1 if 'v' isn't found.

union

public static int[] union(int[] a,
                          int[] b)
Returns the union of the two sets of integers. The arguments 'a' and 'b' will be in ascending order after the method returns. The returned array will be in ascending order.

resize

public static int[] resize(int n,
                           int[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static int[] resize(int n,
                           int[] array,
                           int fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static int[][] resize(int n,
                             int[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        int[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             int[] x,
                             int begX,
                             int incX,
                             int[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        int[] x,
                        int begX,
                        int incX,
                        int low,
                        int high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       int[] x,
                       int begX,
                       int incX,
                       int low,
                       int high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        int[] x,
                        int begX,
                        int incX,
                        int[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        int[] x,
                        int begX,
                        int incX,
                        int scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static int sum(int n,
                      int[] x,
                      int begX,
                      int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static int sumOfSquares(int n,
                               int[] x,
                               int begX,
                               int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          int[] x,
                                          int begX,
                                          int incX,
                                          int scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static int sumOfSquaredDifferences(int n,
                                          int[] x,
                                          int begX,
                                          int incX,
                                          int[] y,
                                          int begY,
                                          int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static int sumOfProducts(int n,
                                int[] x,
                                int begX,
                                int incX,
                                int[] y,
                                int begY,
                                int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

union

public static long[] union(long[] a,
                           long[] b)
Returns the union of the two sets of longs. The arguments 'a' and 'b' will be in ascending order after the method returns. The returned array will be in ascending order.

resize

public static long[] resize(int n,
                            long[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static long[] resize(int n,
                            long[] array,
                            long fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static long[][] resize(int n,
                              long[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        long[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             long[] x,
                             int begX,
                             int incX,
                             long[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        long[] x,
                        int begX,
                        int incX,
                        long low,
                        long high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       long[] x,
                       int begX,
                       int incX,
                       long low,
                       long high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        long[] x,
                        int begX,
                        int incX,
                        long[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        long[] x,
                        int begX,
                        int incX,
                        long scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sum

public static long sum(int n,
                       long[] x,
                       int begX,
                       int incX)
Returns sum(x[i]) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquares

public static long sumOfSquares(int n,
                                long[] x,
                                int begX,
                                int incX)
Returns sum(x[i]^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static long sumOfSquaredDifferences(int n,
                                           long[] x,
                                           int begX,
                                           int incX,
                                           long scaler)
Returns sum((x[i]-scaler)^2) for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

sumOfSquaredDifferences

public static long sumOfSquaredDifferences(int n,
                                           long[] x,
                                           int begX,
                                           int incX,
                                           long[] y,
                                           int begY,
                                           int incY)
Returns sum((x[i]-y[j])^2) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

sumOfProducts

public static long sumOfProducts(int n,
                                 long[] x,
                                 int begX,
                                 int incX,
                                 long[] y,
                                 int begY,
                                 int incY)
Returns sum(x[i]*y[j]) for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

union

public static java.lang.String[] union(java.lang.String[] a,
                                       java.lang.String[] b)
Returns the union of the two sets of Strings. The arguments 'a' and 'b' will be in ascending order after the method returns. The returned array will be in ascending order.

resize

public static java.lang.String[] resize(int n,
                                        java.lang.String[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static java.lang.String[] resize(int n,
                                        java.lang.String[] array,
                                        java.lang.String fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static java.lang.String[][] resize(int n,
                                          java.lang.String[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        java.lang.String[] x,
                                        int begX,
                                        int incX)
Returns a string representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             java.lang.String[] x,
                             int begX,
                             int incX,
                             java.lang.String[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        java.lang.String[] x,
                        int begX,
                        int incX,
                        java.lang.String low,
                        java.lang.String high)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       java.lang.String[] x,
                       int begX,
                       int incX,
                       java.lang.String low,
                       java.lang.String high)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        java.lang.String[] x,
                        int begX,
                        int incX,
                        java.lang.String[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        java.lang.String[] x,
                        int begX,
                        int incX,
                        java.lang.String scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

resize

public static java.lang.Object[] resize(int n,
                                        java.lang.Object[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static java.lang.Object[] resize(int n,
                                        java.lang.Object[] array,
                                        java.lang.Object fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static java.lang.Object[][] resize(int n,
                                          java.lang.Object[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toObject

public static java.lang.String toObject(int n,
                                        java.lang.Object[] x,
                                        int begX,
                                        int incX)
Returns a Object representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             java.lang.Object[] x,
                             int begX,
                             int incX,
                             java.lang.Object[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        java.lang.Object[] x,
                        int begX,
                        int incX,
                        java.lang.Object key)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       java.lang.Object[] x,
                       int begX,
                       int incX,
                       java.lang.Object key)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        java.lang.Object[] x,
                        int begX,
                        int incX,
                        java.lang.Object[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        java.lang.Object[] x,
                        int begX,
                        int incX,
                        java.lang.Object scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1

resize

public static boolean[] resize(int n,
                               boolean[] array)
Resize an array. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

resize

public static boolean[] resize(int n,
                               boolean[] array,
                               boolean fill)
Resize and initialize an array. If the array is larger than 'n' then a new array is created and initialized with the contents of 'array'. If the array is smaller than 'n' then a new array is created, initialized with the contents of 'array', and any new elements are initialized with fill. If the length of 'array' is 'n' then 'array' is returned.

resize

public static boolean[][] resize(int n,
                                 boolean[][] array)
Resize an array of arrays. If the array is larger or smaller than 'n' then a new array is created and initialized with the contents of 'array'. If the length of 'array' is 'n' then 'array' is returned.

toString

public static java.lang.String toString(int n,
                                        boolean[] x,
                                        int begX,
                                        int incX)
Returns a boolean representation of the array elements x[i]. Where: i = begX + k*incX
k = 0,1,..,n-1

equals

public static boolean equals(int n,
                             boolean[] x,
                             int begX,
                             int incX,
                             boolean[] y,
                             int begY,
                             int incY)
Returns true if abs(x[i]-y[j]) <= epsilon for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = 0,1,..,n-1

count

public static int count(int n,
                        boolean[] x,
                        int begX,
                        int incX,
                        boolean key)
Returns the number of elements where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1

find

public static int find(int n,
                       boolean[] x,
                       int begX,
                       int incX,
                       boolean key)
Returns the index of the first element where:
low <= x[i] <= high
i = begX + k*incX
k = 0,1,..,n-1
Returns:
-1 if no match is found.

copy

public static void copy(int n,
                        boolean[] x,
                        int begX,
                        int incX,
                        boolean[] y,
                        int begY,
                        int incY)
Sets x[i] = y[j] for all i,j
Where: i = begX + k*incX
j = begY + k*incY
k = {0,..,n-1}

copy

public static void copy(int n,
                        boolean[] x,
                        int begX,
                        int incX,
                        boolean scaler)
Sets x[i] = 'scaler' for all i
Where: i = begX + k*incX
k = 0,1,..,n-1


Copyright(C)1997-2000 by DRA Systems all rights reserved. OpsResearch.com