public class GMatrix
extends java.lang.Object
implements java.io.Serializable
Constructor and Description |
---|
GMatrix(GMatrix matrix)
Constructs a new GMatrix and copies the initial values
from the parameter matrix.
|
GMatrix(int nRow,
int nCol)
Constructs an nRow by nCol identity matrix.
|
GMatrix(int nRow,
int nCol,
double[] matrix)
Constructs an nRow by nCol matrix initialized to the values
in the matrix array.
|
Modifier and Type | Method and Description |
---|---|
void |
add(GMatrix m1)
Sets the value of this matrix to sum of itself and matrix m1.
|
void |
add(GMatrix m1,
GMatrix m2)
Sets the value of this matrix to the matrix sum of matrices m1 and m2.
|
void |
copySubMatrix(int rowSource,
int colSource,
int numRow,
int numCol,
int rowDest,
int colDest,
GMatrix target)
Copies a sub-matrix derived from this matrix into the target matrix.
|
boolean |
epsilonEquals(GMatrix m1,
double epsilon)
Returns true if the L-infinite distance between this matrix and
matrix m1 is less than or equal to the epsilon parameter,
otherwise returns false.
|
boolean |
epsilonEquals(GMatrix m1,
float epsilon)
Deprecated.
The double version of this method should be used.
|
boolean |
equals(GMatrix m1)
Returns true if all of the data members of Matrix4d m1 are
equal to the corresponding data members in this Matrix4d.
|
boolean |
equals(java.lang.Object o1)
Returns true if the Object o1 is of type GMatrix and all of the data
members of t1 are equal to the corresponding data members in this
GMatrix.
|
void |
get(GMatrix m1)
Places the values in the this matrix into the matrix m1; m1
should be at least as large as this GMatrix.
|
void |
get(Matrix3d m1)
Places the values in the upper 3X3 of this GMatrix into the matrix m1.
|
void |
get(Matrix3f m1)
Places the values in the upper 3X3 of this GMatrix into the matrix m1.
|
void |
get(Matrix4d m1)
Places the values in the upper 4X4 of this GMatrix into the matrix m1.
|
void |
get(Matrix4f m1)
Places the values in the upper 4X4 of this GMatrix into the matrix m1.
|
void |
getColumn(int col,
double[] array)
Places the values of the specified column into the array parameter.
|
void |
getColumn(int col,
GVector vector)
Places the values of the specified column into the vector parameter.
|
double |
getElement(int row,
int column)
Retrieves the value at the specified row and column of this matrix.
|
int |
getNumCol()
Returns the number of colmuns in this matrix.
|
int |
getNumRow()
Returns the number of rows in this matrix.
|
void |
getRow(int row,
double[] array)
Places the values of the specified row into the array parameter.
|
void |
getRow(int row,
GVector vector)
Places the values of the specified row into the vector parameter.
|
int |
hashCode()
Returns a hash number based on the data values in this
object.
|
void |
identityMinus()
Subtracts this matrix from the identity matrix and puts the values
back into this (this = I - this).
|
void |
invert()
Inverts this matrix in place.
|
void |
invert(GMatrix m1)
Inverts matrix m1 and places the new values into this matrix.
|
int |
LUD(GMatrix LU,
GVector permutation)
LU Decomposition; this matrix must be a square matrix; the LU GMatrix
parameter must be the same size as this matrix.
|
void |
mul(GMatrix m1)
Sets the value of this matrix to the result of multiplying itself
with matrix m1 (this = this * m1).
|
void |
mul(GMatrix m1,
GMatrix m2)
Sets the value of this matrix to the result of multiplying
the two argument matrices together (this = m1 * m2).
|
void |
mul(GVector v1,
GVector v2)
Computes the outer product of the two vectors; multiplies the
the first vector by the transpose of the second vector
and places the matrix result into this matrix.
|
void |
mulTransposeBoth(GMatrix m1,
GMatrix m2)
Multiplies the transpose of matrix m1 times the transpose of matrix m2, and places the
result into this.
|
void |
mulTransposeLeft(GMatrix m1,
GMatrix m2)
Multiplies the transpose of matrix m1 times the matrix m2, and places the
result into this.
|
void |
mulTransposeRight(GMatrix m1,
GMatrix m2)
Multiplies matrix m1 times the transpose of matrix m2, and places the
result into this.
|
void |
negate()
Negates the value of this matrix: this = -this.
|
void |
negate(GMatrix m1)
Sets the value of this matrix to the negation of the GMatrix parameter.
|
void |
set(double[] matrix)
Sets the value of this matrix to the values found in the array parameter.
|
void |
set(GMatrix m1)
Sets the value of this matrix to the values found in matrix m1.
|
void |
set(Matrix3d m1)
Sets the value of this matrix to that of the Matrix3d provided.
|
void |
set(Matrix3f m1)
Sets the value of this matrix to that of the Matrix3f provided.
|
void |
set(Matrix4d m1)
Sets the value of this matrix to that of the Matrix4d provided.
|
void |
set(Matrix4f m1)
Sets the value of this matrix to that of the Matrix4f provided.
|
void |
setColumn(int col,
double[] array)
Copy the values from the array into the specified column of this
matrix.
|
void |
setColumn(int col,
GVector vector)
Copy the values from the array into the specified column of this
matrix.
|
void |
setElement(int row,
int column,
double value)
Modifies the value at the specified row and column of this matrix.
|
void |
setIdentity()
Sets this GMatrix to the identity matrix.
|
void |
setRow(int row,
double[] array)
Copy the values from the array into the specified row of this
matrix.
|
void |
setRow(int row,
GVector vector)
Copy the values from the array into the specified row of this
matrix.
|
void |
setScale(double scale)
Sets this matrix to a uniform scale matrix; all of the values are reset.
|
void |
setSize(int nRow,
int nCol)
Changes the size of this matrix dynamically.
|
void |
setZero()
Sets all the values in this matrix to zero.
|
void |
sub(GMatrix m1)
Sets the value of this matrix to the matrix difference of itself
and matrix m1 (this = this - m1).
|
void |
sub(GMatrix m1,
GMatrix m2)
Sets the value of this matrix to the matrix difference
of matrices m1 and m2 (this = m1 - m2).
|
int |
SVD(GMatrix u,
GMatrix w,
GMatrix v)
Finds the singular value decomposition (SVD) of this matrix such that
this = U*W*transpose(V); and returns the rank of this matrix; the values
of U,W,V are all overwritten.
|
java.lang.String |
toString()
Returns a string that contains the values of this GMatrix.
|
double |
trace()
Returns the trace of this matrix.
|
void |
transpose()
Transposes this matrix in place.
|
void |
transpose(GMatrix m1)
Places the matrix values of the transpose of matrix m1 into this matrix.
|
public GMatrix(int nRow, int nCol)
nRow
- number of rows in this matrix.nCol
- number of columns in this matrix.public GMatrix(int nRow, int nCol, double[] matrix)
nRow
- number of rows in this matrix.nCol
- number of columns in this matrix.matrix
- a 1D array that specifies a matrix in row major fashionpublic GMatrix(GMatrix matrix)
matrix
- the source of the initial values of the new GMatrixpublic final void mul(GMatrix m1)
m1
- the other matrixpublic final void mul(GMatrix m1, GMatrix m2)
m1
- the first matrixm2
- the second matrixpublic final void mul(GVector v1, GVector v2)
v1
- the first vector, treated as a row vectorv2
- the second vector, treated as a column vectorpublic final void add(GMatrix m1)
m1
- the other matrixpublic final void add(GMatrix m1, GMatrix m2)
m1
- the first matrixm2
- the second matrixpublic final void sub(GMatrix m1)
m1
- the other matrixpublic final void sub(GMatrix m1, GMatrix m2)
m1
- the first matrixm2
- the second matrixpublic final void negate()
public final void negate(GMatrix m1)
m1
- The source matrixpublic final void setIdentity()
public final void setZero()
public final void identityMinus()
public final void invert()
public final void invert(GMatrix m1)
m1
- the matrix to be invertedpublic final void copySubMatrix(int rowSource, int colSource, int numRow, int numCol, int rowDest, int colDest, GMatrix target)
rowSource
- the top-most row of the sub-matrixcolSource
- the left-most column of the sub-matrixnumRow
- the number of rows in the sub-matrixnumCol
- the number of columns in the sub-matrixrowDest
- the top-most row of the position of the copied sub-matrix
within the target matrixcolDest
- the left-most column of the position of the copied sub-matrix
within the target matrixtarget
- the matrix into which the sub-matrix will be copiedpublic final void setSize(int nRow, int nCol)
nRow
- number of desired rows in this matrixnCol
- number of desired columns in this matrixpublic final void set(double[] matrix)
matrix
- the row major source arraypublic final void set(Matrix3f m1)
m1
- the source matrixpublic final void set(Matrix3d m1)
m1
- the source matrixpublic final void set(Matrix4f m1)
m1
- the source matrixpublic final void set(Matrix4d m1)
m1
- the source matrixpublic final void set(GMatrix m1)
m1
- the source matrixpublic final int getNumRow()
public final int getNumCol()
public final double getElement(int row, int column)
row
- the row number to be retrieved (zero indexed)column
- the column number to be retrieved (zero indexed)public final void setElement(int row, int column, double value)
row
- the row number to be modified (zero indexed)column
- the column number to be modified (zero indexed)value
- the new matrix element valuepublic final void getRow(int row, double[] array)
row
- the target row numberarray
- the array into which the row values will be placedpublic final void getRow(int row, GVector vector)
row
- the target row numbervector
- the vector into which the row values will be placedpublic final void getColumn(int col, double[] array)
col
- the target column numberarray
- the array into which the column values will be placedpublic final void getColumn(int col, GVector vector)
col
- the target column numbervector
- the vector into which the column values will be placedpublic final void get(Matrix3d m1)
m1
- The matrix that will hold the new valuespublic final void get(Matrix3f m1)
m1
- The matrix that will hold the new valuespublic final void get(Matrix4d m1)
m1
- The matrix that will hold the new valuespublic final void get(Matrix4f m1)
m1
- The matrix that will hold the new valuespublic final void get(GMatrix m1)
m1
- The matrix that will hold the new valuespublic final void setRow(int row, double[] array)
row
- the row of this matrix into which the array values
will be copied.array
- the source arraypublic final void setRow(int row, GVector vector)
row
- the row of this matrix into which the vector values
will be copied.vector
- the source vectorpublic final void setColumn(int col, double[] array)
row
- the column of this matrix into which the array values
will be copied.array
- the source arraypublic final void setColumn(int col, GVector vector)
row
- the column of this matrix into which the vector values
will be copied.vector
- the source vectorpublic final void mulTransposeBoth(GMatrix m1, GMatrix m2)
m1
- The matrix on the left hand side of the multiplicationm2
- The matrix on the right hand side of the multiplicationpublic final void mulTransposeRight(GMatrix m1, GMatrix m2)
public final void mulTransposeLeft(GMatrix m1, GMatrix m2)
m1
- The matrix on the left hand side of the multiplicationm2
- The matrix on the right hand side of the multiplicationpublic final void transpose()
public final void transpose(GMatrix m1)
m1
- the matrix to be transposed (but not modified)public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(GMatrix m1)
m1
- The matrix with which the comparison is made.public boolean equals(java.lang.Object o1)
equals
in class java.lang.Object
o1
- the object with which the comparison is made.public boolean epsilonEquals(GMatrix m1, float epsilon)
m1
- The matrix to be compared to this matrixepsilon
- the threshold valuepublic boolean epsilonEquals(GMatrix m1, double epsilon)
m1
- The matrix to be compared to this matrixepsilon
- the threshold valuepublic final double trace()
public final void setScale(double scale)
scale
- The new scale valuepublic final int SVD(GMatrix u, GMatrix w, GMatrix v)
U
- The computed U matrix in the equation this = U*W*transpose(V)W
- The computed W matrix in the equation this = U*W*transpose(V)V
- The computed V matrix in the equation this = U*W*transpose(V)public final int LUD(GMatrix LU, GVector permutation)
permutation
- The row permutation effected by the
partial pivoting