SyTen
tree.h File Reference

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"
+ Include dependency graph for tree.h:
+ This graph shows which files directly or indirectly include this file:

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

 syten
 Syten 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::ostreamsyten::T3N::Tree::operator<< (std::ostream &out, Node< T > const &node)
 Output for nodes. More...
 
std::ostreamsyten::T3N::Tree::operator<< (std::ostream &out, NodeType const &n)
 Output for a NodeType. More...
 
template<typename T >
std::ostreamsyten::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...
 

Detailed Description

Implementation of a T3N tree.