gov.sandia.cognition.math.matrix

## Interface DiagonalMatrix

• All Superinterfaces:
java.lang.Cloneable, CloneableSerializable, java.lang.Iterable<MatrixEntry>, Matrix, Ring<Matrix>, java.io.Serializable, Vectorizable
All Known Implementing Classes:
DiagonalMatrixMTJ

```public interface DiagonalMatrix
extends Matrix```
Interface describing a diagonal matrix. That is, a square Matrix with arbitrary values along the diagonal, and zero on the off-diagonal entries.
Since:
2.1
Author:
Kevin R. Dixon
• ### Method Summary

All Methods
Modifier and Type Method and Description
`DiagonalMatrix` `dotTimes(Matrix matrix)`
Element-wise multiplication of `this` and `other`
`double[]` `getDiagonal()`
Gets the data along the diagonal
`int` `getDimensionality()`
Gets the dimensionality of this square matrix, which is equal to either the number of rows or the number of columns
`double` `getElement(int index)`
Gets the zero-based index diagonal element into the diagonal matrix
`DiagonalMatrix` `inverse()`
Computes the full-blown inverse of `this`, which must be a square matrix
`DiagonalMatrix` `pseudoInverse()`
Computes the effective pseudo-inverse of `this`, using a rather expensive procedure (SVD)
`DiagonalMatrix` `pseudoInverse(double effectiveZero)`
Computes the effective pseudo-inverse of `this`, using a rather expensive procedure (SVD)
`void` ```setElement(int index, double value)```
Sets the zero-based index diagonal element into the diagonal matrix
`DiagonalMatrix` `times(DiagonalMatrix matrix)`
Multiplies this by the given DiagonalMatrix, leaving this unmodified
`void` `timesEquals(DiagonalMatrix matrix)`
Multiplies this by the other diagonal matrix, stores the result in this
• ### Methods inherited from interface gov.sandia.cognition.math.matrix.Matrix

`assertMultiplicationDimensions, assertSameDimensions, checkMultiplicationDimensions, checkSameDimensions, clone, convertFromVector, convertToVector, decrement, decrement, dotDivide, dotDivideEquals, get, getColumn, getElement, getEntryCount, getMatrixFactory, getNumColumns, getNumRows, getRow, getSubMatrix, identity, increment, increment, isSparse, isSquare, isSymmetric, isSymmetric, logDeterminant, normFrobenius, normFrobeniusSquared, rank, rank, set, setColumn, setElement, setRow, setSubMatrix, solve, solve, sumOfColumns, sumOfRows, times, times, toArray, toString, toString, trace, transpose, valuesAsList`
• ### Methods inherited from interface java.lang.Iterable

`forEach, iterator, spliterator`
• ### Methods inherited from interface gov.sandia.cognition.math.Ring

`dotTimesEquals, equals, equals, isZero, isZero, minus, minusEquals, negative, negativeEquals, plus, plusEquals, scale, scaledMinus, scaledMinusEquals, scaledPlus, scaledPlusEquals, scaleEquals, zero`
• ### Method Detail

• #### getDiagonal

`double[] getDiagonal()`
Gets the data along the diagonal
Returns:
Diagonal data with length of "dimension"
• #### getElement

`double getElement(int index)`
Gets the zero-based index diagonal element into the diagonal matrix
Parameters:
`index` - Zero-based index into the diagonal to get
Returns:
Diagonal value at index
• #### setElement

```void setElement(int index,
double value)```
Sets the zero-based index diagonal element into the diagonal matrix
Parameters:
`index` - Zero-based index into the diagonal to set
`value` - Value to set
• #### getDimensionality

`int getDimensionality()`
Gets the dimensionality of this square matrix, which is equal to either the number of rows or the number of columns
Returns:
Dimensionality of the square matrix
• #### dotTimes

`DiagonalMatrix dotTimes(Matrix matrix)`
Description copied from interface: `Ring`
Element-wise multiplication of `this` and `other`
Specified by:
`dotTimes` in interface `Ring<Matrix>`
Parameters:
`matrix` - elements of other will be multiplied to the corresponding elements of `this`
Returns:
element-wise multiplication of `this` and `other`
• #### times

`DiagonalMatrix times(DiagonalMatrix matrix)`
Multiplies this by the given DiagonalMatrix, leaving this unmodified
Parameters:
`matrix` - DigonalMatrix to multiply this
Returns:
DiagonalMatrix representing the multiplication
• #### timesEquals

`void timesEquals(DiagonalMatrix matrix)`
Multiplies this by the other diagonal matrix, stores the result in this
Parameters:
`matrix` - Diagonal matrix to multiply this by
• #### pseudoInverse

`DiagonalMatrix pseudoInverse()`
Description copied from interface: `Matrix`
Computes the effective pseudo-inverse of `this`, using a rather expensive procedure (SVD)
Specified by:
`pseudoInverse` in interface `Matrix`
Returns:
full singular-value pseudo-inverse of `this`
• #### pseudoInverse

`DiagonalMatrix pseudoInverse(double effectiveZero)`
Description copied from interface: `Matrix`
Computes the effective pseudo-inverse of `this`, using a rather expensive procedure (SVD)
Specified by:
`pseudoInverse` in interface `Matrix`
Parameters:
`effectiveZero` - effective zero to pass along to the SVD
Returns:
effective pseudo-inverse of `this`
• #### inverse

`DiagonalMatrix inverse()`
Description copied from interface: `Matrix`
Computes the full-blown inverse of `this`, which must be a square matrix
Specified by:
`inverse` in interface `Matrix`
Returns:
Inverse of `this`, such that ```this.times(this.inverse()) == this.inverse().times(this) == ```identity matrix