Template Struct combined_sector_operator

Struct Documentation

template<typename T>
struct combined_sector_operator

Operator wrapper for the direct-sum T_e ⊕ T_h* acting on the concatenated space.

The combined space has dimension (Me + Mh)*p with the e-sector occupying the first Me*p components and the h-sector occupying the last Mh*p components. Both sectors share the same block size p.

The e-sector applies T_e normally. The h-sector applies T_h* (element-wise complex conjugate of T_h), i.e. T_h* x = conj(T_h conj(x)). This is needed so that the combined MCF (with conj(W_h) starting vectors for the h-sector) reproduces G_mcf_h^T rather than G_mcf_h. For T=double, T_h* = T_h and conj is a no-op, so the real case is unaffected.

Satisfies the TYPE concept expected by blockLanczos: void mult_add(const vector<T>& x, vector<T>& y)

Public Functions

inline combined_sector_operator(const matrix_continued_fraction<T> &_e, const matrix_continued_fraction<T> &_h)
inline void mult_add(const vector<T> &x, vector<T> &y) const

Public Members

const matrix_continued_fraction<T> &e
const matrix_continued_fraction<T> &h
const int Me
const int Mh
const int p