Package cern.colt.matrix.impl
Class AbstractMatrix2D
- java.lang.Object
-
- cern.colt.PersistentObject
-
- cern.colt.matrix.impl.AbstractMatrix
-
- cern.colt.matrix.impl.AbstractMatrix2D
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
DoubleMatrix2D
,ObjectMatrix2D
public abstract class AbstractMatrix2D extends AbstractMatrix
Abstract base class for 2-d matrices holding objects or primitive data types such asint
,double
, etc. First see the package summary and javadoc tree view to get the broad picture.Note that this implementation is not synchronized.
- Version:
- 1.0, 09/24/99
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
columns
the number of colums and rows this matrix (view) hasprotected int
columnStride
the number of elements between two columns, i.e.protected int
columnZero
the index of the first elementprotected int
rows
the number of colums and rows this matrix (view) hasprotected int
rowStride
the number of elements between two rows, i.e.protected int
rowZero
the index of the first element-
Fields inherited from class cern.colt.matrix.impl.AbstractMatrix
isNoView
-
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractMatrix2D()
Makes this class non instantiable, but still let's others inherit from it.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
_columnOffset(int absRank)
Returns the position of the given absolute rank within the (virtual or non-virtual) internal 1-dimensional array.protected int
_columnRank(int rank)
Returns the absolute rank of the given relative rank.protected int
_rowOffset(int absRank)
Returns the position of the given absolute rank within the (virtual or non-virtual) internal 1-dimensional array.protected int
_rowRank(int rank)
Returns the absolute rank of the given relative rank.protected void
checkBox(int row, int column, int height, int width)
Checks whether the receiver contains the given box and throws an exception, if necessary.protected void
checkColumn(int column)
Sanity check for operations requiring a column index to be within bounds.protected void
checkColumnIndexes(int[] indexes)
Checks whether indexes are legal and throws an exception, if necessary.protected void
checkRow(int row)
Sanity check for operations requiring a row index to be within bounds.protected void
checkRowIndexes(int[] indexes)
Checks whether indexes are legal and throws an exception, if necessary.void
checkShape(AbstractMatrix2D B)
Sanity check for operations requiring two matrices with the same number of columns and rows.void
checkShape(AbstractMatrix2D B, AbstractMatrix2D C)
Sanity check for operations requiring matrices with the same number of columns and rows.int
columns()
Returns the number of columns.protected int
index(int row, int column)
Returns the position of the given coordinate within the (virtual or non-virtual) internal 1-dimensional array.int
rows()
Returns the number of rows.protected void
setUp(int rows, int columns)
Sets up a matrix with a given number of rows and columns.protected void
setUp(int rows, int columns, int rowZero, int columnZero, int rowStride, int columnStride)
Sets up a matrix with a given number of rows and columns and the given strides.int
size()
Returns the number of cells which is rows()*columns().java.lang.String
toStringShort()
Returns a string representation of the receiver's shape.protected AbstractMatrix2D
vColumnFlip()
Self modifying version of viewColumnFlip().protected AbstractMatrix2D
vDice()
Self modifying version of viewDice().protected AbstractMatrix2D
vPart(int row, int column, int height, int width)
Self modifying version of viewPart().protected AbstractMatrix2D
vRowFlip()
Self modifying version of viewRowFlip().protected AbstractMatrix2D
vStrides(int rowStride, int columnStride)
Self modifying version of viewStrides().-
Methods inherited from class cern.colt.matrix.impl.AbstractMatrix
ensureCapacity, isView, trimToSize
-
Methods inherited from class cern.colt.PersistentObject
clone
-
-
-
-
Field Detail
-
columns
protected int columns
the number of colums and rows this matrix (view) has
-
rows
protected int rows
the number of colums and rows this matrix (view) has
-
rowStride
protected int rowStride
the number of elements between two rows, i.e. index(i+1,j,k) - index(i,j,k).
-
columnStride
protected int columnStride
the number of elements between two columns, i.e. index(i,j+1,k) - index(i,j,k).
-
rowZero
protected int rowZero
the index of the first element
-
columnZero
protected int columnZero
the index of the first element
-
-
Method Detail
-
_columnOffset
protected int _columnOffset(int absRank)
Returns the position of the given absolute rank within the (virtual or non-virtual) internal 1-dimensional array. Default implementation. Override, if necessary.- Parameters:
rank
- the absolute rank of the element.- Returns:
- the position.
-
_columnRank
protected int _columnRank(int rank)
Returns the absolute rank of the given relative rank.- Parameters:
rank
- the relative rank of the element.- Returns:
- the absolute rank of the element.
-
_rowOffset
protected int _rowOffset(int absRank)
Returns the position of the given absolute rank within the (virtual or non-virtual) internal 1-dimensional array. Default implementation. Override, if necessary.- Parameters:
rank
- the absolute rank of the element.- Returns:
- the position.
-
_rowRank
protected int _rowRank(int rank)
Returns the absolute rank of the given relative rank.- Parameters:
rank
- the relative rank of the element.- Returns:
- the absolute rank of the element.
-
checkBox
protected void checkBox(int row, int column, int height, int width)
Checks whether the receiver contains the given box and throws an exception, if necessary.- Throws:
java.lang.IndexOutOfBoundsException
- if column<0 || width<0 || column+width>columns() || row<0 || height<0 || row+height>rows()
-
checkColumn
protected void checkColumn(int column)
Sanity check for operations requiring a column index to be within bounds.- Throws:
java.lang.IndexOutOfBoundsException
- if column < 0 || column >= columns().
-
checkColumnIndexes
protected void checkColumnIndexes(int[] indexes)
Checks whether indexes are legal and throws an exception, if necessary.- Throws:
java.lang.IndexOutOfBoundsException
- if ! (0 <= indexes[i] < columns()) for any i=0..indexes.length()-1.
-
checkRow
protected void checkRow(int row)
Sanity check for operations requiring a row index to be within bounds.- Throws:
java.lang.IndexOutOfBoundsException
- if row < 0 || row >= rows().
-
checkRowIndexes
protected void checkRowIndexes(int[] indexes)
Checks whether indexes are legal and throws an exception, if necessary.- Throws:
java.lang.IndexOutOfBoundsException
- if ! (0 <= indexes[i] < rows()) for any i=0..indexes.length()-1.
-
checkShape
public void checkShape(AbstractMatrix2D B)
Sanity check for operations requiring two matrices with the same number of columns and rows.- Throws:
java.lang.IllegalArgumentException
- if columns() != B.columns() || rows() != B.rows().
-
checkShape
public void checkShape(AbstractMatrix2D B, AbstractMatrix2D C)
Sanity check for operations requiring matrices with the same number of columns and rows.- Throws:
java.lang.IllegalArgumentException
- if columns() != B.columns() || rows() != B.rows() || columns() != C.columns() || rows() != C.rows().
-
columns
public int columns()
Returns the number of columns.
-
index
protected int index(int row, int column)
Returns the position of the given coordinate within the (virtual or non-virtual) internal 1-dimensional array.- Parameters:
row
- the index of the row-coordinate.column
- the index of the column-coordinate.
-
rows
public int rows()
Returns the number of rows.
-
setUp
protected void setUp(int rows, int columns)
Sets up a matrix with a given number of rows and columns.- Parameters:
rows
- the number of rows the matrix shall have.columns
- the number of columns the matrix shall have.- Throws:
java.lang.IllegalArgumentException
- if rows<0 || columns<0 || (double)columns*rows > Integer.MAX_VALUE.
-
setUp
protected void setUp(int rows, int columns, int rowZero, int columnZero, int rowStride, int columnStride)
Sets up a matrix with a given number of rows and columns and the given strides.- Parameters:
rows
- the number of rows the matrix shall have.columns
- the number of columns the matrix shall have.rowZero
- the position of the first element.columnZero
- the position of the first element.rowStride
- the number of elements between two rows, i.e. index(i+1,j)-index(i,j).columnStride
- the number of elements between two columns, i.e. index(i,j+1)-index(i,j).- Throws:
java.lang.IllegalArgumentException
- if rows<0 || columns<0 || (double)columns*rows > Integer.MAX_VALUE or flip's are illegal.
-
size
public int size()
Returns the number of cells which is rows()*columns().- Specified by:
size
in classAbstractMatrix
-
toStringShort
public java.lang.String toStringShort()
Returns a string representation of the receiver's shape.
-
vColumnFlip
protected AbstractMatrix2D vColumnFlip()
Self modifying version of viewColumnFlip().
-
vDice
protected AbstractMatrix2D vDice()
Self modifying version of viewDice().
-
vPart
protected AbstractMatrix2D vPart(int row, int column, int height, int width)
Self modifying version of viewPart().- Throws:
java.lang.IndexOutOfBoundsException
- if column<0 || width<0 || column+width>columns() || row<0 || height<0 || row+height>rows()
-
vRowFlip
protected AbstractMatrix2D vRowFlip()
Self modifying version of viewRowFlip().
-
vStrides
protected AbstractMatrix2D vStrides(int rowStride, int columnStride)
Self modifying version of viewStrides().- Throws:
java.lang.IndexOutOfBoundsException
- if rowStride<=0 || columnStride<=0.
-
-