|
Parallel Colt 0.9.4 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcern.colt.PersistentObject
cern.colt.matrix.tlong.algo.LongProperty
public class LongProperty
Tests matrices for linear algebraic properties (equality, tridiagonality, symmetry, singularity, etc).
Note that this implementation is not synchronized.
Here are some example properties
matrix | 4 x 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
4 x 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |
4 x 4 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 |
4 x 4 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 |
4 x 4 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 |
4 x 4 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 |
4 x 4 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 |
upperBandwidth | 0 |
0 |
1 |
3 | 0 | 1 |
2 |
lowerBandwidth | 0 |
0 |
1 |
0 | 3 | 3 |
2 |
semiBandwidth | 1 |
1 |
2 |
4 | 4 | 4 |
3 |
description | zero |
diagonal |
tridiagonal |
upper triangular | lower triangular | unstructured
|
unstructured
|
Field Summary | |
---|---|
static LongProperty |
DEFAULT
The default Property object;. |
Constructor Summary | |
---|---|
LongProperty()
Constructs an instance with a tolerance of Math.abs(newTolerance). |
Method Summary | |
---|---|
void |
checkRectangular(LongMatrix2D A)
Checks whether the given matrix A is rectangular. |
void |
checkSquare(LongMatrix2D A)
Checks whether the given matrix A is square. |
int |
density(LongMatrix2D A)
Returns the matrix's fraction of non-zero cells; A.cardinality() / A.size(). |
boolean |
equals(LongMatrix1D A,
long value)
Returns whether all cells of the given matrix A are equal to the given value. |
boolean |
equals(LongMatrix1D A,
LongMatrix1D B)
Returns whether both given matrices A and B are equal. |
boolean |
equals(LongMatrix2D A,
long value)
Returns whether all cells of the given matrix A are equal to the given value. |
boolean |
equals(LongMatrix2D A,
LongMatrix2D B)
Returns whether both given matrices A and B are equal. |
boolean |
equals(LongMatrix3D A,
long value)
Returns whether all cells of the given matrix A are equal to the given value. |
boolean |
equals(LongMatrix3D A,
LongMatrix3D B)
Returns whether both given matrices A and B are equal. |
void |
generateNonSingular(LongMatrix2D A)
Modifies the given matrix square matrix A such that it is diagonally dominant by row and column, hence non-singular, hence invertible. |
boolean |
isDiagonal(LongMatrix2D A)
A matrix A is diagonal if A[i,j] == 0 whenever i != j. |
boolean |
isDiagonallyDominantByColumn(LongMatrix2D A)
A matrix A is diagonally dominant by column if the absolute value of each diagonal element is larger than the sum of the absolute values of the off-diagonal elements in the corresponding column. |
boolean |
isDiagonallyDominantByRow(LongMatrix2D A)
A matrix A is diagonally dominant by row if the absolute value of each diagonal element is larger than the sum of the absolute values of the off-diagonal elements in the corresponding row. |
boolean |
isIdentity(LongMatrix2D A)
A matrix A is an identity matrix if A[i,i] == 1 and all other cells are zero. |
boolean |
isLowerBidiagonal(LongMatrix2D A)
A matrix A is lower bidiagonal if A[i,j]==0 unless i==j || i==j+1. |
boolean |
isLowerTriangular(LongMatrix2D A)
A matrix A is lower triangular if A[i,j]==0 whenever i < j. |
boolean |
isNonNegative(LongMatrix2D A)
A matrix A is non-negative if A[i,j] >= 0 holds for all cells. |
boolean |
isOrthogonal(LongMatrix2D A)
A square matrix A is orthogonal if A*transpose(A) = I. |
boolean |
isPositive(LongMatrix2D A)
A matrix A is positive if A[i,j] > 0 holds for all cells. |
boolean |
isSkewSymmetric(LongMatrix2D A)
A square matrix A is skew-symmetric if A = -transpose(A), that is A[i,j] == -A[j,i]. |
boolean |
isSquare(LongMatrix2D A)
A matrix A is square if it has the same number of rows and columns. |
boolean |
isStrictlyLowerTriangular(LongMatrix2D A)
A matrix A is strictly lower triangular if A[i,j]==0 whenever i <= j. |
boolean |
isStrictlyTriangular(LongMatrix2D A)
A matrix A is strictly triangular if it is triangular and its diagonal elements all equal 0. |
boolean |
isStrictlyUpperTriangular(LongMatrix2D A)
A matrix A is strictly upper triangular if A[i,j]==0 whenever i >= j. |
boolean |
isSymmetric(LongMatrix2D A)
A matrix A is symmetric if A = tranpose(A), that is A[i,j] == A[j,i]. |
boolean |
isTriangular(LongMatrix2D A)
A matrix A is triangular iff it is either upper or lower triangular. |
boolean |
isTridiagonal(LongMatrix2D A)
A matrix A is tridiagonal if A[i,j]==0 whenever Math.abs(i-j) > 1. |
boolean |
isUnitTriangular(LongMatrix2D A)
A matrix A is unit triangular if it is triangular and its diagonal elements all equal 1. |
boolean |
isUpperBidiagonal(LongMatrix2D A)
A matrix A is upper bidiagonal if A[i,j]==0 unless i==j || i==j-1. |
boolean |
isUpperTriangular(LongMatrix2D A)
A matrix A is upper triangular if A[i,j]==0 whenever i > j. |
boolean |
isZero(LongMatrix2D A)
A matrix A is zero if all its cells are zero. |
int |
lowerBandwidth(LongMatrix2D A)
The lower bandwidth of a square matrix A is the maximum i-j for which A[i,j] is nonzero and i > j. |
int |
semiBandwidth(LongMatrix2D A)
Returns the semi-bandwidth of the given square matrix A. |
String |
toString(LongMatrix2D A)
Returns summary information about the given matrix A. |
int |
upperBandwidth(LongMatrix2D A)
The upper bandwidth of a square matrix A is the maximum j-i for which A[i,j] is nonzero and j > i. |
Methods inherited from class cern.colt.PersistentObject |
---|
clone |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final LongProperty DEFAULT
Constructor Detail |
---|
public LongProperty()
Method Detail |
---|
public void checkRectangular(LongMatrix2D A)
IllegalArgumentException
- if A.rows() < A.columns().public void checkSquare(LongMatrix2D A)
IllegalArgumentException
- if A.rows() != A.columns().public int density(LongMatrix2D A)
public boolean equals(LongMatrix1D A, long value)
A
- the first matrix to compare.value
- the value to compare against.
public boolean equals(LongMatrix1D A, LongMatrix1D B)
A
- the first matrix to compare.B
- the second matrix to compare.
public boolean equals(LongMatrix2D A, long value)
A
- the first matrix to compare.value
- the value to compare against.
public boolean equals(LongMatrix2D A, LongMatrix2D B)
A
- the first matrix to compare.B
- the second matrix to compare.
public boolean equals(LongMatrix3D A, long value)
A
- the first matrix to compare.value
- the value to compare against.
public boolean equals(LongMatrix3D A, LongMatrix3D B)
A
- the first matrix to compare.B
- the second matrix to compare.
public void generateNonSingular(LongMatrix2D A)
A
- the square matrix to modify.
IllegalArgumentException
- if !isSquare(A).public boolean isDiagonal(LongMatrix2D A)
public boolean isDiagonallyDominantByColumn(LongMatrix2D A)
Note: Ignores tolerance.
public boolean isDiagonallyDominantByRow(LongMatrix2D A)
Note: Ignores tolerance.
public boolean isIdentity(LongMatrix2D A)
public boolean isLowerBidiagonal(LongMatrix2D A)
public boolean isLowerTriangular(LongMatrix2D A)
public boolean isNonNegative(LongMatrix2D A)
Note: Ignores tolerance.
public boolean isOrthogonal(LongMatrix2D A)
IllegalArgumentException
- if !isSquare(A).public boolean isPositive(LongMatrix2D A)
Note: Ignores tolerance.
public boolean isSkewSymmetric(LongMatrix2D A)
IllegalArgumentException
- if !isSquare(A).public boolean isSquare(LongMatrix2D A)
public boolean isStrictlyLowerTriangular(LongMatrix2D A)
public boolean isStrictlyTriangular(LongMatrix2D A)
public boolean isStrictlyUpperTriangular(LongMatrix2D A)
public boolean isSymmetric(LongMatrix2D A)
IllegalArgumentException
- if !isSquare(A).public boolean isTriangular(LongMatrix2D A)
public boolean isTridiagonal(LongMatrix2D A)
public boolean isUnitTriangular(LongMatrix2D A)
public boolean isUpperBidiagonal(LongMatrix2D A)
public boolean isUpperTriangular(LongMatrix2D A)
public boolean isZero(LongMatrix2D A)
public int lowerBandwidth(LongMatrix2D A)
A
- the square matrix to analyze.
IllegalArgumentException
- if !isSquare(A).semiBandwidth(LongMatrix2D)
,
upperBandwidth(LongMatrix2D)
public int semiBandwidth(LongMatrix2D A)
The upper bandwidth is the maximum j-i for which A[i,j] is nonzero and j > i. The lower bandwidth is the maximum i-j for which A[i,j] is nonzero and i > j. Diagonal, tridiagonal and triangular matrices are special cases.
Examples:
matrix | 4 x 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
4 x 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |
4 x 4 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 |
4 x 4 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 |
4 x 4 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 |
4 x 4 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 |
4 x 4 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 |
upperBandwidth | 0 |
0 |
1 |
3 | 0 | 1 |
2 |
lowerBandwidth | 0 |
0 |
1 |
0 | 3 | 3 |
2 |
semiBandwidth | 1 |
1 |
2 |
4 | 4 | 4 |
3 |
description | zero |
diagonal |
tridiagonal |
upper triangular | lower triangular |
unstructured |
unstructured |
A
- the square matrix to analyze.
IllegalArgumentException
- if !isSquare(A).lowerBandwidth(LongMatrix2D)
,
upperBandwidth(LongMatrix2D)
public String toString(LongMatrix2D A)
density : 0.9 isDiagonal : false isDiagonallyDominantByRow : false isDiagonallyDominantByColumn : false isIdentity : false isLowerBidiagonal : false isLowerTriangular : false isNonNegative : true isOrthogonal : Illegal operation or error: Matrix must be square. isPositive : true isSingular : Illegal operation or error: Matrix must be square. isSkewSymmetric : Illegal operation or error: Matrix must be square. isSquare : false isStrictlyLowerTriangular : false isStrictlyTriangular : false isStrictlyUpperTriangular : false isSymmetric : Illegal operation or error: Matrix must be square. isTriangular : false isTridiagonal : false isUnitTriangular : false isUpperBidiagonal : false isUpperTriangular : false isZero : false lowerBandwidth : Illegal operation or error: Matrix must be square. semiBandwidth : Illegal operation or error: Matrix must be square. upperBandwidth : Illegal operation or error: Matrix must be square.
public int upperBandwidth(LongMatrix2D A)
A
- the square matrix to analyze.
IllegalArgumentException
- if !isSquare(A).semiBandwidth(LongMatrix2D)
,
lowerBandwidth(LongMatrix2D)
|
Parallel Colt 0.9.4 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |