Skip to content

num::factorization

Defined in header <linear/solve.hpp>

template <class F>
concept factorization = requires(const F &factor, const vec<real> &v,
                                 const mat<real> &m, vec<real> &vout, mat<real> &mout) {
  solve(factor, v, vout);
  solve(factor, m, mout);
  solve_transpose(factor, v, vout);
  solve_transpose(factor, m, mout);
};

A factorization of a square \(A\) that applies \(A^{-1}\) and \(A^{-T}\).

The out-parameter forms may alias their input, so a caller can solve in place.