| xerus
    a general purpose tensor library | 
Implementation of the (indexed) Tensor evaluation (ie. generlized transpositions). More...
#include <xerus/basic.h>#include <xerus/index.h>#include <xerus/misc/check.h>#include <xerus/tensor.h>#include <memory>#include <xerus/misc/basicArraySupport.h>#include <xerus/misc/containerSupport.h>#include <xerus/misc/performanceAnalysis.h>#include <xerus/misc/internal.h>Go to the source code of this file.
| Namespaces | |
| xerus | |
| The main namespace of xerus. | |
| xerus::internal | |
| Namespace for function and classes designated only for internal use. | |
| Macros | |
| #define | VLA(T, name) auto name##_store = xerus::misc::make_unique_array(new T); const auto & (name) = name##_store.get(); | 
| Functions | |
| 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) | 
| void | xerus::internal::evaluate (IndexedTensorWritable< Tensor > &&_out, IndexedTensorReadOnly< Tensor > &&_base) | 
| std::vector< size_t > | xerus::internal::get_dimension_vector (const std::vector< Index > &_indices) | 
| 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) | 
| std::vector< size_t > | xerus::internal::get_step_sizes (const std::vector< Index > &_indices) | 
| void | xerus::increase_indices (const size_t _i, value_t *&_outPosition, const std::vector< size_t > &_stepSizes, const std::vector< size_t > &_baseDimensions) | 
| 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) | 
| void | xerus::reshuffle (Tensor &_out, const Tensor &_base, const std::vector< size_t > &_shuffle) | 
| : Performs a simple reshuffle. Much less powerfull then a full evaluate, but more efficient.  More... | |
| Tensor | xerus::reshuffle (const Tensor &_base, const std::vector< size_t > &_shuffle) | 
| 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) | 
| 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) | 
Implementation of the (indexed) Tensor evaluation (ie. generlized transpositions).
Definition in file indexedTensor_tensor_evaluate.cpp.
| #define VLA | ( | T, | |
| name | |||
| ) | auto name##_store = xerus::misc::make_unique_array(new T); const auto & (name) = name##_store.get(); |