Struct HS_Hermitian_operator

Inheritance Relationships

Derived Types

Struct Documentation

struct HS_Hermitian_operator

Abstract class for a Hermitian operator in a sector of the Hilbert space.

Subclassed by HS_factorized_operator< op_field >, HS_interaction_operator, HS_nondiagonal_operator< HS_field >

Public Functions

inline HS_Hermitian_operator(shared_ptr<model> _the_model, const string &_name, sector _sec)
virtual void multiply_add(const vector<double> &x, vector<double> &y, double z) = 0
virtual void multiply_add(const vector<Complex> &x, vector<Complex> &y, double z) = 0
virtual void diag(vector<double> &d, double z) = 0
virtual void dense_form(matrix<double> &h, double z) = 0
virtual void dense_form(matrix<Complex> &h, double z) = 0
virtual void CSR_map(map<index_pair, double> &elem, vector<double> &diag, double z) = 0
virtual void CSR_map(map<index_pair, Complex> &elem, vector<double> &diag, double z) = 0
inline virtual void Triplet_COO_map(vector<matrix_element<double>> &E, double z, bool sym_store)
inline virtual void Triplet_COO_map(vector<matrix_element<Complex>> &E, double z, bool sym_store)
template<typename HS_field>
void expectation_value(const state<HS_field> &gs, double &average, double &average2)

Computes the expectation value and variance of the operator in the state gs.

Public Members

string name

name of the operator

sector sec

sector of the HS on which it acts

shared_ptr<model> the_model

backtrace to the model