Class CommonOps_DDF4

java.lang.Object
org.ejml.dense.fixed.CommonOps_DDF4

@Generated("org.ejml.dense.fixed.GenerateCommonOps_DDF")
public class CommonOps_DDF4
extends Object

Common matrix operations for fixed sized matrices which are 4 x 4 or 4 element vectors.

DO NOT MODIFY. Automatically generated code created by GenerateCommonOps_DDF

  • Constructor Details

    • CommonOps_DDF4

      public CommonOps_DDF4()
  • Method Details

    • add

      public static void add​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = a + b
      cij = aij + bij

      Matrix C can be the same instance as Matrix A and/or B.

      Parameters:
      a - A Matrix. Not modified.
      b - A Matrix. Not modified.
      c - A Matrix where the results are stored. Modified.
    • add

      public static void add​(DMatrix4 a, DMatrix4 b, DMatrix4 c)

      Performs the following operation:

      c = a + b
      ci = ai + bi

      Vector C can be the same instance as Vector A and/or B.

      Parameters:
      a - A Vector. Not modified.
      b - A Vector. Not modified.
      c - A Vector where the results are stored. Modified.
    • addEquals

      public static void addEquals​(DMatrix4x4 a, DMatrix4x4 b)

      Performs the following operation:

      a = a + b
      aij = aij + bij

      Parameters:
      a - A Matrix. Modified.
      b - A Matrix. Not modified.
    • addEquals

      public static void addEquals​(DMatrix4 a, DMatrix4 b)

      Performs the following operation:

      a = a + b
      ai = ai + bi

      Parameters:
      a - A Vector. Modified.
      b - A Vector. Not modified.
    • subtract

      public static void subtract​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = a - b
      cij = aij - bij

      Matrix C can be the same instance as Matrix A and/or B.

      Parameters:
      a - A Matrix. Not modified.
      b - A Matrix. Not modified.
      c - A Matrix where the results are stored. Modified.
    • subtract

      public static void subtract​(DMatrix4 a, DMatrix4 b, DMatrix4 c)

      Performs the following operation:

      c = a - b
      ci = ai - bi

      Vector C can be the same instance as Vector A and/or B.

      Parameters:
      a - A Vector. Not modified.
      b - A Vector. Not modified.
      c - A Vector where the results are stored. Modified.
    • subtractEquals

      public static void subtractEquals​(DMatrix4x4 a, DMatrix4x4 b)

      Performs the following operation:

      a = a - b
      aij = aij - bij

      Parameters:
      a - A Matrix. Modified.
      b - A Matrix. Not modified.
    • subtractEquals

      public static void subtractEquals​(DMatrix4 a, DMatrix4 b)

      Performs the following operation:

      a = a - b
      ai = ai - bi

      Parameters:
      a - A Vector. Modified.
      b - A Vector. Not modified.
    • transpose

      public static void transpose​(DMatrix4x4 m)
      Performs an in-place transpose. This algorithm is only efficient for square matrices.
      Parameters:
      m - The matrix that is to be transposed. Modified.
    • transpose

      public static DMatrix4x4 transpose​(DMatrix4x4 input, DMatrix4x4 output)

      Transposes matrix 'a' and stores the results in 'b':

      bij = aji
      where 'b' is the transpose of 'a'.

      Parameters:
      input - The original matrix. Not modified.
      output - Where the transpose is stored. If null a new matrix is created. Modified.
      Returns:
      The transposed matrix.
    • mult

      public static void mult​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = a * b

      cij = ∑k=1:n { aik * bkj}

      Parameters:
      a - The left matrix in the multiplication operation. Not modified.
      b - The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • mult

      public static void mult​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = α * a * b

      cij = α ∑k=1:n { aik * bkj}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransA

      public static void multTransA​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = aT * b

      cij = ∑k=1:n { aki * bkj}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransA

      public static void multTransA​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = α * aT * b

      cij = α * ∑k=1:n { aki * bkj}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransAB

      public static void multTransAB​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = aT * bT
      cij = ∑k=1:n { aki * bjk}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransAB

      public static void multTransAB​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = α*aT * bT
      cij = α*∑k=1:n { aki * bjk}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransB

      public static void multTransB​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = a * bT
      cij = ∑k=1:n { aik * bjk}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multTransB

      public static void multTransB​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c = α * a * bT
      cij = α*∑k=1:n { aik * bjk}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAdd

      public static void multAdd​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += a * b

      cij += ∑k=1:n { aik * bkj}

      Parameters:
      a - The left matrix in the multiplication operation. Not modified.
      b - The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAdd

      public static void multAdd​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += α * a * b

      cij += α ∑k=1:n { aik * bkj}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransA

      public static void multAddTransA​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += aT * b

      cij += ∑k=1:n { aki * bkj}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransA

      public static void multAddTransA​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += α * aT * b

      cij += α * ∑k=1:n { aki * bkj}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransAB

      public static void multAddTransAB​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += aT * bT
      cij += ∑k=1:n { aki * bjk}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransAB

      public static void multAddTransAB​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += α*aT * bT
      cij += α*∑k=1:n { aki * bjk}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransB

      public static void multAddTransB​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += a * bT
      cij += ∑k=1:n { aik * bjk}

      Parameters:
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddTransB

      public static void multAddTransB​(double alpha, DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs the following operation:

      c += α * a * bT
      cij += α*∑k=1:n { aik * bjk}

      Parameters:
      alpha - Scaling factor.
      a - (Input) The left matrix in the multiplication operation. Not modified.
      b - (Input) The right matrix in the multiplication operation. Not modified.
      c - (Output) Where the results of the operation are stored. Modified.
    • multAddOuter

      public static void multAddOuter​(double alpha, DMatrix4x4 A, double beta, DMatrix4 u, DMatrix4 v, DMatrix4x4 C)
      C = αA + βu*vT
      Parameters:
      alpha - scale factor applied to A
      A - matrix
      beta - scale factor applies to outer product
      u - vector
      v - vector
      C - Storage for solution. Can be same instance as A.
    • mult

      public static void mult​(DMatrix4x4 a, DMatrix4 b, DMatrix4 c)

      Performs matrix to vector multiplication:

      c = a * b

      ci = ∑k=1:n { aik * bk}

      Parameters:
      a - The left matrix in the multiplication operation. Not modified.
      b - The right vector in the multiplication operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • mult

      public static void mult​(DMatrix4 a, DMatrix4x4 b, DMatrix4 c)

      Performs vector to matrix multiplication:

      c = a * b

      cj = ∑k=1:n { bk * akj }

      Parameters:
      a - The left vector in the multiplication operation. Not modified.
      b - The right matrix in the multiplication operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • dot

      public static double dot​(DMatrix4 a, DMatrix4 b)

      Performs the vector dot product:

      c = a * b

      c ≥ ∑k=1:n { bk * ak }

      Parameters:
      a - The left vector in the multiplication operation. Not modified.
      b - The right matrix in the multiplication operation. Not modified.
      Returns:
      The dot product
    • setIdentity

      public static void setIdentity​(DMatrix4x4 a)
      Sets all the diagonal elements equal to one and everything else equal to zero. If this is a square matrix then it will be an identity matrix.
      Parameters:
      a - A matrix.
    • invert

      public static boolean invert​(DMatrix4x4 a, DMatrix4x4 inv)
      Inverts matrix 'a' using minor matrices and stores the results in 'inv'. Scaling is applied to improve stability against overflow and underflow. WARNING: Potentially less stable than using LU decomposition.
      Parameters:
      a - (Input) Matrix.
      inv - (Output) Inverted matrix. Can be the same as 'a'.
      Returns:
      true if it was successful or false if it failed. Not reliable.
    • det

      public static double det​(DMatrix4x4 mat)
      Computes the determinant using minor matrices.
      WARNING: Potentially less stable than using LU decomposition.
      Parameters:
      mat - Input matrix. Not modified.
      Returns:
      The determinant.
    • cholL

      public static boolean cholL​(DMatrix4x4 A)
      Performs a lower Cholesky decomposition of matrix 'A' and stores result in A.
      Parameters:
      A - (Input) SPD Matrix. (Output) lower cholesky.
      Returns:
      true if it was successful or false if it failed. Not always reliable.
    • cholU

      public static boolean cholU​(DMatrix4x4 A)
      Performs an upper Cholesky decomposition of matrix 'A' and stores result in A.
      Parameters:
      A - (Input) SPD Matrix. (Output) upper cholesky.
      Returns:
      true if it was successful or false if it failed. Not always reliable.
    • trace

      public static double trace​(DMatrix4x4 a)

      This computes the trace of the matrix:

      trace = ∑i=1:n { aii }

      The trace is only defined for square matrices.

      Parameters:
      a - A square matrix. Not modified.
    • diag

      public static void diag​(DMatrix4x4 input, DMatrix4 out)

      Extracts all diagonal elements from 'input' and places them inside the 'out' vector. Elements are in sequential order.

      Parameters:
      input - Matrix. Not modified.
      out - Vector containing diagonal elements. Modified.
    • elementMax

      public static double elementMax​(DMatrix4x4 a)

      Returns the value of the element in the matrix that has the largest value.

      Max{ aij } for all i and j

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The max element value of the matrix.
    • elementMax

      public static double elementMax​(DMatrix4 a)

      Returns the value of the element in the vector that has the largest value.

      Max{ ai } for all i

      Parameters:
      a - A vector. Not modified.
      Returns:
      The max element value of the matrix.
    • elementMaxAbs

      public static double elementMaxAbs​(DMatrix4x4 a)

      Returns the absolute value of the element in the matrix that has the largest absolute value.

      Max{ |aij| } for all i and j

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The max abs element value of the matrix.
    • elementMaxAbs

      public static double elementMaxAbs​(DMatrix4 a)

      Returns the absolute value of the element in the vector that has the largest absolute value.

      Max{ |ai| } for all i

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The max abs element value of the vector.
    • elementMin

      public static double elementMin​(DMatrix4x4 a)

      Returns the value of the element in the matrix that has the minimum value.

      Min{ aij } for all i and j

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The value of element in the matrix with the minimum value.
    • elementMin

      public static double elementMin​(DMatrix4 a)

      Returns the value of the element in the vector that has the minimum value.

      Min{ ai } for all

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The value of element in the vector with the minimum value.
    • elementMinAbs

      public static double elementMinAbs​(DMatrix4x4 a)

      Returns the absolute value of the element in the matrix that has the smallest absolute value.

      Min{ |aij| } for all i and j

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The max element value of the matrix.
    • elementMinAbs

      public static double elementMinAbs​(DMatrix4 a)

      Returns the absolute value of the element in the vector that has the smallest absolute value.

      Min{ |ai| } for all i

      Parameters:
      a - A matrix. Not modified.
      Returns:
      The max element value of the vector.
    • elementMult

      public static void elementMult​(DMatrix4x4 a, DMatrix4x4 b)

      Performs an element by element multiplication operation:

      aij = aij * bij

      Parameters:
      a - The left matrix in the multiplication operation. Modified.
      b - The right matrix in the multiplication operation. Not modified.
    • elementMult

      public static void elementMult​(DMatrix4 a, DMatrix4 b)

      Performs an element by element multiplication operation:

      ai = ai * bi

      Parameters:
      a - The left vector in the multiplication operation. Modified.
      b - The right vector in the multiplication operation. Not modified.
    • elementMult

      public static void elementMult​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs an element by element multiplication operation:

      cij = aij * bij

      Parameters:
      a - The left matrix in the multiplication operation. Not modified.
      b - The right matrix in the multiplication operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • elementMult

      public static void elementMult​(DMatrix4 a, DMatrix4 b, DMatrix4 c)

      Performs an element by element multiplication operation:

      ci = ai * bj

      Parameters:
      a - The left vector in the multiplication operation. Not modified.
      b - The right vector in the multiplication operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • elementDiv

      public static void elementDiv​(DMatrix4x4 a, DMatrix4x4 b)

      Performs an element by element division operation:

      aij = aij / bij

      Parameters:
      a - The left matrix in the division operation. Modified.
      b - The right matrix in the division operation. Not modified.
    • elementDiv

      public static void elementDiv​(DMatrix4 a, DMatrix4 b)

      Performs an element by element division operation:

      ai = ai / bi

      Parameters:
      a - The left vector in the division operation. Modified.
      b - The right vector in the division operation. Not modified.
    • elementDiv

      public static void elementDiv​(DMatrix4x4 a, DMatrix4x4 b, DMatrix4x4 c)

      Performs an element by element division operation:

      cij = aij / bij

      Parameters:
      a - The left matrix in the division operation. Not modified.
      b - The right matrix in the division operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • elementDiv

      public static void elementDiv​(DMatrix4 a, DMatrix4 b, DMatrix4 c)

      Performs an element by element division operation:

      ci = ai / bi

      Parameters:
      a - The left vector in the division operation. Not modified.
      b - The right vector in the division operation. Not modified.
      c - Where the results of the operation are stored. Modified.
    • scale

      public static void scale​(double alpha, DMatrix4x4 a)

      Performs an in-place element by element scalar multiplication.

      aij = α*aij

      Parameters:
      a - The matrix that is to be scaled. Modified.
      alpha - the amount each element is multiplied by.
    • scale

      public static void scale​(double alpha, DMatrix4 a)

      Performs an in-place element by element scalar multiplication.

      aij = α*aij

      Parameters:
      a - The vector that is to be scaled. Modified.
      alpha - the amount each element is multiplied by.
    • scale

      public static void scale​(double alpha, DMatrix4x4 a, DMatrix4x4 b)

      Performs an element by element scalar multiplication.

      bij = α*aij

      Parameters:
      alpha - the amount each element is multiplied by.
      a - The matrix that is to be scaled. Not modified.
      b - Where the scaled matrix is stored. Modified.
    • scale

      public static void scale​(double alpha, DMatrix4 a, DMatrix4 b)

      Performs an element by element scalar multiplication.

      bi = α*ai

      Parameters:
      alpha - the amount each element is multiplied by.
      a - The vector that is to be scaled. Not modified.
      b - Where the scaled matrix is stored. Modified.
    • divide

      public static void divide​(DMatrix4x4 a, double alpha)

      Performs an in-place element by element scalar division. Scalar denominator.

      aij = aij

      Parameters:
      a - The matrix whose elements are to be divided. Modified.
      alpha - the amount each element is divided by.
    • divide

      public static void divide​(DMatrix4 a, double alpha)

      Performs an in-place element by element scalar division. Scalar denominator.

      ai = ai

      Parameters:
      a - The vector whose elements are to be divided. Modified.
      alpha - the amount each element is divided by.
    • divide

      public static void divide​(DMatrix4x4 a, double alpha, DMatrix4x4 b)

      Performs an element by element scalar division. Scalar denominator.

      bij = aij

      Parameters:
      alpha - the amount each element is divided by.
      a - The matrix whose elements are to be divided. Not modified.
      b - Where the results are stored. Modified.
    • divide

      public static void divide​(DMatrix4 a, double alpha, DMatrix4 b)

      Performs an element by element scalar division. Scalar denominator.

      bi = ai

      Parameters:
      alpha - the amount each element is divided by.
      a - The vector whose elements are to be divided. Not modified.
      b - Where the results are stored. Modified.
    • changeSign

      public static void changeSign​(DMatrix4x4 a)

      Changes the sign of every element in the matrix.

      aij = -aij

      Parameters:
      a - A matrix. Modified.
    • changeSign

      public static void changeSign​(DMatrix4 a)

      Changes the sign of every element in the vector.

      ai = -ai

      Parameters:
      a - A vector. Modified.
    • fill

      public static void fill​(DMatrix4x4 a, double v)

      Sets every element in the matrix to the specified value.

      aij = value

      Parameters:
      a - A matrix whose elements are about to be set. Modified.
      v - The value each element will have.
    • fill

      public static void fill​(DMatrix4 a, double v)

      Sets every element in the vector to the specified value.

      ai = value

      Parameters:
      a - A vector whose elements are about to be set. Modified.
      v - The value each element will have.
    • extractRow

      public static DMatrix4 extractRow​(DMatrix4x4 a, int row, DMatrix4 out)
      Extracts the row from the matrix a.
      Parameters:
      a - Input matrix
      row - Which row is to be extracted
      out - output. Storage for the extracted row. If null then a new vector will be returned.
      Returns:
      The extracted row.
    • extractColumn

      public static DMatrix4 extractColumn​(DMatrix4x4 a, int column, DMatrix4 out)
      Extracts the column from the matrix a.
      Parameters:
      a - Input matrix
      column - Which column is to be extracted
      out - output. Storage for the extracted column. If null then a new vector will be returned.
      Returns:
      The extracted column.