A list of terms contributing to the Lehmann representation of a correlation function.
More...
|
| TermList (Hash const &hasher, KeyEqual const &key_equal, IsNegligible const &is_negligible) |
|
void | add_term (TermType const &term) |
|
std::size_t | size () const |
| Number of terms in the container. More...
|
|
void | clear () |
| Remove all terms from the container. More...
|
|
std::unordered_set< TermType, Hash, KeyEqual > const & | as_set () const |
| Access the underlying set of terms. More...
|
|
IsNegligible const & | get_is_negligible () const |
| Access the 'is negligible' predicate. More...
|
|
template<typename... Args> |
ComplexType | operator() (Args &&... args) const |
|
void | broadcast (MPI_Comm const &comm, int root) |
|
bool | check_terms () const |
| Check if all terms in the container are not negligible. More...
|
|
template<typename TermType>
class Pomerol::TermList< TermType >
A list of terms contributing to the Lehmann representation of a correlation function.
A set-like container storing a list of terms contributing to the Lehmann representation of a correlation function.
The terms must support hashing using a function TermType::Hash
and a similarity check via TermType::KeyEqual
. Similar terms are automatically collected and reduced to one term using operator+=()
. A term T is considered negligible and is automatically removed from the container if TermType::IsNegligible
(T, current_number_of_terms + 1) evaluates to true.
- Template Parameters
-
TermType | Type of a single term. |
Definition at line 41 of file TermList.hpp.