Template Struct is_tensor¶
Defined in File abstract_tensor.hpp
Inheritance Relationships¶
Base Type¶
public std::bool_constant< std::is_invocable_v< decltype(braket), T > &&std::is_invocable_v< decltype(indices), T > &&std::is_invocable_v< decltype(bra_rank), T > &&std::is_invocable_v< decltype(ket_rank), T > &&std::is_invocable_v< decltype(aux_rank), T > &&std::is_invocable_v< decltype(symmetry), T > &&std::is_invocable_v< decltype(braket_symmetry), T > &&std::is_invocable_v< decltype(particle_symmetry), T > &&std::is_invocable_v< decltype(color), T > &&std::is_invocable_v< decltype(is_cnumber), T > &&std::is_invocable_v< decltype(label), T > &&std::is_invocable_v< decltype(static_cast< std::wstring(*)(const T &)>(to_latex)), T > >
Struct Documentation¶
-
template<typename T>
struct is_tensor : public std::bool_constant<std::is_invocable_v<decltype(braket), T> && std::is_invocable_v<decltype(indices), T> && std::is_invocable_v<decltype(bra_rank), T> && std::is_invocable_v<decltype(ket_rank), T> && std::is_invocable_v<decltype(aux_rank), T> && std::is_invocable_v<decltype(symmetry), T> && std::is_invocable_v<decltype(braket_symmetry), T> && std::is_invocable_v<decltype(particle_symmetry), T> && std::is_invocable_v<decltype(color), T> && std::is_invocable_v<decltype(is_cnumber), T> && std::is_invocable_v<decltype(label), T> && std::is_invocable_v<decltype(static_cast<std::wstring (*)(const T&)>(to_latex)), T>>¶ Type trait for checking whether a given class fulfills the Tensor interface requirements Object
t
of a type that meets the concept must satisfy the following:braket(t)
andindices(t)
are valid expressions and evaluate to a range of Index objects;bra_rank(t)
,ket_rank(t)
andaux_rank(t)
are valid expression and return sizes of thebra(t)
,ket(t)
andaux(t)
ranges, respectively;symmetry(t)
is a valid expression and evaluates to a Symmetry object that describes the symmetry of bra/ket of a particle-symmetrict
;braket_symmetry(t)
is a valid expression and evaluates to a BraKetSymmetry object that describes the bra-ket symmetry oft
;particle_symmetry(t)
is a valid expression and evaluates to a ParticleSymmetry object that describes the symmetry oft
with respect to permutations of particles;color(t)
is a valid expression and returns whether a nonnegative integer that identifies the type of a tensor; tensors with different colors can be reordered in a Product at willis_cnumber(t)
is a valid expression and returns whether t commutes with other tensor of same color (tensors of different colors are, for now, always assumed to commute)label(t)
is a valid expression and its return is convertible to a std::wstring;to_latex(t)
is a valid expression and its return is convertible to a std::wstring.