11 #ifndef EIGEN_CXX11_TENSOR_TENSORSTORAGE_H 12 #define EIGEN_CXX11_TENSOR_TENSORSTORAGE_H 14 #ifdef EIGEN_TENSOR_STORAGE_CTOR_PLUGIN 15 #define EIGEN_INTERNAL_TENSOR_STORAGE_CTOR_PLUGIN EIGEN_TENSOR_STORAGE_CTOR_PLUGIN; 17 #define EIGEN_INTERNAL_TENSOR_STORAGE_CTOR_PLUGIN 34 template<
typename T,
typename Dimensions,
int Options>
class TensorStorage;
38 template<
typename T,
typename FixedDimensions,
int Options_>
61 static const FixedDimensions* singleton_dimensions =
new FixedDimensions();
62 return *singleton_dimensions;
70 template<
typename T,
typename IndexType,
int NumIndices_,
int Options_>
79 if (NumIndices_ == 0) {
80 m_data = internal::conditional_aligned_new_auto<T,(Options_&DontAlign)==0>(1);
89 #if EIGEN_HAS_VARIADIC_TEMPLATES 98 , m_dimensions(other.m_dimensions)
104 if (
this != &other) {
111 #if EIGEN_HAS_RVALUE_REFERENCES 114 *
this = std::move(
other);
134 if(size != currentSz)
136 internal::conditional_aligned_delete_auto<T,(Options_&DontAlign)==0>(
m_data, currentSz);
138 m_data = internal::conditional_aligned_new_auto<T,(Options_&DontAlign)==0>(
size);
139 else if (NumIndices_ == 0) {
140 m_data = internal::conditional_aligned_new_auto<T,(Options_&DontAlign)==0>(1);
146 m_dimensions = nbDimensions;
161 #endif // EIGEN_CXX11_TENSOR_TENSORSTORAGE_H EIGEN_DEVICE_FUNC T * conditional_aligned_new_auto(std::size_t size)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::ptrdiff_t array_prod(const Sizes< Indices... > &)
#define EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions & dimensions() const
DSizes< IndexType, NumIndices_ > Dimensions
EIGEN_ALIGN_MAX T m_data[MinSize]
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T * data() const
Namespace containing all symbols from the Eigen library.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T * data()
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index size() const
EIGEN_DEVICE_FUNC void resize(Index size, const array< Index, NumIndices_ > &nbDimensions)
#define EIGEN_INTERNAL_TENSOR_STORAGE_CTOR_PLUGIN
EIGEN_DEVICE_FUNC TensorStorage(Index size, const array< Index, NumIndices_ > &dimensions)
EIGEN_DEVICE_FUNC void smart_copy(const T *start, const T *end, T *target)
EIGEN_STRONG_INLINE void swap(T &a, T &b)
int EIGEN_BLAS_FUNC() swap(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy)
EIGEN_DEVICE_FUNC TensorStorage(const Self &other)
static const std::size_t Size
#define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(X)
TensorStorage< T, DSizes< IndexType, NumIndices_ >, Options_ > Self
EIGEN_DEVICE_FUNC void swap(Self &other)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorStorage()
#define EIGEN_DEVICE_FUNC
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
EIGEN_DEVICE_FUNC TensorStorage()
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const FixedDimensions & dimensions()
EIGEN_DEVICE_FUNC ~TensorStorage()
EIGEN_DEVICE_FUNC Self & operator=(const Self &other)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DenseIndex size() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T * data()
EIGEN_DEVICE_FUNC TensorStorage(internal::constructor_without_unaligned_array_assert)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T * data() const
static const std::size_t MinSize
constexpr array< t, n > repeat(t v)