Class CommonOps_FDF4

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

@Generated("org.ejml.dense.fixed.GenerateCommonOps_DDF") public class CommonOps_FDF4 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_FDF4

      public CommonOps_FDF4()
  • Method Details

    • add

      public static void add(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4 a, FMatrix4 b, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 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(FMatrix4 a, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4 a, FMatrix4 b, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 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(FMatrix4 a, FMatrix4 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(FMatrix4x4 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 FMatrix4x4 transpose(FMatrix4x4 input, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(float alpha, FMatrix4x4 A, float beta, FMatrix4 u, FMatrix4 v, FMatrix4x4 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(FMatrix4x4 a, FMatrix4 b, FMatrix4 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(FMatrix4 a, FMatrix4x4 b, FMatrix4 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 float dot(FMatrix4 a, FMatrix4 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(FMatrix4x4 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(FMatrix4x4 a, FMatrix4x4 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 float det(FMatrix4x4 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(FMatrix4x4 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(FMatrix4x4 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 float trace(FMatrix4x4 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(FMatrix4x4 input, FMatrix4 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 float elementMax(FMatrix4x4 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 float elementMax(FMatrix4 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 float elementMaxAbs(FMatrix4x4 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 float elementMaxAbs(FMatrix4 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 float elementMin(FMatrix4x4 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 float elementMin(FMatrix4 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 float elementMinAbs(FMatrix4x4 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 float elementMinAbs(FMatrix4 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(FMatrix4x4 a, FMatrix4x4 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(FMatrix4 a, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4 a, FMatrix4 b, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 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(FMatrix4 a, FMatrix4 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(FMatrix4x4 a, FMatrix4x4 b, FMatrix4x4 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(FMatrix4 a, FMatrix4 b, FMatrix4 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(float alpha, FMatrix4x4 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(float alpha, FMatrix4 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(float alpha, FMatrix4x4 a, FMatrix4x4 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(float alpha, FMatrix4 a, FMatrix4 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(FMatrix4x4 a, float 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(FMatrix4 a, float 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(FMatrix4x4 a, float alpha, FMatrix4x4 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(FMatrix4 a, float alpha, FMatrix4 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(FMatrix4x4 a)

      Changes the sign of every element in the matrix.

      aij = -aij

      Parameters:
      a - A matrix. Modified.
    • changeSign

      public static void changeSign(FMatrix4 a)

      Changes the sign of every element in the vector.

      ai = -ai

      Parameters:
      a - A vector. Modified.
    • fill

      public static void fill(FMatrix4x4 a, float 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(FMatrix4 a, float 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 FMatrix4 extractRow(FMatrix4x4 a, int row, FMatrix4 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 FMatrix4 extractColumn(FMatrix4x4 a, int column, FMatrix4 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.