Class Matrix1
-
- All Implemented Interfaces:
Serializable
,Cloneable
,LenientComparable
,Matrix
public final class Matrix1 extends MatrixSIS
A matrix of fixed 1×1 size, typically resulting fromMathTransform1D
derivative computation. The matrix member is:┌ ┐ │ m00 │ └ ┘
- Since:
- 0.4
- See Also:
Matrix2
,Matrix3
,Matrix4
, Serialized Form
Defined in the
sis-referencing
module
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Matrix1
castOrCopy(Matrix matrix)
Casts or copies the given matrix to aMatrix1
implementation.boolean
equals(Object object)
Returnstrue
if the specified object is of typeMatrix1
and all of the data members are equal to the corresponding data members in this matrix.double
getElement(int row, int column)
Retrieves the value at the specified row and column of this matrix.double[]
getElements()
Returns all matrix elements in a flat, row-major (column indices vary fastest) array.int
getNumCol()
Returns the number of columns in this matrix, which is always 1 in this implementation.int
getNumRow()
Returns the number of rows in this matrix, which is always 1 in this implementation.int
hashCode()
Returns a hash code value based on the data values in this object.boolean
isAffine()
Returnstrue
if this matrix represents an affine transform.boolean
isIdentity()
Returnstrue
if this matrix is an identity matrix.void
normalizeColumns()
Normalizes all columns in-place.void
setElement(int row, int column, double value)
Modifies the value at the specified row and column of this matrix.void
setElements(double[] elements)
Sets all matrix elements from a flat, row-major (column indices vary fastest) array.void
transpose()
For a 1×1 matrix, this method does nothing.-
Methods inherited from class MatrixSIS
clone, convertAfter, convertBefore, equals, equals, getNumber, inverse, multiply, multiply, removeColumns, removeRows, setMatrix, setNumber, solve, toString, translate
-
-
-
-
Field Detail
-
SIZE
public static final int SIZE
The matrix size, which is 1.- See Also:
- Constant Field Values
-
m00
public double m00
The only element in this matrix.
-
-
Constructor Detail
-
Matrix1
public Matrix1()
Creates a new identity matrix.
-
Matrix1
public Matrix1(double m00)
Creates a new matrix initialized to the specified value.- Parameters:
m00
- The element in this matrix.
-
Matrix1
public Matrix1(double[] elements) throws IllegalArgumentException
Creates a new matrix initialized to the specified values. The length of the given array must be 1.- Parameters:
elements
- elements of the matrix.- Throws:
IllegalArgumentException
- if the given array does not have the expected length.- See Also:
setElements(double[])
,Matrices.create(int, int, double[])
-
-
Method Detail
-
castOrCopy
public static Matrix1 castOrCopy(Matrix matrix) throws MismatchedMatrixSizeException
Casts or copies the given matrix to aMatrix1
implementation. If the givenmatrix
is already an instance ofMatrix1
, then it is returned unchanged. Otherwise this method verifies the matrix size, then copies the element in a newMatrix1
object.- Parameters:
matrix
- the matrix to cast or copy, ornull
.- Returns:
- the matrix argument if it can be safely casted (including
null
argument), or a copy of the given matrix otherwise. - Throws:
MismatchedMatrixSizeException
- if the size of the given matrix is not 1×1.
-
getNumRow
public final int getNumRow()
Returns the number of rows in this matrix, which is always 1 in this implementation.- Returns:
- always 1.
-
getNumCol
public final int getNumCol()
Returns the number of columns in this matrix, which is always 1 in this implementation.- Returns:
- always 1.
-
getElement
public final double getElement(int row, int column)
Retrieves the value at the specified row and column of this matrix. This method can be invoked when the matrix size or type is unknown. If the matrix is known to be an instance ofMatrix1
, then them00
field can be read directly for efficiency.- Specified by:
getElement
in interfaceMatrix
- Specified by:
getElement
in classMatrixSIS
- Parameters:
row
- the row index, which can only be 0.column
- the column index, which can only be 0.- Returns:
- the current value.
-
setElement
public final void setElement(int row, int column, double value)
Modifies the value at the specified row and column of this matrix. This method can be invoked when the matrix size or type is unknown. If the matrix is known to be an instance ofMatrix1
, then them00
field can be set directly for efficiency.- Parameters:
row
- the row index, which can only be 0.column
- the column index, which can only be 0.value
- the new value to set.
-
getElements
public final double[] getElements()
Returns all matrix elements in a flat, row-major (column indices vary fastest) array. The array length is 1.- Overrides:
getElements
in classMatrixSIS
- Returns:
- a copy of all current matrix elements in a row-major array.
-
setElements
public final void setElements(double[] elements)
Sets all matrix elements from a flat, row-major (column indices vary fastest) array. The array length shall be 1.- Specified by:
setElements
in classMatrixSIS
- Parameters:
elements
- The new matrix elements in a row-major array.- See Also:
Matrices.create(int, int, double[])
-
isAffine
public final boolean isAffine()
Returnstrue
if this matrix represents an affine transform. A transform is affine if the matrix is square and its last row contains only zeros, except in the last column which contains 1.- Overrides:
isAffine
in classMatrixSIS
- Returns:
true
if this matrix represents an affine transform.- See Also:
Matrices.isAffine(Matrix)
,LinearTransform.isAffine()
-
isIdentity
public final boolean isIdentity()
Returnstrue
if this matrix is an identity matrix. This method is equivalent to the following code, except that it is potentially more efficient:return Matrices.isIdentity(this, 0.0);
- Specified by:
isIdentity
in interfaceMatrix
- Specified by:
isIdentity
in classMatrixSIS
- Returns:
true
if this matrix is an identity matrix.- See Also:
Matrices.isIdentity(Matrix, double)
,AffineTransform.isIdentity()
-
transpose
public void transpose()
For a 1×1 matrix, this method does nothing.- Specified by:
transpose
in classMatrixSIS
-
normalizeColumns
public void normalizeColumns()
Normalizes all columns in-place. For a 1×1 matrix, this method just sets unconditionally them00
value to 1.- Overrides:
normalizeColumns
in classMatrixSIS
-
equals
public boolean equals(Object object)
Returnstrue
if the specified object is of typeMatrix1
and all of the data members are equal to the corresponding data members in this matrix.- Specified by:
equals
in interfaceLenientComparable
- Overrides:
equals
in classMatrixSIS
- Parameters:
object
- the object to compare with this matrix for equality.- Returns:
true
if the given object is equal to this matrix.- See Also:
ComparisonMode.STRICT
-
hashCode
public int hashCode()
Returns a hash code value based on the data values in this object.- Overrides:
hashCode
in classMatrixSIS
- Returns:
- a hash code value for this matrix.
-
-