Class ResultExpr¶
Defined in File result_expr.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class ResultExpr¶
Represents an expression containing a left-hand-side of the form <lhs> = <expression> Thus, objects of this class are used to keep track of the result of a given expression as well as the expression itself.
This is particularly important when it comes to tracking the exact pairing (and symmetry) of external indices in cases the given expression computes a tensorial property.
Importantly, it is possible to track the result without giving an explicit name (label) to it.
Public Functions
-
template<typename Range1, typename Range2, typename Range3>
inline ResultExpr(bra<Range1> &&bra, ket<Range2> &&ket, aux<Range3> &&aux, Symmetry symm, BraKetSymmetry braket_symm, ParticleSymmetry particle_symm, std::optional<std::wstring> label, ExprPtr expr)¶
-
ResultExpr(const ResultExpr &other) = default¶
-
ResultExpr(ResultExpr &&other) = default¶
-
ResultExpr &operator=(const ResultExpr &other) = default¶
-
ResultExpr &operator=(ResultExpr &&other) = default¶
-
ResultExpr &operator=(ExprPtr expression)¶
Assigns a new expression to this result.
-
bool has_label() const¶
-
const std::wstring &label() const¶
-
void set_label(std::wstring label)¶
-
BraKetSymmetry braket_symmetry() const¶
-
void set_braket_symmetry(BraKetSymmetry symm)¶
-
ParticleSymmetry particle_symmetry() const¶
-
void set_particle_symmetry(ParticleSymmetry symm)¶
-
const IndexContainer &bra() const¶
-
const IndexContainer &ket() const¶
-
const IndexContainer &aux() const¶
-
ResultExpr clone() const¶
-
template<typename Group>
inline container::svector<Group> index_particle_grouping() const¶ Obtains the exact grouping (pairing) of indices in the result. Typically, this represents particle-assignments (i.e. indices in the same group are associated with the same particle in the underlying theory).
- Template Parameters:
Group – The type of the object to represent an index group. Must be constructible from an initializer_list<Index> or from a set of two indices. This allows for pair/tuple and vector-like types.
-
struct ResultCmp¶
Public Functions
-
bool operator()(const ResultExpr &lhs, const ResultExpr &rhs) const¶
-
bool operator()(const ResultExpr &lhs, const ResultExpr &rhs) const¶
-
template<typename Range1, typename Range2, typename Range3>