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

Variable Index

 o cols
number of columns
 o flmat
the matrix
 o rows
number of rows

Constructor Index

 o IntMatrix()
Default matrix, with cols = rows = 0
 o IntMatrix(int, int)
A rows*cols matrix set to 0 (rows or cols < 0 defaults to 0)
 o IntMatrix(int, int, int)
initalises all elements in the array with a given int[]
 o IntMatrix(int, int, int[])
Formed by feeding in an existing 1-D array to a rowsXcols matrix.
 o IntMatrix(int[][])
COPY from an existing matrix - check that it is rectangular
 o IntMatrix(IntMatrix)
copy constructor - COPIES the other matrix
 o IntMatrix(IntMatrix, int, int, int, int)
submatrix of another matrix; fails if lowrow > hirow, lowrow < 0, etc.

Method Index

 o appendColumnData(IntArray)
append data to matrix columnwise
 o appendColumnData(IntMatrix)
append data to matrix columnwise
 o appendRowData(IntArray)
append data to matrix rowwise
 o appendRowData(IntMatrix)
append data to matrix rowwise
 o clearMatrix()
clear matrix
 o clone(IntMatrix)
 o deleteColumn(int)
delete column from matrix and close up
 o deleteColumns(int, int)
delete 2 or more adjacent columns (inclusive) from matrix and close up
 o deleteRow(int)
delete row from matrix and close up
 o 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
 o elementAt(int, int)
extracts a given element from the matrix
 o elementAt(Int2)
extracts a given element from the matrix
 o elementsInRange(IntRange)
produce a mask of those elements which fall in a range (1) else (0)
 o equals(IntMatrix)
are two matrices equal in all elements?
 o extractColumnData(int)
get column data from matrix
 o extractRowData(int)
get row data from matrix
 o extractSubMatrixData(int, int, int, int)
extract a IntMatrix submatrix from a IntMatrix
 o getCols()
get number of columns
 o getMatrix()
 o getMatrixAsArray()
get matrix as int[] (in C order: m(0,0), m(0,1) ...)
 o getRows()
get number of rows
 o getTranspose()
transpose matrix - creates new Matrix
 o indexOfLargestElement()
get index of largest element
 o indexOfLargestElementInColumn(int)
get index of largest element in column
 o indexOfLargestElementInRow(int)
get index of largest element in row (or -1 if default matrix)
 o indexOfSmallestElement()
get index of smallest element
 o indexOfSmallestElementInColumn(int)
get index of smallest elem in column
 o indexOfSmallestElementInRow(int)
get index of smallest element in row
 o insertColumnData(int, IntArray)
add data as column or column block into matrix and expand
 o insertColumnData(int, IntMatrix)
add data as column or column block into matrix and expand
 o insertColumns(int, int)
insert a hole into the matric and expand
 o insertRowData(int, IntArray)
insert row of data into matrix and expand
 o insertRowData(int, IntMatrix)
insert 2 or more adjacent rows of data into matrix and expand
 o insertRows(int, int)
make space for new rows in matrix and expand
 o isSquare()
is the matrix square?
 o largestElement()
get largest element
 o largestElementInColumn(int)
get largest element in a column
 o largestElementInRow(int)
get largest element in a row
 o main(String[])
tests IntMatrix routines = new IntMatrix
 o multiply(IntArray)
matrix multiplication of a COLUMN vector
 o multiply(IntMatrix)
matrix multiplication - multiplies conformable matrices to give NEW matrix result = 'this' * m; (order matters)
 o multiplyBy(int)
matrix multiplication by a scalar - MODIFIES matrix
 o negative()
unary minus - negate all elements of matrix; MODIFIES matrix
 o plus(IntMatrix)
matrix addition - adds conformable matrices giving NEW matrix
 o reorderColumnsBy(IntSet)
reorder the columns of a matrix.
 o reorderRowsBy(IntSet)
reorder the rows of a matrix.
 o replaceColumnData(int, int[])
and from int[]
 o replaceColumnData(int, IntArray)
