Interface InvertibleFactor<N extends Comparable<N>>

All Superinterfaces:
Structure1D, Structure2D
All Known Subinterfaces:
Cholesky<N>, LDL<N>, LDU<N>, LU<N>, MatrixDecomposition.Solver<N>, QR<N>, SingularValue<N>
All Known Implementing Classes:
CholeskyDecomposition, CholeskyDecomposition.C128, CholeskyDecomposition.H256, CholeskyDecomposition.Q128, CholeskyDecomposition.R064, CholeskyDecomposition.R128, HermitianEvD, HermitianEvD.C128, HermitianEvD.H256, HermitianEvD.Q128, HermitianEvD.R064, HermitianEvD.R128, InvertibleFactor.IdentityFactor, LDLDecomposition, LDLDecomposition.C128, LDLDecomposition.H256, LDLDecomposition.Q128, LDLDecomposition.R064, LDLDecomposition.R128, LUDecomposition, LUDecomposition.C128, LUDecomposition.H256, LUDecomposition.Q128, LUDecomposition.R064, LUDecomposition.R128, ProductFormInverse, ProductFormInverse.ElementaryFactor, QRDecomposition, QRDecomposition.C128, QRDecomposition.H256, QRDecomposition.Q128, QRDecomposition.R064, QRDecomposition.R128, RawCholesky, RawEigenvalue.Symmetric, RawLU, RawQR, RawSingularValue, SingularValueDecomposition, SingularValueDecomposition.C128, SingularValueDecomposition.H256, SingularValueDecomposition.Q128, SingularValueDecomposition.R064, SingularValueDecomposition.R128

public interface InvertibleFactor<N extends Comparable<N>> extends Structure2D
A chainable and reversible in-place (equation system) solver.

Matrix decompositions produce factorisations like [A] = [L][U], [A] = [Q][R] or [A] = [U][D][V]T. When solving equation systems the factors are used in sequence:

[A][x] = [b] and [A] = [L][U] gives [L][U][x] = [b], which is solved in these steps:

  1. [L][y] = [b] or [y] = [L]-1[b]
  2. [U][x] = [y] or [x] = [U]-1[y]
That's forward transformation (ftran) using the [L] and [U] (invertible) factors of [A].

If we instead want to solve [x]T[A] = [b]T or [A]T[x] = [b] the steps are:

  1. [U]T[y] = [b] or [y] = [U]-T[b]
  2. [L]T[x] = [y] or [x] = [L]-T[y]
That's backwards transformation (btran).

Implementing this interface can be useful whenever a matrix (or its inverse) can be constructed using a sequence of factors.

An invertible factor needs to be square.