Interface Matrix

All Superinterfaces:
Iterable<MatrixTuple>, ProtoSerializable<org.tribuo.math.protos.TensorProto>, Serializable, Tensor
All Known Implementing Classes:
DenseMatrix, DenseSparseMatrix, ShrinkingMatrix

public interface Matrix extends Tensor, Iterable<MatrixTuple>
Interface for 2 dimensional Tensors.

Matrices have immutable sizes and immutable indices (so DenseSparseMatrix can't grow).

  • Method Details

    • copy

      Matrix copy()
      Copies the matrix.
      Specified by:
      copy in interface Tensor
      Returns:
      A copy of the matrix.
    • get

      double get(int i, int j)
      Gets an element from this Matrix.
      Parameters:
      i - The index for the first dimension.
      j - The index for the second dimension.
      Returns:
      The value at matrix[i][j].
    • set

      void set(int i, int j, double value)
      Sets an element at the supplied location.
      Parameters:
      i - The index for the first dimension.
      j - The index for the second dimension.
      value - The value to be stored at matrix[i][j].
    • add

      void add(int i, int j, double value)
      Adds the argument value to the value at the supplied index.
      Parameters:
      i - The index for the first dimension.
      j - The index for the second dimension.
      value - The value to add.
    • getDimension1Size

      int getDimension1Size()
      The size of the first dimension.
      Returns:
      The size of the first dimension.
    • getDimension2Size

      int getDimension2Size()
      The size of the second dimension.
      Returns:
      The size of the second dimension.
    • numActiveElements

      int numActiveElements(int row)
      The number of non-zero elements in that row.

      An element could be active and zero, if it was active on construction.

      Parameters:
      row - The index of the row.
      Returns:
      The number of non-zero elements.
    • leftMultiply

      SGDVector leftMultiply(SGDVector input)
      Multiplies this Matrix by a SGDVector returning a vector of the appropriate size.

      The input must have dimension equal to getDimension2Size().

      Parameters:
      input - The input vector.
      Returns:
      A new SGDVector of size getDimension1Size().
    • rightMultiply

      SGDVector rightMultiply(SGDVector input)
      Multiplies this Matrix by a SGDVector returning a vector of the appropriate size.

      The input must have dimension equal to getDimension1Size().

      Parameters:
      input - The input vector.
      Returns:
      A new SGDVector of size getDimension2Size().
    • matrixMultiply

      Matrix matrixMultiply(Matrix input)
      Multiplies this Matrix by another Matrix returning a matrix of the appropriate size.

      The input must have dimension 1 equal to getDimension2Size().

      Parameters:
      input - The input matrix.
      Returns:
      A new Matrix of size getDimension1Size(), input.getDimension2Size().
    • matrixMultiply

      Matrix matrixMultiply(Matrix input, boolean transposeThis, boolean transposeOther)
      Multiplies this Matrix by another Matrix returning a matrix of the appropriate size.

      Must obey the rules of matrix multiplication after the transposes are applied.

      Parameters:
      input - The input matrix.
      transposeThis - Implicitly transposes this matrix just for the multiplication.
      transposeOther - Implicitly transposes other just for the multiplication.
      Returns:
      A new Matrix.
    • rowSum

      DenseVector rowSum()
      Generates a DenseVector representing the sum of each row.
      Returns:
      A new DenseVector of size getDimension1Size().
    • rowScaleInPlace

      void rowScaleInPlace(DenseVector scalingCoefficients)
      Scales each row by the appropriate value in the DenseVector.
      Parameters:
      scalingCoefficients - A DenseVector with size getDimension1Size().
    • getRow

      SGDVector getRow(int i)
      An SGDVector view of the row.

      This refers to the same values as the matrix, so updating this vector will update the matrix.

      Parameters:
      i - The index of the row to extract.
      Returns:
      An SGDVector.
    • getColumn

      SGDVector getColumn(int index)
      Returns a copy of the specified column.
      Parameters:
      index - The column index.
      Returns:
      A copy of the column.