replace data in a single column - return false if impossible
 o replaceColumnData(int, IntMatrix)
replace data in a block of columns
 o replaceRowData(int, int[])
and using a int[]
 o replaceRowData(int, IntArray)
overwrite existing row of data
 o replaceRowData(int, IntMatrix)
overwrite existing block of rows; if too big, copying is truncated
 o replaceSubMatrixData(int, int, IntMatrix)
replaces the data starting at (low_row, low_col) and extending by the dimensions for the matrix m
 o setAllElements(int)
initialise matrix to given int
 o setElementAt(int, int, int)
inserts a given element to the matrix - MODIFIES matrix
 o shallowCopy(IntMatrix)
shallowCopy
 o smallestElement()
get smallest element
 o smallestElementInColumn(int)
get smallest element in a column
 o smallestElementInRow(int)
get smallest element in a row
 o subtract(IntMatrix)
matrix subtraction - subtracts conformable matrices giving NEW matrix
 o toString()
output matrix - very crude...

Variables

 o rows
  protected int rows
number of rows
 o cols
  protected int cols
number of columns
 o flmat
  protected int flmat[][]
the matrix

Constructors

 o IntMatrix
  public IntMatrix()
Default matrix, with cols = rows = 0
 o IntMatrix
  public IntMatrix(int r,
                   int c)
A rows*cols matrix set to 0 (rows or cols < 0 defaults to 0)
 o 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
 o IntMatrix
  public IntMatrix(int r,
                   int c,
                   int f)
initalises all elements in the array with a given int[]
 o 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
 o IntMatrix
  public IntMatrix(IntMatrix m)
copy constructor - COPIES the other matrix
 o 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

Methods

 o shallowCopy
  public void shallowCopy(IntMatrix m)
shallowCopy
 o clone
  public IntMatrix clone(IntMatrix m)
 o getRows
  public int getRows()
get number of rows
 o getCols
  public int getCols()
get number of columns
 o getMatrix
  public int[][] getMatrix()
 o getMatrixAsArray
  public int[] getMatrixAsArray()
get matrix as int[] (in C order: m(0,0), m(0,1) ...)
 o equals
  public boolean equals(IntMatrix m) throws UnconformableMatricesException
are two matrices equal in all elements?
Throws: UnconformableMatricesException
m and this are different sizes
 o plus
  public IntMatrix plus(IntMatrix m2) throws UnconformableMatricesException
matrix addition - adds conformable matrices giving NEW matrix
Throws: UnconformableMatricesException
m and this are different sizes
 o subtract
  public IntMatrix subtract(IntMatrix m2) throws UnconformableMatricesException
matrix subtraction - subtracts conformable matrices giving NEW matrix
Throws: UnconformableMatricesException
m and this are different sizes
 o negative
  public void negative()
unary minus - negate all elements of matrix; MODIFIES matrix
 o 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
 o multiplyBy
  public void multiplyBy(int f)
matrix multiplication by a scalar - MODIFIES matrix
 o multiply
  public IntArray multiply(IntArray f) throws UnconformableMatricesException
matrix multiplication of a COLUMN vector
Throws: UnconformableMatricesException
f.size() differs from cols
 o elementAt
  public int elementAt(int row,
                       int col)
extracts a given element from the matrix
 o elementAt
  public int elementAt(Int2 rowcol)
extracts a given element from the matrix
 o setElementAt
  public void setElementAt(int row,
                           int col,
                           int f)
inserts a given element to the matrix - MODIFIES matrix
 o largestElement
  public int largestElement()
get largest element
 o indexOfLargestElement
  public Int2 indexOfLargestElement()
get index of largest element
 o largestElementInColumn
  public int largestElementInColumn(int jcol)
get largest element in a column
 o indexOfLargestElementInColumn
  public int indexOfLargestElementInColumn(int jcol)
get index of largest element in column
 o largestElementInRow
  public int largestElementInRow(int irow)
