xerus
a general purpose tensor library
xerus::internal Namespace Reference

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< TensorNetworkoperator* (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs)
 
IndexedTensorMoveable< TensorNetworkoperator* (IndexedTensorMoveable< TensorNetwork > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs)
 
IndexedTensorMoveable< TensorNetworkoperator* (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorMoveable< TensorNetwork > &&_rhs)
 
IndexedTensorMoveable< TensorNetworkoperator* (IndexedTensorMoveable< TensorNetwork > &&_lhs, IndexedTensorMoveable< TensorNetwork > &&_rhs)
 
template IndexedTensorMoveable< Tensoroperator* (IndexedTensorReadOnly< Tensor > &&_tensor, const value_t _factor)
 
template IndexedTensorMoveable< TensorNetworkoperator* (IndexedTensorReadOnly< TensorNetwork > &&_tensor, const value_t _factor)
 
template IndexedTensorMoveable< Tensoroperator*<Tensor > (const value_t _factor, IndexedTensorReadOnly< Tensor > &&_tensor)
 
template IndexedTensorMoveable< TensorNetworkoperator*<TensorNetwork > (const value_t _factor, IndexedTensorReadOnly< TensorNetwork > &&_tensor)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator+ (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< TensorNetworkoperator+ (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< Tensoroperator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator- (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator- (IndexedTensorMoveable< Tensor > &&_lhs, IndexedTensorMoveable< Tensor > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator- (IndexedTensorReadOnly< Tensor > &&_lhs, IndexedTensorReadOnly< TensorNetwork > &&_rhs)
 
IndexedTensorMoveable< Tensoroperator- (IndexedTensorReadOnly< TensorNetwork > &&_lhs, IndexedTensorReadOnly< Tensor > &&_rhs)
 
IndexedTensorMoveable< TensorNetworkoperator- (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< Tensoroperator/ (IndexedTensorReadOnly< Tensor > &&_tensor, const value_t _divisor)
 
template IndexedTensorMoveable< TensorNetworkoperator/ (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< ContractionHeuristiccontractionHeuristics
 

Detailed Description

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 Documentation

◆ ContractionHeuristic

typedef void(* xerus::internal::ContractionHeuristic) (double &, std::vector< std::pair< size_t, size_t >> &, TensorNetwork)

Definition at line 35 of file contractionHeuristic.h.

Function Documentation

◆ array_deleter_st()

void xerus::internal::array_deleter_st ( size_t *const  _toDelete)

Internal deleter function, needed because std::shared_ptr misses an array overload.

Definition at line 32 of file basic.cpp.

◆ array_deleter_vt()

void xerus::internal::array_deleter_vt ( value_t *const  _toDelete)

Internal deleter function, needed because std::shared_ptr misses an array overload.

Definition at line 31 of file basic.cpp.

◆ best_of_three()

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.

◆ check_position()

bool xerus::internal::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 
)
inline

Definition at line 197 of file indexedTensor_tensor_evaluate.cpp.

◆ comp()

int xerus::internal::comp ( const Tensor _a,
const Tensor _b 
)

Definition at line 549 of file measurments.cpp.

◆ contraction_cost()

double xerus::internal::contraction_cost ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 102 of file contractionHeuristic.cpp.

◆ error_handler()

static void xerus::internal::error_handler ( int  status,
const char *  file,
int  line,
const char *  message 
)
static

Definition at line 50 of file cholmod_wrapper.cpp.

◆ evaluate()

void xerus::internal::evaluate ( internal::IndexedTensorWritable< Tensor > &&  _out,
internal::IndexedTensorReadOnly< Tensor > &&  _base 
)

Definition at line 248 of file indexedTensor_tensor_evaluate.cpp.

◆ exchange_heuristic()

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.

◆ frob_norm()

template<class tensor_type >
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.

◆ frob_norm< Tensor >()

template value_t xerus::internal::frob_norm< Tensor > ( const IndexedTensorReadOnly< Tensor > &  _idxTensor)

◆ frob_norm< TensorNetwork >()

◆ get_dimension_vector()

std::vector<size_t> xerus::internal::get_dimension_vector ( const std::vector< Index > &  _indices)
inline

Definition at line 227 of file indexedTensor_tensor_evaluate.cpp.

◆ get_eval_degree()

size_t xerus::internal::get_eval_degree ( const std::vector< Index > &  _indices)

Definition at line 341 of file indexedTensorReadOnly.cpp.

◆ get_position()

size_t xerus::internal::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 
)
inline

Definition at line 185 of file indexedTensor_tensor_evaluate.cpp.

◆ get_step_sizes()

std::vector<size_t> xerus::internal::get_step_sizes ( const std::vector< Index > &  _indices)
inline

Definition at line 236 of file indexedTensor_tensor_evaluate.cpp.

◆ greedy_best_of_three_heuristic()

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.

◆ greedy_heuristic()

template<double(*)(double, double, double, double, double) scoreFct>
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.

◆ increase_indices()

void xerus::internal::increase_indices ( const size_t  _i,
const value_t *&  _oldPosition,
const std::vector< size_t > &  _steps,
const std::vector< size_t > &  _multDimensions 
)
inline

Definition at line 147 of file indexedTensor_tensor_evaluate.cpp.

◆ one_norm()

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.

◆ operator*() [1/10]

template<class tensor_type >
IndexedTensorMoveable<tensor_type> xerus::internal::operator* ( const value_t  _factor,
IndexedTensorMoveable< tensor_type > &&  _tensor 
)
inline

Definition at line 82 of file indexedTensorMoveable.h.

◆ operator*() [2/10]

template<class tensor_type >
IndexedTensorMoveable<tensor_type> xerus::internal::operator* ( IndexedTensorMoveable< tensor_type > &&  _tensor,
const value_t  _factor 
)
inline

Definition at line 89 of file indexedTensorMoveable.h.

◆ operator*() [3/10]

template<class tensor_type >
IndexedTensorMoveable< tensor_type > xerus::internal::operator* ( const value_t  _factor,
IndexedTensorReadOnly< tensor_type > &&  _tensor 
)

Definition at line 182 of file indexedTensorReadOnly.cpp.

◆ operator*() [4/10]

template<class tensor_type >
IndexedTensorMoveable< tensor_type > xerus::internal::operator* ( IndexedTensorReadOnly< tensor_type > &&  _tensor,
const value_t  _factor 
)

Definition at line 193 of file indexedTensorReadOnly.cpp.

◆ operator*() [5/10]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 290 of file indexedTensorReadOnly.cpp.

◆ operator*() [6/10]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* ( IndexedTensorMoveable< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 304 of file indexedTensorReadOnly.cpp.

◆ operator*() [7/10]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorMoveable< TensorNetwork > &&  _rhs 
)

Definition at line 318 of file indexedTensorReadOnly.cpp.

◆ operator*() [8/10]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator* ( IndexedTensorMoveable< TensorNetwork > &&  _lhs,
IndexedTensorMoveable< TensorNetwork > &&  _rhs 
)

Definition at line 322 of file indexedTensorReadOnly.cpp.

◆ operator*() [9/10]

template IndexedTensorMoveable<Tensor> xerus::internal::operator* ( IndexedTensorReadOnly< Tensor > &&  _tensor,
const value_t  _factor 
)

◆ operator*() [10/10]

template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator* ( IndexedTensorReadOnly< TensorNetwork > &&  _tensor,
const value_t  _factor 
)

◆ operator*()

template IndexedTensorMoveable<Tensor> xerus::internal::operator*<Tensor > ( const value_t  _factor,
IndexedTensorReadOnly< Tensor > &&  _tensor 
)

◆ operator*()

template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator*<TensorNetwork > ( const value_t  _factor,
IndexedTensorReadOnly< TensorNetwork > &&  _tensor 
)

◆ operator+() [1/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 212 of file indexedTensorReadOnly.cpp.

◆ operator+() [2/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorMoveable< Tensor > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 219 of file indexedTensorReadOnly.cpp.

◆ operator+() [3/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorMoveable< Tensor > &&  _rhs 
)

Definition at line 226 of file indexedTensorReadOnly.cpp.

◆ operator+() [4/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorMoveable< Tensor > &&  _lhs,
IndexedTensorMoveable< Tensor > &&  _rhs 
)

Definition at line 230 of file indexedTensorReadOnly.cpp.

◆ operator+() [5/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 268 of file indexedTensorReadOnly.cpp.

◆ operator+() [6/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator+ ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 272 of file indexedTensorReadOnly.cpp.

◆ operator+() [7/7]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator+ ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 259 of file indexedTensorReadOnly.cpp.

◆ operator,() [1/2]

IndexedTensorList xerus::internal::operator, ( IndexedTensor< Tensor > &&  _first,
IndexedTensor< Tensor > &&  _second 
)

Using the "," operator tuples of writeable indexed tensor can be created.

Parameters
_firstthe first element of the tuple.
_secondthe second element of the tuple.
Returns
an IndexedTensorList representing the desired 2-tuple.

Definition at line 43 of file indexedTensorList.cpp.

◆ operator,() [2/2]

IndexedTensorList xerus::internal::operator, ( IndexedTensorList &&  _first,
IndexedTensor< Tensor > &&  _second 
)

Using the "," operator tuples of writeable indexed tensor can be created.

Parameters
_firstan existing tuple of writeable indexed tensor.
_seconda further writeable indexed tensor that shall be appended to the existing tuple.
Returns
an IndexedTensorList representing the desired (n+1)-tuple.

Definition at line 47 of file indexedTensorList.cpp.

◆ operator-() [1/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 235 of file indexedTensorReadOnly.cpp.

◆ operator-() [2/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorMoveable< Tensor > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 242 of file indexedTensorReadOnly.cpp.

◆ operator-() [3/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorMoveable< Tensor > &&  _rhs 
)

Definition at line 249 of file indexedTensorReadOnly.cpp.

◆ operator-() [4/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorMoveable< Tensor > &&  _lhs,
IndexedTensorMoveable< Tensor > &&  _rhs 
)

Definition at line 253 of file indexedTensorReadOnly.cpp.

◆ operator-() [5/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorReadOnly< Tensor > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 280 of file indexedTensorReadOnly.cpp.

◆ operator-() [6/7]

IndexedTensorMoveable< Tensor > xerus::internal::operator- ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< Tensor > &&  _rhs 
)

Definition at line 284 of file indexedTensorReadOnly.cpp.

◆ operator-() [7/7]

IndexedTensorMoveable< TensorNetwork > xerus::internal::operator- ( IndexedTensorReadOnly< TensorNetwork > &&  _lhs,
IndexedTensorReadOnly< TensorNetwork > &&  _rhs 
)

Definition at line 276 of file indexedTensorReadOnly.cpp.

◆ operator/() [1/4]

template<class tensor_type >
IndexedTensorMoveable<tensor_type> xerus::internal::operator/ ( IndexedTensorMoveable< tensor_type > &&  _tensor,
const value_t  _divisor 
)
inline

Definition at line 94 of file indexedTensorMoveable.h.

◆ operator/() [2/4]

template<class tensor_type >
IndexedTensorMoveable< tensor_type > xerus::internal::operator/ ( IndexedTensorReadOnly< tensor_type > &&  _tensor,
const value_t  _divisor 
)

Definition at line 202 of file indexedTensorReadOnly.cpp.

◆ operator/() [3/4]

template IndexedTensorMoveable<Tensor> xerus::internal::operator/ ( IndexedTensorReadOnly< Tensor > &&  _tensor,
const value_t  _divisor 
)

◆ operator/() [4/4]

template IndexedTensorMoveable<TensorNetwork> xerus::internal::operator/ ( IndexedTensorReadOnly< TensorNetwork > &&  _tensor,
const value_t  _divisor 
)

◆ score_big_tensor()

double xerus::internal::score_big_tensor ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 121 of file contractionHeuristic.cpp.

◆ score_littlestep()

double xerus::internal::score_littlestep ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 128 of file contractionHeuristic.cpp.

◆ score_mn()

double xerus::internal::score_mn ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 112 of file contractionHeuristic.cpp.

◆ score_r()

double xerus::internal::score_r ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 118 of file contractionHeuristic.cpp.

◆ score_size()

double xerus::internal::score_size ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 109 of file contractionHeuristic.cpp.

◆ score_speed()

double xerus::internal::score_speed ( double  _m,
double  _n,
double  _r,
double  _sparsity1,
double  _sparsity2 
)

Definition at line 115 of file contractionHeuristic.cpp.

◆ sum_traces() [1/2]

void xerus::internal::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 
)
inline

Definition at line 159 of file indexedTensor_tensor_evaluate.cpp.

◆ sum_traces() [2/2]

void xerus::internal::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 
)
inline

Definition at line 171 of file indexedTensor_tensor_evaluate.cpp.

Variable Documentation

◆ cholmodObject

thread_local CholmodCommon xerus::internal::cholmodObject

Definition at line 81 of file cholmod_wrapper.cpp.

◆ contractionHeuristics

const std::vector< ContractionHeuristic > xerus::internal::contractionHeuristics
Initial value:
{
&greedy_heuristic<&score_size>,
&greedy_heuristic<&score_mn>,
&greedy_heuristic<&score_speed>,
&greedy_heuristic<&score_big_tensor>,
&greedy_heuristic<&score_littlestep>
}
void exchange_heuristic(double &_bestCost, std::vector< std::pair< size_t, size_t >> &_contractions, TensorNetwork _network)

Definition at line 372 of file contractionHeuristic.cpp.