Xped
Loading...
Searching...
No Matches
treepair.hpp
Go to the documentation of this file.
1#ifndef TREEPAIR_H_
2#define TREEPAIR_H_
3
4#include <unordered_map>
5
6#ifdef XPED_CACHE_PERMUTE_OUTPUT
7# include "lru/lru.hpp"
8#endif
9
10#include "Xped/Hash/hash.hpp"
12
13namespace Xped {
14
15namespace treepair {
16// ☐
17// _
18// c c b
19// | \ /
20// | \ /
21// / \ ---> coeff* |
22// / \ |
23// a b a
24template <std::size_t Rank, std::size_t CoRank, typename Symmetry>
25std::unordered_map<std::pair<FusionTree<Rank + 1, Symmetry>, FusionTree<CoRank - 1, Symmetry>>, typename Symmetry::Scalar>
27
28template <std::size_t Rank, std::size_t CoRank, typename Symmetry>
29std::unordered_map<std::pair<FusionTree<Rank - 1, Symmetry>, FusionTree<CoRank + 1, Symmetry>>, typename Symmetry::Scalar>
31
32template <int shift, std::size_t Rank, std::size_t CoRank, typename Symmetry>
33std::unordered_map<std::pair<FusionTree<Rank - shift, Symmetry>, FusionTree<CoRank + shift, Symmetry>>, typename Symmetry::Scalar>
35
36template <int shift, std::size_t Rank, std::size_t CoRank, typename Symmetry>
37std::unordered_map<std::pair<FusionTree<Rank - shift, Symmetry>, FusionTree<CoRank + shift, Symmetry>>, typename Symmetry::Scalar>
39
40} // end namespace treepair
41
42} // namespace Xped
43
44#ifndef XPED_COMPILED_LIB
45# include "Core/treepair.cpp"
46#endif
47
48#endif
std::unordered_map< std::pair< FusionTree< Rank+1, Symmetry >, FusionTree< CoRank - 1, Symmetry > >, typename Symmetry::Scalar > turn_right(const FusionTree< Rank, Symmetry > &t1, const FusionTree< CoRank, Symmetry > &t2)
Definition: treepair.cpp:33
std::unordered_map< std::pair< FusionTree< Rank - 1, Symmetry >, FusionTree< CoRank+1, Symmetry > >, typename Symmetry::Scalar > turn_left(const FusionTree< Rank, Symmetry > &t1, const FusionTree< CoRank, Symmetry > &t2)
Definition: treepair.cpp:88
std::unordered_map< std::pair< FusionTree< Rank - shift, Symmetry >, FusionTree< CoRank+shift, Symmetry > >, typename Symmetry::Scalar > turn(const FusionTree< Rank, Symmetry > &t1, const FusionTree< CoRank, Symmetry > &t2)
Definition: treepair.cpp:101
std::unordered_map< std::pair< FusionTree< Rank - shift, Symmetry >, FusionTree< CoRank+shift, Symmetry > >, typename Symmetry::Scalar > permute(const FusionTree< Rank, Symmetry > &t1, const FusionTree< CoRank, Symmetry > &t2, const util::Permutation &p)
Definition: treepair.cpp:141
Definition: bench.cpp:62
Definition: FusionTree.hpp:24
Definition: Permutations.hpp:40