Full Doxygen Index¶
-
class
AbstractNode¶ This is an abstract node in the tree of a TTBasis.
Public Functions
-
AbstractNode()¶
-
virtual
~AbstractNode()¶
-
virtual size_t
nTotalNodes() const = 0¶
-
virtual size_t
nNodes() const = 0¶
-
virtual size_t
nLeaves() const = 0¶
-
virtual AbstractNode *
nextNode() = 0¶
-
virtual AbstractNode *
nextNodeManthe() = 0¶
-
virtual void
info(ostream &os) const = 0¶
-
virtual void
write(ostream &os) const = 0¶
-
virtual int
type() const = 0¶
-
virtual void
setParent(AbstractNode *Up) = 0¶
-
virtual void
update(const NodePosition &p) = 0¶
-
-
template<class
Q, classT, typenameU>
classBS_integrator¶ - #include <BS_integrator.h>
This is a Bulirsch-Stoer Integrator.
The design of this class is loosely related to the implementation of a numerical recipes book.
-
class
CoordinateTransformation¶
-
class
DVRBasis: public LeafInterface¶ Subclassed by HO_Basis, LegendrePolynomials
-
class
Edge¶
-
class
FFT¶
-
class
FFTCooleyTukey¶
-
class
FFTGrid: public LeafInterface¶
-
template<class
A, typenamek>
classLanzcos¶
-
class
Leaf¶ - #include <Leaf.h>
This class represents the leaf in the tree of a TTBasis.
The leafs represent the lowest layer (even below the bottomlayer) in a tree of a TTBasis. Leaves contain abstract class pointers to PrimitiveBasis which provides the interface to the problem under consideration.
-
template<typename
T>
classLeafFunction¶ - #include <LeafFunction.h>
This class allows to use functions as LeafOperators.
-
template<typename
T>
classLeafMatrix¶ - #include <LeafMatrix.h>
This class allows to create LeafOperators from (factor) Matrices.
-
template<typename
T>
classLeafOperator¶ - #include <LeafOperator.h>
This class represents a single particle operator acting on a single leaf.
-
class
LinearizedLeaves¶ - #include <LinearizedLeaves.h>
The class holds a vector of references to the leaves in the TTBasis.
-
template<typename
T>
classMatrix This class represents a Matrix.
This is a simple Matrix-class. The functions that are implemented are specially suited for QuantumDynamics simulations.
Usage:
Matrixcd M(dim1, dim2); Matrixcd A(M); A = M * (A + M);
Bracket Operators
Group of functions for accessing Matrix elements
-
T &
operator()(const size_t i, const size_t j) const¶ Two-indexed accessor.
- Return
Value
- Parameters
i: Rowj: Column
-
T &
operator()(const size_t i, const size_t j)¶ Two-indexed accessor.
- Return
Value
- Parameters
i: Rowj: Column
-
T &
operator[](const size_t idx) const¶ Compound-index accessor.
- Return
Value
- Parameters
idx: Compound index
-
T &
operator[](const size_t idx)¶ Compound-index accessor.
- Return
Value
- Parameters
idx: Compound index
Arithmetic Operators
Group of functions and operator overloadings for performing arithmetic operations on Matrices
-
Matrix<T> &
operator+=(const Matrix<T> &B)¶ In-place elementwise matrix addition.
-
Matrix<T> &
operator-=(const Matrix<T> &B)¶ In-place elementwise matrix subtraction.
-
Matrix<T> &
operator*=(T coeff)¶ In-place elementwise scalar matrix multiplication.
- Return
Scaled Matrix
- Parameters
coeff: Scalar
-
Matrix<T> &
operator/=(T coeff)¶ In-place elementwise scalar matrix division.
- Return
Scaled Matrix
- Parameters
coeff: Scalar
-
bool
operator==(const Matrix<T> &A) const¶ Matrix equality.
- Return
True if precisely equal, False otherwise
- Parameters
A: Test Matrix
-
bool
operator!=(const Matrix<T> &A) const¶ Matrix inequality.
- Return
True if not precisely equal, False otherwise
- Parameters
A: Test Matrix
-
template<typename
U>
Matrixoperator*(const U sca, const Matrix &B)¶ Scalar elementwise multiplication.
Math Operators
Group of functions for common Matrix mathematical operations
-
double
frobeniusNorm() const¶ - Return
Frobenius norm
-
T
trace() const¶ - Return
trace of matrix
-
Matrix<T>
adjoint() const¶ - Return
Adjoint of matrix
-
Matrix<T>
transpose() const¶ - Return
Transposed matrix
-
void
rDiag(Matrix<double> &Transformation, Vector<double> &ev) const¶ Diagonalization of a real Matrix.
Uses Eigen to diagonalize the Matrix. Phases eigenvectors s.t. first element is always positive.
-
SpectralDecompositiond
rDiag() const¶ Diagonalization of a real Matrix.
Exactly like
Matrix::rDiag(Matrixd&, Vectord&)but returns copies instead of pass by reference- Return
Eigenvectors/value as a pair of <Matrixd, Vectord>
-
void
cDiag(Matrix<complex<double>> &Transformation, Vector<double> &ev) const¶ Diagonalization of a complex Matrix.
Uses Eigen to diagonalize the Matrix. Phases eigenvectors s.t. first element is always positive.
-
SpectralDecompositioncd
cDiag() const¶ Diagonalization of a complex Matrix.
Exactly like
Matrix::cDiag(Matrixcd&, Vectord&)but returns copies instead of pass by reference- Return
Eigenvectors/value as a pair of <Matrixcd, Vectord>
I/O Operators
Group of functions for input and output
-
void
print(ostream &os = cout) const¶
-
void
write(const string &filename) const¶
-
void
write(ostream &os) const¶
-
void
read(const string &filename)¶
-
void
read(istream &os)¶
Public Functions
-
Matrix()¶ Zero constructor equivalent to Matrix(1,1);.
-
Matrix(size_t dim1, size_t dim2)¶ Zero constructor.
- Parameters
dim1: size of first dimensiondim2: size of second dimension
-
Matrix(istream &is)¶ Constructor from input stream.
- Parameters
is: Input stream passed to read()
-
Matrix(const string &filename)¶ Constructor from file.
- Parameters
filename: File to load and pass to read()
-
Matrix<T> &
operator=(const Matrix &other)¶ Copy assignment constructor.
- Return
Copied matrix
- Parameters
other: Matrix to copy
-
Matrix<T> &
operator=(Matrix &&other)¶ Move assignment constructor.
-
~Matrix()¶ Destructor.
-
T &
-
class
MatrixListTree: public NodeAttribute<MatrixList>, public NodeAttribute<MatrixList>¶ Public Functions
-
MatrixListTree()¶ A tree graph of MatrixLists.
Default constructor
-
~MatrixListTree()¶ Default Destructor.
-
MatrixListTree() This class manages multilayer H-matrices of multilayer SOP operators.
Default constructor
-
~MatrixListTree() Default Destructor.
-
void
calculate(const TensorTreecd &Psi, const TreeSOP &op, const Tree &tree)¶ Calculating mlHMatrices for a given wavefunction and a mNodeSOP operator.
-
Tensorcd
apply(const Tensorcd &Phi, const NodeSOP &S, const TreeSOP &H, const Node &node) const¶ Apply a NodeSOP operator.
-
Tensorcd
applyHole(const Tensorcd &Phi, const NodeSOP &S, const Node &node, const NodeOperator &hole_S) const¶ Hole-Apply a NodeSOP operator.
-
void
print(const Tree &tree, ostream &os = cout) const Print the ml-H-matrices.
Private Functions
-
MatrixList
calculate(const Tensorcd &Phi, const TreeSOP &H, const Node &node)¶ Calculating mlHMatrices for a TreeSOP.
-
Matrixcd
calculate(const Tensorcd &Phi, const NodeSOP &S, const TreeSOP &H, const Node &node)¶ Calculating mlHMatrices for a NodeSOP.
-
Tensorcd
applyNodeProductOperator(const Tensorcd &Phi, const NodeProductOperator &M, const TreeSOP &H, const Node &node) const¶ Apply a lMPO.
-
Tensorcd
applyNodeProductOperatorUpper(Tensorcd Phi, const NodeProductOperator &M, const Node &node) const¶ Apply a lMPO at an upper layer.
-
Tensorcd
applyNodeProductOperatorBottom(Tensorcd Phi, const NodeProductOperator &M, const LeafOperatorLib &lib, const Node &node) const¶ Apply a lMPO at the bottomlayer.
-
Tensorcd
applyHole(Tensorcd MPhi, const NodeProductOperator &M, const Node &node, const NodeOperator &hole_S) const¶ Hole-Apply a lMPO.
-
-
class
MatrixTensorTree: public pair<TensorTreecd, MatrixTreecd>¶ Public Functions
-
MatrixTensorTree()¶
-
MatrixTensorTree(const TensorTreecd &Psi, const Tree &tree, bool orthogonal)¶
-
void
initialize(TensorTreecd Psi, const Tree &tree)¶ All-normalized wavefunction representation with A’s and B_inv’s.
-
const TensorTreecd &
nodes() const¶
-
TensorTreecd &
nodes()¶
-
const MatrixTreecd &
edges() const¶
-
MatrixTreecd &
edges()¶
-
const TensorTreecd &
densityWeighted() const¶
-
void
buildNodes(const TensorTreecd &Psi, const Tree &tree)¶
-
TensorTreecd
topDownNormalized(const Tree &tree) const¶
-
TensorTreecd
bottomUpNormalized(const Tree &tree) const¶
-
-
template<typename
T>
classMatrixTree¶
-
template<typename
T>
classMatrixTree
-
class
MultiIndex¶ Public Functions
-
MultiIndex(vector<size_t> &boundaries)¶
-
MultiIndex(size_t size, size_t length)¶
-
MultiIndex(const MultiIndex &multi)¶
-
void
Zero()¶
-
void
Max()¶
-
void
print() const¶
-
void
operator++(int a)¶
-
void
operator--(int a)¶
-
size_t
operator()(size_t a) const¶
-
size_t
operator[](size_t a) const¶
-
bool
Below() const¶
-
bool
After() const¶
-
MultiIndex
operator+(MultiIndex &multi)¶
-
void
Erase(size_t position)¶
-
void
Erase(size_t startPosition, size_t endPosition)¶
-
void
pop_back()¶
-
void
Replace(size_t position, size_t newBoundary)¶
-
size_t
Linearize()¶
-
size_t
FastLinearize()¶
-
size_t
Before(size_t a)¶
-
size_t
Active(size_t a)¶
-
size_t
After(size_t a)¶
-
size_t
DimTot() const¶
Protected Functions
-
void
calculateTotal()¶
-
-
template<typename
T>
classMultiLeafOperator¶ - #include <MultiLeafOperator.h>
A MultiLeafOperator (MLO) is a product of general single-particle operators.
A MultiLeafOperator is one summand in a SumofProducts operator. It can be applied to a TensorTree resulting in a wavefunction with a different bottomlayer-Tensors. The MLO is central for building hamiltonians.
Please note:
The recommended operator to build MLO is SPOf or SPOM (due to performance)
SPO initialization might be removed in the future
TensorTrees with different lower-node Tensors cannot (straightforwardly) be added without loss of information.
-
class
Node¶ - #include <Node.h>
This class manages a node in the tree-structured TTBasis representation.
The class holds the tensor-dimensions (TensorDim) at the current node and holds the connectivity to the parent & all child nodes (parent and child(s)). The node also knows wether it is a toplayer or bottomlayer-node. If the Node is a bottomlayer node, it holds a Leaf. Accessing Leaf or sublying Nodes (non-leaves) for incorrect nodes will stop the program. Please use the TTBasis iterator to swipe over all nodes in a TTBasis. The parent and child getters should only be used to access local connectivity.
-
template<class
A>
classNodeAttribute¶ - #include <NodeAttribute.h>
Base class for creating objects at every node in a tree.
For every node in a TTBasis, there is one corresponding Object of class A. Inherit from this class for fast prototyping. Make sure that attributes_ gets cleared and filled in a constructor. Automatically provides iterators and bracket operators for Node objects.
-
class
NodeContent¶
-
class
NodeOperator¶
-
class
NodePosition¶ - #include <NodePosition.h>
This class manages the position information in a tree, mainly for I/O purposes.
-
class
NodeSOP: public vector<NodeProductOperator>¶ Public Functions
-
NodeSOP()¶
-
~NodeSOP()¶
-
void
push_back(const NodeProductOperator &M, const complex<double> coeff)¶
-
complex<double>
Coeff(size_t part) const¶
Private Members
-
vector<complex<double>>
coeffs¶
-
-
class
Parameter¶ a leaf.
-
class
Potential¶
-
class
PotentialOperator¶ - #include <PotentialOperator.h>
This Operator tells if a potential operator is present.
This Operator marks a potential operator in a MultiLeafOperator.
This operator tells that a potential acts is present. It also manages the number of degrees of freedom used in the PES and the state_ used in the PES.
The class is only relevant when working with quadrature methods on tensor trees.
-
class
SimultaneousDiagonalization¶ - #include <SimultaneousDiagonalization.h>
This class performs a simulatneous diagonalization.
Attempts to diagonalize a set of, potentially not commuting, matrices.
Protected Functions
-
template<typename
T>
classSOPMatrixTrees¶
-
template<typename
T>
classSOPVector¶ - #include <SOPVector.h>
Dressed up vector of SOPs.
-
template<typename
T>
classSparseMatrixTree: public SparseNodeAttribute<Matrix<T>>¶ Public Functions
Create HoleMatrixTree for a given tree-marker.
-
SparseMatrixTree(const MLO<T> &M, const Tree &tree, bool tail = true, bool inverse_tree = false)¶ Create HoleMatrixTree only for relevant nodes for a given Operator.
-
SparseMatrixTree(const vector<size_t> &targets, const Tree &tree, bool tail = true, bool inverse_tree = false)¶ Create HoleMatrixTree only for relevant nodes for a given Operator.
-
~SparseMatrixTree()¶
-
void
print(ostream &os = cout) const¶ I/O.
-
void
write(ostream &os) const¶
-
void
write(const string &filename) const¶
-
void
read(istream &is)¶
-
void
read(const string &filename)¶
-
template<class
A>
classSparseTreeStructuredObject¶ - #include <SparseNodeAttribute.h>
This is a central base class for objects that are sparsely tree-structured.
This is a sparse version of the TreeStructuredObject. It provides a sparse handling for objects that are only present at some nodes.
-
template<typename
T>
classSpectralDecompositionTree: public NodeAttribute<SpectralDecomposition<T>>¶ Public Functions
-
SpectralDecompositionTree()¶
-
SpectralDecompositionTree(const MatrixTree<T> &H, const Tree &tree)¶
-
~SpectralDecompositionTree()¶
-
void
calculate(const MatrixTree<T> &H, const Tree &tree)¶
-
MatrixTree<T>
invert(const Tree &tree, double eps = 1e-7)¶
-
-
class
SpinGroup: public LeafInterface¶
-
template<typename
T>
classSumOfProductsOperator¶ - #include <SumOfProductsOperator.h>
This class represents a sum-of-products operator.
SOPs are sums of MultiParticleOperators. The class provides basic arithmetics that allows to perform high-level operations on operators.
-
class
SymTensorTree¶ Public Functions
-
SymTensorTree()¶
-
SymTensorTree(mt19937 &gen, const TensorTreecd &Psi, const SparseTree &stree, const Tree &tree, bool delta_lowest)¶
-
SymTensorTree(const TensorTreecd &Psi, const Tree &tree)¶
-
~SymTensorTree()¶
-
void
initializeFromTT(const TensorTreecd &Psi, const Tree &tree)¶
-
TensorTreecd
bottomUpNormalized(const Tree &tree) const¶
-
-
template<typename
T>
classTensor - #include <Tensor.h>
This class represents a set of mathematical Tensors of n-th order.
The class allows to handle arithmentic operations on Tensors like matrix-products, etc. The set of tensors can be interpreted simultaneously as a set of vectors and thus operations are available like orthogonalizations, Dot-products, etc. Superindex mappings are used frequently throughout the class functions.
Usage: TensorDim dim_({2, 3, 4}, 1); Tensorcd A(dim_);
-
class
TensorDim - #include <TensorShape.h>
This class manages the dimensions of a Tensor.
This class holds the tensor dimensions n=(n_1,…,n_order). It is a decorated vector of (unsigned) integers (the dimensions). The class, furthermore, manages contracted dimensions for quick reshapings.

