29using namespace triqs::hilbert_space;
31namespace triqs::atom_diag {
34 template <
bool Complex>
struct atom_diag_worker {
41 atom_diag_worker(atom_diag<Complex> *hdiag,
int n_min = 0,
int n_max = INT_MAX) : hdiag(hdiag), n_min(n_min), n_max(n_max) {}
44 void autopartition(many_body_op_t
const &hyb = many_body_op_t());
45 void partition_with_qn(std::vector<many_body_op_t>
const &qn_vector);
48 atom_diag<Complex> *hdiag;
52 matrix_t make_op_matrix(many_body_op_t
const &op,
int from_sp,
int to_sp)
const;
Provides a lightweight exact diagonalization solver for fermionic Hamiltonians.
matrix< scalar_t > matrix_t
Dense matrix type with scalar entries of type scalar_t.
triqs::operators::many_body_operator_generic< scalar_t > many_body_op_t
Many-body operator type compatible with scalar_t.
std::conditional_t< Complex, std::complex< double >, double > scalar_t
Scalar type of the matrix elements: double or std::complex<double>.
uint64_t fock_state_t
Integer type representing a fermionic fock state .
Provides a class to represent Hilbert (Fock) spaces.