Class pmr.euclid.IntMatrix
All Packages Class Hierarchy This Package Previous Next Index
Class pmr.euclid.IntMatrix
java.lang.Object
|
+----pmr.euclid.Status
|
+----pmr.euclid.IntMatrix
- public class IntMatrix
- extends Status
IntMatrix - rectangular integer matrix class
IntMatrix represents a rectangular m-x-n matrix.
The basic matrix algebra for non-square matrices is represented here
and this class is also a base for square matrices.
Read the signature of each member function carefully as some MODIFY
the object and some CREATE A NEW ONE. Among the reasons for this
is that subclassing (e.g to IntSquareMatrix) is easier with
one of these forms in certain cases. Note that if you modify
an object, then all references to it will refer to the changed object
- Author:
- (C) P. Murray-Rust, 1996
-
cols
- number of columns
-
flmat
- the matrix
-
rows
- number of rows
-
IntMatrix()
- Default matrix, with cols = rows = 0
-
IntMatrix(int, int)
- A rows*cols matrix set to 0 (rows or cols < 0 defaults to 0)
-
IntMatrix(int, int, int)
- initalises all elements in the array with a given int[]
-
IntMatrix(int, int, int[])
- Formed by feeding in an existing 1-D array to a rowsXcols matrix.
-
IntMatrix(int[][])
- COPY from an existing matrix - check that it is rectangular
-
IntMatrix(IntMatrix)
- copy constructor - COPIES the other matrix
-
IntMatrix(IntMatrix, int, int, int, int)
- submatrix of another matrix; fails if lowrow > hirow, lowrow < 0, etc.
-
appendColumnData(IntArray)
- append data to matrix columnwise
-
appendColumnData(IntMatrix)
- append data to matrix columnwise
-
appendRowData(IntArray)
- append data to matrix rowwise
-
appendRowData(IntMatrix)
- append data to matrix rowwise
-
clearMatrix()
- clear matrix
-
clone(IntMatrix)
-
-
deleteColumn(int)
- delete column from matrix and close up
-
deleteColumns(int, int)
- delete 2 or more adjacent columns (inclusive) from matrix and close up
-
deleteRow(int)
- delete row from matrix and close up
-
deleteRows(int, int)
- delete 2 or more adjacent rows (inclusive) from matrix and close up;
if (high > rows-1 high -> rows-1; or low < 0, low -> 0
-
elementAt(int, int)
- extracts a given element from the matrix
-
elementAt(Int2)
- extracts a given element from the matrix
-
elementsInRange(IntRange)
- produce a mask of those elements which fall in a range (1) else (0)
-
equals(IntMatrix)
- are two matrices equal in all elements?
-
extractColumnData(int)
- get column data from matrix
-
extractRowData(int)
- get row data from matrix
-
extractSubMatrixData(int, int, int, int)
- extract a IntMatrix submatrix from a IntMatrix
-
getCols()
- get number of columns
-
getMatrix()
-
-
getMatrixAsArray()
- get matrix as int[] (in C order: m(0,0), m(0,1) ...)
-
getRows()
- get number of rows
-
getTranspose()
- transpose matrix - creates new Matrix
-
indexOfLargestElement()
- get index of largest element
-
indexOfLargestElementInColumn(int)
- get index of largest element in column
-
indexOfLargestElementInRow(int)
- get index of largest element in row (or -1 if default matrix)
-
indexOfSmallestElement()
- get index of smallest element
-
indexOfSmallestElementInColumn(int)
- get index of smallest elem in column
-
indexOfSmallestElementInRow(int)
- get index of smallest element in row
-
insertColumnData(int, IntArray)
- add data as column or column block into matrix and expand
-
insertColumnData(int, IntMatrix)
- add data as column or column block into matrix and expand
-
insertColumns(int, int)
- insert a hole into the matric and expand
-
insertRowData(int, IntArray)
- insert row of data into matrix and expand
-
insertRowData(int, IntMatrix)
- insert 2 or more adjacent rows of data into matrix and expand
-
insertRows(int, int)
- make space for new rows in matrix and expand
-
isSquare()
- is the matrix square?
-
largestElement()
- get largest element
-
largestElementInColumn(int)
- get largest element in a column
-
largestElementInRow(int)
- get largest element in a row
-
main(String[])
- tests IntMatrix routines = new IntMatrix
-
multiply(IntArray)
- matrix multiplication of a COLUMN vector
-
multiply(IntMatrix)
- matrix multiplication - multiplies conformable matrices to give NEW matrix
result = 'this' * m; (order matters)
-
multiplyBy(int)
- matrix multiplication by a scalar - MODIFIES matrix
-
negative()
- unary minus - negate all elements of matrix; MODIFIES matrix
-
plus(IntMatrix)
- matrix addition - adds conformable matrices giving NEW matrix
-
reorderColumnsBy(IntSet)
- reorder the columns of a matrix.
-
reorderRowsBy(IntSet)
- reorder the rows of a matrix.
-
replaceColumnData(int, int[])
- and from int[]
-
replaceColumnData(int, IntArray)
- replace data in a single column - return false if impossible
-
replaceColumnData(int, IntMatrix)
- replace data in a block of columns
-
replaceRowData(int, int[])
- and using a int[]
-
replaceRowData(int, IntArray)
- overwrite existing row of data
-
replaceRowData(int, IntMatrix)
- overwrite existing block of rows; if too big, copying is truncated
-
replaceSubMatrixData(int, int, IntMatrix)
- replaces the data starting at (low_row, low_col) and extending by the
dimensions for the matrix m
-
setAllElements(int)
- initialise matrix to given int
-
setElementAt(int, int, int)
- inserts a given element to the matrix - MODIFIES matrix
-
shallowCopy(IntMatrix)
- shallowCopy
-
smallestElement()
- get smallest element
-
smallestElementInColumn(int)
- get smallest element in a column
-
smallestElementInRow(int)
- get smallest element in a row
-
subtract(IntMatrix)
- matrix subtraction - subtracts conformable matrices giving NEW matrix
-
toString()
- output matrix - very crude...
rows
protected int rows
- number of rows
cols
protected int cols
- number of columns
flmat
protected int flmat[][]
- the matrix
IntMatrix
public IntMatrix()
- Default matrix, with cols = rows = 0
IntMatrix
public IntMatrix(int r,
int c)
- A rows*cols matrix set to 0 (rows or cols < 0 defaults to 0)
IntMatrix
public IntMatrix(int rows,
int cols,
int array[]) throws InvalidArgumentException
- Formed by feeding in an existing 1-D array to a rowsXcols matrix.
THE COLUMN IS THE FASTEST MOVING INDEX, i.e. the matrix is filled
as flmat(0,0), flmat(0,1) ... C-LIKE.
COPIES the array
- Throws: InvalidArgumentException
- size of array is not rows*cols
IntMatrix
public IntMatrix(int r,
int c,
int f)
- initalises all elements in the array with a given int[]
IntMatrix
public IntMatrix(IntMatrix m,
int lowrow,
int hirow,
int lowcol,
int hicol) throws InvalidArgumentException
- submatrix of another matrix; fails if lowrow > hirow, lowrow < 0, etc.
COPIES the parts of m
- Throws: InvalidArgumentException
- impossible value of hirow, hicol, lowrow, lowcol
IntMatrix
public IntMatrix(IntMatrix m)
- copy constructor - COPIES the other matrix
IntMatrix
public IntMatrix(int m[][]) throws NonRectangularMatrixException
- COPY from an existing matrix - check that it is rectangular
- Throws: NonRectangularMatrixException
- m has rows of different lengths
shallowCopy
public void shallowCopy(IntMatrix m)
- shallowCopy
clone
public IntMatrix clone(IntMatrix m)
getRows
public int getRows()
- get number of rows
getCols
public int getCols()
- get number of columns
getMatrix
public int[][] getMatrix()
getMatrixAsArray
public int[] getMatrixAsArray()
- get matrix as int[] (in C order: m(0,0), m(0,1) ...)
equals
public boolean equals(IntMatrix m) throws UnconformableMatricesException
- are two matrices equal in all elements?
- Throws: UnconformableMatricesException
- m and this are different sizes
plus
public IntMatrix plus(IntMatrix m2) throws UnconformableMatricesException
- matrix addition - adds conformable matrices giving NEW matrix
- Throws: UnconformableMatricesException
- m and this are different sizes
subtract
public IntMatrix subtract(IntMatrix m2) throws UnconformableMatricesException
- matrix subtraction - subtracts conformable matrices giving NEW matrix
- Throws: UnconformableMatricesException
- m and this are different sizes
negative
public void negative()
- unary minus - negate all elements of matrix; MODIFIES matrix
multiply
public IntMatrix multiply(IntMatrix m) throws UnconformableMatricesException
- matrix multiplication - multiplies conformable matrices to give NEW matrix
result = 'this' * m; (order matters)
- Throws: UnconformableMatricesException
- m and this are different sizes
multiplyBy
public void multiplyBy(int f)
- matrix multiplication by a scalar - MODIFIES matrix
multiply
public IntArray multiply(IntArray f) throws UnconformableMatricesException
- matrix multiplication of a COLUMN vector
- Throws: UnconformableMatricesException
- f.size() differs from cols
elementAt
public int elementAt(int row,
int col)
- extracts a given element from the matrix
elementAt
public int elementAt(Int2 rowcol)
- extracts a given element from the matrix
setElementAt
public void setElementAt(int row,
int col,
int f)
- inserts a given element to the matrix - MODIFIES matrix
largestElement
public int largestElement()
- get largest element
indexOfLargestElement
public Int2 indexOfLargestElement()
- get index of largest element
largestElementInColumn
public int largestElementInColumn(int jcol)
- get largest element in a column
indexOfLargestElementInColumn
public int indexOfLargestElementInColumn(int jcol)
- get index of largest element in column
largestElementInRow
public int largestElementInRow(int irow)
- get largest element in a row
indexOfLargestElementInRow
public int indexOfLargestElementInRow(int irow)
- get index of largest element in row (or -1 if default matrix)
smallestElement
public int smallestElement()
- get smallest element
indexOfSmallestElement
public Int2 indexOfSmallestElement()
- get index of smallest element
smallestElementInColumn
public int smallestElementInColumn(int jcol)
- get smallest element in a column
indexOfSmallestElementInColumn
public int indexOfSmallestElementInColumn(int jcol)
- get index of smallest elem in column
smallestElementInRow
public int smallestElementInRow(int irow)
- get smallest element in a row
indexOfSmallestElementInRow
public int indexOfSmallestElementInRow(int irow)
- get index of smallest element in row
extractColumnData
public IntArray extractColumnData(int col)
- get column data from matrix
extractRowData
public IntArray extractRowData(int row)
- get row data from matrix
clearMatrix
public void clearMatrix()
- clear matrix
setAllElements
public void setAllElements(int f)
- initialise matrix to given int
getTranspose
public IntMatrix getTranspose()
- transpose matrix - creates new Matrix
isSquare
public boolean isSquare()
- is the matrix square?
deleteColumn
public void deleteColumn(int col)
- delete column from matrix and close up
deleteColumns
public void deleteColumns(int low,
int high)
- delete 2 or more adjacent columns (inclusive) from matrix and close up
deleteRow
public void deleteRow(int row)
- delete row from matrix and close up
deleteRows
public void deleteRows(int low,
int high)
- delete 2 or more adjacent rows (inclusive) from matrix and close up;
if (high > rows-1 high -> rows-1; or low < 0, low -> 0
replaceColumnData
public boolean replaceColumnData(int column,
IntArray f)
- replace data in a single column - return false if impossible
replaceColumnData
public void replaceColumnData(int starting_col,
int f[])
- and from int[]
replaceColumnData
public void replaceColumnData(int start_column,
IntMatrix m)
- replace data in a block of columns
insertColumns
public void insertColumns(int after_col,
int delta_cols)
- insert a hole into the matric and expand
insertColumnData
public void insertColumnData(int after_col,
IntArray f)
- add data as column or column block into matrix and expand
insertColumnData
public void insertColumnData(int after_col,
IntMatrix m)
- add data as column or column block into matrix and expand
insertRows
public void insertRows(int after_row,
int delta_rows)
- make space for new rows in matrix and expand
replaceRowData
public void replaceRowData(int row,
IntArray f) throws UnconformableMatricesException
- overwrite existing row of data
- Throws: UnconformableMatricesException
- f.size() and cols differ
replaceRowData
public void replaceRowData(int row,
int f[]) throws UnconformableMatricesException
- and using a int[]
- Throws: UnconformableMatricesException
- f.length and cols differ
replaceRowData
public void replaceRowData(int after_row,
IntMatrix m) throws UnconformableMatricesException
- overwrite existing block of rows; if too big, copying is truncated
- Throws: UnconformableMatricesException
- m.rows and this.rows differ
insertRowData
public void insertRowData(int after_row,
IntMatrix m) throws UnconformableMatricesException
- insert 2 or more adjacent rows of data into matrix and expand
- Throws: UnconformableMatricesException
- m.cols and this.colsdiffer
insertRowData
public void insertRowData(int after_row,
IntArray f) throws UnconformableMatricesException
- insert row of data into matrix and expand
- Throws: UnconformableMatricesException
- f.size() and this.cols differ
appendColumnData
public void appendColumnData(IntArray f) throws UnconformableMatricesException
- append data to matrix columnwise
- Throws: UnconformableMatricesException
- f.size() and this.rows differ
appendColumnData
public void appendColumnData(IntMatrix m) throws UnconformableMatricesException
- append data to matrix columnwise
- Throws: UnconformableMatricesException
- m.rows and this.rows differ
appendRowData
public void appendRowData(IntArray f) throws UnconformableMatricesException
- append data to matrix rowwise
- Throws: UnconformableMatricesException
- m.cols and this.cols differ
appendRowData
public void appendRowData(IntMatrix m) throws UnconformableMatricesException
- append data to matrix rowwise
- Throws: UnconformableMatricesException
- m.cols and this.cols differ
replaceSubMatrixData
public void replaceSubMatrixData(int low_row,
int low_col,
IntMatrix m)
- replaces the data starting at (low_row, low_col) and extending by the
dimensions for the matrix m
reorderColumnsBy
public IntMatrix reorderColumnsBy(IntSet is) throws UnconformableMatricesException, ArrayIndexOutOfBoundsException
- reorder the columns of a matrix.
- Throws: UnconformableMatricesException
- is.size() and this.cols differ
- Throws: ArrayIndexOutOfBoundsException
- an element of is >= this.cols
reorderRowsBy
public IntMatrix reorderRowsBy(IntSet is) throws UnconformableMatricesException, ArrayIndexOutOfBoundsException
- reorder the rows of a matrix. Deleting rows is allowed
- Throws: UnconformableMatricesException
- is.size() and this.rows differ
- Throws: ArrayIndexOutOfBoundsException
- an element of is >= this.rows
extractSubMatrixData
public IntMatrix extractSubMatrixData(int low_row,
int high_row,
int low_col,
int high_col) throws InvalidArgumentException
- extract a IntMatrix submatrix from a IntMatrix
- Throws: InvalidArgumentException
- low/high_row/col are outside range of this
elementsInRange
public IntMatrix elementsInRange(IntRange r)
- produce a mask of those elements which fall in a range (1) else (0)
toString
public String toString()
- output matrix - very crude...
- Overrides:
- toString in class Object
main
public static void main(String args[])
- tests IntMatrix routines = new IntMatrix
All Packages Class Hierarchy This Package Previous Next Index