Class LinearSolverLuKJI_DDRM

All Implemented Interfaces:
LinearSolver<DMatrixRMaj,DMatrixRMaj>, LinearSolverDense<DMatrixRMaj>

public class LinearSolverLuKJI_DDRM extends LinearSolverLuBase_DDRM
To avoid cpu cache issues the order in which the arrays are traversed have been changed. There seems to be no performance benit relative to LinearSolverLu_DDRM in this approach and b and x can't be the same instance, which means it has slightly less functionality.
  • Constructor Details

  • Method Details

    • setA

      public boolean setA(DMatrixRMaj A)
      Description copied from interface: LinearSolver

      Specifies the A matrix in the linear equation. A reference might be saved and it might also be modified depending on the implementation. If it is modified then LinearSolver.modifiesA() will return true.

      If this value returns true that does not guarantee a valid solution was generated. This is because some decompositions don't detect singular matrices.

      Specified by:
      setA in interface LinearSolver<DMatrixRMaj,DMatrixRMaj>
      Overrides:
      setA in class LinearSolverLuBase_DDRM
      Parameters:
      A - The 'A' matrix in the linear equation. Might be modified or save the reference.
      Returns:
      true if it can be processed.
    • solve

      public void solve(DMatrixRMaj B, DMatrixRMaj X)
      An other implementation of solve() that processes the matrices in a different order. It seems to have the same runtime performance as solve(org.ejml.data.DMatrixRMaj, org.ejml.data.DMatrixRMaj) and is more complicated. It is being kept around to avoid future replication of work.
      Parameters:
      B - A matrix that is n by m. Not modified.
      X - An n by m matrix where the solution is writen to. Modified.