Usage: TensorDim tdim({2, 3, 4});
-
class
TensorDimTree¶
-
class
TensorOperatorTree: public TensorTree<complex<double>>¶ Public Functions
-
TensorOperatorTree()¶
-
~TensorOperatorTree()¶
-
void
setLeafOperator(const LeafMatrixcd &M, size_t operator_idx, const Node &node)¶
-
-
template<typename
T>
classTensorTree¶ - #include <TensorTree.h>
This class represents tensor trees.
Usage: TRBasis tree(12, 2, 2) // Create Tensor with Zero-entry tensors at every node TensorTreecd Psi(tree); Psi.Write(“filename.dat”); TensorTreecd Chi(“filename.dat”);
-
class
Tree¶ This class manages the tensor tree tree.
TensorTreeBasis (TTBasis) holds and manages the tree structure and holds tensor dimensions at every node. It provides iterators for swiping over every node in a tree. For a bottom-up swipe though the tree use the iterator; for a top-down swipe use a regular for loop and get Nodes via GetNode(i).
Usage: Tree tree(n_leaves dim_leaves, dim_nodes); // Create close to balanced tree for (const Node& node : tree) { // Do something - bottom-up swipe }
for (int i = tree.nNodes() - 1; i > 0; i) { const Node& node = tree.GetNode(i); // Do something - Top-child swipe } or for (auto it = tree.rbegin(); it != tree.rend(); it++) {
}
for (size_t l = 0; l < nLeaves; ++l) { const Leaf& leaf = GetLeaf(l); // Do something - for every leaf }
Public Functions
-
Tree()¶ Default constructor.
-
~Tree()¶ Default Destructor.
-
Tree(istream &is)¶ File constructor.
-
Tree(const string &filename)¶ Stream constructor.
-
void
read(istream &is)¶ read Basis from ASCII-file
I/O.
-
void
read(const string &filename)¶
-
void
write(ostream &os = cout) const¶ Write the tree to a stream in ASCII output.
-
void
info(ostream &os = cout) const¶ Print out tree information.
-
size_t
nTotalNodes() const¶ number of Nodes
-
size_t
nNodes() const¶ number of logical nodes
-
size_t
nLeaves() const¶ number of physical nodes
-
size_t
nStates() const¶ Number of states.
-
AbstractNode &
nextNode()¶ Return the reference to the next node. This routine is only used for initialization once. Please use the iterator, or mctdhNode(i) functions to address nodes!
-
void
reindexLeafModes(map<size_t, size_t> Map)¶ Assign new indices to leaves.
-
void
resetLeafModes()¶ Reset indices of leaves.
-
vector<reference_wrapper<Node>>::const_iterator
begin() const¶ Bottom-up iterator over all nodes in the mctdh-tree For top-up iteration examples refer to e.g. the density-matrix class.
-
vector<reference_wrapper<Node>>::const_iterator
end() const¶ Bottom-up const iterator over all nodes in the mctdh-tree For top-up iteration examples refer to e.g. the density-matrix class.
-
vector<reference_wrapper<Node>>::const_reverse_iterator
rbegin() const¶ Top-down iterator over all nodes in the mctdh-tree.
-
vector<reference_wrapper<Node>>::const_reverse_iterator
rend() const¶ Bottom-up const iterator over all nodes in the mctdh-tree.
-
bool
isWorking()¶ Check whether TensorTreeBasis is working correctly.
-
void
print(ostream &os = cout) const¶ Human readable output of the tree shape.
-
const LinearizedNodes &
nodes() const¶
Protected Attributes
-
LinearizedLeaves
linearizedLeaves_¶ Reference block to physical coordinates.
-
LinearizedNodes
linearizedNodes_¶ Reference block to mctdh-nodes.
-
-
class
TreeMarker¶ - #include <SparseTree.h>
This class marks a subset of active Nodes in a tree.
The class is used to mark Nodes when working with sparseness in tree structure. Typically, nodes are marked by providing a list of active leaves. In this case, the TreeMarker searches for the Nodes connectinb the leaves and saving the corresponding Node pointers in a list. co_address stores the mapping of the global Node address in TTBasis to the sparse address.
-
class
TreeNode¶ Public Functions
-
TreeNode()¶ Rule of five-section (constructors & destructors)
A simple tree-node class.
-
TreeNode(size_t n)¶
-
TreeNode(NodeContent con)¶
-
~TreeNode()¶
-
size_t
size() const¶
-
size_t
Address() const¶
-
void
SetAddress(size_t addr)¶
-
bool
IsLeaf() const¶
-
bool
IsBottom() const¶
-
bool
IsRoot() const¶
-
size_t
Layer() const¶
-
void
SetPhysicalNodes(size_t &next)¶
-
void
UpdateTensorDim()¶
-
void
MakeRoot()¶
-
void
GenInput(ostream &os = cout) const¶
Public Members
-
NodeContent
content_¶
-
-
class
TreeSOP: public NodeAttribute<NodeSOPlist>¶ - #include <TreeSOP.h>
A Tree-structured Sum-of-Product (SOP) Operator.
Public Functions
-
TreeSOP()¶
-
~TreeSOP()¶
-
LeafOperatorLib &
leafOperatorLib(const Node &node)¶
-
const LeafOperatorLib &
leafOperatorLib(const Node &node) const¶
-
void
push_back(const LeafOperatorLib &lib, const vector<string> &names)¶
-
vector<vector<string>>
LeafOperatorLibNames() const¶
-
bool
empty() const¶
Private Functions
-
-
template<typename
T>
classVector This class is a Vector represented in a basis.
The class is a simple version of a represented Vector. The class is suited for Quantum Dynamics simulations; it is not a generell purpose library class.
Public Functions
-
Vector()¶
-
Vector(size_t dim)¶ Constructors, Destructors, Asignment operators ~ Rule of Five ~
-
Vector(const string &filename)¶
-
Vector(istream &is)¶
-
Vector<T> &
operator=(const Vector &other)¶
-
Vector<T> &
operator=(Vector &&other)¶
-
~Vector()¶
-
void
write(const string &filename) const¶
-
void
write(ostream &os) const¶
-
void
read(const string &filename)¶
-
void
read(istream &is)¶
-
void
print(ostream &os = cout) const¶
-
T
operator()(size_t i) const¶
-
T &
operator()(size_t i)¶
-
T
operator[](size_t i) const¶
-
T &
operator[](size_t i)¶
-
Vector<T>
operator+=(Vector b)¶
-
Vector<T>
operator-=(Vector b)¶
-
Vector<T>
operator+(Vector b) const¶
-
Vector<T>
operator-(Vector b) const¶
-
T
operator*(Vector b) const¶
-
Vector<T> &
operator*=(T coeff)¶
-
Vector<T> &
operator/=(T coeff)¶
-
Vector<T>
operator*(T coeff) const¶
-
Vector<T>
operator/(T coeff) const¶
-
double
norm() const¶
-
void
zero()¶
-
size_t
dim() const¶
-
-
namespace
JacobiRotationFramework¶ This namespace contains functions for Jacobi rotations algorithms.
-
namespace
QM¶ Functions
-
constexpr complex<double> QM::im(0., 1.)
-
-
namespace
Random¶ Functions
-
template<typename
T, classLinearOperator>
Matrix<T>randomQ(const LinearOperator &A, size_t k_plus_p, mt19937 &gen)¶
-
template<typename
T, classLinearOperator>
SpectralDecomposition<T>diagonalizeRandom(const LinearOperator &A, size_t rank, size_t pow, mt19937 &gen)¶
-
template<typename
-
namespace
RandomMatrices¶ Functions
-
SpectralDecompositioncd
diagonalizeRandom(const Matrixcd &A, size_t rank, size_t p, mt19937 &gen)¶ randomized Factorizations
-
Vectord
probabilitiyDist(const Matrixcd &A)¶ entropy & cross entropy
Probability distribution framework Take absolute square of diagonals(A)
-
vector<Vectorcd>
buildKrylovSpace(Vectorcd x, const Matrixcd &A, size_t dim_subspace)¶ Krylov subspace stuff.
-
SpectralDecompositioncd
gueDiag(size_t dim, mt19937 &gen)¶
-
SpectralDecompositiond
goeDiag(size_t dim, mt19937 &gen)¶
-
SpectralDecompositioncd
-
namespace
RungeKutta4¶
-
namespace
SparseMatrixTreeFunctions¶ This class provides functions to build SparseMatrixTrees.
SparseMatrixTrees typically appear when representing operators in a tensortree basis. Similar to MatrixTree, a SparseMatrixTree can be build bottom-up or top-down in a tree. A SparsematrixTree is build bottom-up if an operator is represented and top-down if the representation of the operator is represented.
-
namespace
std¶ Functions
-
bool
is_number(const std::string &s)¶ Check whether string is a natural number https://stackoverflow.com/questions/4654636/how-to-determine-if-a-string-is-a-number-with-c
-
bool
-
namespace
Tensor_Extension¶ Functions
-
template<typename
T>
Matrix<T>weightedOuterProduct(const Tensor<T> &A, const Tensor<T> &B, const Matrix<T> &M)¶
-
template<typename
T>
voidweightedOuterProductAdd(Matrix<T> &M, const Tensor<T> &A, const Tensor<T> &B, const Matrix<T> &rho)¶
-
template<typename
T>
Tensor<T>doubleHoleContraction(const Tensor<T> &A, const Tensor<T> &B, size_t k1, size_t k2)¶
-
void
shiftIndices(vector<size_t> &Ibreak, const TensorShape &shift, bool beforeLast, bool last)¶ Direct Sum + Product.
-
TensorShape
directSum(const TensorShape &A, const TensorShape &B, bool before, bool last)¶
-
template<typename
T>
Tensor<T>directSum(const Tensor<T> &A, const Tensor<T> &B, bool before, bool last)¶
-
template<typename
T>
voidgenerateNormal(T *A, size_t n, mt19937 &gen)¶ Random number routines for tensors.
Randomly occupy Tensors and Matrices
-
template<typename
T>
Matrix<T>oldStateAveragedHoleProduct(const Tensor<T> &A, const Tensor<T> &B, size_t k)¶
-
template<typename
T, typenameU>
Tensor<T>oldMultAB(const Matrix<U> &A, const Tensor<T> &B, size_t mode)¶
-
TensorShape
DirectProduct(const TensorShape &A, const TensorShape &B)¶
-
size_t
mergeIndex(size_t I, size_t J, const TensorShape &A, const TensorShape &B, const TensorShape &C)¶
-
template<typename
-
namespace
TreeFactory¶ Functions
-
namespace
TreeFunctions¶ -
Functions
-
void
represent(SparseMatrixTreecd &mat, const MatrixTensorTree &Psi, const MLOcd &M, const Tree &tree)¶
-
void
contraction(SparseMatrixTreecd &hole, const MatrixTensorTree &Psi, const SparseMatrixTreecd &mat, const SparseTree &marker, const Tree &tree)¶
-
void
represent(SparseMatrixTreePaircd &mats, const MatrixTensorTree &Psi, const MLOcd &M, const Tree &tree)¶
-
void
represent(SparseMatrixTreePairscd &matset, const MatrixTensorTree &Psi, const SOPcd &H, const Tree &tree)¶
-
Tensorcd
symApplyDown(const Tensorcd &Phi, const SparseMatrixTreecd &hHole, const Node &node)¶
-
template<typename
T>
voiddotProductLocal(MatrixTree<T> &S, const Tensor<T> &Phi, Tensor<T> AChi, const Node &node)¶ General DotProduct for Tensor Trees.
-
template<typename
T>
voiddotProduct(MatrixTree<T> &S, const TensorTree<T> &Psi, const TensorTree<T> &Chi, const Tree &tree)¶
-
template<typename
T>
MatrixTree<T>dotProduct(const TensorTree<T> &Psi, const TensorTree<T> &Chi, const Tree &tree)¶
-
template<typename
T>
voidcontractionLocal(MatrixTree<T> &Rho, const Tensor<T> &Bra, Tensor<T> Ket, const Node &node, const MatrixTree<T> *S_opt)¶ General Contraction for Tensor Trees.
-
template<typename
T>
voidcontraction(MatrixTree<T> &Rho, const TensorTree<T> &Psi, const TensorTree<T> &Chi, const MatrixTree<T> &S, const Tree &tree)¶
-
template<typename
T>
MatrixTree<T>contraction(const TensorTree<T> &Psi, const TensorTree<T> &Chi, const MatrixTree<T> &S, const Tree &tree)¶
-
template<typename
T>
voidcontraction(MatrixTree<T> &Rho, const TensorTree<T> &Psi, const Tree &tree, bool orthogonal)¶
-
template<typename
T>
MatrixTree<T>contraction(const TensorTree<T> &Psi, const Tree &tree, bool orthogonal)¶
-
template<typename
T>
voidcontraction(MatrixTree<T> &Rho, const TensorTree<T> &Psi, const TensorTree<T> &Chi, const Tree &tree, const MatrixTree<T> *S_opt = nullptr)¶
-
template<typename
T>
Matrix<T>representUpper(const SparseMatrixTree<T> &hmat, const Tensor<T> &Bra, const Tensor<T> &Ket, const Node &node)¶ Build SparseMatrixTree Bottom-parent (Forward)
-
template<typename
T>
voidrepresentLayer(SparseMatrixTree<T> &mats, const Tensor<T> &Bra, const Tensor<T> &Ket, const MLO<T> &M, const Node &node)¶
-
template<typename
T>
voidrepresent(SparseMatrixTree<T> &hmat, const MLO<T> &M, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
SparseMatrixTree<T>represent(const MLO<T> &M, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
voidrepresent(SparseMatrixTree<T> &hmat, const MLO<T> &M, const TensorTree<T> &Psi, const Tree &tree)¶
-
template<typename
T>
SparseMatrixTree<T>represent(const MLO<T> &M, const TensorTree<T> &Psi, const Tree &tree)¶
-
template<typename
T>
voidrepresent(vector<SparseMatrixTree<T>> &Mats, const SOP<T> &sop, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
voidrepresent(SOPMatrixTrees<T> &mats, const SOP<T> &sop, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
SparseMatrixTree<T>contraction(const TensorTree<T> &Psi, const SparseMatrixTree<T> &mats, const Tree &tree)¶ Build SparseMatrixTree Top-child (Backward)
Build SparseMatrixTree Top-down (Backward)
-
template<typename
T>
voidcontraction(SparseMatrixTree<T> &holes, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const SparseMatrixTree<T> &mats, const Tree &tree)¶
-
template<typename
T>
voidcontraction(SparseMatrixTree<T> &holes, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const SparseMatrixTree<T> &mats, const MatrixTree<T> &rho, const SparseTree &marker, const Tree &tree)¶
-
template<typename
T>
voidcontraction(SparseMatrixTree<T> &holes, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const SparseMatrixTree<T> &mats, const MatrixTree<T> &rho, const Tree &tree)¶
-
template<typename
T>
voidcontraction(SparseMatrixTree<T> &holes, const TensorTree<T> &Psi, const SparseMatrixTree<T> &mats, const Tree &tree)¶
-
template<typename
T>
voidcontraction(SparseMatrixTrees<T> &holes, const SparseMatrixTrees<T> &mat, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
voidcontraction(SparseMatrixTrees<T> &holes, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const SparseMatrixTrees<T> &mats, const MatrixTree<T> &rho, const Tree &tree)¶
-
template<typename
T>
voidcontraction(MatrixTree<T> &Rho, const TensorTree<T> &Psi, const SparseTree &stree, bool orthogonal = true)¶
-
template<typename
T>
Tensor<T>apply(const SparseMatrixTree<T> &mat, const Tensor<T> &Phi, const MLO<T> &M, const Node &node)¶ apply MatrixTree
apply SparseMatrixTree to tensor tree
apply factor matrices locally
-
template<typename
T>
Tensor<T>applyUpper(const SparseMatrixTree<T> &mat, Tensor<T> Phi, const Node &node)¶
-
template<typename
T>
Tensor<T>applyHole(const SparseMatrixTree<T> &holes, Tensor<T> Phi, const Node &hole_node)¶
-
template<typename
T>
Matrix<T>RepresentBottom(const Tensor<T> &Bra, const Tensor<T> &Ket, const MLO<T> &M, const Node &node, const Leaf &leaf)¶
-
template<typename
T>
voidrepresent(SparseMatrixTrees<T> &Mats, const SOP<T> &sop, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
template<typename
T>
voidContraction(SparseMatrixTree<T> &holes, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const SparseMatrixTree<T> &mats, const SparseTree &marker, const Tree &tree)¶
-
template<typename
T>
voidcontraction(vector<SparseMatrixTree<T>> &holes, const SparseMatrixTrees<T> &Mats, const TensorTree<T> &Bra, const TensorTree<T> &Ket, const Tree &tree)¶
-
void
symContractionLocal(SparseMatrixTreecd &hole, const Tensorcd &Bra, const Tensorcd &Ket, const SparseMatrixTreecd &mat, const Node &hchild)¶
-
void
symContraction(SparseMatrixTreecd &hole, const TensorTreecd &Bra, const TensorTreecd &Ket, const SparseMatrixTreecd &mat, const Tree &tree)¶
-
void
symRepresent(SymMatrixTree &mat, const SymTensorTree &Bra, const SymTensorTree &Ket, const MLOcd &M, const Tree &tree)¶
-
void
symRepresent(SymMatrixTrees &mats, const SymTensorTree &Bra, const SymTensorTree &Ket, const SOPcd &S, const Tree &tree)¶
-
Tensorcd
symApply(const Tensorcd &Ket, const SymMatrixTree &mats, const MLOcd &M, const Node &node)¶
-
void
symApply(SymTensorTree &HPsi, const SymTensorTree &Psi, const SymMatrixTrees &hmats, const SOPcd &H, const Tree &tree)¶
-
MatrixTreecd
symDotProduct(const SymTensorTree &Bra, const SymTensorTree &Ket, const Tree &tree)¶
-
template<typename
T>
voidadjust(TensorTree<T> &Psi, Tree &tree, const SpectralDecompositionTree<T> &X, double eps)¶ Compress the TensorTree for a given accuracy.
-
template<typename
T>
voidadjust(TensorTree<T> &Psi, const Tree &newtree)¶
-
template<typename
T>
voidsum(TensorTree<T> &Psi, Tree &tree, const TensorTree<T> &Chi, bool sharedLeafs = true, bool sumToplayer = true)¶ Perform a (generalized) sum of tensor trees. By default, a regular sum will be performed.
-
template<typename
T>
voidproduct(TensorTree<T> &Psi, Tree &tree, const TensorTree<T> &Chi)¶ Perform a product of tensor trees.
-
template<typename
T>
voidAdjustNode(Tensor<T> &Phi, Tensor<T> &A, Node &node, Node &parent, const SpectralDecomposition<T> &x, double eps)¶
-
template<typename
T>
TensorTree<T>densityWeighting(TensorTree<T> Psi, const Tree &tree)¶
-
template<typename
T>
TensorTree<T>contractionNormalization(TensorTree<T> Psi, const Tree &tree, bool orthogonal = true)¶
-
template<typename
T>
voidtransform(TensorTree<T> &Chi, const TensorTree<T> &Psi, const MatrixTree<T> &M, const MatrixTree<T> &M_inv, const Tree &tree)¶
-
template<typename
T>
TensorTree<T>DotProductNormalization(TensorTree<T> Psi, const Tree &tree)¶
-
template<typename
T>
TensorTree<T>DirectionalInvarientRepresentation(TensorTree<T> Psi, const Tree &tree, bool orthogonal)¶
-
template<typename
T>
voidTransformEdgeDown(TensorTree<T> &Chi, const TensorTree<T> &Psi, const Matrix<T> &M, const Edge &e)¶
-
template<typename
T>
voidTransformEdgeUp(TensorTree<T> &Chi, const TensorTree<T> &Psi, const Matrix<T> &Mi, const Edge &e)¶
-
template<typename
T>
voidTransformEdge(TensorTree<T> &Chi, const TensorTree<T> &Psi, const Matrix<T> &M, const Matrix<T> &M_inv, const Edge &e)¶
-
void
directSum(TensorOperatorTree &H, Tree &tree, const TensorOperatorTree &G)¶
-
MatrixListTree
represent(const TensorTreecd &Psi, const TensorOperatorTree &H, const Tree &tree)¶
-
MatrixListTree
contraction(const TensorTreecd &Psi, const TensorOperatorTree &H, MatrixListTree &Hrep, const Tree &tree)¶
-
void
ContractionLocal(SparseMatrixTreecd &hole, const Tensorcd &Phi, const SparseMatrixTreecd &mat, const Node &hchild)¶
-
template void TreeFunctions::dotProductLocal(MatrixTree< cd > & S, const Tensor < cd > & Bra, Tensor < cd > Ket, const Node & node)
-
template void TreeFunctions::dotProduct(MatrixTree< cd > & S, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template MatrixTree<cd> TreeFunctions::dotProduct(const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template void TreeFunctions::contractionLocal(MatrixTree< cd > & Rho, const Tensor < cd > & Bra, Tensor < cd > Ket, const Node & node, const MatrixTree< cd > * S)
-
template void TreeFunctions::contraction(MatrixTree< cd > & Rho, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree, const MatrixTree< cd > * S)
-
template void TreeFunctions::contraction(MatrixTree< cd > & Rho, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const MatrixTree< cd > & S, const Tree & tree)
-
template void TreeFunctions::contraction(MatrixTree< cd > & Rho, const TensorTree < cd > & Psi, const Tree & tree, bool orthogonal)
-
template MatrixTree<cd> TreeFunctions::contraction(const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const MatrixTree< cd > & S, const Tree & tree)
-
template MatrixTree<cd> TreeFunctions::contraction(const TensorTree < cd > & Psi, const Tree & tree, bool orthogonal)
-
template void TreeFunctions::dotProductLocal< d >(MatrixTree< d > & S, const Tensor < d > & Bra, Tensor < d > Ket, const Node & node)
-
template void TreeFunctions::dotProduct< d >(MatrixTree< d > & S, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template MatrixTree<d> TreeFunctions::dotProduct(const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template void TreeFunctions::contractionLocal(MatrixTree< d > & Rho, const Tensor < d > & Bra, Tensor < d > Ket, const Node & node, const MatrixTree< d > * S)
-
template void TreeFunctions::contraction(MatrixTree< d > & Rho, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree, const MatrixTree< d > * S)
-
template void TreeFunctions::contraction(MatrixTree< d > & Rho, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const MatrixTree< d > & S, const Tree & tree)
-
template void TreeFunctions::contraction(MatrixTree< d > & Rho, const TensorTree < d > & Psi, const Tree & tree, bool orthogonal)
-
template MatrixTree<d> TreeFunctions::contraction(const TensorTree < d > & Bra, const TensorTree < d > & Ket, const MatrixTree< d > & S, const Tree & tree)
-
template MatrixTree<d> TreeFunctions::contraction(const TensorTree < d > & Psi, const Tree & tree, bool orthogonal)
-
template void TreeFunctions::represent(SparseMatrixTree < cd > & hmat, const MLO < cd > & M, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template void TreeFunctions::represent(SparseMatrixTree < cd > & hmat, const MLO < cd > & M, const TensorTree < cd > & Psi, const Tree & tree)
-
template SparseMatrixTree<cd> TreeFunctions::represent(const MLO < cd > & M, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template SparseMatrixTree<cd> TreeFunctions::represent(const MLO < cd > & M, const TensorTree < cd > & Psi, const Tree & tree)
-
template void TreeFunctions::represent< cd >(SparseMatrixTrees< cd > & Mats, const SOP < cd > & sop, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template void TreeFunctions::represent(SOPMatrixTrees < cd > & mats, const SOP < cd > & sop, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template void TreeFunctions::representLayer(SparseMatrixTree < cd > & mats, const Tensor < cd > & Bra, const Tensor < cd > & Ket, const MLO < cd > & M, const Node & node)
-
template SparseMatrixTrees<cd> TreeFunctions::represent(const SOP < cd > & sop, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, shared_ptr< SparseTree > & stree, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTree < cd > & holes, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const SparseMatrixTree < cd > & mats, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTree < cd > & holes, const TensorTree < cd > & Psi, const SparseMatrixTree < cd > & mats, const Tree & tree)
-
template void TreeFunctions::contraction(vector< SparseMatrixTree < cd >> & holes, const SparseMatrixTrees< cd > & Mats, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTree < cd > & holes, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const SparseMatrixTree < cd > & mats, const MatrixTree< cd > & rho, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTrees< cd > & holes, const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const SparseMatrixTrees< cd > & Mats, const MatrixTree< cd > & rho, const Tree & tree)
-
template SparseMatrixTree<cd> TreeFunctions::contraction(const TensorTree < cd > & Bra, const SparseMatrixTree < cd > & mats, const Tree & tree)
-
template vector<SparseMatrixTree<cd> > TreeFunctions::contraction(const TensorTree < cd > & Bra, const TensorTree < cd > & Ket, const vector< SparseMatrixTree < cd >> & mats, const MatrixTree< cd > & rho, shared_ptr< SparseTree > & stree, const Tree & tree)
-
template void TreeFunctions::contraction< cd >(MatrixTree< cd > & Rho, const TensorTree < cd > & Psi, const SparseTree & stree, bool orthogonal)
-
template Tensor<cd> TreeFunctions::apply(const SparseMatrixTree < cd > & mat, const Tensor < cd > & Phi, const MLO < cd > & M, const Node & node)
-
template Tensor<cd> TreeFunctions::applyUpper(const SparseMatrixTree < cd > & mat, Tensor < cd > Phi, const Node & node)
-
template Tensor<cd> TreeFunctions::applyHole(const SparseMatrixTree < cd > & holes, Tensor < cd > Phi, const Node & hole_node)
-
template void TreeFunctions::represent(SparseMatrixTree < d > & hmat, const MLO < d > & M, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template void TreeFunctions::represent(SparseMatrixTree < d > & hmat, const MLO < d > & M, const TensorTree < d > & Psi, const Tree & tree)
-
template SparseMatrixTree<d> TreeFunctions::represent(const MLO < d > & M, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template SparseMatrixTree<d> TreeFunctions::represent(const MLO < d > & M, const TensorTree < d > & Psi, const Tree & tree)
-
template void TreeFunctions::represent< d >(SparseMatrixTrees< d > & Mats, const SOP < d > & sop, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template void TreeFunctions::represent(SOPMatrixTrees < d > & mats, const SOP < d > & sop, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template void TreeFunctions::representLayer(SparseMatrixTree < d > & mats, const Tensor < d > & Bra, const Tensor < d > & Ket, const MLO < d > & M, const Node & node)
-
template SparseMatrixTrees<d> TreeFunctions::represent(const SOP < d > & sop, const TensorTree < d > & Bra, const TensorTree < d > & Ket, shared_ptr< SparseTree > & stree, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTree < d > & holes, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const SparseMatrixTree < d > & mats, const Tree & tree)
-
template void TreeFunctions::contraction(SparseMatrixTree < d > & holes, const TensorTree < d > & Bra, const SparseMatrixTree < d > & mats, const Tree & tree)
-
template SparseMatrixTree<d> TreeFunctions::contraction(const TensorTree < d > & Bra, const SparseMatrixTree < d > & mats, const Tree & tree)
-
template void TreeFunctions::contraction(vector< SparseMatrixTree < d >> & holes, const SparseMatrixTrees< d > & Mats, const TensorTree < d > & Bra, const TensorTree < d > & Ket, const Tree & tree)
-
template vector<SparseMatrixTree<d> > TreeFunctions::contraction(const TensorTree < d > & Bra, const TensorTree < d > & Ket, const vector< SparseMatrixTree < d >> & mats, const MatrixTree< d > & rho, shared_ptr< SparseTree > & stree, const Tree & tree)
-
template void TreeFunctions::contraction< d >(MatrixTree< d > & Rho, const TensorTree < d > & Psi, const SparseTree & stree, bool orthogonal)
-
template Tensor<d> TreeFunctions::apply(const SparseMatrixTree < d > & mat, const Tensor < d > & Phi, const MLO < d > & M, const Node & node)
-
template Tensor<d> TreeFunctions::applyUpper(const SparseMatrixTree < d > & mat, Tensor < d > Phi, const Node & node)
-
template Tensor<d> TreeFunctions::applyHole(const SparseMatrixTree < d > & holes, Tensor < d > Phi, const Node & hole_node)
-
Tensorcd
symApplyDownNew(const Tensorcd &Phi, const SparseMatrixTreecd &hHole, const Node &node)¶ apply Operators
-
void
symApply(Tensorcd &HPhi, const Tensorcd &Phi, const SymMatrixTrees &hmats, const SOPcd &H, const Node &node)¶
-
void
symContraction(MatrixTreecd &rho, const SymTensorTree &Bra, const SymTensorTree &Ket, const MatrixTreecd &S, const Tree &tree)¶
-
Matrixcd
DotProduct(const Tensorcd &Bra, Tensorcd Ket, const MatrixTreecd &s_up, const MatrixTreecd &s_down, const Node &node)¶
-
MatrixTreecd
DotProduct(const TensorTreecd &wBra, const TensorTreecd &wKet, const MatrixTreecd &s_up, const MatrixTreecd &s_down, const Tree &tree)¶
-
template void TreeFunctions::transform(TensorTree < cd > & Chi, const TensorTree < cd > & Psi, const MatrixTree< cd > & M, const MatrixTree< cd > & M_inv, const Tree & tree)
-
template void TreeFunctions::transform(TensorTree < d > & Chi, const TensorTree < d > & Psi, const MatrixTree< d > & M, const MatrixTree< d > & M_inv, const Tree & tree)
-
template TensorTree<cd> TreeFunctions::contractionNormalization(TensorTree < cd > Psi, const Tree & tree, bool orthogonal)
-
template TensorTree<d> TreeFunctions::contractionNormalization(TensorTree < d > Psi, const Tree & tree, bool orthogonal)
-
template TensorTree<cd> TreeFunctions::DotProductNormalization(TensorTree < cd > Psi, const Tree & tree)
-
template TensorTree<d> TreeFunctions::DotProductNormalization(TensorTree < d > Psi, const Tree & tree)
-
MatrixList
RepresentLower(const Tensorcd &Phi, const Tensorcd &B, const MatrixListTree &H, const Node &node)¶
-
MatrixList
RepresentUpper(const Tensorcd &Phi, const Tensorcd &B, const MatrixListTree &H, const Node &node)¶
-
MatrixList
Represent(const Tensorcd &Phi, const Tensorcd &B, const MatrixListTree &H, const Node &node)¶
-
MatrixList
ContractionUpper(const Tensorcd &Phi, const Tensorcd &B, const MatrixListTree &Hrep, const MatrixListTree &Hmean, const Node &child)¶
-
void
-
namespace
TreeIO¶ Functions
-
void
status(size_t it, size_t max, size_t freq, size_t length)¶
-
void
statusTime(size_t it, size_t max, size_t freq, size_t length, chrono::high_resolution_clock::time_point &t1, chrono::high_resolution_clock::time_point &t2, chrono::microseconds &time)¶
-
void
output(const TensorTreecd &Psi, const Tree &tree, ostream &os = cout)¶
-
template<typename
T>
voidoccupancy(const TensorTree<T> &Psi, const Tree &tree, ostream &os = cout)¶
-
template<typename
T>
voidleafs(const TensorTree<T> &Psi, const MatrixTree<T> &Rho, const Tree &tree, ostream &os = cout)¶
-
template<typename
T>
Matrix<T>leafDensity(const TensorTree<T> &Psi, const MatrixTree<T> &Rho, const Leaf &leaf, const Tree &tree)¶
-
template<typename
T>
Matrix<T>leafDensity(const TensorTree<T> &Psi, const SparseMatrixTree<T> &Rho, const Leaf &leaf, const Tree &tree)¶
-
template<typename
T>
voidentropyMap(const TensorTree<T> &Psi, const Tree &tree)¶
-
void
expectationValues(const TensorTreecd &Psi, const MatrixTreecd &rho, const Tree &tree, ostream &os)¶
-
void
-
namespace
WeightedSimultaneousDiagonalization¶ Perform matrix-weighted Joint Diagonalization.
Functions
-
void
calculate(vector<Matrixcd> &Xs, vector<Matrixcd> XXs, Matrixcd &W, Matrixcd &trafo, double eps)¶
-
void
weightedJacobiRotations(vector<Matrixcd> &Xs, vector<Matrixcd> &XXs, Matrixcd &W, Matrixcd &trafo)¶
-
int
calculateWeightedAngles(complex<double> &c, complex<double> &s, size_t i, size_t j, const vector<Matrixcd> &Xs, const vector<Matrixcd> &XXs, const Matrixcd &W)¶
-
double
weightedJacobiLoc(const vector<Matrixcd> &Xs, const vector<Matrixcd> &XXs, const Matrixcd &W, size_t p, size_t q, complex<double> c, complex<double> s)¶
-
void
weightedJacobiDerivatives(Vectord &grad, Matrixd &preHessian, complex<double> s_in, const vector<Matrixcd> &Xs, const vector<Matrixcd> &XXs, const Matrixcd &W, size_t p, size_t q, double delta)¶
-
void
-
file
Matrix.h - #include “stdafx.h”#include <Eigen/Dense>#include “Vector.h”
Typedefs
-
typedef Matrix<complex<double>>
Matrixcd General typedef for complex matrices.
-
typedef Matrix<double>
Matrixd General typedef for real matrices.
-
using
SpectralDecomposition= pair<Matrix<T>, Vectord> General typedef for Matrix<T>, Vectord pairs.
-
typedef SpectralDecomposition<complex<double>>
SpectralDecompositioncd Specialization of SpectralDecomposition of Matrixcd.
-
typedef SpectralDecomposition<double>
SpectralDecompositiond Specialization of SpectralDecomposition of Matrixd.
Functions
-
template<typename
T>
Matrix<complex<double>>multATB(const Matrix<complex<double>> &A, const Matrix<T> &B)¶
-
template<typename
T>
Vector<T>operator*(const Matrix<T> &A, const Vector<T> &v)¶ operator overloadings
-
SpectralDecompositioncd
diagonalize(const Matrix<complex<double>> &A)¶ Diagonalization framework.
Diagonalize a complex double matrix
- Return
Decomposed matrix
- Parameters
A: Matrix to be diagonalized
-
void
diagonalize(SpectralDecompositioncd &S, const Matrix<complex<double>> &A)¶ Diagonalize a complex double martrix.
- Parameters
S: Decomposed matrix (call-by-reference)A: Matrix to be diagonalized
-
SpectralDecompositiond
diagonalize(const Matrix<double> &A)¶ Diagonalize a double matrix.
- Return
Decomposed matrix
- Parameters
A: Matrix to be diagonalized
-
void
diagonalize(SpectralDecompositiond &S, const Matrix<double> &A)¶ Diagonalize a double martrix.
- Parameters
S: Decomposed matrix (call-by-reference)A: Matrix to be diagonalized
-
template<typename
T>
pair<Matrix<T>, Vectord>diagonalize(const Matrix<T> &A)¶ Diagonalization routine for remaining types (Eigenvector always double; not generally applicable)
- Return
- Template Parameters
T:
- Parameters
A:
-
template<typename
T>
Matrix<T>toMatrix(const SpectralDecomposition<T> &X)¶ Construct matrix from its decomposition.
- Return
re-constructed matrix
- Parameters
X: Decomposed matrix
-
template<typename
T>
SpectralDecomposition<T>inverse(SpectralDecomposition<T> X, double eps = 1e-7)¶
-
template<typename
T>
SpectralDecomposition<T>sqrt(SpectralDecomposition<T> X)¶ Calculate squareroot of matrix (decomposed)
- Return
squareroot of matrix (decomposed)
- Parameters
X: Decomposed matrix
-
template<typename T>template Matrix< doub > identityMatrix(size_t dim) Create an identity matrix.
- Return
identity-matrix
- Template Parameters
T: Type of identity matrix
- Parameters
dim: dimension
-
typedef Matrix<complex<double>>
-
file
Matrix_Extension.h - #include “Matrix.h”
-
file
Matrix_Extension_Implementation.h - #include “Matrix_Extension.h”
-
file
Matrix_Implementation.h - #include “Matrix.h”
Functions
-
void
tmatvec_(double *C, double *B, double *mat, int *a, int *b, int *c, int *add)¶
-
void
trmatvec_(double *C, double *B, double *mat, int *a, int *b, int *c, int *add)¶
-
template<typename
T>
Matrix<complex<double>>multATB(const Matrix<complex<double>> &A, const Matrix<T> &B)
-
template<typename
T, typenameU>
Vector<U>operator*(const Matrix<T> &A, const Vector<U> &v)¶ operator overloadings
-
template<typename
T>
voiddiagonalize(Matrix<T> &trafo, Vector<double> &ev, const Matrix<T> &B)¶ Diagonalization framework.
-
SpectralDecompositioncd
diagonalize(const Matrix<complex<double>> &A) Diagonalization framework.
Diagonalize a complex double matrix
- Return
Decomposed matrix
- Parameters
A: Matrix to be diagonalized
-
void
diagonalize(SpectralDecompositioncd &S, const Matrix<complex<double>> &A) Diagonalize a complex double martrix.
- Parameters
S: Decomposed matrix (call-by-reference)A: Matrix to be diagonalized
-
SpectralDecompositiond
diagonalize(const Matrix<double> &A) Diagonalize a double matrix.
- Return
Decomposed matrix
- Parameters
A: Matrix to be diagonalized
-
void
diagonalize(SpectralDecompositiond &S, const Matrix<double> &A) Diagonalize a double martrix.
- Parameters
S: Decomposed matrix (call-by-reference)A: Matrix to be diagonalized
-
template<typename
T>
Matrix<T>toMatrix(const SpectralDecomposition<T> &X) Construct matrix from its decomposition.
- Return
re-constructed matrix
- Parameters
X: Decomposed matrix
-
template<typename
T>
SpectralDecomposition<T>sqrt(SpectralDecomposition<T> X) Calculate squareroot of matrix (decomposed)
- Return
squareroot of matrix (decomposed)
- Parameters
X: Decomposed matrix
-
template<typename
T>
SpectralDecomposition<T>inverse(SpectralDecomposition<T> X, double eps)
-
template<typename
T>
Matrix<T>identityMatrix(size_t dim)¶ Create an identity matrix.
Convenience & Management.
- Return
identity-matrix
- Template Parameters
T: Type of identity matrix
- Parameters
dim: dimension
-
Matrixcd
identityMatrixcd(size_t dim)
-
Matrixd
identityMatrixd(size_t dim)
-
Eigen::MatrixXd
toEigen(Matrixd A)
-
Eigen::MatrixXcd
toEigen(Matrixcd A)
-
Matrixd
toQutree(const Eigen::MatrixXd &A)
-
Matrixcd
toQutree(const Eigen::MatrixXcd &A)
-
void
-
file
stdafx.h - #include <stdio.h>#include <vector>#include <list>#include <assert.h>#include <iostream>#include <fstream>#include <complex>#include <memory>
Functions
-
double
conj(double x)¶
-
double
-
file
Tensor.h - #include “TensorShape.h”#include “Core/Matrix.h”
Functions
-
template<typename
T>
voidcontraction(Matrix<T> &S, const Tensor<T> &A, const Tensor<T> &B, size_t before, size_t active1, size_t active2, size_t behind)¶
-
template<typename
T>
voidcontraction(Matrix<T> &S, const Tensor<T> &A, const Tensor<T> &B, size_t k, bool zero = true)¶
-
template<typename
T, typenameU>
voidmatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero = true)¶
-
template<typename
T, typenameU>
voidtMatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero = true)¶
-
template<typename
T, typenameU>
voidmatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t mode, bool zero = true)¶
-
template<typename
T, typenameU>
Tensor<T>matrixTensor(const Matrix<U> &A, const Tensor<T> &B, size_t mode)¶
-
template<typename
T, typenameU>
voidtensorMatrix(Tensor<T> &C, const Tensor<T> &B, const Matrix<U> &A, size_t mode, bool zero = true)¶
-
template<typename
T, typenameU>
Tensor<T>tensorMatrix(const Tensor<T> &B, const Matrix<U> &A, size_t mode)¶
-
template<typename
T, typenameU>
Tensor<T>multATB(const Matrix<U> &A, const Tensor<T> &B, size_t mode)¶
-
template<typename
T, typenameU>
voidmultStateAB(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, bool zero = true)¶
-
template<typename
T, typenameU>
voidmultStateArTB(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B)¶
-
template<typename
T>
Tensor<complex<double>>project(const Tensor<complex<double>> &A, const Tensor<T> &B)¶
-
template<typename
T>
Tensor<T>projectOut(const Tensor<T> &A, const Tensor<T> &B)¶ Project B out of A, i.e. Anew = (1-P_B)*A.
This routine takes a Tensor A and makes it orthogonal to B. It can be written as A_new = (1 - P_B) A, where P_B is the projector onto B.
-
template<typename
-
file
Tensor_Extension.h - #include “Tensor.h”#include <random>
-
file
Tensor_Extension_Implementation.h - #include “Tensor_Extension.h”
-
file
Tensor_Implementation.h - #include “Tensor.h”#include “TensorShape.h”#include “stdafx.h”
Functions
-
void
matvec_(double *C, double *B, double *mat, int *a, int *b, int *c, int *add)¶
-
void
ctmatvec_(double *C, double *B, double *mat, int *a, int *b, int *c, int *add)¶
-
void
rmatvec_(double *C, double *B, double *mat, int *a, int *b, int *c, int *add)¶
-
void
rhomat_(double *Bra, double *Ket, double *M, int *a, int *b, int *c)¶
-
template<typename
T>
voidcontraction(Matrix<T> &S, const Tensor<T> &A, const Tensor<T> &B, size_t before, size_t active1, size_t active2, size_t behind)
-
template<typename
T>
voidcontraction(Matrix<T> &S, const Tensor<T> &A, const Tensor<T> &B, size_t k, bool zero)
-
template<typename
T, typenameU>
voidmatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero)
-
template<typename
T, typenameU>
voidtMatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero)
-
template<typename
T, typenameU>
voidmatrixTensor(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, size_t mode, bool zero)
-
template<typename
T, typenameU>
Tensor<T>matrixTensor(const Matrix<U> &A, const Tensor<T> &B, size_t mode)
-
template<typename
T, typenameU>
voidtensorMatrix(Tensor<T> &C, const Tensor<T> &B, const Matrix<U> &A, size_t mode, bool zero)
-
template<typename
T, typenameU>
Tensor<T>tensorMatrix(const Tensor<T> &B, const Matrix<U> &A, size_t mode)
-
template<typename
T, typenameU>
Tensor<T>multATB(const Matrix<U> &A, const Tensor<T> &B, size_t mode)
-
template<typename
T, typenameU>
voidmultStateAB(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B, bool zero)
-
template<typename
T, typenameU>
voidmultStateArTB(Tensor<T> &C, const Matrix<U> &A, const Tensor<T> &B)
-
template<typename
T>
Tensor<complex<double>>project(const Tensor<complex<double>> &A, const Tensor<T> &B)
-
template<typename
T>
Tensor<T>projectOut(const Tensor<T> &A, const Tensor<T> &B) Project B out of A, i.e. Anew = (1-P_B)*A.
This routine takes a Tensor A and makes it orthogonal to B. It can be written as A_new = (1 - P_B) A, where P_B is the projector onto B.
-
template<typename
T>
Tensor<complex<double>>projectOrthogonal(const Tensor<complex<double>> &A, const Tensor<T> &B)
-
template<typename
T>
Tensor<T>toTensor(const Matrix<T> &B, const TensorShape &shape, size_t mode)
-
void
-
file
TensorShape.h - #include “stdafx.h”
Functions
-
TensorShape()¶
-
TensorShape(const initializer_list<size_t> &dims)¶
-
TensorShape(const vector<size_t> &dim)¶
-
TensorShape(istream &is)¶
-
TensorShape(const string &file)¶
-
~TensorShape()¶
-
void
initialize(const vector<size_t> &dim)¶
-
void
write(ostream &os) const¶
-
void
write(const string &filename) const¶
-
void
readDim(istream &is)¶
-
size_t
order() const¶
-
size_t
lastIdx() const¶
-
size_t
totalDimension() const¶
-
size_t
lastBefore() const¶
-
size_t
lastDimension() const¶
-
void
setDimension(size_t act, size_t k)¶
-
vector<size_t>
dimensions() const¶
-
void
print(ostream &os = cout) const¶
-
size_t
before(size_t k) const¶
-
size_t
after(size_t k) const¶
-
vector<size_t>
indexMapping(size_t I, const TensorShape &shape)¶
-
size_t
indexMapping(const vector<size_t> &idxs, const TensorShape &shape)¶
-
void
indexMapping(vector<size_t> &idxs, size_t I, const TensorShape &shape)¶
-
TensorShape
replaceDimension(TensorShape shape, size_t target, size_t new_dimension)¶
-
ostream &
operator<<(ostream &os, const TensorShape &tdim)¶
-
istream &
operator>>(istream &is, TensorShape &tdim)¶
-
bool
operator==(const TensorShape &tdima, const TensorShape &tdimb)¶
-
bool
operator!=(const TensorShape &tdima, const TensorShape &tdimb)¶
-
-
file
Vector.h - #include “stdafx.h”#include “Eigen/Dense”
Functions
-
file
Vector_Implementation.h - #include “Vector.h”
-
file
QuTree.h - #include “Core/Matrix.h”#include “Core/Matrix_Extension.h”#include “Core/Matrix_Extension_Implementation.h”#include “Core/Matrix_Implementation.h”#include “Core/stdafx.h”#include “Core/Tensor.h”#include “Core/Tensor_Extension.h”#include “Core/Tensor_Extension_Implementation.h”#include “Core/Tensor_Implementation.h”#include “Core/TensorShape.h”#include “Core/Vector.h”#include “Core/Vector_Implementation.h”#include “TreeClasses/EdgeAttribute.h”#include “TreeClasses/MatrixTensorTree.h”#include “TreeClasses/MatrixTensorTreeFunctions.h”#include “TreeClasses/MatrixTree.h”#include “TreeClasses/MatrixTreeFunctions.h”#include “TreeClasses/MatrixTreeFunctions_Implementation.h”#include “TreeClasses/NodeAttribute.h”#include “TreeClasses/SOPMatrixTrees.h”#include “TreeClasses/SparseMatrixTree.h”#include “TreeClasses/SparseMatrixTreeFunctions.h”#include “TreeClasses/SparseMatrixTreeFunctions_Implementation.h”#include “TreeClasses/SparseNodeAttribute.h”#include “TreeClasses/SparseTree.h”#include “TreeClasses/SpectralDecompositionTree.h”#include “TreeClasses/SymTensorTree.h”#include “TreeClasses/TensorTree.h”#include “TreeClasses/TensorTreeFunctions_Implementation.h”#include “TreeClasses/TreeIO.h”#include “TreeClasses/TreeTransformation.h”#include “TreeClasses/TreeTransformation_Implementation.h”#include “TreeOperators/CoordinateTransformation.h”#include “TreeOperators/LeafFunction.h”#include “TreeOperators/LeafMatrix.h”#include “TreeOperators/LeafOperator.h”#include “TreeOperators/MultiLeafOperator.h”#include “TreeOperators/Potential.h”#include “TreeOperators/PotentialOperator.h”#include “TreeOperators/SOPVector.h”#include “TreeOperators/SumOfProductsOperator.h”#include “TreeOperators/SumOfProductsOperator_Implementation.h”#include “TreeShape/AbstractNode.h”#include “TreeShape/Edge.h”#include “TreeShape/Leaf.h”#include “TreeShape/LinearizedLeaves.h”#include “TreeShape/Node.h”#include “TreeShape/NodePosition.h”#include “TreeShape/Tree.h”#include “TreeShape/TreeFactory.h”#include “Util/BS_integrator.h”#include “Util/FFT.h”#include “Util/FFTCooleyTukey.h”#include “Util/JacobiRotationFramework.h”#include “Util/Lanzcos.h”#include “Util/QMConstants.h”#include “Util/SimultaneousDiagonalization.h”#include “../../QuTreeVM/src/Util/long_integer.h”
-
file
EdgeAttribute.h
-
file
MatrixTensorTree.h - #include “TreeClasses/TensorTree.h”#include “TreeClasses/MatrixTreeFunctions.h”
Functions
-
void
QROrthogonalDown(TensorTreecd &Psi, const Tree &tree)¶
-
bool
IsWorking_bottomup(const MatrixTensorTree &Psi, const Tree &tree, double eps)¶
-
bool
IsWorking_topdown(const MatrixTensorTree &Psi, const Tree &tree, double eps)¶
-
bool
IsWorking(const MatrixTensorTree &Psi, const Tree &tree, double eps = 1e-7)¶
-
void
-
file
MatrixTensorTreeFunctions.h - #include “MatrixTensorTree.h”#include “TreeClasses/SparseMatrixTreeFunctions.h”
Typedefs
-
typedef pair<SparseMatrixTreecd, SparseMatrixTreecd>
SparseMatrixTreePaircd¶
-
typedef vector<SparseMatrixTreePaircd>
SparseMatrixTreePairscd¶
-
typedef pair<SparseMatrixTreecd, SparseMatrixTreecd>
-
file
MatrixTree.h - #include “NodeAttribute.h”#include “TreeShape/Tree.h”
Functions
-
template<typename
T>
ostream &operator<<(ostream &os, const MatrixTree<T> &S)¶
-
template<typename
T>
istream &operator>>(istream &is, MatrixTree<T> &S)¶
-
template<typename
-
file
MatrixTreeFunctions.h - #include “TreeClasses/TensorTree.h”#include “TreeClasses/MatrixTree.h”
-
file
MatrixTreeFunctions_Implementation.h - #include “MatrixTreeFunctions.h”
-
file
NodeAttribute.h - #include “TreeShape/Node.h”#include “TreeShape/Edge.h”#include “TreeShape/Tree.h”
Functions
-
template<class
A>
voidprint(const NodeAttribute<A> &ATree, const Tree &tree)¶
Variables
-
vector<A>
attributes_¶
-
template<class
-
file
SOPMatrixTrees.h - #include “TreeClasses/SparseMatrixTree.h”#include “TreeOperators/SumOfProductsOperator.h”
-
file
SparseMatrixTree.h - #include “TreeClasses/SparseNodeAttribute.h”#include “TreeClasses/TensorTree.h”
Typedefs
-
typedef SparseMatrixTree<complex<double>>
SparseMatrixTreecd¶
-
typedef SparseMatrixTree<double>
SparseMatrixTreed¶
-
using
SparseMatrixTrees= vector<SparseMatrixTree<T>>¶
-
typedef SparseMatrixTrees<complex<double>>
SparseMatrixTreescd¶
-
typedef SparseMatrixTrees<double>
SparseMatrixTreesd¶
-
typedef SparseMatrixTree<complex<double>>
-
file
SparseMatrixTreeFunctions.h - #include “TreeClasses/SparseMatrixTree.h”#include “TreeClasses/SOPMatrixTrees.h”#include “TreeClasses/MatrixTree.h”
-
file
SparseMatrixTreeFunctions_Implementation.h - #include “TreeClasses/SparseMatrixTreeFunctions.h”#include “TreeClasses/MatrixTreeFunctions.h”
-
file
SparseNodeAttribute.h - #include “SparseTree.h”#include “NodeAttribute.h”
Variables
-
shared_ptr<SparseTree>
active_¶ TreeMarker which marks whether a node is active_ or not.
-
vector<A>
attributes_ Attributes only at every active_ node.
-
shared_ptr<SparseTree>
-
file
SparseTree.h - #include “NodeAttribute.h”#include “TreeShape/Tree.h”#include “TreeOperators/MultiLeafOperator.h”#include “TreeOperators/SumOfProductsOperator.h”#include <map>#include <chrono>
-
file
SpectralDecompositionTree.h - #include “NodeAttribute.h”#include “Core/Matrix.h”#include “TreeClasses/MatrixTreeFunctions.h”#include “Core/Vector.h”
Typedefs
-
typedef SpectralDecompositionTree<complex<double>>
SpectralDecompositionTreecd¶
-
typedef SpectralDecompositionTree<double>
SpectralDecompositionTreed¶
Functions
-
template<typename
T>
voidcanonicalTransformation(TensorTree<T> &Psi, const Tree &tree, bool orthogonal = false)¶
-
template<typename
T>
MatrixTree<T>sqrt(MatrixTree<T> X, const Tree &tree)¶
-
template<typename
T>
SpectralDecompositionTree<T>inverse(SpectralDecompositionTree<T> X, double eps = 1e-7)¶
-
template<typename
T>
MatrixTree<T>inverse(MatrixTree<T> X, const Tree &tree, double eps = 1e-7)¶
-
template<typename
T>
MatrixTree<T>toMatrixtree(const SpectralDecompositionTree<T> &X, const Tree &tree)¶
-
typedef SpectralDecompositionTree<complex<double>>
-
file
SymTensorTree.h - #include “MatrixTensorTreeFunctions.h”
Typedefs
-
typedef SparseMatrixTreePaircd
SymMatrixTree¶
-
typedef SparseMatrixTreePairscd
SymMatrixTrees¶
Functions
-
bool
isWorking(const SymTensorTree &Psi, const Tree &tree)¶
-
void
symDotProduct(const SymTensorTree &Bra, const SymTensorTree &Ket, const Tree &tree)¶
-
template<typename
T>
voidcreateWeighted(TensorTree<T> &weighted, TensorTree<T> &down, const TensorTreecd &up, const Tree &tree)¶
-
typedef SparseMatrixTreePaircd
-
file
TensorTree.h - #include “NodeAttribute.h”#include “TreeShape/Tree.h”#include “Core/Tensor.h”#include <random>
Functions
-
TensorTree()¶ Default constructor without memory allocation.
-
TensorTree(istream &is)¶ Construct TensorTree from stream.
-
TensorTree(const string &filename)¶ Construct TensorTree from file.
-
TensorTree(mt19937 &gen, const Tree &tree, bool delta_lowest = true)¶ Create tensor tree and occupy the coefficients.
-
~TensorTree()¶ Default destructor.
-
void
initialize(const Tree &tree)¶ Create Tensors for all nodes.
Allocate memory. Call only after initializing TreeMarker. Requires default constructor.
-
void
read(istream &is)¶ (File) I/O read TensorTree from stream (binary format)
-
void
write(ostream &os) const Write TensorTree to stream (binary format)
-
void
write(const string &filename) const Write TensorTree to file (binary format)
-
TensorTree &
operator+=(const TensorTree<T> &R)¶ Arithmetic operators.
-
TensorTree &
operator-=(const TensorTree<T> &R)¶
-
TensorTree
operator+(const TensorTree<T> &R)¶
-
TensorTree
operator-(const TensorTree<T> &R)¶
-
TensorTree
operator*(T c)¶
-
TensorTree
operator/(T c)¶
-
template<typename
T>
voidorthogonal(TensorTree<T> &Psi, const Tree &tree)¶
-
template<typename
T>
voidqrOrthogonal(TensorTree<T> &Psi, const Tree &tree)¶
-
template<typename
T>
voidorthonormal(TensorTree<T> &Psi, const Tree &tree)¶
-
template<typename
T>
ostream &operator<<(ostream &os, const TensorTree<T> &t)¶
-
template<typename
T>
istream &operator>>(istream &is, TensorTree<T> &t)¶
-
template<typename
T>
TensorTree<T>operator*(T c, TensorTree<T> R)¶
-
template<typename
T>
TensorTree<T>operator/(T c, TensorTree<T> R)¶
-
-
file
TensorTree_Implementation.h - #include “TensorTree.h”#include “Core/Tensor_Extension.h”
Functions
-
template<typename
T>
voidorthogonal(TensorTree<T> &Psi, const Tree &tree)
-
template<typename
T>
voidqrOrthogonal(TensorTree<T> &Psi, const Tree &tree)
-
template<typename
T>
voidorthonormal(TensorTree<T> &Psi, const Tree &tree)
-
template<typename
T>
ostream &operator<<(ostream &os, const TensorTree<T> &t)
-
template<typename
T>
istream &operator>>(istream &is, TensorTree<T> &t)
-
template<typename
-
file
TensorTreeFunctions.h - #include “TreeClasses/SpectralDecompositionTree.h”
-
file
TensorTreeFunctions_Implementation.h - #include “TensorTreeFunctions.h”
-
file
TreeIO.h - #include “TreeClasses/MatrixTreeFunctions.h”#include “TreeClasses/TensorTree.h”#include “TreeClasses/SparseMatrixTree.h”
-
file
TreeTransformation.h - #include “TreeClasses/MatrixTreeFunctions.h”
-
file
TreeTransformation_Implementation.h - #include “TreeClasses/TreeTransformation.h”#include “TreeClasses/SpectralDecompositionTree.h”
-
file
CoordinateTransformation.h - #include “Core/Vector.h”
-
file
LeafFunction.h - #include “LeafOperator.h”
Typedefs
-
using
LeafFun= function<void(const LeafInterface&, Tensor<T>&, const Tensor<T>&)>¶
-
typedef LeafFunPair<complex<double>>
LeafFunPaircd¶
-
typedef LeafFunPair<double>
LeafFunPaird¶
-
typedef LeafFunction<complex<double>>
LeafFunctioncd¶
-
using
-
file
LeafMatrix.h - #include “LeafOperator.h”#include “Core/Matrix.h”#include “TreeShape/Leaf.h”
Functions
-
Matrixcd
toMatrix(const LeafOperatorcd &h, const Leaf &leaf)¶
-
LeafMatrix()¶
-
~LeafMatrix()¶
-
virtual void
apply(const LeafInterface &grid, Tensor<T> &hAcoeff, const Tensor<T> &Acoeff) const
Variables
-
Matrix<T>
h_
-
Matrixcd
-
file
LeafOperator.h - #include “Core/Tensor.h”#include “TreeShape/LeafTypes/LeafInterface.h”
Typedefs
-
typedef LeafOperator<complex<double>>
LeafOperatorcd¶
-
typedef LeafOperator<complex<double>>
-
file
MultiLeafOperator.h - #include “Core/Tensor.h”#include “TreeShape/Tree.h”#include “TreeClasses/TensorTree.h”#include “LeafOperator.h”#include “LeafFunction.h”#include “LeafMatrix.h”#include “PotentialOperator.h”
Variables
-
vector<shared_ptr<LeafOperator<T>>>
leafOperators_¶ These are the SPOs.
-
vector<size_t>
targetLeaves_¶ These are the modes the SPOs act on.
-
PotentialOperator
v_¶ The potential operator.
-
bool
hasV_¶ Is there a PotentialOperator?
-
vector<shared_ptr<LeafOperator<T>>>
-
file
Potential.h - #include “Core/Vector.h”#include “TreeShape/Tree.h”
-
file
PotentialOperator.h - #include “Core/stdafx.h”#include “TreeOperators/Potential.h”#include “TreeOperators/CoordinateTransformation.h”
-
file
SOPVector.h - #include “SumOfProductsOperator.h”
Functions
-
SOPVector()¶
-
-
file
SumOfProductsOperator.h - #include “MultiLeafOperator.h”
Typedefs
-
using
SOP= SumOfProductsOperator<T>¶
-
using
-
file
SumOfProductsOperator_Implementation.h - #include “TreeOperators/SumOfProductsOperator.h”
Functions
-
template<typename
T>
SumOfProductsOperator<T>operator+(const SumOfProductsOperator<T> &A, const SumOfProductsOperator<T> &B)¶
-
template<typename
-
file
MatrixListTree.h - #include “TreeOperators/TensorOperators/TensorOperatorTree.h”#include “TreeClasses/TensorTree.h”
-
file
MatrixListTree.h - #include “TreeOperators/TreeStructured/TreeSOP.h”#include “TreeClasses/TensorTree.h”
Typedefs
-
typedef vector<Matrixcd>
MatrixList
-
typedef vector<Matrixcd>
-
file
TensorOperatorTree.h - #include “TreeClasses/NodeAttribute.h”#include “TreeClasses/TensorTree.h”#include “TreeOperators/LeafMatrix.h”#include “TreeOperators/MultiLeafOperator.h”#include “TreeOperators/SumOfProductsOperator.h”
-
file
TensorOperatorTreeFunctions.h - #include “TreeOperators/TensorOperators/MatrixListTree.h”#include “TreeOperators/TensorOperators/TensorOperatorTree.h”
-
file
TreeSOP.h - #include “TreeClasses/NodeAttribute.h”#include “TreeOperators/LeafOperator.h”
Typedefs
-
typedef vector<shared_ptr<LeafOperatorcd>>
LeafOperatorLib¶
-
typedef vector<NodeOperator>
NodeProductOperator¶
Functions
-
bool
IsActive(const NodeOperator &h, const NodeProductOperator &M)¶
-
void
print(const NodeSOPlist &sopl, const vector<string> &names, size_t indent)¶
-
typedef vector<shared_ptr<LeafOperatorcd>>
-
file
AbstractNode.h - #include “Core/stdafx.h”#include “NodePosition.h”
-
file
Edge.h - #include “TreeShape/Node.h”
-
file
Leaf.h - #include “Core/stdafx.h”#include “AbstractNode.h”#include “NodePosition.h”#include “LeafTypes/LeafInterface.h”
Functions
-
Leaf(istream &file, AbstractNode *up, NodePosition position)¶
-
Leaf(size_t dim, size_t mode, size_t type, size_t subtype, PhysPar par)¶
-
Leaf()¶
-
~Leaf()¶
-
void
CreatePrimitiveBasis(size_t type, size_t subtype, size_t dim)¶
-
void
info(ostream &os = cout) const¶
-
void
write(ostream &os = cout) const
-
size_t
nTotalNodes() const¶
-
size_t
nNodes() const¶
-
size_t
nLeaves() const¶
-
AbstractNode *
nextNode()¶
-
AbstractNode *
nextNodeManthe()¶
-
int &
mode() const¶
-
size_t
Type() const¶
-
size_t
dim() const¶
-
int
type() const¶
-
const LeafInterface &
interface()¶
-
void
setPar(PhysPar par)¶
-
PhysPar
par() const¶
-
double
omega() const¶
-
double
r0() const¶
-
double
wfr0() const¶
-
double
wfOmega() const¶
-
void
update(const NodePosition &p)¶
-
void
updatePosition(const NodePosition &p)¶
-
void
setParent(AbstractNode *node)¶
-
-
file
DVRBasis.h - #include “Core/Tensor.h”#include “LeafInterface.h”#include “Core/Matrix.h”#include “Core/Vector.h”
-
file
FFTGrid.h - #include “LeafInterface.h”#include “Core/Matrix.h”#include “Core/Vector.h”#include “Core/Tensor.h”
-
file
HO_Basis.h - #include “Util/SimultaneousDiagonalization.h”#include “DVRBasis.h”
-
file
LeafInterface.h - #include “Core/Tensor.h”
-
file
LegendrePolynomials.h - #include <iostream>#include “DVRBasis.h”
-
file
SpinGroup.h - #include “LeafInterface.h”#include “Core/Matrix.h”#include “Core/Vector.h”#include “Core/Tensor.h”#include <random>
-
file
LinearizedLeaves.h - #include “Leaf.h”
-
file
Node.h - #include “Core/stdafx.h”#include “AbstractNode.h”#include “Leaf.h”#include “NodePosition.h”
Functions
-
Node()¶
-
Node(istream &file, Node *up, const NodePosition &position)¶
-
~Node()¶
-
void
initialize(istream &file, Node *up, const NodePosition &position)¶
-
void
info(ostream &os = cout) const
-
void
write(ostream &os) const
-
size_t
nTotalNodes() const
-
size_t
nNodes() const
-
size_t
nLeaves() const
-
int
type() const
-
bool
isBottomlayer() const¶
-
bool
isToplayer() const¶
-
size_t
childIdx() const¶
-
size_t
parentIdx() const¶
-
int
nChildren() const¶
-
const TensorShape &
shape()¶
-
void
expandChild(size_t i)¶
-
NodePosition
position() const¶
-
auto
begin() const¶ Swipe bottom-up over attributes_ at every active_ node.
-
auto
end() const¶ Swipe bottom-up over attributes_ at every active_ node.
-
void
setAddress(int newaddress)¶
-
int
address() const¶
-
AbstractNode *
nextNode()
-
AbstractNode *
nextNodeManthe()
-
unique_ptr<AbstractNode>
downUnique(size_t i)¶
-
void
setParent(AbstractNode *up)
-
void
update(const NodePosition &p)
-
void
updatePosition(const NodePosition &p)¶
-
void
updatennodes()¶
-
void
updateTDim()¶
-
void
resetCounters()¶
Variables
-
size_t
nTotalNodes_¶
-
size_t
nNodes_¶
-
size_t
nLeaves_¶
-
TensorShape
tensorDim_¶
-
AbstractNode *
parent_
-
vector<unique_ptr<AbstractNode>>
child_¶
-
int
nextNodeNum_¶
-
size_t
nextNodeNumFortran_¶
-
NodePosition
position_
-
int
address_
-
int
nodeType_
-
bool
bottomLayer_¶
-
-
file
NodePosition.h - #include “Core/stdafx.h”
-
file
Tree.h - #include “Node.h”#include “Edge.h”#include “LinearizedLeaves.h”#include <map>
-
file
Tree.h - #include “TreeNode.h”#include <map>
Functions
-
TreeNode
Group(const TreeNode &node, const NodeContent &c)¶
-
TreeNode
-
file
TreeFactory.h - #include “TreeShape/Tree.h”
-
file
BS_integrator.h - #include “Core/stdafx.h”#include <functional>#include “Core/Tensor.h”
-
file
FFT.h - #include “Core/Tensor.h”
-
file
FFTCooleyTukey.h - #include “Core/Vector.h”#include “Core/stdafx.h”#include “Core/Tensor.h”#include <bitset>
-
file
GradientDescent.h - #include “Core/stdafx.h”
-
file
GradientDescent_Implementation.h - #include “Util/GradientDescent.h”
-
file
JacobiRotationFramework.h - #include “Core/Matrix.h”
-
file
Lanzcos.h - #include <glob.h>#include “Core/TensorShape.h”#include “Core/Tensor.h”#include “Core/Matrix.h”#include “Core/Vector.h”
-
file
MultiIndex.h - #include “Core/stdafx.h”
-
file
QMConstants.h - #include “Core/stdafx.h”
-
file
RandomMatrices.h - #include “Core/Matrix.h”#include <random>
-
file
RandomProjector.h - #include <random>#include “Core/Matrix.h”#include “Core/Tensor.h”
-
file
RandomProjector_Implementation.h - #include “Util/RandomProjector.h”
-
file
RungeKutta4.h - #include <iostream>#include <fstream>
-
file
SimultaneousDiagonalization.h - #include “Core/Matrix.h”#include “Core/Vector.h”#include “Core/stdafx.h”#include <random>#include “JacobiRotationFramework.h”
-
file
string_ext.h - #include <string>
-
file
TreeNode.h - #include <utility>#include <vector>#include <iostream>#include “Core/TensorShape.h”
Typedefs
-
typedef vector<size_t>
Path¶
-
typedef vector<size_t>
-
file
WeightedSimultaneousDiagonalization.h - #include “Core/Matrix.h”#include “Core/Vector.h”#include “JacobiRotationFramework.h”
Variables
-
[anonymous]
WSD= WeightedSimultaneousDiagonalization¶
-
[anonymous]
-
file
JacobiRotationFramework.cpp - #include “Util/JacobiRotationFramework.h”
-
file
Matrix_Instantiations.cpp - #include “Core/Matrix_Implementation.h”#include “Core/Matrix_Extension_Implementation.h”#include “Util/RandomProjector_Implementation.h”
Functions
-
template Vector<complex<double> > multAB< cd >(const Matrix < complex< double >> & A, const Vector < complex< double >> & B) Arithmetic.
-
template Vector<double> multAB< doub >(const Matrix < double > & A, const Vector < double > & B)
-
template Vector<cd> multATB< cd >(const Matrix < cd > & A, const Vector < cd > & B)
-
template Vector<d> multATB< d >(const Matrix < d > & A, const Vector < d > & B)
-
template Matrix<double> multAB(const Matrix < double > & A, const Matrix < double > & B)
-
template Matrix<cd> multAB(const Matrix < cd > & A, const Matrix < cd > & B)
-
template Matrix<double> multATB(const Matrix < double > & A, const Matrix < double > & B)
-
template Matrix<cd> multATB(const Matrix < cd > & A, const Matrix < cd > & B)
-
template Matrix<cd> addAB(const Matrix < cd > & A, const Matrix < cd > & B)
-
template Matrix<doub> addAB(const Matrix < doub > & A, const Matrix < doub > & B)
-
template Matrix<doub> substAB(const Matrix < doub > & A, const Matrix < doub > & B)
-
template Matrix<cd> substAB< cd >(const Matrix < cd > & A, const Matrix < cd > & B)
-
template Matrix<cd> multscalar< cd, cd >(const cd sca, const Matrix < cd > & B)
-
template Matrix<cd> multscalar< cd, doub >(const double sca, const Matrix < cd > & B)
-
template Matrix<doub> multscalar< doub, doub >(const double sca, const Matrix < doub > & B)
-
template Matrix<cd> unitarySimilarityTrafo< cd >(const Matrix < cd > & A, const Matrix < cd > & B)
-
template Matrix<double> unitarySimilarityTrafo< doub >(const Matrix < double > & A, const Matrix < double > & B)
-
template Matrix<cd> re(const Matrix < cd > & A)
-
template Matrix<d> re(const Matrix < d > & A)
-
template Matrix<cd> identityMatrix(size_t dim) Convenience & Management.
Convenience & Management.
- Return
identity-matrix
- Template Parameters
T: Type of identity matrix
- Parameters
dim: dimension
-
template double residual(const Matrixcd & A, const Matrixcd & B)
-
template double residual(const Matrixd & A, const Matrixd & B)
-
template Matrix<cd> regularize(const Matrix < cd > & A, double eps)
-
template Matrix<d> regularize(const Matrix < d > & A, double eps)
-
template Matrix<cd> merge(const Matrix < cd > & A, const Matrix < cd > & B, const Matrix < cd > & AB)
-
template Matrix<d> merge(const Matrix < d > & A, const Matrix < d > & B, const Matrix < d > & AB)
-
template Matrix<cd> subMatrix(const Matrix < cd > A, size_t dim1, size_t dim2)
-
template Matrix<d> subMatrix(const Matrix < d > A, size_t dim1, size_t dim2)
-
template ostream& operator<<< cd >(ostream & os, const Matrixcd & A)
-
template istream& operator>>< cd >(istream & is, Matrixcd & A)
-
template ostream& operator<<< doub >(ostream & os, const Matrix < doub > & A)
-
template istream& operator>>< doub >(istream & is, Matrix < doub > & A)
-
template Matrix<double> euclideanDistance(const Matrix < double > & A)
-
template SpectralDecompositioncd sqrt(SpectralDecompositioncd X) Matrix Extension.
-
template SpectralDecompositiond sqrt(SpectralDecompositiond X)
-
template SpectralDecompositioncd inverse(SpectralDecompositioncd X, double eps)
-
template SpectralDecompositiond inverse(SpectralDecompositiond X, double eps)
-
template Matrixcd toMatrix(const SpectralDecompositioncd & X)
-
template Matrixd toMatrix(const SpectralDecompositiond & X)
-
template SpectralDecomposition<double> reduceRank(const SpectralDecomposition < double > & x, size_t rank)
-
template SpectralDecomposition<cd> reduceRank(const SpectralDecomposition < cd > & x, size_t rank)
-
-
file
stdafx.cpp Functions
-
double
conj(double x)
-
double
-
file
Tensor_Extension_Instantiations.cpp - #include “Core/Tensor_Extension_Implementation.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
d
-
typedef complex<double>
-
file
Tensor_Instantiations.cpp - #include “Core/Tensor_Implementation.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
doub
-
typedef double
d
Functions
-
template Tensor<cd> productElementwise(const Tensor < cd > & A, const Tensor < cd > & B)
-
template Tensor<d> productElementwise(const Tensor < d > & A, const Tensor < d > & B)
-
template Tensor<cd> matrixTensor< cd, cd >(const Matrix < cd > & A, const Tensor < cd > & B, size_t mode)
-
template void matrixTensor< cd, cd >(Tensor < cd > & C, const Matrix < cd > & A, const Tensor < cd > & B, size_t mode, bool zero)
-
template Tensor<cd> multATB< cd, cd >(const Matrix < cd > & A, const Tensor < cd > & B, size_t mode)
-
template Tensor<cd> multStateAB(const Matrix < cd > & A, const Tensor < cd > & B)
-
template Tensor<cd> multStateArTB< cd, cd >(const Matrix < cd > & A, const Tensor < cd > & B)
-
template void multStateArTB< cd, cd >(Tensor < cd > & C, const Matrix < cd > & A, const Tensor < cd > & B)
-
template void gramSchmidt< cd >(Tensor < cd > & A)
-
template void multStateAB< cd, cd >(Tensor < cd > & C, const Matrix < cd > & A, const Tensor < cd > & B, bool zero)
-
template Tensor<cd> project< cd >(const Tensor < cd > & A, const Tensor < cd > & B)
-
template Tensor<cd> projectOut< cd >(const Tensor < cd > & A, const Tensor < cd > & B)
-
template Tensor<cd> projectOrthogonal< cd >(const Tensor < cd > & A, const Tensor < cd > & B)
-
template void multAdd< cd, cd >(Tensor < cd > & A, const Tensor < cd > & B, cd coeff)
-
template Tensor<cd> conj< cd >(Tensor < cd > A)
-
template double residual(Tensorcd A, const Tensorcd & B)
-
template Matrix<cd> toMatrix(const Tensor < cd > & A)
-
template Tensor<cd> toTensor(const Matrix < cd > & B)
-
template Matrix<cd> toMatrix(const Tensor < cd > & A, size_t mode)
-
template Tensor<cd> toTensor(const Matrix < cd > & B, const TensorShape & shape, size_t mode)
-
template void contraction< cd >(Matrix < cd > & S, const Tensor < cd > & A, const Tensor < cd > & B, size_t before, size_t active1, size_t active2, size_t behind)
-
template void matrixTensor< cd >(Tensor < cd > & C, const Matrix < cd > & A, const Tensor < cd > & B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero)
-
template Matrix<cd> contraction(const Tensor < cd > & A, const Tensor < cd > & B, size_t k)
-
template void contraction(Matrix < cd > & S, const Tensor < cd > & A, const Tensor < cd > & B, size_t k, bool zero)
-
template void tensorMatrix(Tensor < cd > & C, const Tensor < cd > & B, const Matrix < cd > & A, size_t mode, bool zero)
-
template Tensor<cd> tensorMatrix(const Tensor < cd > & B, const Matrix < cd > & A, size_t mode)
-
template ostream& operator<<< cd >(ostream &, const Tensor < cd > &)
-
template istream& operator>>< cd >(istream &, Tensor < cd > &)
-
template bool operator==< cd >(const Tensor < cd > & A, const Tensor < cd > & B)
-
template Tensor<double> matrixTensor< doub, doub >(const Matrix < double > & A, const Tensor < double > & B, size_t mode)
-
template void matrixTensor< doub, doub >(Tensor < double > & C, const Matrix < double > & A, const Tensor < double > & B, size_t mode, bool zero)
-
template void tensorMatrix(Tensor < double > & C, const Tensor < double > & B, const Matrix < double > & A, size_t mode, bool zero)
-
template Tensor<double> tensorMatrix(const Tensor < double > & B, const Matrix < double > & A, size_t mode)
-
template Tensor<double> multATB< doub, doub >(const Matrix < double > & A, const Tensor < double > & B, size_t mode)
-
template Tensor<double> multStateAB(const Matrix < double > & A, const Tensor < double > & B)
-
template Tensor<double> multStateArTB< doub, doub >(const Matrix < double > & A, const Tensor < double > & B)
-
template void multStateArTB< doub, doub >(Tensor < doub > & C, const Matrix < doub > & A, const Tensor < doub > & B)
-
template void gramSchmidt< double >(Tensor < double > & A)
-
template void multStateAB< doub, doub >(Tensor < double > & C, const Matrix < double > & A, const Tensor < double > & B, bool zero)
-
template void multAdd< doub, doub >(Tensor < double > & A, const Tensor < double > & B, doub coeff)
-
template Tensor<double> conj< double >(Tensor < double > A)
-
template double residual(Tensord A, const Tensord & B)
-
template Matrix<double> toMatrix(const Tensor < double > & A)
-
template Tensor<double> toTensor(const Matrix < double > & B)
-
template void contraction< doub >(Matrix < doub > & S, const Tensor < doub > & A, const Tensor < doub > & B, size_t before, size_t active1, size_t active2, size_t behind)
-
template void matrixTensor< doub >(Tensor < doub > & C, const Matrix < doub > & A, const Tensor < doub > & B, size_t before, size_t activeC, size_t activeB, size_t after, bool zero)
-
template Matrix<doub> contraction(const Tensor < doub > & A, const Tensor < doub > & B, size_t k)
-
template void contraction(Matrix < doub > & S, const Tensor < doub > & A, const Tensor < doub > & B, size_t k, bool zero)
-
template ostream& operator<<< doub >(ostream &, const Tensor < doub > &)
-
template istream& operator>>< doub >(istream &, Tensor < doub > &)
-
template bool operator==< doub >(const Tensor < doub > & A, const Tensor < doub > & B)
-
template void multAdd< cd, double >(Tensor < cd > & A, const Tensor < cd > & B, double coeff) Mixed double/complex<double>
-
template Tensor<cd> matrixTensor< cd, doub >(const Matrix < doub > & A, const Tensor < cd > & B, size_t mode)
-
template Tensor<cd> multATB< cd, doub >(const Matrix < doub > & A, const Tensor < cd > & B, size_t mode)
-
typedef complex<double>
-
file
TensorShape.cpp - #include “Core/TensorShape.h”
Functions
-
size_t
ContractDimensionsBefore(const vector<size_t> &dim, size_t k)¶
-
vector<size_t>
ContractDimensionsBefore(const vector<size_t> &dim)¶
-
size_t
ContractDimensionsAfter(const vector<size_t> &dim, size_t k)¶
-
vector<size_t>
ContractDimensionsAfter(const vector<size_t> &dim)¶
-
ostream &
operator<<(ostream &os, const TensorShape &tdim)
-
istream &
operator>>(istream &is, TensorShape &tdim)
-
bool
operator==(const TensorShape &tdima, const TensorShape &tdimb)
-
bool
operator!=(const TensorShape &tdima, const TensorShape &tdimb)
-
TensorShape
replaceDimension(TensorShape shape, size_t target, size_t new_dimension)
-
vector<size_t>
indexMapping(size_t I, const TensorShape &shape)
-
size_t
indexMapping(const vector<size_t> &idx, const TensorShape &shape)
-
void
indexMapping(vector<size_t> &idxs, size_t I, const TensorShape &shape)
-
size_t
-
file
Vector_Instantiations.cpp - #include “Core/Vector_Implementation.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
d
Functions
-
template void normalize(Vectord & a)
-
template void normalize(Vectorcd & a)
-
template double residual(const Vectord & A, const Vectord & B)
-
template double residual(const Vectorcd & A, const Vectorcd & B)
-
template Vector<cd> reverse(const Vector < cd > & A)
-
template Vector<d> reverse(const Vector < d > & A)
-
template cd sum(const Vector < cd > & A)
-
template d sum(const Vector < d > & A)
-
template Vector<d> regularize(Vector < d > A, double eps)
-
template Vector<cd> regularize(Vector < cd > A, double eps)
-
template Vector<d> inverse(Vector < d > A, d eps)
-
template Vector<cd> inverse(Vector < cd > A, d eps)
-
typedef complex<double>
-
file
MatrixTensorTree.cpp - #include “TreeClasses/MatrixTensorTree.h”#include “TreeClasses/SpectralDecompositionTree.h”
Functions
-
bool
IsWorking_bottomup(const MatrixTensorTree &Psi, const Tree &tree, double eps)
-
bool
IsWorking_topdown(const MatrixTensorTree &Psi, const Tree &tree, double eps)
-
bool
IsWorking(const MatrixTensorTree &Psi, const Tree &tree, double eps)
-
bool
-
file
MatrixTensorTreeFunctions.cpp - #include “TreeClasses/MatrixTensorTreeFunctions.h”
-
file
MatrixTree.cpp - #include “TreeClasses/MatrixTree.h”
Functions
-
template<typename
T>
ostream &operator<<(ostream &os, const MatrixTree<T> &S)
-
template<typename
T>
istream &operator>>(istream &is, MatrixTree<T> &S)
-
template<typename
-
file
MatrixTreeFunctions.cpp - #include “TreeClasses/MatrixTreeFunctions_Implementation.h”#include “TreeClasses/TreeTransformation_Implementation.h”
-
file
SparseMatrixTree.cpp - #include “TreeClasses/SparseMatrixTree.h”
-
file
SparseMatrixTreeFunctions.cpp - #include “TreeClasses/SparseMatrixTreeFunctions_Implementation.h”
-
file
SparseTree.cpp - #include “TreeClasses/SparseTree.h”
-
file
SpectralDecompositionTree.cpp - #include “TreeClasses/SpectralDecompositionTree.h”
Functions
-
template<typename
T>
MatrixTree<T>toMatrixtree(const SpectralDecompositionTree<T> &X, const Tree &tree)
-
template<typename
T>
voidcanonicalTransformation(TensorTree<T> &Psi, const Tree &tree, bool orthogonal)
-
template<typename
T>
MatrixTree<T>sqrt(MatrixTree<T> X, const Tree &tree)
-
template<typename
T>
SpectralDecompositionTree<T>inverse(SpectralDecompositionTree<T> X, double eps)
-
template<typename
T>
MatrixTree<T>inverse(MatrixTree<T> X, const Tree &tree, double eps)
-
template SpectralDecompositionTreecd sqrt(SpectralDecompositionTreecd X)
-
template SpectralDecompositionTreed sqrt(SpectralDecompositionTreed X)
-
template MatrixTreecd sqrt(MatrixTreecd X, const Tree & tree)
-
template MatrixTreed sqrt(MatrixTreed X, const Tree & tree)
-
template SpectralDecompositionTreecd inverse(SpectralDecompositionTreecd X, double eps)
-
template SpectralDecompositionTreed inverse(SpectralDecompositionTreed X, double eps)
-
template MatrixTreecd inverse(MatrixTreecd X, const Tree & tree, double eps)
-
template MatrixTreed inverse(MatrixTreed X, const Tree & tree, double eps)
-
template MatrixTreecd toMatrixtree(const SpectralDecompositionTreecd & X, const Tree & tree)
-
template MatrixTreed toMatrixtree(const SpectralDecompositionTreed & X, const Tree & tree)
-
template void canonicalTransformation(TensorTreecd & Psi, const Tree & tree, bool orthogonal)
-
template void canonicalTransformation(TensorTreed & Psi, const Tree & tree, bool orthogonal)
-
template<typename
-
file
SymTensorTree.cpp - #include “TreeClasses/SymTensorTree.h”#include “TreeClasses/SpectralDecompositionTree.h”
Functions
-
template<typename
T>
voidcreateWeighted(TensorTree<T> &weighted, TensorTree<T> &down, const TensorTreecd &up, const Tree &tree)
-
double
epsUpNormalization(const SymTensorTree &Psi, const Tree &tree)¶
-
double
epsDownNormalization(const SymTensorTree &Psi, const Tree &tree)¶
-
bool
isWorking(const SymTensorTree &Psi, const Tree &tree)
-
template<typename
-
file
TensorTree_Instantiation.cpp - #include “TreeClasses/TensorTree.h”#include “TreeClasses/TensorTree_Implementation.h”#include “TreeClasses/TensorTreeFunctions_Implementation.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
d
Functions
-
template ostream& operator<<< cd >(ostream &, const TensorTree < cd > &)
-
template istream& operator>>< cd >(istream &, TensorTree < cd > &)
-
template TensorTree<cd> operator*(cd c, TensorTree < cd > R)
-
template TensorTree<cd> operator/(cd c, TensorTree < cd > R)
-
template ostream& operator<<< d >(ostream &, const TensorTree < d > &)
-
template istream& operator>>< d >(istream &, TensorTree < d > &)
-
template TensorTree<d> operator*(d c, TensorTree < d > R)
-
template TensorTree<d> operator/(d c, TensorTree < d > R)
-
template void orthogonal< cd >(TensorTree < cd > & Psi, const Tree & tree)
-
template void orthogonal< d >(TensorTree < d > & Psi, const Tree & tree)
-
template void qrOrthogonal< cd >(TensorTree < cd > & Psi, const Tree & tree)
-
template void orthonormal< cd >(TensorTree < cd > & Psi, const Tree & tree)
-
template void orthonormal< d >(TensorTree < d > & Psi, const Tree & tree)
-
typedef complex<double>
-
file
TreeIO.cpp - #include “TreeClasses/TreeIO.h”#include “TreeClasses/SpectralDecompositionTree.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
d
-
typedef complex<double>
-
file
TreeTransformations.cpp - #include “TreeClasses/TreeTransformation_Implementation.h”
Typedefs
-
typedef complex<double>
cd
-
typedef double
d
-
typedef complex<double>
-
file
LeafFunction.cpp - #include “TreeOperators/LeafFunction.h”
-
file
LeafMatrix.cpp - #include “TreeOperators/LeafMatrix.h”
Functions
-
Matrixcd
toMatrix(const LeafOperatorcd &h, const Leaf &leaf)
-
Matrixcd
-
file
MultiLeafOperator.cpp - #include “TreeOperators/MultiLeafOperator.h”
Typedefs
-
typedef complex<double>
cd
Functions
-
template<typename
T>
MultiLeafOperator<T>operator*(const MultiLeafOperator<T> &A, const MultiLeafOperator<T> &B)¶
-
template MultiLeafOperator<cd> operator*(const MultiLeafOperator < cd > & A, const MultiLeafOperator < cd > & B)
-
typedef complex<double>
-
file
SumOfProductsOperator.cpp - #include “TreeOperators/SumOfProductsOperator_Implementation.h”#include “TreeOperators/SOPVector.h”
Typedefs
-
typedef complex<double>
cd
Functions
-
template SumOfProductsOperator<cd> operator*<cd >(cd c, const SOP < cd > & A)
-
template SumOfProductsOperator<cd> operator*(const SOP < cd > & A, complex< double > c)
-
template SumOfProductsOperator<cd> operator*(const MLO < cd > & M, const SOP < cd > & A)
-
template SumOfProductsOperator<cd> operator*(const SOP < cd > & A, const MLO < cd > & M)
-
template SumOfProductsOperator<cd> operator+(const SOP < cd > & A, const SOP < cd > & B)
-
typedef complex<double>
-
file
MatrixListTree.cpp - #include “TreeOperators/TensorOperators//MatrixListTree.h”
-
file
MatrixListTree.cpp - #include “TreeOperators/TreeStructured/MatrixListTree.h”
-
file
TensorOperatorTree.cpp - #include “TreeOperators/TensorOperators/TensorOperatorTree.h”
-
file
TensorOperatorTreeFunctions.cpp - #include “TreeOperators/TensorOperators/TensorOperatorTreeFunctions.h”
-
file
TreeSOP.cpp - #include “TreeOperators/TreeStructured/TreeSOP.h”
Functions
-
void
print(const NodeProductOperator &mpo, complex<double> coeff, const vector<string> &names, size_t indent)¶
-
void
print(const NodeSOP &sop, const vector<string> &names, size_t indent)
-
void
print(const NodeSOPlist &sopl, const vector<string> &names, size_t indent)
-
bool
IsActive(const NodeOperator &h, const NodeProductOperator &M)
-
void
-
file
Leaf.cpp - #include “TreeShape/Leaf.h”#include “TreeShape/LeafTypes/DVRBasis.h”#include “TreeShape/LeafTypes/HO_Basis.h”#include “TreeShape/LeafTypes/FFTGrid.h”#include “TreeShape/LeafTypes/LegendrePolynomials.h”#include “TreeShape/LeafTypes/SpinGroup.h”
-
file
DVRBasis.cpp - #include “TreeShape/LeafTypes/DVRBasis.h”
-
file
FFTGrid.cpp - #include “TreeShape/LeafTypes/FFTGrid.h”#include “Util/FFT.h”
-
file
HO_Basis.cpp - #include “TreeShape/LeafTypes/HO_Basis.h”
-
file
LegendrePolynomials.cpp - #include “TreeShape/LeafTypes/LegendrePolynomials.h”
-
file
SpinGroup.cpp - #include “TreeShape/LeafTypes/SpinGroup.h”#include <chrono>
-
file
LinearizedLeaves.cpp - #include “TreeShape/LinearizedLeaves.h”
-
file
Node.cpp - #include “TreeShape/Node.h”
-
file
NodePosition.cpp - #include “TreeShape/NodePosition.h”
Functions
-
NodePosition
operator*(NodePosition p, size_t k)¶
-
NodePosition
operator*(NodePosition p, NodePosition q)¶
-
NodePosition
-
file
Tree.cpp - #include “TreeShape/Tree.h”
-
file
TreeFactory.cpp - #include “TreeShape/TreeFactory.h”
-
file
FFT.cpp - #include “Util/FFT.h”
-
file
RandomMatrices.cpp - #include “Util/RandomMatrices.h”
-
file
SimultaneousDiagonalization.cpp - #include “Util/SimultaneousDiagonalization.h”
-
file
string_ext.cpp - #include “Util/string_ext.h”#include <algorithm>
-
file
WeightedSimultaneousDiagonalization.cpp - #include “Util/WeightedSimultaneousDiagonalization.h”
-
group
Core This group includes the basic datastructures in QuTree.
These datastructures include the Vector, Matrix, and Tensor classes.
Typedefs
-
typedef Matrix<complex<double>>
Matrixcd General typedef for complex matrices.
-
typedef Matrix<double>
Matrixd General typedef for real matrices.
-
using
SpectralDecomposition= pair<Matrix<T>, Vectord> General typedef for Matrix<T>, Vectord pairs.
-
typedef SpectralDecomposition<complex<double>>
SpectralDecompositioncd Specialization of SpectralDecomposition of Matrixcd.
-
typedef SpectralDecomposition<double>
SpectralDecompositiond Specialization of SpectralDecomposition of Matrixd.
-
typedef Matrix<complex<double>>
-
group
QuTree QuTree is a C++ Tensor and Tensor Tree library.
This library has classes that are similar to libraries like Lapack, Eigen, Armadillo, etc., but its focus is concentrated on handling high-order Tensors and Tensor Trees.
-
group
Tree Group for classes related to tree handling.
This group contains all functionality pertaining to Trees.
Classes in this group use a TTBasis to generate new classes that use and work with the tree structure provided by TTBasis. The classes in this group should either inherit from TreeStructureObject (for classes that have some object at EVERY node in a tree) or SparseTreeStructuredObject (for classes that have some object at a SUBSET of all nodes in the tree).
-
group
Operators This group is a bundle of classes that handle operators. System specific operators are NOT included here.
This group contains general operator classes that are required to evaluate working equations for tensor tree approaches.
-
group
TTBasis This group contains classes to construct and handle a tensor tree basis.
-
group
Util This group includes common utilites in QuTree.
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/Core
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/Core
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeShape/LeafTypes
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeShape/LeafTypes
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeOperators/TensorOperators
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeOperators/TensorOperators
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeClasses
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeClasses
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeOperators
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeOperators
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeShape
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeShape
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/TreeOperators/TreeStructured
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/TreeOperators/TreeStructured
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/include/Util
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/qutree/checkouts/stable/src/Util