Skip to content

num::solve_batch

Defined in header <linear/solvers/hessenberg_resolvent.hpp>

array<vec<cplx>> solve_batch(const hessenberg_resolvent &R, const array<cplx> &shifts,
                             const vec<real> &b);  // (1)

array<array<vec<cplx>>> solve_batch(const hessenberg_resolvent &R,
                                    const array<cplx> &shifts,
                                    const array<vec<real>> &rhs_list);  // (2)

(1) Solve one right-hand side at many shifts, in parallel over the shifts.

The same as solve(shift(R, s), b) for each s, with the projection of b shared and one factor buffer per thread.

(2) Solve several right-hand sides at many shifts: result[shift][rhs].