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)
constexpr T ipow(T x) noexcept
Compute x^N at compile time via repeated squaring.
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.