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(); |