15 for (
int k = 1; k <
n; ++k) {
26 for (
int k = 1; k <
n; ++k)
30 for (
int k =
n - 2; k >= 0; --k)
31 d[k] -=
c_mod[k] * d[k + 1];
std::vector< cplx > inv_b
Inverse of modified main diagonal (precomputed)
void solve(std::vector< cplx > &d) const
In-place Thomas solve.
std::complex< double > cplx
cplx a_coeff
Sub-diagonal value (constant across all rows)
void factor(int n_, cplx a_, cplx b_, cplx c_)
Factor the tridiagonal matrix.
std::vector< cplx > c_mod
Modified super-diagonal (precomputed from LU)
Precomputed LU Thomas solver for constant-coefficient complex tridiagonal systems.