Template Class ResultScalar

Inheritance Relationships

Base Type

Class Documentation

template<typename T>
class ResultScalar : public sequant::Result

Result for a constant or a variable value.

Template Parameters:

T – numeric type of the constant value (eg. double, complex<double>, etc.)

Public Types

using id_t = size_t

Public Functions

inline explicit ResultScalar(T v) noexcept
inline T value() const noexcept
inline virtual ResultPtr sum(Result const &other, std::array<std::any, 3> const&) const override

Sum other Result object with this object.

Note

In std::array<std::any, 3> is expected to be [l,r,res] where the elements are the annotations for left, right and result respectively.

inline virtual ResultPtr prod(Result const &other, std::array<std::any, 3> const &maybe_empty, TA::DeNest DeNestFlag) const override

Perform product binary operation with this object and other.

Note

In std::array<std::any, 3> is expected to be [l,r,res] where the elements are the annotations for left, right and result respectively.

inline virtual ResultPtr permute(std::array<std::any, 2> const&) const override

Permute this object according to the annotations in the argument.

Note

In std::array<std::any, 2> is expected to be [pre,post] where the elements are the annotations for the eval result before permutation and after permutation respectively.

inline virtual void add_inplace(Result const &other) override

Add other Result object into this object.

inline virtual ResultPtr symmetrize() const override

Particle symmetrize the eval result.

inline virtual ResultPtr antisymmetrize(size_t) const override

Particle antisymmetrize the eval result.

inline virtual ResultPtr biorthogonal_nns_project(size_t bra_rank) const override

Implements “biorthogonal cleanup” of closed-shell more compact spintraced equations produced via method of Wang and Knizia.

For 3-body residual (bra_rank=3) this implements Eq. (41) of the Wang/Knizia paper, same as the first line of Figure 1. For 4-body residual this implements the first line of Figure 2. The implementation is for arbitrary ranks.

Parameters:

bra_rank – the particle rank of the residual tensor (i.e. its order halved)

inline virtual ResultPtr mult_by_phase(std::int8_t factor) const override