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(braketaux), 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(column_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(braketaux), 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(column_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
tof 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;column_symmetry(t)is a valid expression and evaluates to a ColumnSymmetry object that describes the symmetry oftwith 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.