Interface XMatrix

All Superinterfaces:
Cloneable, Cloneable, Matrix
All Known Implementing Classes:
GeneralMatrix, Matrix1, Matrix2, Matrix3, Matrix4

public interface XMatrix extends Matrix
A matrix capable of some matrix operations. The basic Matrix interface is basically just a two dimensional array of numbers. The XMatrix interface add inversion and multiplication capabilities.
Since:
2.2
Author:
Martin Desruisseaux (IRD), Simone Giannecchini
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(double scalar)
    Performs an in-place scalar addition.
    void
    add(double scalar, XMatrix matrix)
    Set to the scalar addition of scalar+matrix
    void
    add(XMatrix matrix)
    Set to the matrix addition of this+matrix.
    void
    add(XMatrix matrix1, XMatrix matrix2)
    Set to the matrix addition of matrix1+matrix2.
    double
    Computes the determinant
    boolean
    equals(Matrix matrix, double tolerance)
    Compares the element values.
    void
    getColumn(int col, double[] array)
    Extract col to provided array.
    double
    getElement(int row, int column)
    Returns the element at the specified index.
    int
    Returns the number of colmuns in this matrix.
    int
    Returns the number of rows in this matrix.
    void
    getRow(int row, double[] array)
    Extract row to provided array
    void
    Inverts this matrix in place.
    void
    invert(Matrix matrix)
    Set to the inverse of the provided matrix.
    boolean
    Returns true if this matrix is an affine transform.
    boolean
    isIdentity(double tolerance)
    Returns true if this matrix is an identity matrix using the provided tolerance.
    void
    mul(double scalar)
    Sets this matrix to the result of multiplying itself with the provided scalar.
    void
    mul(double scalar, Matrix matrix)
    Sets the value of this matrix to the result of multiplying the provided scalar and matrix.
    void
    mul(Matrix matrix)
    Sets the value of this matrix to the result of multiplying itself with the specified matrix.
    void
    mul(Matrix matrix1, Matrix matrix2)
    Sets the value of this matrix to the result of multiplying matrix1 and matrix2.
    void
    multiply(Matrix matrix)
    Sets the value of this matrix to the result of multiplying itself with the specified matrix.
    void
    Negates the value of this matrix: this = -this.
    void
    negate(Matrix matrix)
    Negates the value of this matrix: this = -matrix.
    void
    setColumn(int column, double... values)
    Sets the value of the column using an array of values.
    void
    Sets this matrix to the identity matrix.
    void
    setRow(int row, double... values)
    Sets the value of the row using an array of values.
    void
    Sets all the values in this matrix to zero.
    void
    sub(double scalar)
    In-place matrix subtraction: this - scalar.
    void
    sub(double scalar, Matrix matrix)
    Set to the difference of scalar - matrix2.
    void
    sub(Matrix matrix)
    In-place matrix subtraction: this - matrix.
    void
    sub(Matrix matrix1, Matrix matrix2)
    Set to the difference of matrix1 - matrix2.
    void
    Sets the value of this matrix to its transpose.
    void
    transpose(Matrix matrix)
    Set to the transpose of the provided matrix.

    Methods inherited from interface Matrix

    clone, isIdentity, setElement
  • Method Details

    • getNumRow

      int getNumRow()
      Returns the number of rows in this matrix.
      Specified by:
      getNumRow in interface Matrix
      Returns:
      The number of rows in this matrix.
    • getNumCol

      int getNumCol()
      Returns the number of colmuns in this matrix.
      Specified by:
      getNumCol in interface Matrix
      Returns:
      The number of columns in this matrix.
    • getElement

      double getElement(int row, int column)
      Returns the element at the specified index.
      Specified by:
      getElement in interface Matrix
      Parameters:
      row - The row number to be retrieved (zero indexed).
      column - The column number to be retrieved (zero indexed).
      Returns:
      The value at the indexed element.
    • getRow

      void getRow(int row, double[] array)
      Extract row to provided array
    • setRow

      void setRow(int row, double... values)
      Sets the value of the row using an array of values.
    • getColumn

      void getColumn(int col, double[] array)
      Extract col to provided array.
    • setColumn

      void setColumn(int column, double... values)
      Sets the value of the column using an array of values.
    • setZero

      void setZero()
      Sets all the values in this matrix to zero.
    • setIdentity

      void setIdentity()
      Sets this matrix to the identity matrix.
    • isIdentity

      boolean isIdentity(double tolerance)
      Returns true if this matrix is an identity matrix using the provided tolerance. This method is equivalent to computing the difference between this matrix and an identity matrix of identical size, and returning true if and only if all differences are smaller than or equal to tolerance.
      Parameters:
      tolerance - The tolerance value.
      Returns:
      true if this matrix is close enough to the identity matrix given the tolerance value.
      Since:
      2.4
    • equals

      boolean equals(Matrix matrix, double tolerance)
      Compares the element values.
      Parameters:
      matrix - The matrix to compare.
      tolerance - The tolerance value.
      Returns:
      true if this matrix is close enough to the given matrix given the tolerance value.
      Since:
      2.5
    • isAffine

      boolean isAffine()
      Returns true if this matrix is an affine transform. A transform is affine if the matrix is square and last row contains only zeros, except in the last column which contains 1.
      Returns:
      true if this matrix is affine.
    • negate

      void negate()
      Negates the value of this matrix: this = -this.
    • negate

      void negate(Matrix matrix)
      Negates the value of this matrix: this = -matrix.
      Parameters:
      matrix - Matrix to negated
    • transpose

      void transpose()
      Sets the value of this matrix to its transpose.
    • transpose

      void transpose(Matrix matrix)
      Set to the transpose of the provided matrix.
      Parameters:
      matrix - The original matrix. Not modified.
    • invert

      void invert() throws SingularMatrixException
      Inverts this matrix in place.
      Throws:
      SingularMatrixException - if this matrix is not invertible.
    • invert

      void invert(Matrix matrix) throws SingularMatrixException
      Set to the inverse of the provided matrix.
      Parameters:
      matrix - The matrix that is to be inverted. Not modified.
      Throws:
      SingularMatrixException - if this matrix is not invertible.
    • add

      void add(double scalar)
      Performs an in-place scalar addition.
      Parameters:
      scalar - The value that's added to each element.
    • add

      void add(double scalar, XMatrix matrix)
      Set to the scalar addition of scalar+matrix
      Parameters:
      scalar - The value that's added to each element.
      matrix - The matrix that is to be added. Not modified.
    • add

      void add(XMatrix matrix)
      Set to the matrix addition of this+matrix.
      Parameters:
      matrix - The matrix that is to be added. Not modified.
    • add

      void add(XMatrix matrix1, XMatrix matrix2)
      Set to the matrix addition of matrix1+matrix2.
      Parameters:
      matrix1 - First matrix to be added. Not modified.
      matrix2 - Second matrix to be added. Not modified.
    • determinate

      double determinate()
      Computes the determinant
    • multiply

      void multiply(Matrix matrix)
      Sets the value of this matrix to the result of multiplying itself with the specified matrix. In other words, performs this = this × matrix. In the context of coordinate transformations, this is equivalent to AffineTransform.concatenate: first transforms by the supplied transform and then transform the result by the original transform.
      Parameters:
      matrix - The matrix to multiply to this matrix.
    • mul

      void mul(double scalar)
      Sets this matrix to the result of multiplying itself with the provided scalar.
    • mul

      void mul(double scalar, Matrix matrix)
      Sets the value of this matrix to the result of multiplying the provided scalar and matrix.
    • mul

      void mul(Matrix matrix)
      Sets the value of this matrix to the result of multiplying itself with the specified matrix. In other words, performs this = this × matrix. In the context of coordinate transformations, this is equivalent to AffineTransform.concatenate: first transforms by the supplied transform and then transform the result by the original transform.
      Parameters:
      matrix - The matrix to multiply to this matrix.
    • mul

      void mul(Matrix matrix1, Matrix matrix2)
      Sets the value of this matrix to the result of multiplying matrix1 and matrix2.
    • sub

      void sub(double scalar)
      In-place matrix subtraction: this - scalar.
    • sub

      void sub(double scalar, Matrix matrix)
      Set to the difference of scalar - matrix2.
      Parameters:
      matrix - matrix, not modified
    • sub

      void sub(Matrix matrix)
      In-place matrix subtraction: this - matrix.
      Parameters:
      matrix - m by n matrix. Not modified.
    • sub

      void sub(Matrix matrix1, Matrix matrix2)
      Set to the difference of matrix1 - matrix2.
      Parameters:
      matrix1 - matrix, not modified
      matrix2 - matrix, not modified