public class LongMatrixMath
extends java.lang.Object
Yellow (ctsay) |
Yellow (ctsay) |
Modifier and Type | Method and Description |
---|---|
protected static void |
_checkSameDimension(java.lang.String caller,
long[][] matrix1,
long[][] matrix2)
Check that the two matrix arguments are of the same dimension.
|
protected static int |
_checkSquare(java.lang.String caller,
long[][] matrix)
Check that the argument matrix is a square matrix.
|
protected static int |
_columns(long[][] matrix)
Return the number of columns of a matrix.
|
protected static java.lang.String |
_dimensionString(long[][] matrix)
Return a string that describes the number of rows and columns.
|
protected static int |
_rows(long[][] matrix)
Return the number of rows of a matrix.
|
static long[][] |
add(long[][] matrix,
long z)
Return a new matrix that is constructed from the argument by
adding the second argument to every element.
|
static long[][] |
add(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed from the argument by
adding the second matrix to the first one.
|
static long[][] |
allocCopy(long[][] matrix)
Return a new matrix that is a copy of the matrix argument.
|
static long[][] |
applyBinaryOperation(LongBinaryOperation op,
long[][] matrix,
long z)
Return a new array that is formed by applying an instance of a
LongBinaryOperation to each element in the input matrix,
using the matrix elements as the left operands and z as the right
operand in all cases (op.operate(matrix[i][j], z)).
|
static long[][] |
applyBinaryOperation(LongBinaryOperation op,
long[][] matrix1,
long[][] matrix2)
Return a new array that is formed by applying an instance of a
LongBinaryOperation to the two matrices, element by element,
using the elements of the first matrix as the left operands
and the elements of the second matrix as the right operands.
|
static long[][] |
applyBinaryOperation(LongBinaryOperation op,
long z,
long[][] matrix)
Return a new array that is formed by applying an instance of a
LongBinaryOperation to each element in the input matrix,
using z as the left operand in all cases and the matrix elements
as the right operands (op.operate(z, matrix[i][j])).
|
static long[][] |
applyUnaryOperation(LongUnaryOperation op,
long[][] matrix)
Return a new array that is formed by applying an instance of a
LongUnaryOperation to each element in the input matrix
(op.operate(matrix[i][j])).
|
static long[][] |
bitwiseAnd(long[][] matrix,
long z)
Return a new matrix that is the formed by bitwise ANDing z
with each element of the input matrix (matrix[i][j] & z).
|
static long[][] |
bitwiseAnd(long[][] matrix1,
long[][] matrix2)
Return a new array that is the element-by-element bitwise AND
of the two input matrices (matrix1[i][j] & matrix2[i][j]).
|
static long[][] |
bitwiseComplement(long[][] matrix)
Return a new array that formed by the bitwise complement of
each element in the input matrix (~matrix[i][j]).
|
static long[][] |
bitwiseOr(long[][] matrix,
long z)
Return a new matrix that is the formed by bitwise ORing z with
each element of the input matrix (matrix[i][j] | z).
|
static long[][] |
bitwiseOr(long[][] matrix1,
long[][] matrix2)
Return a new array that is the element-by-element bitwise OR
of the two input matrices (matrix1[i][j] | matrix2[i][j]).
|
static long[][] |
bitwiseXor(long[][] matrix,
long z)
Return a new matrix that is the formed by bitwise XORing z
with each element of the input matrix (matrix[i][j] ^ z).
|
static long[][] |
bitwiseXor(long[][] matrix1,
long[][] matrix2)
Return a new array that is the element-by-element bitwise XOR
of the two input matrices (matrix1[i][j] & matrix2[i][j]).
|
static long[][] |
crop(long[][] matrix,
int rowStart,
int colStart,
int rowSpan,
int colSpan)
Return a new matrix that is a sub-matrix of the input
matrix argument.
|
static long[][] |
diag(long[] array)
Return a new matrix that is constructed by placing the
elements of the input array on the diagonal of the square
matrix, starting from the top left corner down to the bottom
right corner.
|
static long[][] |
divide(long[][] matrix,
long z)
Return a new matrix that is constructed from the argument by
dividing the second argument to every element.
|
static long[][] |
divideElements(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed by element by element
division of the two matrix arguments.
|
static long[] |
fromMatrixToArray(long[][] matrix)
Return a new array that is filled with the contents of the matrix.
|
static long[] |
fromMatrixToArray(long[][] matrix,
int maxRow,
int maxCol)
Return a new array that is filled with the contents of the matrix.
|
static long[][] |
identity(int dim)
Return an new identity matrix with the specified dimension.
|
static long[][] |
identityMatrixLong(int dim)
Return an new identity matrix with the specified dimension.
|
static void |
matrixCopy(long[][] srcMatrix,
int srcRowStart,
int srcColStart,
long[][] destMatrix,
int destRowStart,
int destColStart,
int rowSpan,
int colSpan)
Replace the first matrix argument's values, in the specified row
and column range, with the second matrix argument's values, starting
from specified row and column of the second matrix.
|
static void |
matrixCopy(long[][] srcMatrix,
long[][] destMatrix)
Replace the first matrix argument elements with the values of
the second matrix argument.
|
static long[][] |
modulo(long[][] matrix,
long z)
Return a new matrix that is constructed by computing the
remainders between each element in the matrix and z.
|
static long[][] |
modulo(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed by computing the
remainders between each element in the first matrix argument
and the corresponding element in the second matrix argument.
|
static long[][] |
multiply(long[][] matrix,
long scaleFactor)
Return a new matrix that is constructed by multiplying the matrix
by a scaleFactor.
|
static long[] |
multiply(long[][] matrix,
long[] array)
Return a new array that is constructed from the argument by
pre-multiplying the array (treated as a row vector) by a matrix.
|
static long[][] |
multiply(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed from the argument by
multiplying the first matrix by the second one.
|
static long[] |
multiply(long[] array,
long[][] matrix)
Return a new array that is constructed from the argument by
post-multiplying the matrix by an array (treated as a row vector).
|
static long[][] |
multiplyElements(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed by element by element
multiplication of the two matrix arguments.
|
static long[][] |
negative(long[][] matrix)
Return a new matrix that is the additive inverse of the
argument matrix.
|
static long[][] |
shiftArithmetic(long[][] matrix,
int shiftAmount)
Return a new matrix that is constructed from the argument by
arithmetically shifting the elements in the matrix by the
second argument.
|
static long[][] |
shiftLogical(long[][] matrix,
int shiftAmount)
Return a new matrix that is constructed from the argument by
logically shifting the elements in the matrix by the second
argument.
|
static long[][] |
subtract(long[][] matrix1,
long[][] matrix2)
Return a new matrix that is constructed from the argument by
subtracting the second matrix from the first one.
|
static long |
sum(long[][] matrix)
Return the sum of the elements of a matrix.
|
static Complex[][] |
toComplexMatrix(long[][] matrix)
Return a new matrix that is formed by converting the long values
in the argument matrix to complex numbers.
|
static double[][] |
toDoubleMatrix(long[][] matrix)
Return a new matrix that is formed by converting the longs in
the argument matrix to doubles.
|
static float[][] |
toFloatMatrix(long[][] matrix)
Return a new matrix that is formed by converting the longs in
the argument matrix to floats.
|
static int[][] |
toIntegerMatrix(long[][] matrix)
Return a new matrix that is formed by converting the longs in
the argument matrix to integers.
|
static long[][] |
toMatrixFromArray(long[] array,
int rows,
int cols)
Return a new matrix of longs that is initialized from a 1-D array.
|
static java.lang.String |
toString(long[][] matrix)
Return a new String representing the matrix, formatted as
in Java array initializers.
|
static java.lang.String |
toString(long[][] matrix,
java.lang.String elementDelimiter,
java.lang.String matrixBegin,
java.lang.String matrixEnd,
java.lang.String vectorBegin,
java.lang.String vectorDelimiter,
java.lang.String vectorEnd)
Return a new String representing the matrix, formatted as
specified by the ArrayStringFormat argument.
|
static long |
trace(long[][] matrix)
Return the trace of a square matrix, which is the sum of the
diagonal entries A11 + A22 + ... + Ann
Throw an IllegalArgumentException if the matrix is not square.
|
static long[][] |
transpose(long[][] matrix)
Return a new matrix that is constructed by transposing the input
matrix.
|
static boolean |
within(long[][] matrix1,
long[][] matrix2,
long distance)
Return true if the elements of the two matrices differ by no more
than the specified distance.
|
static boolean |
within(long[][] matrix1,
long[][] matrix2,
long[][] errorMatrix)
Return true if the elements of the two matrices differ by no more
than the specified distances.
|
public static final long[][] add(long[][] matrix, long z)
matrix
- A matrix of longs.z
- The long number to add.public static final long[][] add(long[][] matrix1, long[][] matrix2)
matrix1
- The first matrix of longs.matrix2
- The second matrix of longs.public static final long[][] allocCopy(long[][] matrix)
matrix
- A matrix of longs.public static final long[][] applyBinaryOperation(LongBinaryOperation op, long z, long[][] matrix)
public static final long[][] applyBinaryOperation(LongBinaryOperation op, long[][] matrix, long z)
public static final long[][] applyBinaryOperation(LongBinaryOperation op, long[][] matrix1, long[][] matrix2)
public static final long[][] applyUnaryOperation(LongUnaryOperation op, long[][] matrix)
public static final long[][] bitwiseAnd(long[][] matrix, long z)
public static final long[][] bitwiseAnd(long[][] matrix1, long[][] matrix2)
public static final long[][] bitwiseComplement(long[][] matrix)
public static final long[][] bitwiseOr(long[][] matrix, long z)
public static final long[][] bitwiseOr(long[][] matrix1, long[][] matrix2)
public static final long[][] bitwiseXor(long[][] matrix, long z)
public static final long[][] bitwiseXor(long[][] matrix1, long[][] matrix2)
public static final long[][] crop(long[][] matrix, int rowStart, int colStart, int rowSpan, int colSpan)
matrix
- A matrix of longs.rowStart
- An int specifying which row to start on.colStart
- An int specifying which column to start on.rowSpan
- An int specifying how many rows to copy.colSpan
- An int specifying how many columns to copy.public static final long[][] diag(long[] array)
public static final long[][] divide(long[][] matrix, long z)
matrix
- A matrix of longs.z
- The long number to divide.public static final long[][] divideElements(long[][] matrix1, long[][] matrix2)
public static final long[] fromMatrixToArray(long[][] matrix)
matrix
- A matrix of longs.public static final long[] fromMatrixToArray(long[][] matrix, int maxRow, int maxCol)
matrix
- A matrix of longs.public static final long[][] identity(int dim)
public static final long[][] identityMatrixLong(int dim)
public static final void matrixCopy(long[][] srcMatrix, long[][] destMatrix)
destMatrix
- A matrix of longs, used as the destination.srcMatrix
- A matrix of longs, used as the source.public static final void matrixCopy(long[][] srcMatrix, int srcRowStart, int srcColStart, long[][] destMatrix, int destRowStart, int destColStart, int rowSpan, int colSpan)
srcMatrix
- A matrix of longs, used as the destination.srcRowStart
- An int specifying the starting row of the source.srcColStart
- An int specifying the starting column of the
source.destMatrix
- A matrix of longs, used as the destination.destRowStart
- An int specifying the starting row of the dest.destColStart
- An int specifying the starting column of the
dest.rowSpan
- An int specifying how many rows to copy.colSpan
- An int specifying how many columns to copy.public static final long[][] modulo(long[][] matrix, long z)
public static final long[][] modulo(long[][] matrix1, long[][] matrix2)
public static final long[][] multiply(long[][] matrix, long scaleFactor)
public static final long[] multiply(long[][] matrix, long[] array)
public static final long[] multiply(long[] array, long[][] matrix)
public static final long[][] multiply(long[][] matrix1, long[][] matrix2)
Note that this method is different from the other multiply() methods in that this method does not do pointwise multiplication.
matrix1
- The first matrix of longs.matrix2
- The second matrix of longs.multiplyElements(long[][], long[][])
public static final long[][] multiplyElements(long[][] matrix1, long[][] matrix2)
Note that this method does pointwise matrix multiplication.
See multiply(long[][], long[][])
for standard
matrix multiplication.
public static final long[][] negative(long[][] matrix)
public static final long[][] shiftArithmetic(long[][] matrix, int shiftAmount)
matrix
- A first matrix of longs.shiftAmount
- The amount to shift by, positive for left shift,
negative for right shift.public static final long[][] shiftLogical(long[][] matrix, int shiftAmount)
matrix
- A first matrix of longs.shiftAmount
- The amount to shift by, positive for left shift,
negative for right shift.public static final long[][] subtract(long[][] matrix1, long[][] matrix2)
public static final long sum(long[][] matrix)
public static final Complex[][] toComplexMatrix(long[][] matrix)
matrix
- A matrix of long values.public static final double[][] toDoubleMatrix(long[][] matrix)
matrix
- An matrix of long.public static final float[][] toFloatMatrix(long[][] matrix)
matrix
- An matrix of long.public static final int[][] toIntegerMatrix(long[][] matrix)
matrix
- An matrix of long.public static final long[][] toMatrixFromArray(long[] array, int rows, int cols)
array
- An array of longs.rows
- An integer representing the number of rows of the new
matrix.cols
- An integer representing the number of columns of the new
matrix.public static final java.lang.String toString(long[][] matrix)
public static final java.lang.String toString(long[][] matrix, java.lang.String elementDelimiter, java.lang.String matrixBegin, java.lang.String matrixEnd, java.lang.String vectorBegin, java.lang.String vectorDelimiter, java.lang.String vectorEnd)
public static final long trace(long[][] matrix)
public static final long[][] transpose(long[][] matrix)
public static final boolean within(long[][] matrix1, long[][] matrix2, long distance)
matrix1
- The first matrix.matrix2
- The second matrix.distance
- The distance to use for comparison.java.lang.IllegalArgumentException
- If the matrices do not have the same dimension.
This is a run-time exception, so it need not be declared explicitly.public static final boolean within(long[][] matrix1, long[][] matrix2, long[][] errorMatrix)
matrix1
- The first matrix.matrix2
- The second matrix.errorMatrix
- The distance to use for comparison.java.lang.IllegalArgumentException
- If the matrices do not have the same dimension.
This is a run-time exception, so it need not be declared explicitly.protected static final void _checkSameDimension(java.lang.String caller, long[][] matrix1, long[][] matrix2)
caller
- A string representing the caller method name.matrix1
- A matrix of longs.matrix2
- A matrix of longs.protected static final int _checkSquare(java.lang.String caller, long[][] matrix)
caller
- A string representing the caller method name.matrix
- A matrix of longs.protected static final int _columns(long[][] matrix)
matrix
- The matrix.protected static final java.lang.String _dimensionString(long[][] matrix)
matrix
- The matrix that is to be described.protected static final int _rows(long[][] matrix)