xerus
a general purpose tensor library
|
Namespace for function and classes designated only for internal use. More...
Classes | |
struct | CholmodCommon |
wrapper object for the cholmod_common struct to automatically call the constructor and destructor More... | |
class | CholmodSparse |
wrapper class for the cholmod sparse matrix objects More... | |
class | IndexedTensor |
Internal representation of an readable and writeable indexed Tensor or TensorNetwork. More... | |
class | IndexedTensorList |
Internal representation of a tuple of indexed Tensor s. More... | |
class | IndexedTensorMoveable |
Internal representation of an read and write and moveable indexed Tensor or TensorNetwork. More... | |
class | IndexedTensorReadOnly |
Internal representation of an readable indexed Tensor or TensorNetwork. More... | |
class | IndexedTensorWritable |
Abstract internal representation of an read and writeable indexed Tensor or TensorNetwork. More... | |
class | TTStack |
Internal class used to represent stacks of (possibly multiply) applications of TTOperators to either a TTTensor or TTOperator. More... | |
Typedefs | |
typedef void(* | ContractionHeuristic) (double &, std::vector< std::pair< size_t, size_t >> &, TensorNetwork) |
Functions | |
void | array_deleter_st (size_t *const _toDelete) |
Internal deleter function, needed because std::shared_ptr misses an array overload. More... | |
void | array_deleter_vt (value_t *const _toDelete) |
Internal deleter function, needed because std::shared_ptr misses an array overload. More... | |
std::tuple< size_t, size_t, size_t, double > | best_of_three (const TensorNetwork &_network, size_t _id1, size_t _id2, size_t _id3) |
bool | check_position (size_t &_position, const std::pair< size_t, value_t > &_entry, const size_t *const _baseIndexDim, const size_t *const _divisors, const size_t *const _attributes, const bool *const _fixedFlags, const bool *const _traceFlags, const size_t numIndices) |
int | comp (const Tensor &_a, const Tensor &_b) |
double | contraction_cost (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
static void | error_handler (int status, const char *file, int line, const char *message) |
void | evaluate (IndexedTensorWritable< Tensor > &&_out, IndexedTensorReadOnly< Tensor > &&_base) |
void | exchange_heuristic (double &_bestCost, std::vector< std::pair< size_t, size_t >> &_contractions, TensorNetwork _network) |
template<class tensor_type > | |
value_t | frob_norm (const IndexedTensorReadOnly< tensor_type > &_idxTensor) |
Returns the frobenious norm of the associated tensorObejct. More... | |
template value_t | frob_norm< Tensor > (const IndexedTensorReadOnly< Tensor > &_idxTensor) |
template value_t | frob_norm< TensorNetwork > (const IndexedTensorReadOnly< TensorNetwork > &_idxTensor) |
std::vector< size_t > | get_dimension_vector (const std::vector< Index > &_indices) |
size_t | get_eval_degree (const std::vector< Index > &_indices) |
size_t | get_position (const std::pair< size_t, value_t > &_entry, const size_t *const _baseIndexDim, const size_t *const _divisors, const size_t *const _attributes, const size_t numIndices) |
std::vector< size_t > | get_step_sizes (const std::vector< Index > &_indices) |
void | greedy_best_of_three_heuristic (double &_bestCost, std::vector< std::pair< size_t, size_t >> &_contractions, TensorNetwork _network) |
template<double(*)(double, double, double, double, double) scoreFct> | |
void | greedy_heuristic (double &_bestCost, std::vector< std::pair< size_t, size_t >> &_contractions, TensorNetwork _network) |
void | increase_indices (const size_t _i, const value_t *&_oldPosition, const std::vector< size_t > &_steps, const std::vector< size_t > &_multDimensions) |
value_t | one_norm (const IndexedTensorReadOnly< Tensor > &_idxTensor) |
Returns the one-norm of the associated tensor Obejct. More... | |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator* (const value_t _factor, IndexedTensorMoveable< tensor_type > &&_tensor) |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator* (IndexedTensorMoveable< tensor_type > &&_tensor, const value_t _factor) |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator* (const value_t _factor, IndexedTensorReadOnly< tensor_type > &&_tensor) |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator* (IndexedTensorReadOnly< tensor_type > &&_tensor, const value_t _factor) |
IndexedTensorMoveable< TensorNetwork > | operator* (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
IndexedTensorMoveable< TensorNetwork > | operator* (IndexedTensorMoveable< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
IndexedTensorMoveable< TensorNetwork > | operator* (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorMoveable< TensorNetwork > &&_rhs) |
IndexedTensorMoveable< TensorNetwork > | operator* (IndexedTensorMoveable< TensorNetwork > &&_lhs, IndexedTensorMoveable< TensorNetwork > &&_rhs) |
template IndexedTensorMoveable< Tensor > | operator* (IndexedTensorReadOnly< Tensor > &&_tensor, const value_t _factor) |
template IndexedTensorMoveable< TensorNetwork > | operator* (IndexedTensorReadOnly< TensorNetwork > &&_tensor, const value_t _factor) |
template IndexedTensorMoveable< Tensor > | operator*<Tensor > (const value_t _factor, IndexedTensorReadOnly< Tensor > &&_tensor) |
template IndexedTensorMoveable< TensorNetwork > | operator*<TensorNetwork > (const value_t _factor, IndexedTensorReadOnly< TensorNetwork > &&_tensor) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator+ (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< TensorNetwork > | operator+ (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
IndexedTensorList | operator, (IndexedTensor< Tensor > &&_first, IndexedTensor< Tensor > &&_second) |
Using the "," operator tuples of writeable indexed tensor can be created. More... | |
IndexedTensorList | operator, (IndexedTensorList &&_first, IndexedTensor< Tensor > &&_second) |
Using the "," operator tuples of writeable indexed tensor can be created. More... | |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
IndexedTensorMoveable< Tensor > | operator- (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs) |
IndexedTensorMoveable< TensorNetwork > | operator- (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs) |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator/ (IndexedTensorMoveable< tensor_type > &&_tensor, const value_t _divisor) |
template<class tensor_type > | |
IndexedTensorMoveable< tensor_type > | operator/ (IndexedTensorReadOnly< tensor_type > &&_tensor, const value_t _divisor) |
template IndexedTensorMoveable< Tensor > | operator/ (IndexedTensorReadOnly< Tensor > &&_tensor, const value_t _divisor) |
template IndexedTensorMoveable< TensorNetwork > | operator/ (IndexedTensorReadOnly< TensorNetwork > &&_tensor, const value_t _divisor) |
double | score_big_tensor (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
double | score_littlestep (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
double | score_mn (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
double | score_r (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
double | score_size (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
double | score_speed (double _m, double _n, double _r, double _sparsity1, double _sparsity2) |
void | sum_traces (value_t *const _newPosition, const value_t *_oldPosition, const std::vector< size_t > &_doubleSteps, const std::vector< size_t > &_doubleMultDimensions, const size_t _numSummations) |
void | sum_traces (value_t *const _newPosition, const value_t *_oldPosition, const std::vector< size_t > &_doubleSteps, const std::vector< size_t > &_doubleMultDimensions, const size_t _numSummations, const size_t _orderedIndicesMultDim) |
Variables | |
thread_local CholmodCommon | cholmodObject |
const std::vector< ContractionHeuristic > | contractionHeuristics |
Namespace for function and classes designated only for internal use.
End users should never be required to know or explicitly use classes or functions from this namespace. If you want to do so nevertheless be aware of the minimalistic documentation and in some cases quite unexpected behavior.
typedef void(* xerus::internal::ContractionHeuristic) (double &, std::vector< std::pair< size_t, size_t >> &, TensorNetwork) |
Definition at line 35 of file contractionHeuristic.h.
void xerus::internal::array_deleter_st | ( | size_t *const | _toDelete | ) |
void xerus::internal::array_deleter_vt | ( | value_t *const | _toDelete | ) |
std::tuple<size_t, size_t, size_t, double> xerus::internal::best_of_three | ( | const TensorNetwork & | _network, |
size_t | _id1, | ||
size_t | _id2, | ||
size_t | _id3 | ||
) |
Definition at line 138 of file contractionHeuristic.cpp.
|
inline |
Definition at line 197 of file indexedTensor_tensor_evaluate.cpp.
Definition at line 549 of file measurments.cpp.
double xerus::internal::contraction_cost | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 102 of file contractionHeuristic.cpp.
|
static |
Definition at line 50 of file cholmod_wrapper.cpp.
void xerus::internal::evaluate | ( | internal::IndexedTensorWritable< Tensor > && | _out, |
internal::IndexedTensorReadOnly< Tensor > && | _base | ||
) |
Definition at line 248 of file indexedTensor_tensor_evaluate.cpp.
void xerus::internal::exchange_heuristic | ( | double & | _bestCost, |
std::vector< std::pair< size_t, size_t >> & | _contractions, | ||
TensorNetwork | _network | ||
) |
Definition at line 278 of file contractionHeuristic.cpp.
value_t xerus::internal::frob_norm | ( | const IndexedTensorReadOnly< tensor_type > & | _idxTensor | ) |
Returns the frobenious norm of the associated tensorObejct.
Definition at line 330 of file indexedTensorReadOnly.cpp.
template value_t xerus::internal::frob_norm< Tensor > | ( | const IndexedTensorReadOnly< Tensor > & | _idxTensor | ) |
template value_t xerus::internal::frob_norm< TensorNetwork > | ( | const IndexedTensorReadOnly< TensorNetwork > & | _idxTensor | ) |
|
inline |
Definition at line 227 of file indexedTensor_tensor_evaluate.cpp.
size_t xerus::internal::get_eval_degree | ( | const std::vector< Index > & | _indices | ) |
Definition at line 341 of file indexedTensorReadOnly.cpp.
|
inline |
Definition at line 185 of file indexedTensor_tensor_evaluate.cpp.
|
inline |
Definition at line 236 of file indexedTensor_tensor_evaluate.cpp.
void xerus::internal::greedy_best_of_three_heuristic | ( | double & | _bestCost, |
std::vector< std::pair< size_t, size_t >> & | _contractions, | ||
TensorNetwork | _network | ||
) |
Definition at line 180 of file contractionHeuristic.cpp.
void xerus::internal::greedy_heuristic | ( | double & | _bestCost, |
std::vector< std::pair< size_t, size_t >> & | _contractions, | ||
TensorNetwork | _network | ||
) |
Definition at line 35 of file contractionHeuristic.cpp.
|
inline |
Definition at line 147 of file indexedTensor_tensor_evaluate.cpp.
value_t xerus::internal::one_norm | ( | const IndexedTensorReadOnly< Tensor > & | _idxTensor | ) |
Returns the one-norm of the associated tensor Obejct.
Definition at line 337 of file indexedTensorReadOnly.cpp.
|
inline |
Definition at line 82 of file indexedTensorMoveable.h.
|
inline |
Definition at line 89 of file indexedTensorMoveable.h.
IndexedTensorMoveable< tensor_type > xerus::internal::operator* | ( | const value_t | _factor, |
IndexedTensorReadOnly< tensor_type > && | _tensor | ||
) |
Definition at line 182 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< tensor_type > xerus::internal::operator* | ( | IndexedTensorReadOnly< tensor_type > && | _tensor, |
const value_t | _factor | ||
) |
Definition at line 193 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 290 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* | ( | IndexedTensorMoveable< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 304 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorMoveable< TensorNetwork > && | _rhs | ||
) |
Definition at line 318 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* | ( | IndexedTensorMoveable< TensorNetwork > && | _lhs, |
IndexedTensorMoveable< TensorNetwork > && | _rhs | ||
) |
Definition at line 322 of file indexedTensorReadOnly.cpp.
template IndexedTensorMoveable<Tensor> xerus::internal::operator* | ( | IndexedTensorReadOnly< Tensor > && | _tensor, |
const value_t | _factor | ||
) |
template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator* | ( | IndexedTensorReadOnly< TensorNetwork > && | _tensor, |
const value_t | _factor | ||
) |
template IndexedTensorMoveable<Tensor> xerus::internal::operator*<Tensor > | ( | const value_t | _factor, |
IndexedTensorReadOnly< Tensor > && | _tensor | ||
) |
template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator*<TensorNetwork > | ( | const value_t | _factor, |
IndexedTensorReadOnly< TensorNetwork > && | _tensor | ||
) |
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 212 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorMoveable< Tensor > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 219 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorMoveable< Tensor > && | _rhs | ||
) |
Definition at line 226 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorMoveable< Tensor > && | _lhs, |
IndexedTensorMoveable< Tensor > && | _rhs | ||
) |
Definition at line 230 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 268 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator+ | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 272 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator+ | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 259 of file indexedTensorReadOnly.cpp.
IndexedTensorList xerus::internal::operator, | ( | IndexedTensor< Tensor > && | _first, |
IndexedTensor< Tensor > && | _second | ||
) |
Using the "," operator tuples of writeable indexed tensor can be created.
_first | the first element of the tuple. |
_second | the second element of the tuple. |
Definition at line 43 of file indexedTensorList.cpp.
IndexedTensorList xerus::internal::operator, | ( | IndexedTensorList && | _first, |
IndexedTensor< Tensor > && | _second | ||
) |
Using the "," operator tuples of writeable indexed tensor can be created.
_first | an existing tuple of writeable indexed tensor. |
_second | a further writeable indexed tensor that shall be appended to the existing tuple. |
Definition at line 47 of file indexedTensorList.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 235 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorMoveable< Tensor > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 242 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorMoveable< Tensor > && | _rhs | ||
) |
Definition at line 249 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorMoveable< Tensor > && | _lhs, |
IndexedTensorMoveable< Tensor > && | _rhs | ||
) |
Definition at line 253 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorReadOnly< Tensor > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 280 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< Tensor > xerus::internal::operator- | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< Tensor > && | _rhs | ||
) |
Definition at line 284 of file indexedTensorReadOnly.cpp.
IndexedTensorMoveable< TensorNetwork > xerus::internal::operator- | ( | IndexedTensorReadOnly< TensorNetwork > && | _lhs, |
IndexedTensorReadOnly< TensorNetwork > && | _rhs | ||
) |
Definition at line 276 of file indexedTensorReadOnly.cpp.
|
inline |
Definition at line 94 of file indexedTensorMoveable.h.
IndexedTensorMoveable< tensor_type > xerus::internal::operator/ | ( | IndexedTensorReadOnly< tensor_type > && | _tensor, |
const value_t | _divisor | ||
) |
Definition at line 202 of file indexedTensorReadOnly.cpp.
template IndexedTensorMoveable<Tensor> xerus::internal::operator/ | ( | IndexedTensorReadOnly< Tensor > && | _tensor, |
const value_t | _divisor | ||
) |
template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator/ | ( | IndexedTensorReadOnly< TensorNetwork > && | _tensor, |
const value_t | _divisor | ||
) |
double xerus::internal::score_big_tensor | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 121 of file contractionHeuristic.cpp.
double xerus::internal::score_littlestep | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 128 of file contractionHeuristic.cpp.
double xerus::internal::score_mn | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 112 of file contractionHeuristic.cpp.
double xerus::internal::score_r | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 118 of file contractionHeuristic.cpp.
double xerus::internal::score_size | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 109 of file contractionHeuristic.cpp.
double xerus::internal::score_speed | ( | double | _m, |
double | _n, | ||
double | _r, | ||
double | _sparsity1, | ||
double | _sparsity2 | ||
) |
Definition at line 115 of file contractionHeuristic.cpp.
|
inline |
Definition at line 159 of file indexedTensor_tensor_evaluate.cpp.
|
inline |
Definition at line 171 of file indexedTensor_tensor_evaluate.cpp.
thread_local CholmodCommon xerus::internal::cholmodObject |
Definition at line 81 of file cholmod_wrapper.cpp.
const std::vector< ContractionHeuristic > xerus::internal::contractionHeuristics |
Definition at line 372 of file contractionHeuristic.cpp.