xerus
a general purpose tensor library
ttNetwork.cpp File Reference

Implementation of the TTNetwork class (and thus TTTensor and TTOperator). More...

#include <algorithm>
#include <memory>
#include <xerus/ttNetwork.h>
#include <xerus/misc/check.h>
#include <xerus/misc/math.h>
#include <xerus/misc/performanceAnalysis.h>
#include <xerus/misc/internal.h>
#include <xerus/basic.h>
#include <xerus/misc/basicArraySupport.h>
#include <xerus/index.h>
#include <xerus/tensor.h>
#include <xerus/ttStack.h>
#include <xerus/indexedTensorList.h>
#include <xerus/indexedTensorMoveable.h>

Go to the source code of this file.

Namespaces

 xerus
 The main namespace of xerus.
 
 xerus::misc
 Collection of classes and functions that provide elementary functionality that is not special to xerus as a tensor library.
 

Functions

template<bool isOperator>
TTNetwork< isOperator > xerus::dyadic_product (const TTNetwork< isOperator > &_lhs, const TTNetwork< isOperator > &_rhs)
 Computes the dyadic product of _lhs and _rhs. More...
 
template<bool isOperator>
TTNetwork< isOperator > xerus::dyadic_product (const std::vector< TTNetwork< isOperator >> &_tensors)
 Computes the dyadic product of all given TTNetworks. More...
 
template TTNetwork< true > xerus::dyadic_product (const TTNetwork< true > &_lhs, const TTNetwork< true > &_rhs)
 
template TTNetwork< false > xerus::dyadic_product (const TTNetwork< false > &_lhs, const TTNetwork< false > &_rhs)
 
template TTNetwork< true > xerus::dyadic_product (const std::vector< TTNetwork< true >> &_tensors)
 
template TTNetwork< false > xerus::dyadic_product (const std::vector< TTNetwork< false >> &_tensors)
 
template<bool isOperator>
TTNetwork< isOperator > xerus::entrywise_product (const TTNetwork< isOperator > &_A, const TTNetwork< isOperator > &_B)
 Calculates the componentwise product of two tensors given in the TT format. More...
 
template TTNetwork< false > xerus::entrywise_product (const TTNetwork< false > &_A, const TTNetwork< false > &_B)
 
template TTNetwork< true > xerus::entrywise_product (const TTNetwork< true > &_A, const TTNetwork< true > &_B)
 
template<bool isOperator>
std::vector< std::vector< std::tuple< size_t, size_t, value_t > > > xerus::get_grouped_entries (const Tensor &_component)
 
template<bool isOperator>
TTNetwork< isOperator > xerus::operator* (TTNetwork< isOperator > _network, const value_t _factor)
 Calculates the entrywise multiplication of the given TTNetwork _network with a constant _factor. More...
 
template<bool isOperator>
TTNetwork< isOperator > xerus::operator* (const value_t _factor, TTNetwork< isOperator > _network)
 Calculates the entrywise multiplication of the given TTNetwork _network with a constant _factor. More...
 
template TTNetwork< false > xerus::operator* (TTNetwork< false > _network, const value_t _factor)
 
template TTNetwork< true > xerus::operator* (TTNetwork< true > _network, const value_t _factor)
 
template TTNetwork< false > xerus::operator* (const value_t _factor, TTNetwork< false > _network)
 
template TTNetwork< true > xerus::operator* (const value_t _factor, TTNetwork< true > _network)
 
template<bool isOperator>
TTNetwork< isOperator > xerus::operator+ (TTNetwork< isOperator > _lhs, const TTNetwork< isOperator > &_rhs)
 Calculates the entrywise sum of the given TTNetworks _lhs and _rhs. More...
 
template TTNetwork< false > xerus::operator+ (TTNetwork< false > _lhs, const TTNetwork< false > &_rhs)
 
template TTNetwork< true > xerus::operator+ (TTNetwork< true > _lhs, const TTNetwork< true > &_rhs)
 
template<bool isOperator>
TTNetwork< isOperator > xerus::operator- (TTNetwork< isOperator > _lhs, const TTNetwork< isOperator > &_rhs)
 Calculates the entrywise difference of the given TTNetworks _lhs and _rhs. More...
 
template TTNetwork< false > xerus::operator- (TTNetwork< false > _lhs, const TTNetwork< false > &_rhs)
 
template TTNetwork< true > xerus::operator- (TTNetwork< true > _lhs, const TTNetwork< true > &_rhs)
 
template<bool isOperator>
TTNetwork< isOperator > xerus::operator/ (TTNetwork< isOperator > _network, const value_t _divisor)
 Calculates the entrywise divison of this TTNetwork by a constant _divisor. More...
 
template TTNetwork< false > xerus::operator/ (TTNetwork< false > _network, const value_t _divisor)
 
template TTNetwork< true > xerus::operator/ (TTNetwork< true > _network, const value_t _divisor)
 
template<bool isOperator>
void xerus::perform_component_product (Tensor &_newComponent, const Tensor &_componentA, const Tensor &_componentB)
 
template<bool isOperator>
void xerus::misc::stream_reader (std::istream &_stream, TTNetwork< isOperator > &_obj, const misc::FileFormat _format)
 Restores the TTNetwork from a stream of data. More...
 
template void xerus::misc::stream_reader (std::istream &_stream, TTNetwork< true > &_obj, const misc::FileFormat _format)
 
template void xerus::misc::stream_reader (std::istream &_stream, TTNetwork< false > &_obj, const misc::FileFormat _format)
 
template<bool isOperator>
void xerus::misc::stream_writer (std::ostream &_stream, const TTNetwork< isOperator > &_obj, misc::FileFormat _format)
 Pipes all information necessary to restore the current TensorNetwork into _stream. More...
 
template void xerus::misc::stream_writer (std::ostream &_stream, const TTNetwork< true > &_obj, misc::FileFormat _format)
 
template void xerus::misc::stream_writer (std::ostream &_stream, const TTNetwork< false > &_obj, misc::FileFormat _format)
 
template<bool isOperator>
void xerus::transpose_if_operator (TTNetwork< isOperator > &_ttNetwork)
 
template<>
void xerus::transpose_if_operator< false > (TTNetwork< false > &)
 
template<>
void xerus::transpose_if_operator< true > (TTNetwork< true > &_ttNetwork)
 

Detailed Description

Implementation of the TTNetwork class (and thus TTTensor and TTOperator).

Definition in file ttNetwork.cpp.