17 template<
typename pScalar,
typename T>
18 std::vector<pScalar>
find_permutation(
const std::vector<T>& A,
const std::vector<T>& B);
23 template<
typename pScalar>
37 template<
typename rank_t>
38 ChangeBasis(
const rank_t& A,
const rank_t& B,
bool set_conv_to_canon,
bool set_canon_to_conv);
41 #include "impl/ChangeBasis.ipp"
Everything in this library is under this namespace.
Definition: Box.hpp:9
std::vector< pScalar > find_permutation(const std::vector< T > &A, const std::vector< T > &B)
If vector B is permutation of vector A i.e. B= A * sigma then returns permutation sigma.
Change of basis matrices needed for the equivariant tensor product.
Definition: ChangeBasis.hpp:24
std::vector< pScalar > canon_to_left
The permutation from the canonical basis to the left convenient basis.
Definition: ChangeBasis.hpp:28
ChangeBasis(const rank_t &A, const rank_t &B, bool set_conv_to_canon, bool set_canon_to_conv)
Constructs the change of basis matrices given two ranks.
std::vector< pScalar > left_to_canon
The permutation from the left convenient basis to the canonical basis.
Definition: ChangeBasis.hpp:26
std::vector< pScalar > right_to_canon
The permutation from the right convenient basis to the canonical basis.
Definition: ChangeBasis.hpp:27
std::vector< pScalar > canon_to_right
The permutation from the canonical basis to the right convenient basis.
Definition: ChangeBasis.hpp:29