Skip to content

num::solve

Defined in header <linear/banded/banded.hpp>, <linear/factorization/block_tridiagonal.hpp>, <linear/factorization/cholesky.hpp>, <linear/factorization/factor.hpp>, <linear/factorization/lu.hpp>, <linear/factorization/mixed_lu.hpp>, <linear/factorization/qr.hpp>, <linear/factorization/reuse.hpp>, <linear/factorization/woodbury.hpp>, <linear/solve.hpp>, <linear/solvers/auto_linear.hpp>, <linear/solvers/auto_resolvent.hpp>, <linear/solvers/hessenberg_resolvent.hpp>, <linear/solvers/sparse_resolvent.hpp>, <linear/sparse/klu.hpp>, <linear/sparse/umfpack.hpp>

void solve(const banded_lu_result &f, const vec<real> &b, vec<real> &x);  // (1)

void solve(const banded_lu_result &f, const mat<real> &B, mat<real> &X);  // (2)

template <class F, class RHS>
RHS solve(const F &factor, const RHS &b)
requires requires(RHS &x);  // (3)

template <class F, class RHS>
void solve(detail::transposed_factor<F> factor, const RHS &b, RHS &x);  // (4)

template <std::floating_point T>
void solve(const lu_result<T> &f, const std::type_identity_t<vec<T>> &b, vec<T> &x);  // (5)

template <std::floating_point T>
void solve(const lu_result<T> &f, const std::type_identity_t<mat<T>> &B, mat<T> &X);  // (6)

void solve(const cholesky_result &f, const vec<real> &b, vec<real> &x);  // (7)

void solve(const cholesky_result &f, const mat<real> &B, mat<real> &X);  // (8)

void solve(const block_lu_factor &factor, const mat<real> &B, mat<real> &X);  // (9)

void solve(const block_lu_factor &factor, const vec<real> &b, vec<real> &x);  // (10)

void solve(const block_cholesky_factor &factor, const mat<real> &B, mat<real> &X);  // (11)

void solve(const block_cholesky_factor &factor, const vec<real> &b, vec<real> &x);  // (12)

friend void solve(const auto_linear_solver &, const vec<real> &, vec<real> &);  // (13)

friend void solve(const auto_linear_solver &, const mat<real> &, mat<real> &);  // (14)

friend void solve(const klu_factorization &, const vec<real> &, vec<real> &);  // (15)

friend void solve(const klu_factorization &, const mat<real> &, mat<real> &);  // (16)

template <class F, class RHS>
void solve(const similar_factor<F> &Z, const RHS &b, RHS &x);  // (17)

void solve(const qr_result &f, const vec<real> &b, vec<real> &x);  // (18)

void solve(const mixed_lu &F, const vec<real> &b, vec<real> &x);  // (19)

void solve(const mixed_lu &F, const mat<real> &B, mat<real> &X);  // (20)

template <class RHS>
friend void solve(const woodbury_solver &W, const RHS &b, RHS &x);  // (21)

template <class RHS>
friend void solve(const corrected_factor &Z, const RHS &rhs, RHS &out);  // (22)

template <class RHS>
void solve(const suffix_block_lu &Z, const RHS &rhs, RHS &out);  // (23)

template <class RHS>
void solve(const suffix_block_cholesky &Z, const RHS &rhs, RHS &out);  // (24)

void solve(const hessenberg_shifted_lu &F, const vec<cplx> &b, vec<cplx> &x);  // (25)

void solve(const hessenberg_shifted_lu &F, const vec<real> &b, vec<cplx> &x);  // (26)

vec<cplx> solve(const hessenberg_shifted_lu &F, const vec<real> &b);  // (27)

friend void solve(const sparse_shifted_lu &F, const vec<cplx> &b, vec<cplx> &x);  // (28)

void solve(const auto_shifted_lu &F, const vec<cplx> &b, vec<cplx> &x);  // (29)

friend void solve(const umfpack_factor &, const vec<real> &, vec<real> &);  // (30)

friend void solve(const umfpack_factor &, const mat<real> &, mat<real> &);  // (31)

(1) Solve \(Ax = b\). x may be b.

(2) Solve \(AX = B\), one right-hand side per column. X may be B.

(3) Solve \(Ax = b\), allocating x. Prefer the out-parameter form in hot loops.

(4) Undocumented.

(5) Solve \(Ax = b\). x may be b.

(6) Solve \(AX = B\). X may be B.

(7) Solve \(Ax=b\). x may be b.

(8) Solve \(AX=B\). X may be B.

(9) Solve \(AX = B\) using stored block LU factors.

(10) Solve \(Ax = b\) using stored block LU factors.

(11) Solve \(AX = B\) using stored block Cholesky factors.

(12) Solve \(Ax = b\) using stored block Cholesky factors.

(13) Solve \(Ax = b\). x may be b.

(14) Solve \(AX = B\). X may be B.

(15) Solve \(Ax = b\). x may be b.

(16) Solve \(AX = B\). X may be B.

(17) Undocumented.

(18) Solve \(\min_x \|Ax-b\|_2\), which is \(Ax = b\) for square nonsingular \(A\). x may be b.

(19) Solve \(Ax = b\) to double-precision accuracy. x may be b.

(20) Solve \(AX = B\), refining each column. X may be B.

(21) Solve \((A_{base} + PQ^{T})x = b\).

x may be b.

(22) Undocumented.

(23) Undocumented.

(24) Undocumented.

(25) Solve \((sI - A)x = b\). x may be b.

(26) Solve \((sI - A)x = b\) for a real \(b\); the solution is complex.

(27) Undocumented.

(28) Solve \((sI - A)x = b\). x may be b.

(29) Solve \((sI - A)x = b\). x may be b.

(30) Solve \(Ax = b\). x may be b.

(31) Solve \(AX = B\). X may be B.