Implementation of a T3N tree. More...
#include <vector>
#include <boost/serialization/split_member.hpp>
#include <boost/serialization/traits.hpp>
#include <boost/serialization/level.hpp>
#include <boost/algorithm/string.hpp>
#include "inc/util/boost_versioning.h"
#include "inc/util/scalars.h"
#include "inc/util/pair.h"
#include "inc/util/vectors.h"
#include "inc/util/binary_tree.h"
#include "inc/util/vec.h"
#include "inc/util/memory_size.h"
Classes | |
struct | syten::T3N::Tree::Node< T >::LegArray |
Proxy object for Legs. More... | |
class | syten::T3N::Tree::Node< T > |
A Node of a T3N containing values of type T. More... | |
class | syten::T3N::Tree::Tree< T > |
Namespaces | |
namespace | syten |
Syten namespace. | |
namespace | syten::T3N |
Namespace for T3N. | |
Typedefs | |
typedef syten::BinaryTree::NodeType | syten::T3N::Tree::LegType |
LegsTypes. More... | |
typedef Vec< Index > | syten::T3N::Tree::Position |
Type for position of nodes inside a tree. More... | |
Enumerations | |
enum class | syten::T3N::Tree::IterDirection : char { Left , Right , Top , Bottom } |
Specifying the direction of a Node. More... | |
enum class | syten::T3N::Tree::NodeType : char { Branching , Physical , Undefined } |
Switch for the NodeType. More... | |
Functions | |
template<typename T > | |
Index | syten::T3N::Tree::distance (Tree< T > const &t, Position const &pos1, Position const &pos2) |
Returns the number of physical nodes between the two coordinates. More... | |
LegType | syten::T3N::Tree::getComplementaryDirection (LegType direction, LegType root=LegType::A) |
Useful shortcut for the complementary direction during DMRG calculations. More... | |
Index | syten::T3N::Tree::getLeg (LegType l) |
For Tensor operations. More... | |
LegType | syten::T3N::Tree::getNotDir (LegType direction) |
Gives the other leg of a Branching Node. More... | |
Position | syten::T3N::Tree::lastCommonAncestor (Position const &one, Position const &two) |
Returns the last common ancestor and the number of shared nodes. More... | |
template<typename T > | |
std::ostream & | syten::T3N::Tree::operator<< (std::ostream &out, Node< T > const &node) |
Output for nodes. More... | |
std::ostream & | syten::T3N::Tree::operator<< (std::ostream &out, NodeType const &n) |
Output for a NodeType. More... | |
template<typename T > | |
std::ostream & | syten::T3N::Tree::operator<< (std::ostream &out, Tree< T > const &tree) |
Output for trees. More... | |
Vec< LegType > | syten::T3N::Tree::path (Position const &from, Position const &to) |
Returns the path going from the first position to the second. More... | |
template<typename NewType , typename OtherType , typename ... Args> | |
auto | syten::T3N::Tree::reconstruct (Tree< OtherType > const &other, Args... args) |
Constructs a tree with the same structure as other and calls the desired constructor. More... | |
template<typename NewType , typename OtherType , typename ... Args> | |
void | syten::T3N::Tree::reconstruct_rec (typename Tree< NewType >::Ptrc n, typename Tree< OtherType >::cPtrc o, Args... args) |
Recursive helper function. More... | |
Variables | |
static const Index | syten::T3N::Tree::BranchingNodeLegs = 3 |
Number of legs for a BranchingNode. More... | |
static const Index | syten::T3N::Tree::NodeLegs = 3 |
The entire number of legs for the Nodes. More... | |
static const Index | syten::T3N::Tree::PhysicalNodeLegs = 2 |
Number of legs for a PhysicalNode. More... | |
static constexpr unsigned int | syten::T3N::Tree::version_node = 1 |
Version number of data interface for nodes. More... | |
static constexpr unsigned int | syten::T3N::Tree::version_tree = 1 |
Version number of data interface for trees. More... | |
Implementation of a T3N tree.