Template Class Operator

Inheritance Relationships

Base Types

  • public container::svector< Op< Statistics::FermiDirac > >

  • public sequant::Expr (Class Expr)

  • public sequant::detail::VectorExprAccess< Operator< Statistics::FermiDirac >, container::svector< Op< Statistics::FermiDirac > > > (Template Class VectorExprAccess)

Class Documentation

template<Statistics S = Statistics::FermiDirac>
class Operator : public container::svector<Op<Statistics::FermiDirac>>, public sequant::Expr, public sequant::detail::VectorExprAccess<Operator<Statistics::FermiDirac>, container::svector<Op<Statistics::FermiDirac>>>

Operator is a sequence of Op objects.

Template Parameters:

S – specifies the particle statistics

Public Types

using base_type = container::svector<Op<S>>
using iterator = typename base_type::iterator
using const_iterator = typename base_type::const_iterator

Public Functions

Operator() = default
inline explicit Operator(std::initializer_list<Op<S>> ops)
inline explicit Operator(base_type &&ops)
template<typename I>
inline Operator(Action action, std::initializer_list<I> indices)
inline operator base_type&() const &
inline operator base_type&&() &&
inline virtual void adjoint() override

adjoint of an Operator is a reversed string of the adjoints of its ops

inline virtual std::wstring to_latex() const override
Returns:

the string representation of this in LaTeX format

inline virtual type_id_type type_id() const override

Computes and returns the derived type identifier

Returns:

the hash value for this Expr

inline virtual ExprPtr clone() const override
Returns:

a clone of this object, i.e. an object that is equal to this

Public Static Functions

static inline constexpr std::string static_type_name(std::type_identity<Operator> = {})

Public Static Attributes

static constexpr Statistics statistics = S
static constexpr type_rank_type type_rank = S == Statistics::FermiDirac ? expr_type_rank::foperator : S == Statistics::BoseEinstein ? expr_type_rank::boperator : default_type_rank