#include <operator.h>
Public Types | |
typedef T3N::Tree::Tree< SBasis > | PhysBases |
To satisfy annoying compilers. More... | |
Public Types inherited from syten::T3N::Tree::Tree< T3NTensor > | |
using | cPtr = const Node * |
An overload. More... | |
using | cPtrc = const Node *const |
An overload. More... | |
typedef T3N::Tree::Node< Value > | Node |
Shortcut for the Nodes. More... | |
using | Ptr = Node * |
Pointer to Node. More... | |
using | Ptrc = Node *const |
An overload. More... | |
typedef std::vector< std::tuple< Index, std::vector< Index >, NodeType, Index > > | Structure |
Return type of tree information for plotting. More... | |
typedef std::map< int, Position > | Translator |
Translator to call Nodes. More... | |
typedef T3NTensor | Value |
Type of the contained values. More... | |
Public Member Functions | |
MemoryUsage::MemorySize | allocSize () const |
Returns the total size of this. More... | |
template<typename Archive > | |
void | load (Archive &arch, unsigned int const in_version) |
Boost load. More... | |
template<typename Archive > | |
void | load_rec (Archive &arch, Ptrc ptr) |
Load recursive helper. More... | |
Operator ()=default | |
Default constructor. More... | |
Operator (PhysBases const &physical) | |
Initialising to zero operator. More... | |
bool | operator== (Operator const &other) const |
void | print (std::ostream &out) |
Prints all virtual leg dimensions. More... | |
void | repro () |
Helper to renew all virtual SBases indices. More... | |
template<typename Archive > | |
void | save (Archive &arch, unsigned int const) const |
Boost save. More... | |
template<typename Archive > | |
void | save_rec (Archive &arch, Ptrc ptr) const |
Save recursive helper. More... | |
Access functions. | |
T3NTensor & | operator() (int const element) |
Return the local operator component at that coordinate. More... | |
T3NTensor & | operator() (Vec< Index > const &coordinate) |
Return the local operator component at that coordinate. More... | |
Ptr | operator[] (int const element) const |
Returns a Ptr to the Node at the specified coordinate. More... | |
Ptr | operator[] (Vec< Index > const &coordinate) const |
Returns a Ptr to the Node at the specified coordinate. More... | |
Dropping of tensor blocks | |
void | drop_all () |
Drops all blocks on all tensors, i.e. sets the state to zero. More... | |
Truncation. | |
SRDef | truncate (TruncationType const &type=TruncationType::Default, bool const verbose=false, SRDef const threshold=NAN, bool const nowarn=false, bool const correct_cgc=true) |
Truncates the operator. More... | |
SRDef | truncate_impl (TruncationType const &type, Index const max_sweeps, bool const verbose, SRDef threshold, bool const nowarn) |
Implementation. More... | |
SRDef | truncate_rec (Ptrc ptr, TruncationType const &type, SRDef const threshold) |
Truncates the subtree starting at the specified node in largely the same fashion as for states. More... | |
SRDef | rootNormaliseNode (Ptrc ptr, TruncationType const &type, SRDef const threshold) |
Root-normalise the node pointed to by ptr. More... | |
SRDef | descendantNormaliseNode (Ptrc ptr, TruncationType const &type, SRDef const threshold, LegType const which) |
Normalises the node pointed to by ptr to the which-th direction. More... | |
SRDef | rootNormaliseTree (TruncationType const &type, SRDef const threshold) |
Normalises the entire operator. More... | |
Caching of tensors. | |
void | cache (bool const do_cache=true) |
Caches all tensors. More... | |
void | uncache () |
Uncaches all tensors. More... | |
Cuda related functions. | |
void | make_cuda () |
Loads entire operator onto GPU. More... | |
void | maybe_make_cuda () |
Maybe loads the operator onto the GPU. More... | |
void | make_standard () |
Loads operator into RAM. More... | |
Public Member Functions inherited from syten::T3N::Tree::Tree< T3NTensor > | |
MemoryUsage::MemorySize | allocSize () const |
Structure | genStructure () const |
Returns structure for pretty plotting. More... | |
Position | left_most () const |
Returns the left-most node. More... | |
void | load (Archive &arch, unsigned int const in_version) |
Boost load. More... | |
bool | mp () const |
Returns true, if tree only contains physical nodes. More... | |
Tree & | operator= (Tree &&other) |
Move assignment operator. More... | |
Tree & | operator= (Tree const &other) |
Copy assignment operator. More... | |
bool | operator== (Tree< OtherType > const &other) const |
Compare the structure of two trees. More... | |
Position | right_most () const |
Returns the right-most node. More... | |
void | save (Archive &arch, unsigned int) const |
Boost save. More... | |
Index | size () const |
Counts all Nodes of this tree. More... | |
Index | sizeOf (NodeType const type) const |
Counts the number of Nodes w/ the given type. More... | |
Tree (NodeType root=NodeType::Physical) | |
Default constructor. More... | |
Tree (NodeType root=NodeType::Physical, Args... args) | |
Constructor forwarding the container. More... | |
Tree (Tree &&other) | |
Move constructor. More... | |
Tree (Tree const &other) | |
Copy constructor. More... | |
~Tree () | |
Destructor. More... | |
Ptr | operator[] (Position const &coordinate) const |
Returns the Ptr to the Node specified through the coordinate vector by the following syntax: More... | |
Ptr | operator[] (int const element) const |
void | visit (Func &&func) |
Shortcut. More... | |
void | visit (Func &&func, Ptr ptr) |
Shortcut. More... | |
Public Attributes | |
bool | cache_flag = false |
Determines if data should be cached immediately after de-serializing. More... | |
Public Attributes inherited from syten::T3N::Tree::Tree< T3NTensor > | |
Ptr | Root |
Root of the tree. More... | |
Translator | translator |
Instance. More... | |
Static Public Attributes | |
static constexpr Index | branchRank = 3 |
The rank which the branching STenors contained should have. More... | |
static std::array< std::string, 3 > const | branchVirtNames = { "Root","A-Leg","B-Leg" } |
Names of the virtual Legs of Branching Nodes. More... | |
static std::array< std::string, 4 > const | physNames = { "Root","Up","Down","A-Leg" } |
Names of the virtual Legs of Physical Nodes. More... | |
static constexpr Index | physRank = 4 |
The rank which the physical STenors contained should have. More... | |
static const std::string | uuid = "4d114346-46f6-11e8-842f-0ed5f89f718b" |
UUID of a T3N::Operator. More... | |
static constexpr unsigned int | version = 2 |
Version number of state. More... | |
static const std::array< Direction, branchRank > | branchingDirs |
Branching Dirs. More... | |
static const std::array< Direction, physRank > | physicalDirs |
Physical Dirs. More... | |
Private Member Functions | |
void | buildEmptyOperator_rec (typename Tree::Tree< SBasis >::Ptr const p, Operator::Ptr optr) |
Helper function. More... | |
std::tuple< SRDef, STensor, STensor, SBasis > | truncation_decompose (Ptrc ptr, TruncationType const &type, SRDef const threshold, LegType const dir) |
Helper for the truncation. More... | |
Index numbering | |
static constexpr Index | rIdx = 1 |
Root-directed tensor index. More... | |
static constexpr Index | aIdx_P = 4 |
Index of the descendent. More... | |
static constexpr Index | uIdx = 2 |
Upper tensor index for physical nodes only. More... | |
static constexpr Index | dIdx = 3 |
Lower tensor index for physical nodes only. More... | |
static constexpr Index | aIdx_B = 3 |
Index of the A-Leg. More... | |
static constexpr Index | bIdx = 2 |
Index of the B-Leg. More... | |
static Index | getIndex (LegType l, NodeType n) |
Gets the STensor Index for the respective leg. More... | |
Product of two operators | |
Operator & | operator*= (Operator const &other) |
Product of two operators \( \hat O \; \hat T \), *this will be applied first to the state. More... | |
void | product_rec (Operator::Ptrc tptr, Operator::cPtrc optr) |
Recursive helper for operator multiplication. More... | |
Addition of two operators | |
Operator & | operator+= (Operator const &other) |
Adds the argument to *this More... | |
Operator & | operator-= (Operator const &other) |
Subtracts the argument from *this More... | |
void | add_rec (Operator::Ptr tptr, Operator::Ptr const optr) |
Recursive helper for operator addition. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from syten::T3N::Tree::Tree< T3NTensor > | |
static void | visit (Func &&f, const Pair< IterDirection, IterDirection > directions, Ptr ptr) |
static std::result_of< Func(Ptr)>::type | visit (Func &&f, typename std::result_of< Func(Ptr)>::type initial, Pair< IterDirection, IterDirection > directions, Ptr ptr) |
Recursively visits a subtree, bottom-first. More... | |
static std::result_of< Func(Ptr)>::type | visit (Func &&f, Op &&operation, typename std::result_of< Func(Ptr)>::type initial, Pair< IterDirection, IterDirection > directions, Ptr ptr) |
A T3N operator.