get largest element in a row
 o indexOfLargestElementInRow
  public int indexOfLargestElementInRow(int irow)
get index of largest element in row (or -1 if default matrix)
 o smallestElement
  public int smallestElement()
get smallest element
 o indexOfSmallestElement
  public Int2 indexOfSmallestElement()
get index of smallest element
 o smallestElementInColumn
  public int smallestElementInColumn(int jcol)
get smallest element in a column
 o indexOfSmallestElementInColumn
  public int indexOfSmallestElementInColumn(int jcol)
get index of smallest elem in column
 o smallestElementInRow
  public int smallestElementInRow(int irow)
get smallest element in a row
 o indexOfSmallestElementInRow
  public int indexOfSmallestElementInRow(int irow)
get index of smallest element in row
 o extractColumnData
  public IntArray extractColumnData(int col)
get column data from matrix
 o extractRowData
  public IntArray extractRowData(int row)
get row data from matrix
 o clearMatrix
  public void clearMatrix()
clear matrix
 o setAllElements
  public void setAllElements(int f)
initialise matrix to given int
 o getTranspose
  public IntMatrix getTranspose()
transpose matrix - creates new Matrix
 o isSquare
  public boolean isSquare()
is the matrix square?
 o deleteColumn
  public void deleteColumn(int col)
delete column from matrix and close up
 o deleteColumns
  public void deleteColumns(int low,
                            int high)
delete 2 or more adjacent columns (inclusive) from matrix and close up
 o deleteRow
  public void deleteRow(int row)
delete row from matrix and close up
 o 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
 o replaceColumnData
  public boolean replaceColumnData(int column,
                                   IntArray f)
replace data in a single column - return false if impossible
 o replaceColumnData
  public void replaceColumnData(int starting_col,
                                int f[])
and from int[]
 o replaceColumnData
  public void replaceColumnData(int start_column,
                                IntMatrix m)
replace data in a block of columns
 o insertColumns
  public void insertColumns(int after_col,
                            int delta_cols)
insert a hole into the matric and expand
 o insertColumnData
  public void insertColumnData(int after_col,
                               IntArray f)
add data as column or column block into matrix and expand
 o insertColumnData
  public void insertColumnData(int after_col,
                               IntMatrix m)
add data as column or column block into matrix and expand
 o insertRows
  public void insertRows(int after_row,
                         int delta_rows)
make space for new rows in matrix and expand
 o replaceRowData
  public void replaceRowData(int row,
                             IntArray f) throws UnconformableMatricesException
overwrite existing row of data
Throws: UnconformableMatricesException
f.size() and cols differ
 o replaceRowData
  public void replaceRowData(int row,
                             int f[]) throws UnconformableMatricesException
and using a int[]
Throws: UnconformableMatricesException
f.length and cols differ
 o 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
 o 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
 o 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
 o appendColumnData
  public void appendColumnData(IntArray f) throws UnconformableMatricesException
append data to matrix columnwise
Throws: UnconformableMatricesException
f.size() and this.rows differ
 o appendColumnData
  public void appendColumnData(IntMatrix m) throws UnconformableMatricesException
append data to matrix columnwise
Throws: UnconformableMatricesException
m.rows and this.rows differ
 o appendRowData
  public void appendRowData(IntArray f) throws UnconformableMatricesException
append data to matrix rowwise
Throws: UnconformableMatricesException
m.cols and this.cols differ
 o appendRowData
  public void appendRowData(IntMatrix m) throws UnconformableMatricesException
append data to matrix rowwise
Throws: UnconformableMatricesException
m.cols and this.cols differ
 o 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
 o 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
 o 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
 o 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
 o elementsInRange
  public IntMatrix elementsInRange(IntRange r)
produce a mask of those elements which fall in a range (1) else (0)
 o toString
  public String toString()
output matrix - very crude...
Overrides:
toString in class Object
 o main
  public static void main(String args[])
tests IntMatrix routines = new IntMatrix

All Packages  Class Hierarchy  This Package  Previous  Next  Index