|
MADNESS 0.10.1
|
A tensor is a multidimensional array. More...
#include <tensor.h>


Public Types | |
| typedef TensorTypeData< T >::float_scalar_type | float_scalar_type |
| C++ typename of the floating point type associated with scalar real type. | |
| typedef TensorTypeData< T >::scalar_type | scalar_type |
| C++ typename of the real type associated with a complex type. | |
| typedef T | type |
| C++ typename of this tensor. | |
Public Member Functions | |
| Tensor () | |
| Default constructor does not allocate any data and sets ndim=-1, size=0, _p=0, and id. | |
| Tensor (const std::vector< long > &d, bool dozero=true) | |
| Create and optionally zero new n-d tensor. This is the most general constructor. | |
| Tensor (const Tensor< T > &t) | |
| Copy constructor is shallow (same as assignment). | |
| Tensor (long d0) | |
| Create and zero new 1-d tensor. | |
| Tensor (long d0, long d1) | |
| Create and zero new 2-d tensor. | |
| Tensor (long d0, long d1, long d2) | |
| Create and zero new 3-d tensor. | |
| Tensor (long d0, long d1, long d2, long d3) | |
| Create and zero new 4-d tensor. | |
| Tensor (long d0, long d1, long d2, long d3, long d4) | |
| Create and zero new 5-d tensor. | |
| Tensor (long d0, long d1, long d2, long d3, long d4, long d5) | |
| Create and zero new 6-d tensor. | |
| Tensor (long nd, const long d[], bool dozero=true) | |
| Politically incorrect general constructor. | |
| virtual | ~Tensor () |
| scalar_type | absmax (long *ind=0) const |
| Return the absolute maximum value (and if ind is non-null, its index) in the Tensor. | |
| scalar_type | absmin (long *ind=0) const |
| Return the absolute minimum value (and if ind is non-null, its index) in the Tensor. | |
| BaseTensor * | base () |
| Returns a pointer to the base class. | |
| const BaseTensor * | base () const |
| Returns a pointer to the base class. | |
| template<class Q> | |
| TensorIterator< T, Q > | binary_iterator (const Tensor< Q > &q, long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const |
| Return iterator over two tensors. | |
| void | clear () |
| Frees all memory and resests to state of default constructor. | |
| template<class Q> | |
| bool | conforms (const Tensor< Q > &t) const |
Test if *this and t conform. | |
| Tensor< T > & | conj () |
| Inplace complex conjugate. | |
| Tensor< T > | cycledim (long nshift, long start, long end) |
| Returns new view/tensor cycling the sub-dimensions (start,...,end) with shift steps. | |
| const Tensor< T > | cycledim (long nshift, long start, long end) const |
| Returns new view/tensor cycling the sub-dimensions (start,...,end) with shift steps. | |
| Tensor< T > & | emul (const Tensor< T > &t) |
| Inplace multiply by corresponding elements of argument Tensor. | |
| const TensorIterator< T > & | end () const |
| End point for forward iteration. | |
| Tensor< T > & | fill (T x) |
| Inplace fill with a scalar (legacy name). | |
| Tensor< T > & | fillindex () |
| Inplace fill with the index of each element. | |
| Tensor< T > & | fillrandom () |
Inplace fill with random values ( [0,1] for floats, [0,MAXSIZE] for integers). | |
| Tensor< T > | flat () |
| Returns new view/tensor rehshaping to flat (1-d) tensor. | |
| const Tensor< T > | flat () const |
| Returns new view/tensor rehshaping to flat (1-d) tensor. | |
| Tensor< T > | fusedim (long i) |
Returns new view/tensor fusing contiguous dimensions i and i+1. | |
| const Tensor< T > | fusedim (long i) const |
Returns new view/tensor fusing contiguous dimensions i and i+1. | |
| Tensor< T > & | gaxpy (T alpha, const Tensor< T > &other, T beta) |
| Inplace generalized saxpy ... this = this*alpha + other*beta. | |
| bool | has_data () const |
| Tensor< T > | mapdim (const std::vector< long > &map) |
| Returns new view/tensor permuting the dimensions. | |
| const Tensor< T > | mapdim (const std::vector< long > &map) const |
| Returns new view/tensor permuting the dimensions. | |
| double_complex | max (long *ind) const |
| float_complex | max (long *ind) const |
| double_complex | max (long *ind) const |
| float_complex | max (long *ind) const |
| T | max (long *ind=0) const |
| Return the maximum value (and if ind is non-null, its index) in the Tensor. | |
| double_complex | min (long *ind) const |
| float_complex | min (long *ind) const |
| double_complex | min (long *ind) const |
| float_complex | min (long *ind) const |
| T | min (long *ind=0) const |
| Return the minimum value (and if ind is non-null, its index) in the Tensor. | |
| float_scalar_type | normf () const |
| Returns the Frobenius norm of the tensor. | |
| operator bool () const noexcept | |
| convenience for testing if tensor is empty (i.e., has no data) | |
| template<class Q> | |
| operator Tensor< Q > () const | |
| Type conversion makes a deep copy. | |
| bool | operator! () const noexcept |
| convenience for testing if tensor is empty (i.e., has no data) | |
| T & | operator() (const long ind[]) |
| Politically incorrect general indexing operation without bounds checking. | |
| const T & | operator() (const long ind[]) const |
| Politically incorrect general indexing operation without bounds checking. | |
| SliceTensor< T > | operator() (const Slice &s0) |
| Return a 1d SliceTensor that views the specified range of the 1d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0) const |
| Return a 1d SliceTensor that views the specified range of the 1d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1) |
| Return a 2d SliceTensor that views the specified range of the 2d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1) const |
| Return a 2d constant Tensor that views the specified range of the 2d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2) |
| Return a 3d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2) const |
| Return a 3d constant Tensor that views the specified range of the 3d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3) |
| Return a 1-4d SliceTensor that views the specified range of the 4d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3) const |
| Return a 1-4d constant Tensor that views the specified range of the 4d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4) |
| Return a 1-5d SliceTensor that views the specified range of the 5d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4) const |
| Return a 1-5d constant Tensor that views the specified range of the 5d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4, const Slice &s5) |
| Return a 1-6d SliceTensor that views the specified range of the 6d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1, const Slice &s2, const Slice &s3, const Slice &s4, const Slice &s5) const |
| Return a 1-6d constant Tensor that views the specified range of the 6d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, const Slice &s1, long k) |
| Return a 2d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, const Slice &s1, long k) const |
| Return a 2d constant Tensor that views the specified range of the 3d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, long j) |
| Return a 1d SliceTensor that views the specified range of the 2d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, long j) const |
| Return a 1d constant Tensor that views the specified range of the 2d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, long j, const Slice &s2) |
| Return a 2d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, long j, const Slice &s2) const |
| Return a 2d constant Tensor that views the specified range of the 3d Tensor. | |
| SliceTensor< T > | operator() (const Slice &s0, long j, long k) |
| Return a 1d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (const Slice &s0, long j, long k) const |
| Return a 1d constant Tensor that views the specified range of the 3d Tensor. | |
| SliceTensor< T > | operator() (const std::array< Slice, TENSOR_MAXDIM > &s) |
| General slicing operation. | |
| const Tensor< T > | operator() (const std::array< Slice, TENSOR_MAXDIM > &s) const |
| General slicing operation (const). | |
| T & | operator() (const std::vector< long > ind) |
| General indexing operation with bounds checking. | |
| const T & | operator() (const std::vector< long > ind) const |
| General indexing operation with bounds checking. | |
| SliceTensor< T > | operator() (const std::vector< Slice > &s) |
| General slicing operation. | |
| const Tensor< T > | operator() (const std::vector< Slice > &s) const |
| General slicing operation (const). | |
| T & | operator() (long i) |
| 1-d indexing operation without bounds checking. | |
| const T & | operator() (long i) const |
| 1-d indexing operation without bounds checking. | |
| SliceTensor< T > | operator() (long i, const Slice &s1) |
| Return a 1d SliceTensor that views the specified range of the 2d Tensor. | |
| const Tensor< T > | operator() (long i, const Slice &s1) const |
| Return a 1d SliceTensor that views the specified range of the 2d Tensor. | |
| SliceTensor< T > | operator() (long i, const Slice &s1, const Slice &s2) |
| Return a 2d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (long i, const Slice &s1, const Slice &s2) const |
| Return a 2d constant Tensor that views the specified range of the 3d Tensor. | |
| SliceTensor< T > | operator() (long i, const Slice &s1, long k) |
| Return a 1d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (long i, const Slice &s1, long k) const |
| Return a 1d constant Tensor that views the specified range of the 3d Tensor. | |
| T & | operator() (long i, long j) |
| 2-d indexing operation without bounds checking. | |
| const T & | operator() (long i, long j) const |
| 2-d indexing operation without bounds checking. | |
| SliceTensor< T > | operator() (long i, long j, const Slice &s2) |
| Return a 1d SliceTensor that views the specified range of the 3d Tensor. | |
| const Tensor< T > | operator() (long i, long j, const Slice &s2) const |
| Return a 1d constant Tensor that views the specified range of the 3d Tensor. | |
| T & | operator() (long i, long j, long k) |
| 3-d indexing operation without bounds checking. | |
| const T & | operator() (long i, long j, long k) const |
| 3-d indexing operation without bounds checking. | |
| T & | operator() (long i, long j, long k, long l) |
| 4-d indexing operation without bounds checking. | |
| const T & | operator() (long i, long j, long k, long l) const |
| 4-d indexing operation without bounds checking. | |
| T & | operator() (long i, long j, long k, long l, long m) |
| 5-d indexing operation without bounds checking. | |
| const T & | operator() (long i, long j, long k, long l, long m) const |
| 5-d indexing operation without bounds checking. | |
| T & | operator() (long i, long j, long k, long l, long m, long n) |
| 6-d indexing operation without bounds checking. | |
| const T & | operator() (long i, long j, long k, long l, long m, long n) const |
| 6-d indexing operation without bounds checking. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type | operator* (const Q &x) const |
| Multiplication of tensor by a scalar of a supported type to produce a new tensor. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< T > & >::type | operator*= (const Q &x) |
| Inplace multiplication by scalar of supported type. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type | operator+ (const Q &x) const |
| Add a scalar of the same type to all elements of a tensor producing a new tensor. | |
| template<typename Q> | |
| Tensor< TENSOR_RESULT_TYPE(T, Q) > | operator+ (const Tensor< Q > &t) const |
| Addition of two tensors to produce a new tensor. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< T > & >::type | operator+= (const Q &x) |
| Inplace increment by scalar of supported type. | |
| template<typename Q> | |
| Tensor< T > & | operator+= (const Tensor< Q > &t) |
| Inplace addition of two tensors. | |
| Tensor< T > | operator- () const |
| Unary negation producing a new tensor. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type | operator- (const Q &x) const |
| Subtract a scalar of the same type from all elements producing a new tensor. | |
| template<typename Q> | |
| Tensor< TENSOR_RESULT_TYPE(T, Q) > | operator- (const Tensor< Q > &t) const |
| Subtraction of two tensors to produce a new tensor. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< T > & >::type | operator-= (const Q &x) |
| Inplace decrement by scalar of supported type. | |
| template<typename Q> | |
| Tensor< T > & | operator-= (const Tensor< Q > &t) |
| Inplace subtraction of two tensors. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< TENSOR_RESULT_TYPE(T, Q)> >::type | operator/ (const Q &x) const |
| Divide tensor by a scalar of a supported type to produce a new tensor. | |
| Tensor< T > & | operator= (const Tensor< T > &t) |
| Assignment is shallow (same as copy constructor). | |
| Tensor< T > & | operator= (T x) |
| Inplace fill tensor with scalar. | |
| T & | operator[] (long i) |
1-d indexing operation using [] without bounds checking. | |
| const T & | operator[] (long i) const |
1-d indexing operation using [] without bounds checking. | |
| T | product () const |
| Return the product of all elements of the tensor. | |
| T * | ptr () |
| Returns a pointer to the internal data. | |
| const T * | ptr () const |
| Returns a pointer to the internal data. | |
| Tensor< T > | reshape (const std::vector< long > &d) |
| Returns new view/tensor reshaping size/number of dimensions to conforming tensor. | |
| const Tensor< T > | reshape (const std::vector< long > &d) const |
| Returns new view/tensor reshaping size/number of dimensions to conforming tensor. | |
| Tensor< T > | reshape (int ndimnew, const long *d) |
| Returns new view/tensor reshaping size/number of dimensions to conforming tensor. | |
| const Tensor< T > | reshape (int ndimnew, const long *d) const |
| Returns new view/tensor reshaping size/number of dimensions to conforming tensor. | |
| Tensor< T > | reshape (long dim0) |
| Returns new view/tensor rehapings to conforming 1-d tensor with given dimension. | |
| const Tensor< T > | reshape (long dim0) const |
| Returns new view/tensor rehapings to conforming 1-d tensor with given dimension. | |
| Tensor< T > | reshape (long dim0, long dim1) |
| Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions. | |
| const Tensor< T > | reshape (long dim0, long dim1) const |
| Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions. | |
| Tensor< T > | reshape (long dim0, long dim1, long dim2) |
| Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions. | |
| const Tensor< T > | reshape (long dim0, long dim1, long dim2) const |
| Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions. | |
| Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3) |
| Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions. | |
| const Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3) const |
| Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions. | |
| Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3, long dim4) |
| Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions. | |
| const Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3, long dim4) const |
| Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions. | |
| Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3, long dim4, long dim5) |
| Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions. | |
| const Tensor< T > | reshape (long dim0, long dim1, long dim2, long dim3, long dim4, long dim5) const |
| Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions. | |
| template<typename Q> | |
| IsSupported< TensorTypeData< Q >, Tensor< T > & >::type | scale (Q x) |
| Inplace multiplication by scalar of supported type (legacy name). | |
| Tensor< T > & | screen (double x) |
Inplace set elements of *this less than x in absolute magnitude to zero. | |
| Tensor< T > | splitdim (long i, long dimi0, long dimi1) |
Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor. | |
| const Tensor< T > | splitdim (long i, long dimi0, long dimi1) const |
Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor. | |
| T | sum () const |
| Returns the sum of all elements of the tensor. | |
| T | sumsq () const |
| Returns the sum of the squares of the elements. | |
| Tensor< T > | swapdim (long idim, long jdim) |
Returns new view/tensor swaping dimensions i and j. | |
| const Tensor< T > | swapdim (long idim, long jdim) const |
Returns new view/tensor swaping dimensions i and j. | |
| template<class Q> | |
| TENSOR_RESULT_TYPE (T, Q) trace(const Tensor< Q > &t) const | |
| Return the trace of two tensors (no complex conjugate invoked). | |
| template<class Q> | |
| TENSOR_RESULT_TYPE (T, Q) trace_conj(const Tensor< Q > &t) const | |
| Return the trace of two tensors with complex conjugate of the leftmost (i.e., this). | |
| template<class Q, class R> | |
| TensorIterator< T, Q, R > | ternary_iterator (const Tensor< Q > &q, const Tensor< R > &r, long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const |
| Return iterator over three tensors. | |
| TensorIterator< T > | unary_iterator (long iterlevel=0, bool optimize=true, bool fusedim=true, long jdim=default_jdim) const |
| Return iterator over single tensor. | |
| template<typename opT> | |
| Tensor< T > & | unaryop (opT &op) |
| Inplace apply a unary function to each element of the tensor. | |
| Public Member Functions inherited from madness::BaseTensor | |
| BaseTensor () | |
| virtual | ~BaseTensor () |
| bool | conforms (const BaseTensor *t) const |
| Returns true if this and *t are the same shape and size. | |
| long | dim (int i) const |
Returns the size of dimension i. | |
| const long * | dims () const |
| Returns the array of tensor dimensions. | |
| long | id () const |
Returns the typeid of the tensor (c.f., TensorTypeData<T> ). | |
| bool | iscontiguous () const |
| Returns true if the tensor refers to contiguous memory locations. | |
| long | ndim () const |
| Returns the number of dimensions in the tensor. | |
| long | size () const |
| Returns the number of elements in the tensor. | |
| long | stride (int i) const |
Returns the stride associated with dimension i. | |
| const long * | strides () const |
| Returns the array of tensor strides. | |
Static Public Member Functions | |
| static bool | bounds_checking () |
| Return true if bounds checking was enabled at compile time. | |
| Static Public Member Functions inherited from madness::BaseTensor | |
| static int | get_instance_count () |
| Returns the count of all current instances of tensors & slice tensors of all types. | |
Protected Member Functions | |
| void | allocate (long nd, const long d[], bool dozero) |
| void | deallocate () |
| Protected Member Functions inherited from madness::BaseTensor | |
| void | cycledim_inplace (long shift, long start, long end) |
| Cyclic shift of dimensions. | |
| void | flat_inplace () |
| Reshapes the tensor inplace into 1D. | |
| void | fusedim_inplace (long i) |
Fuses dimensions i and i+1. | |
| void | mapdim_inplace (const std::vector< long > &map) |
| General permutation of dimensions. | |
| void | reshape_inplace (const std::vector< long > &d) |
| Reshapes the tensor inplace. | |
| void | reshape_inplace (int ndimnew, const long *d) |
| Reshapes the tensor inplace. | |
| void | set_dims_and_size (long nd, const long d[]) |
| void | splitdim_inplace (long i, long dimi0, long dimi1) |
Splits dimension i. | |
| void | swapdim_inplace (long i, long j) |
| Swaps the dimensions. | |
Protected Attributes | |
| T *MADNESS_RESTRICT | _p |
| TENSOR_SHARED_PTR< T > | _shptr |
| Protected Attributes inherited from madness::BaseTensor | |
| long | _dim [TENSOR_MAXDIM] |
| Size of each dimension. | |
| long | _id |
| Id from TensorTypeData<T> in type_data.h. | |
| long | _ndim |
| Number of dimensions (-1=invalid; 0=no supported; >0=tensor). | |
| long | _size |
| Number of elements in the tensor. | |
| long | _stride [TENSOR_MAXDIM] |
| Increment between elements in each dimension. | |
Friends | |
| template<class U> | |
| class | SliceTensor |
A tensor is a multidimensional array.
| typedef TensorTypeData<T>::float_scalar_type madness::Tensor< T >::float_scalar_type |
C++ typename of the floating point type associated with scalar real type.
| typedef TensorTypeData<T>::scalar_type madness::Tensor< T >::scalar_type |
C++ typename of the real type associated with a complex type.
| typedef T madness::Tensor< T >::type |
C++ typename of this tensor.
|
inline |
Default constructor does not allocate any data and sets ndim=-1, size=0, _p=0, and id.
|
inline |
Copy constructor is shallow (same as assignment).
Caveat emptor: The shallow copy constructor has many virtues but enables you to violate constness with simple code such as
|
inlineexplicit |
Create and zero new 1-d tensor.
| [in] | d0 | Size of dimension 0 |
|
inlineexplicit |
Create and zero new 2-d tensor.
| [in] | d0 | Size of dimension 0 |
| [in] | d1 | Size of dimension 1 |
|
inlineexplicit |
Create and zero new 3-d tensor.
| [in] | d0 | Size of dimension 0 |
| [in] | d1 | Size of dimension 1 |
| [in] | d2 | Size of dimension 2 |
|
inlineexplicit |
Create and zero new 4-d tensor.
| [in] | d0 | Size of dimension 0 |
| [in] | d1 | Size of dimension 1 |
| [in] | d2 | Size of dimension 2 |
| [in] | d3 | Size of dimension 3 |
|
inlineexplicit |
Create and zero new 5-d tensor.
| [in] | d0 | Size of dimension 0 |
| [in] | d1 | Size of dimension 1 |
| [in] | d2 | Size of dimension 2 |
| [in] | d3 | Size of dimension 3 |
| [in] | d4 | Size of dimension 4 |
|
inlineexplicit |
Create and zero new 6-d tensor.
| [in] | d0 | Size of dimension 0 |
| [in] | d1 | Size of dimension 1 |
| [in] | d2 | Size of dimension 2 |
| [in] | d3 | Size of dimension 3 |
| [in] | d4 | Size of dimension 4 |
| [in] | d5 | Size of dimension 5 |
|
inlineexplicit |
Create and optionally zero new n-d tensor. This is the most general constructor.
| [in] | d | Vector containing size of each dimension, number of dimensions inferred from vector size. |
| [in] | dozero | If true (default) the tensor is initialized to zero |
|
inlineexplicit |
Politically incorrect general constructor.
| [in] | nd | Number of dimensions |
| [in] | d | Size of each dimension |
| [in] | dozero | If true (default) the tensor is initialized to zero |
|
inlinevirtual |
|
inline |
Return the absolute maximum value (and if ind is non-null, its index) in the Tensor.
|
inline |
Return the absolute minimum value (and if ind is non-null, its index) in the Tensor.
|
inlineprotected |
|
inline |
Returns a pointer to the base class.
|
inline |
Returns a pointer to the base class.
|
inline |
Return iterator over two tensors.
|
inlinestatic |
Return true if bounds checking was enabled at compile time.
Referenced by main().
|
inline |
Frees all memory and resests to state of default constructor.
|
inline |
Test if *this and t conform.
|
inline |
Inplace complex conjugate.
|
inline |
|
inline |
|
inlineprotected |
|
inline |
Inplace multiply by corresponding elements of argument Tensor.
|
inline |
End point for forward iteration.
|
inline |
Inplace fill with a scalar (legacy name).
| [in] | x | Value used to fill tensor via assigment |
Referenced by transform3d(), transform3d_3c(), and xc_rks_generic_lda().
|
inline |
Inplace fill with the index of each element.
Each element is assigned it's logical index according to this loop structure
|
inline |
Inplace fill with random values ( [0,1] for floats, [0,MAXSIZE] for integers).
|
inline |
Returns new view/tensor rehshaping to flat (1-d) tensor.
Referenced by xc_rks_generic_lda().
|
inline |
Returns new view/tensor rehshaping to flat (1-d) tensor.
|
inline |
Returns new view/tensor fusing contiguous dimensions i and i+1.
|
inline |
Returns new view/tensor fusing contiguous dimensions i and i+1.
|
inline |
Inplace generalized saxpy ... this = this*alpha + other*beta.
Referenced by xc_rks_generic_lda().
|
inline |
Referenced by main().
|
inline |
Returns new view/tensor permuting the dimensions.
| [in] | map | Old dimension i becomes new dimension map[i] |
|
inline |
Returns new view/tensor permuting the dimensions.
| double_complex madness::Tensor< double_complex >::max | ( | long * | ind | ) | const |
| float_complex madness::Tensor< float_complex >::max | ( | long * | ind | ) | const |
| double_complex madness::Tensor< double_complex >::max | ( | long * | ind | ) | const |
| float_complex madness::Tensor< float_complex >::max | ( | long * | ind | ) | const |
|
inline |
Return the maximum value (and if ind is non-null, its index) in the Tensor.
| double_complex madness::Tensor< double_complex >::min | ( | long * | ind | ) | const |
| float_complex madness::Tensor< float_complex >::min | ( | long * | ind | ) | const |
| double_complex madness::Tensor< double_complex >::min | ( | long * | ind | ) | const |
| float_complex madness::Tensor< float_complex >::min | ( | long * | ind | ) | const |
|
inline |
Return the minimum value (and if ind is non-null, its index) in the Tensor.
|
inline |
Returns the Frobenius norm of the tensor.
Referenced by bind_tensor().
|
inlineexplicitnoexcept |
convenience for testing if tensor is empty (i.e., has no data)
Type conversion makes a deep copy.
|
inlinenoexcept |
convenience for testing if tensor is empty (i.e., has no data)
|
inline |
Politically incorrect general indexing operation without bounds checking.
| [in] | ind | Array containing index for each dimension |
|
inline |
Politically incorrect general indexing operation without bounds checking.
| [in] | ind | Array containing index for each dimension |
|
inline |
Return a 1d SliceTensor that views the specified range of the 1d Tensor.
|
inline |
|
inline |
Return a 2d SliceTensor that views the specified range of the 2d Tensor.
|
inline |
|
inline |
Return a 3d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
Return a 1-4d SliceTensor that views the specified range of the 4d Tensor.
|
inline |
|
inline |
Return a 1-5d SliceTensor that views the specified range of the 5d Tensor.
|
inline |
|
inline |
Return a 1-6d SliceTensor that views the specified range of the 6d Tensor.
|
inline |
|
inline |
Return a 2d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
Return a 1d SliceTensor that views the specified range of the 2d Tensor.
|
inline |
|
inline |
Return a 2d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
Return a 1d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
General slicing operation.
| [in] | s | array containing slice for each dimension |
|
inline |
|
inline |
General indexing operation with bounds checking.
| [in] | ind | Vector containing index for each dimension |
|
inline |
General indexing operation with bounds checking.
| [in] | ind | Vector containing index for each dimension |
|
inline |
General slicing operation.
| [in] | s | Vector containing slice for each dimension |
|
inline |
|
inline |
1-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
|
inline |
1-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
|
inline |
Return a 1d SliceTensor that views the specified range of the 2d Tensor.

|
inline |
|
inline |
Return a 2d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
Return a 1d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
2-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
|
inline |
2-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
|
inline |
Return a 1d SliceTensor that views the specified range of the 3d Tensor.
|
inline |
|
inline |
3-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
|
inline |
3-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
|
inline |
4-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
|
inline |
4-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
|
inline |
5-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
| [in] | m | index for dimension 4 |
|
inline |
5-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
| [in] | m | index for dimension 4 |
|
inline |
6-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
| [in] | m | index for dimension 4 |
| [in] | n | index for dimension 5 |
|
inline |
6-d indexing operation without bounds checking.
| [in] | i | index for dimension 0 |
| [in] | j | index for dimension 1 |
| [in] | k | index for dimension 2 |
| [in] | l | index for dimension 3 |
| [in] | m | index for dimension 4 |
| [in] | n | index for dimension 5 |
|
inline |
Multiplication of tensor by a scalar of a supported type to produce a new tensor.
| [in] | x | Scalar value |
|
inline |
Inplace multiplication by scalar of supported type.
| [in] | x | Scalar value |
|
inline |
Add a scalar of the same type to all elements of a tensor producing a new tensor.
| [in] | x | Scalar value |
|
inline |
Addition of two tensors to produce a new tensor.
| [in] | t | Conforming tensor to be added out-of-place to this tensor |
|
inline |
Inplace increment by scalar of supported type.
| [in] | x | Scalar value |
|
inline |
Inplace addition of two tensors.
| [in] | t | Conforming tensor to be added in-place to this tensor |
|
inline |
Unary negation producing a new tensor.
|
inline |
Subtract a scalar of the same type from all elements producing a new tensor.
| [in] | x | Scalar value |
|
inline |
Subtraction of two tensors to produce a new tensor.
| [in] | t | Conforming tensor to be subtracted out-of-place from this tensor |
|
inline |
Inplace decrement by scalar of supported type.
| [in] | x | Scalar value |
|
inline |
Inplace subtraction of two tensors.
| [in] | t | Conforming tensor to be subtracted in-place from this tensor |
|
inline |
Divide tensor by a scalar of a supported type to produce a new tensor.
| [in] | x | Scalar value |
|
inline |
Assignment is shallow (same as copy constructor).
Caveat emptor: The shallow assignment has many virtues but enables you to violate constness with simple code such as
|
inline |
Inplace fill tensor with scalar.
| [in] | x | Value used to fill tensor via assigment |
|
inline |
1-d indexing operation using [] without bounds checking.
| [in] | i | index for dimension 0 |
|
inline |
1-d indexing operation using [] without bounds checking.
| [in] | i | index for dimension 0 |
|
inline |
Return the product of all elements of the tensor.
|
inline |
Returns a pointer to the internal data.
Referenced by transform3d(), transform3d_3c(), and xc_rks_generic_lda().
|
inline |
Returns a pointer to the internal data.
|
inline |
Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
| [in] | d | Array containing size of each new dimension |
|
inline |
Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
| [in] | d | Array containing size of each new dimension |
|
inline |
Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
| [in] | ndimnew | Number of dimensions in the result |
| [in] | d | Array containing size of each new dimension |
|
inline |
Returns new view/tensor reshaping size/number of dimensions to conforming tensor.
| [in] | ndimnew | Number of dimensions in the result |
| [in] | d | Array containing size of each new dimension |
|
inline |
Returns new view/tensor rehapings to conforming 1-d tensor with given dimension.
| [in] | dim0 | Size of new dimension 0 |
|
inline |
Returns new view/tensor rehapings to conforming 1-d tensor with given dimension.
| [in] | dim0 | Size of new dimension 0 |
|
inline |
Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
|
inline |
Returns new view/tensor rehaping to conforming 2-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
|
inline |
Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
|
inline |
Returns new view/tensor rehaping to conforming 3-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
|
inline |
Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
|
inline |
Returns new view/tensor rehaping to conforming 4-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
|
inline |
Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
| [in] | dim4 | Size of new dimension 4 |
|
inline |
Returns new view/tensor rehaping to conforming 5-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
| [in] | dim4 | Size of new dimension 4 |
|
inline |
Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
| [in] | dim4 | Size of new dimension 4 |
| [in] | dim5 | Size of new dimension 5 |
|
inline |
Returns new view/tensor rehaping to conforming 6-d tensor with given dimensions.
| [in] | dim0 | Size of new dimension 0 |
| [in] | dim1 | Size of new dimension 1 |
| [in] | dim2 | Size of new dimension 2 |
| [in] | dim3 | Size of new dimension 3 |
| [in] | dim4 | Size of new dimension 4 |
| [in] | dim5 | Size of new dimension 5 |
|
inline |
Inplace multiplication by scalar of supported type (legacy name).
| [in] | x | Scalar value |
|
inline |
Inplace set elements of *this less than x in absolute magnitude to zero.
| [in] | x | Scalar value |
|
inline |
Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor.
|
inline |
Returns new view/tensor splitting dimension i as dimi0*dimi1 to produce conforming d+1 dimension tensor.
|
inline |
Returns the sum of all elements of the tensor.
|
inline |
Returns the sum of the squares of the elements.
|
inline |
Returns new view/tensor swaping dimensions i and j.
|
inline |
Returns new view/tensor swaping dimensions i and j.
|
inline |
Return the trace of two tensors (no complex conjugate invoked).
|
inline |
Return the trace of two tensors with complex conjugate of the leftmost (i.e., this).
|
inline |
Return iterator over three tensors.
|
inline |
Return iterator over single tensor.
|
inline |
Inplace apply a unary function to each element of the tensor.
|
friend |
|
protected |
|
protected |