|
static std::string | name () |
|
static constexpr bool | IS_CHARGE_SU2 () |
|
static constexpr bool | IS_SPIN_SU2 () |
|
static constexpr bool | IS_SPIN_U1 () |
|
static constexpr bool | NO_SPIN_SYM () |
|
static constexpr bool | NO_CHARGE_SYM () |
|
static constexpr std::array< KIND, Nq > | kind () |
|
static constexpr qType | qvacuum () |
|
static constexpr std::array< qType, S1::lowest_qs().size() *S2::lowest_qs().size()> | lowest_qs () |
|
static qType | conj (const qType &q) |
|
static int | degeneracy (const qType &q) |
|
static qType | random_q () |
|
static std::size_t | multiplicity (const qType &q1, const qType &q2, const qType &q3) |
|
static bool | triangle (const qType &q1, const qType &q2, const qType &q3) |
|
|
static std::vector< qType > | basis_combine (const qType &ql, const qType &qr) |
|
static std::vector< qType > | reduceSilent (const qType &ql, const qType &qr) |
|
static std::vector< qType > | reduceSilent (const std::vector< qType > &ql, const qType &qr) |
|
static std::set< qType > | reduceSilent (const std::vector< qType > &ql, const std::vector< qType > &qr) |
|
static std::vector< qType > | reduceSilent (const qType &ql, const qType &qm, const qType &qr) |
|
static std::set< qType > | reduceSilent (const std::set< qType > &ql, const std::vector< qType > &qr) |
|
static std::set< qType > | reduceSilent (const std::unordered_set< qType > &ql, const std::vector< qType > &qr) |
|
static Scalar | coeff_FS (const qType &q) |
|
static Scalar | coeff_turn (const qType &ql, const qType &qr, const qType &qf) |
|
static bool | compare (const std::array< qType, M > &q1, const std::array< qType, M > &q2) |
|
static bool | compare (const qType &q1, const qType &q2) |
|
static bool | triangle (const qType &q1, const qType &q2, const qType &q3) |
|
|
static constexpr std::size_t | Nq = S1_::Nq + S2_::Nq |
|
static constexpr std::array< bool, Nq > | HAS_MULTIPLICITIES = util::join(S1::HAS_MULTIPLICITIES, S2::HAS_MULTIPLICITIES) |
|
static constexpr std::array< bool, Nq > | NON_ABELIAN = util::join(S1::NON_ABELIAN, S2::NON_ABELIAN) |
|
static constexpr std::array< bool, Nq > | ABELIAN = util::join(S1::ABELIAN, S2::ABELIAN) |
|
static constexpr std::array< bool, Nq > | IS_TRIVIAL = util::join(S1::IS_TRIVIAL, S2::IS_TRIVIAL) |
|
static constexpr std::array< bool, Nq > | IS_MODULAR = util::join(S1::IS_MODULAR, S2::IS_MODULAR) |
|
static constexpr std::array< bool, Nq > | IS_FERMIONIC = util::join(S1::IS_FERMIONIC, S2::IS_FERMIONIC) |
|
static constexpr std::array< bool, Nq > | IS_BOSONIC = util::join(S1::IS_BOSONIC, S2::IS_BOSONIC) |
|
static constexpr std::array< bool, Nq > | IS_SPIN = util::join(S1::IS_SPIN, S2::IS_SPIN) |
|
static constexpr std::array< int, Nq > | MOD_N = util::join(S1::MOD_N, S2::MOD_N) |
|
static constexpr bool | ANY_HAS_MULTIPLICITIES = S1::ANY_HAS_MULTIPLICITIES or S2::ANY_HAS_MULTIPLICITIES |
|
static constexpr bool | ANY_NON_ABELIAN = S1::ANY_NON_ABELIAN or S2::ANY_NON_ABELIAN |
|
static constexpr bool | ANY_ABELIAN = S1::ANY_ABELIAN or S2::ANY_ABELIAN |
|
static constexpr bool | ANY_IS_TRIVIAL = S1::ANY_IS_TRIVIAL or S2::ANY_IS_TRIVIAL |
|
static constexpr bool | ANY_IS_MODULAR = S1::ANY_IS_MODULAR or S2::ANY_IS_MODULAR |
|
static constexpr bool | ANY_IS_FERMIONIC = S1::ANY_IS_FERMIONIC or S2::ANY_IS_FERMIONIC |
|
static constexpr bool | ANY_IS_BOSONIC = S1::ANY_IS_BOSONIC or S2::ANY_IS_BOSONIC |
|
static constexpr bool | ANY_IS_SPIN = S1::ANY_IS_SPIN or S2::ANY_IS_SPIN |
|
static constexpr bool | ALL_HAS_MULTIPLICITIES = S1::ALL_HAS_MULTIPLICITIES and S2::ALL_HAS_MULTIPLICITIES |
|
static constexpr bool | ALL_NON_ABELIAN = S1::ALL_NON_ABELIAN and S2::ALL_NON_ABELIAN |
|
static constexpr bool | ALL_ABELIAN = S1::ALL_ABELIAN and S2::ALL_ABELIAN |
|
static constexpr bool | ALL_IS_TRIVIAL = S1::ALL_IS_TRIVIAL and S2::ALL_IS_TRIVIAL |
|
static constexpr bool | ALL_IS_MODULAR = S1::ALL_IS_MODULAR and S2::ALL_IS_MODULAR |
|
static constexpr bool | ALL_IS_FERMIONIC = S1::ALL_IS_FERMIONIC and S2::ALL_IS_FERMIONIC |
|
static constexpr bool | ALL_IS_BOSONIC = S1::ALL_IS_BOSONIC and S2::ALL_IS_BOSONIC |
|
static constexpr bool | ALL_IS_SPIN = S1::ALL_IS_SPIN and S2::ALL_IS_SPIN |
|
template<typename PlainLib > |
static PlainLib::template | TType< Scalar, 3 > |
|
| auto [q2l, q2r] = disjoin<S1_::Nq, S2_::Nq>(q2) |
|
auto | Tl = S1::template CGC<PlainLib>(q1l, q2l, q3l, alpha, world) |
|
auto | Tr = S2::template CGC<PlainLib>(q1r, q2r, q3r, alpha, world) |
|
return | PlainLib::tensorProd (Tl, Tr) |
|
static Scalar | coeff_dot (const qType &q1) |
|
static Scalar | coeff_twist (const qType &q) |
|
static Scalar | coeff_FS (const qType &q) |
|
template<typename PlainLib > |
static PlainLib::template TType< Scalar, 2 > | one_j_tensor (const qType &q, mpi::XpedWorld &world=mpi::getUniverse()) |
|
static Scalar | coeff_rightOrtho (const qType &, const qType &) |
|
static Scalar | coeff_3j (const qType &q1, const qType &q2, const qType &q3, int q1_z, int q2_z, int q3_z) |
|
static Scalar | coeff_turn (const qType &ql, const qType &qr, const qType &qf) |
|
static Scalar | coeff_6j (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6) |
|
static Scalar | coeff_recouple (const qType &q1, const qType &q2, const qType &q3, const qType &Q, const qType &Q12, const qType &Q23) |
|
static Scalar | coeff_swap (const qType &ql, const qType &qr, const qType &qf) |
|
static Scalar | coeff_9j (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6, const qType &q7, const qType &q8, const qType &q9) |
|
template<typename S1_, typename S2_>
class Xped::Sym::S1xS2< S1_, S2_ >
This class combines two symmetries.