Class Matrix
- java.lang.Object
 - 
- org.bouncycastle.pqc.math.linearalgebra.Matrix
 
 
- 
- Direct Known Subclasses:
 GF2Matrix,GF2mMatrix
public abstract class Matrix extends java.lang.ObjectThis abstract class defines matrices. It holds the number of rows and the number of columns of the matrix and defines some basic methods. 
- 
- 
Field Summary
Fields Modifier and Type Field Description static charMATRIX_TYPE_RANDOM_LTrandom lower triangular matrixstatic charMATRIX_TYPE_RANDOM_REGULARrandom regular matrixstatic charMATRIX_TYPE_RANDOM_UTrandom upper triangular matrixstatic charMATRIX_TYPE_UNITunit matrixstatic charMATRIX_TYPE_ZEROzero matrixprotected intnumColumnsnumber of columnsprotected intnumRowsnumber of rows 
- 
Constructor Summary
Constructors Constructor Description Matrix() 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract MatrixcomputeInverse()Compute the inverse of this matrix.abstract byte[]getEncoded()intgetNumColumns()intgetNumRows()abstract booleanisZero()Check if this is the zero matrix (i.e., all entries are zero).abstract VectorleftMultiply(Vector vector)Compute the product of a vector and this matrix.abstract MatrixrightMultiply(Matrix a)Compute the product of this matrix and another matrix.abstract MatrixrightMultiply(Permutation p)Compute the product of this matrix and a permutation.abstract VectorrightMultiply(Vector vector)Compute the product of this matrix and a vector.abstract java.lang.StringtoString() 
 - 
 
- 
- 
Field Detail
- 
numRows
protected int numRows
number of rows 
- 
numColumns
protected int numColumns
number of columns 
- 
MATRIX_TYPE_ZERO
public static final char MATRIX_TYPE_ZERO
zero matrix- See Also:
 - Constant Field Values
 
 
- 
MATRIX_TYPE_UNIT
public static final char MATRIX_TYPE_UNIT
unit matrix- See Also:
 - Constant Field Values
 
 
- 
MATRIX_TYPE_RANDOM_LT
public static final char MATRIX_TYPE_RANDOM_LT
random lower triangular matrix- See Also:
 - Constant Field Values
 
 
- 
MATRIX_TYPE_RANDOM_UT
public static final char MATRIX_TYPE_RANDOM_UT
random upper triangular matrix- See Also:
 - Constant Field Values
 
 
- 
MATRIX_TYPE_RANDOM_REGULAR
public static final char MATRIX_TYPE_RANDOM_REGULAR
random regular matrix- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
getNumRows
public int getNumRows()
- Returns:
 - the number of rows in the matrix
 
 
- 
getNumColumns
public int getNumColumns()
- Returns:
 - the number of columns in the binary matrix
 
 
- 
getEncoded
public abstract byte[] getEncoded()
- Returns:
 - the encoded matrix, i.e., this matrix in byte array form.
 
 
- 
computeInverse
public abstract Matrix computeInverse()
Compute the inverse of this matrix.- Returns:
 - the inverse of this matrix (newly created).
 
 
- 
isZero
public abstract boolean isZero()
Check if this is the zero matrix (i.e., all entries are zero).- Returns:
 - true if this is the zero matrix
 
 
- 
rightMultiply
public abstract Matrix rightMultiply(Matrix a)
Compute the product of this matrix and another matrix.- Parameters:
 a- the other matrix- Returns:
 - this * a (newly created)
 
 
- 
rightMultiply
public abstract Matrix rightMultiply(Permutation p)
Compute the product of this matrix and a permutation.- Parameters:
 p- the permutation- Returns:
 - this * p (newly created)
 
 
- 
leftMultiply
public abstract Vector leftMultiply(Vector vector)
Compute the product of a vector and this matrix. If the length of the vector is greater than the number of rows of this matrix, the matrix is multiplied by each m-bit part of the vector.- Parameters:
 vector- a vector- Returns:
 - vector * this (newly created)
 
 
- 
rightMultiply
public abstract Vector rightMultiply(Vector vector)
Compute the product of this matrix and a vector.- Parameters:
 vector- a vector- Returns:
 - this * vector (newly created)
 
 
- 
toString
public abstract java.lang.String toString()
- Overrides:
 toStringin classjava.lang.Object- Returns:
 - a human readable form of the matrix.
 
 
 - 
 
 -