|
MADNESS
version 0.9
|
Defines and implements most of Tensor. More...
#include <madness/madness_config.h>#include <madness/misc/ran.h>#include <madness/world/posixmem.h>#include <madness/world/shared_ptr.h>#include <complex>#include <vector>#include <cmath>#include <cstdlib>#include <madness/world/archive.h>#include <madness/tensor/basetensor.h>#include <madness/tensor/aligned.h>#include <madness/tensor/mxm.h>#include <madness/tensor/mtxmq.h>#include <madness/tensor/tensorexcept.h>#include <madness/tensor/tensoriter.h>
Go to the source code of this file.
Classes | |
| struct | madness::conditional_conj_struct< Q, iscomplex > |
| For real types return value, for complex return conjugate. More... | |
| struct | madness::conditional_conj_struct< Q, true > |
| For real types return value, for complex return conjugate. More... | |
| struct | madness::archive::ArchiveStoreImpl< Archive, Tensor< T > > |
| Serialize a tensor. More... | |
| struct | madness::archive::ArchiveLoadImpl< Archive, Tensor< T > > |
| Deserialize a tensor ... existing tensor is replaced. More... | |
Namespaces | |
| std | |
| madness | |
| Holds machinery to set up Functions/FuncImpls using various Factories and Interfaces. | |
| madness::detail | |
| madness::archive | |
Macros | |
| #define | HAVE_GENTENSOR 0 |
| #define | IS_ODD(n) ((n)&0x1) |
| #define | IS_UNALIGNED(p) (((unsigned long)(p))&0x7) |
| #define | TENSOR_ALIGNMENT 16 |
Enumerations | |
| enum | madness::TensorType { madness::TT_NONE, madness::TT_FULL, madness::TT_2D } |
| low rank representations of tensors (see gentensor.h) More... | |
Functions | |
| template<typename Q > | |
| Q | madness::conditional_conj (const Q &coeff) |
| For real types return value, for complex return conjugate. More... | |
| template<typename T > | |
| T | madness::detail::mynorm (T t) |
| template<typename T > | |
| T | madness::detail::mynorm (std::complex< T > t) |
| template<class T > | |
| std::ostream & | madness::operator<< (std::ostream &s, const Tensor< T > &t) |
| Print (for human consumption) a tensor to the stream. More... | |
| template<typename T , typename Q > | |
| IsSupported< TensorTypeData< Q > , Tensor< T > >::type | madness::operator+ (Q x, const Tensor< T > &t) |
| The class defines tensor op scalar ... here define scalar op tensor. More... | |
| template<typename T , typename Q > | |
| IsSupported< TensorTypeData< Q > , Tensor< T > >::type | madness::operator* (const Q &x, const Tensor< T > &t) |
| The class defines tensor op scalar ... here define scalar op tensor. More... | |
| template<typename T , typename Q > | |
| IsSupported< TensorTypeData< Q > , Tensor< T > >::type | madness::operator- (Q x, const Tensor< T > &t) |
| The class defines tensor op scalar ... here define scalar op tensor. More... | |
| template<class T > | |
| Tensor< T > | madness::copy (const Tensor< T > &t) |
| Returns a new contiguous tensor that is a deep copy of the input. More... | |
| template<class T , class Q > | |
| Tensor< TENSOR_RESULT_TYPE(T, Q)> | madness::transform_dir (const Tensor< T > &t, const Tensor< Q > &c, int axis) |
| Transforms one dimension of the tensor t by the matrix c, returns new contiguous tensor. More... | |
| template<class T > | |
| Tensor< T > | madness::transpose (const Tensor< T > &t) |
| Returns a new deep copy of the transpose of the input tensor. More... | |
| template<class T > | |
| Tensor< T > | madness::conj_transpose (const Tensor< T > &t) |
| Returns a new deep copy of the complex conjugate transpose of the input tensor. More... | |
| template<class T > | |
| Tensor< T > | madness::outer (const Tensor< T > &left, const Tensor< T > &right) |
| Outer product ... result(i,j,...,p,q,...) = left(i,k,...)*right(p,q,...) More... | |
| template<class T , class Q > | |
| Tensor< TENSOR_RESULT_TYPE(T, Q)> | madness::inner (const Tensor< T > &left, const Tensor< Q > &right, long k0=-1, long k1=0) |
| Inner product ... result(i,j,...,p,q,...) = sum(z) left(i,j,...,z)*right(z,p,q,...) More... | |
| template<class T , class Q > | |
| void | madness::inner_result (const Tensor< T > &left, const Tensor< Q > &right, long k0, long k1, Tensor< TENSOR_RESULT_TYPE(T, Q) > &result) |
| Accumulate inner product into user provided, contiguous, correctly sized result tensor. More... | |
| template<class T , class Q > | |
| Tensor< TENSOR_RESULT_TYPE(T, Q)> | madness::transform (const Tensor< T > &t, const Tensor< Q > &c) |
| Transform all dimensions of the tensor t by the matrix c. More... | |
| template<class T , class Q > | |
| Tensor< TENSOR_RESULT_TYPE(T, Q)> | madness::general_transform (const Tensor< T > &t, const Tensor< Q > c[]) |
| Transform all dimensions of the tensor t by distinct matrices c. More... | |
| template<class T , class Q > | |
| Tensor< TENSOR_RESULT_TYPE(T, Q) > & | madness::fast_transform (const Tensor< T > &t, const Tensor< Q > &c, Tensor< TENSOR_RESULT_TYPE(T, Q) > &result, Tensor< TENSOR_RESULT_TYPE(T, Q) > &workspace) |
| Restricted but heavily optimized form of transform() More... | |
| template<class T > | |
| Tensor< typename Tensor< T > ::scalar_type > | madness::abs (const Tensor< T > &t) |
| Return a new tensor holding the absolute value of each element of t. More... | |
| template<class T > | |
| Tensor< typename Tensor< T > ::scalar_type > | madness::arg (const Tensor< T > &t) |
| Return a new tensor holding the argument of each element of t (complex types only) More... | |
| template<class T > | |
| Tensor< typename Tensor< T > ::scalar_type > | madness::real (const Tensor< T > &t) |
| Return a new tensor holding the real part of each element of t (complex types only) More... | |
| template<class T > | |
| Tensor< typename Tensor< T > ::scalar_type > | madness::imag (const Tensor< T > &t) |
| Return a new tensor holding the imaginary part of each element of t (complex types only) More... | |
| template<class T > | |
| Tensor< T > | madness::conj (const Tensor< T > &t) |
| Returns a new deep copy of the complex conjugate of the input tensor (complex types only) More... | |
Defines and implements most of Tensor.
| #define HAVE_GENTENSOR 0 |
| #define IS_ODD | ( | n | ) | ((n)&0x1) |
Referenced by madness::fast_transform().
| #define IS_UNALIGNED | ( | p | ) | (((unsigned long)(p))&0x7) |
Referenced by madness::fast_transform().
| #define TENSOR_ALIGNMENT 16 |
1.8.8