|
| Tensor () |
|
| Tensor (const Tensor_ &other) |
|
| Tensor (Tensor_ &&other) |
|
| ~Tensor () |
|
Tensor_ & | operator= (const Tensor_ &other) |
|
Tensor_ & | operator= (Tensor_ &&other) |
|
| Tensor (const range_type &range) |
| Construct tensor. More...
|
|
template<typename Value , typename std::enable_if< std::is_same< Value, value_type >::value &&detail::is_tensor< Value >::value >::type * = nullptr> |
| Tensor (const range_type &range, const Value &value) |
| Construct a tensor with a fill value. More...
|
|
template<typename Value , typename std::enable_if< detail::is_numeric< Value >::value >::type * = nullptr> |
| Tensor (const range_type &range, const Value &value) |
| Construct a tensor with a fill value. More...
|
|
template<typename InIter , typename std::enable_if< TiledArray::detail::is_input_iterator< InIter >::value &&! std::is_pointer< InIter >::value >::type * = nullptr> |
| Tensor (const range_type &range, InIter it) |
| Construct an evaluated tensor. More...
|
|
template<typename U > |
| Tensor (const Range &range, const U *u) |
|
template<typename T1 , typename std::enable_if< is_tensor< T1 >::value &&! std::is_same< T1, Tensor_ >::value >::type * = nullptr> |
| Tensor (const T1 &other) |
| Construct a copy of a tensor interface object. More...
|
|
template<typename T1 , typename std::enable_if< is_tensor< T1 >::value >::type * = nullptr> |
| Tensor (const T1 &other, const Permutation &perm) |
| Construct a permuted tensor copy. More...
|
|
template<typename T1 , typename Op , typename std::enable_if< is_tensor< T1 >::value &&! std::is_same< typename std::decay< Op >::type, Permutation >::value >::type * = nullptr> |
| Tensor (const T1 &other, Op &&op) |
| Copy and modify the data from other . More...
|
|
template<typename T1 , typename Op , typename std::enable_if< is_tensor< T1 >::value >::type * = nullptr> |
| Tensor (const T1 &other, Op &&op, const Permutation &perm) |
| Copy, modify, and permute the data from other . More...
|
|
template<typename T1 , typename T2 , typename Op , typename std::enable_if< is_tensor< T1, T2 >::value >::type * = nullptr> |
| Tensor (const T1 &left, const T2 &right, Op &&op) |
| Copy and modify the data from left , and right . More...
|
|
template<typename T1 , typename T2 , typename Op , typename std::enable_if< is_tensor< T1, T2 >::value >::type * = nullptr> |
| Tensor (const T1 &left, const T2 &right, Op &&op, const Permutation &perm) |
| Copy, modify, and permute the data from left , and right . More...
|
|
Tensor_ | clone () const |
|
template<typename T1 , typename std::enable_if< is_tensor< T1 >::value >::type * = nullptr> |
Tensor_ & | operator= (const T1 &other) |
|
const range_type & | range () const |
| Tensor range object accessor. More...
|
|
size_type | size () const |
| Tensor dimension size accessor. More...
|
|
const_reference | operator[] (const size_type i) const |
| Element accessor. More...
|
|
reference | operator[] (const size_type i) |
| Element accessor. More...
|
|
template<typename Index , typename std::enable_if< ! std::is_integral< Index >::value >::type * = nullptr> |
const_reference | operator[] (const Index &i) const |
| Element accessor. More...
|
|
template<typename Index , typename std::enable_if< ! std::is_integral< Index >::value >::type * = nullptr> |
reference | operator[] (const Index &i) |
| Element accessor. More...
|
|
template<typename... Index> |
reference | operator() (const Index &... idx) |
| Element accessor. More...
|
|
template<typename... Index> |
const_reference | operator() (const Index &... idx) const |
| Element accessor. More...
|
|
const_iterator | begin () const |
| Iterator factory. More...
|
|
iterator | begin () |
| Iterator factory. More...
|
|
const_iterator | end () const |
| Iterator factory. More...
|
|
iterator | end () |
| Iterator factory. More...
|
|
const_pointer | data () const |
| Data direct access. More...
|
|
pointer | data () |
| Data direct access. More...
|
|
bool | empty () const |
| Test if the tensor is empty. More...
|
|
template<typename Archive , typename std::enable_if< madness::archive::is_output_archive< Archive >::value >::type * = nullptr> |
void | serialize (Archive &ar) |
| Output serialization function. More...
|
|
template<typename Archive , typename std::enable_if< madness::archive::is_input_archive< Archive >::value >::type * = nullptr> |
void | serialize (Archive &ar) |
| Input serialization function. More...
|
|
void | swap (Tensor_ &other) |
| Swap tensor data. More...
|
|
template<typename Index > |
detail::TensorInterface< T, BlockRange > | block (const Index &lower_bound, const Index &upper_bound) |
|
detail::TensorInterface< T, BlockRange > | block (const std::initializer_list< size_type > &lower_bound, const std::initializer_list< size_type > &upper_bound) |
|
template<typename Index > |
detail::TensorInterface< const T, BlockRange > | block (const Index &lower_bound, const Index &upper_bound) const |
|
detail::TensorInterface< const T, BlockRange > | block (const std::initializer_list< size_type > &lower_bound, const std::initializer_list< size_type > &upper_bound) const |
|
Tensor_ | permute (const Permutation &perm) const |
| Create a permuted copy of this tensor. More...
|
|
template<typename Index > |
Tensor_ & | shift_to (const Index &bound_shift) |
| Shift the lower and upper bound of this tensor. More...
|
|
template<typename Index > |
Tensor_ | shift (const Index &bound_shift) const |
| Shift the lower and upper bound of this range. More...
|
|
template<typename Right , typename Op , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | binary (const Right &right, Op &&op) const |
| Use a binary, element wise operation to construct a new tensor. More...
|
|
template<typename Right , typename Op , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | binary (const Right &right, Op &&op, const Permutation &perm) const |
| Use a binary, element wise operation to construct a new, permuted tensor. More...
|
|
template<typename Right , typename Op , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ & | inplace_binary (const Right &right, Op &&op) |
| Use a binary, element wise operation to modify this tensor. More...
|
|
template<typename Op > |
Tensor_ | unary (Op &&op) const |
| Use a unary, element wise operation to construct a new tensor. More...
|
|
template<typename Op > |
Tensor_ | unary (Op &&op, const Permutation &perm) const |
| Use a unary, element wise operation to construct a new, permuted tensor. More...
|
|
template<typename Op > |
Tensor_ & | inplace_unary (Op &&op) |
| Use a unary, element wise operation to modify this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | scale (const Scalar factor) const |
| Construct a scaled copy of this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | scale (const Scalar factor, const Permutation &perm) const |
| Construct a scaled and permuted copy of this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ & | scale_to (const Scalar factor) |
| Scale this tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | add (const Right &right) const |
| Add this and other to construct a new tensors. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | add (const Right &right, const Permutation &perm) const |
| Add this and other to construct a new, permuted tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | add (const Right &right, const Scalar factor) const |
| Scale and add this and other to construct a new tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | add (const Right &right, const Scalar factor, const Permutation &perm) const |
| Scale and add this and other to construct a new, permuted tensor. More...
|
|
Tensor_ | add (const numeric_type value) const |
| Add a constant to a copy of this tensor. More...
|
|
Tensor_ | add (const numeric_type value, const Permutation &perm) const |
| Add a constant to a permuted copy of this tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ & | add_to (const Right &right) |
| Add other to this tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ & | add_to (const Right &right, const Scalar factor) |
| Add other to this tensor, and scale the result. More...
|
|
Tensor_ & | add_to (const numeric_type value) |
| Add a constant to this tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | subt (const Right &right) const |
| Subtract right from this and return the result. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | subt (const Right &right, const Permutation &perm) const |
| Subtract right from this and return the result permuted by perm . More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | subt (const Right &right, const Scalar factor) const |
| Subtract right from this and return the result scaled by a scaling factor . More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | subt (const Right &right, const Scalar factor, const Permutation &perm) const |
| Subtract right from this and return the result scaled by a scaling factor and permuted by perm . More...
|
|
Tensor_ | subt (const numeric_type value) const |
| Subtract a constant from a copy of this tensor. More...
|
|
Tensor_ | subt (const numeric_type value, const Permutation &perm) const |
| Subtract a constant from a permuted copy of this tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ & | subt_to (const Right &right) |
| Subtract right from this tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ & | subt_to (const Right &right, const Scalar factor) |
| Subtract right from and scale this tensor. More...
|
|
Tensor_ & | subt_to (const numeric_type value) |
| Subtract a constant from this tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | mult (const Right &right) const |
| Multiply this by right to create a new tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ | mult (const Right &right, const Permutation &perm) const |
| Multiply this by right to create a new, permuted tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | mult (const Right &right, const Scalar factor) const |
| Scale and multiply this by right to create a new tensor. More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | mult (const Right &right, const Scalar factor, const Permutation &perm) const |
| Scale and multiply this by right to create a new, permuted tensor. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
Tensor_ & | mult_to (const Right &right) |
| Multiply this tensor by right . More...
|
|
template<typename Right , typename Scalar , typename std::enable_if< is_tensor< Right >::value &&detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ & | mult_to (const Right &right, const Scalar factor) |
| Scale and multiply this tensor by right . More...
|
|
Tensor_ | neg () const |
| Create a negated copy of this tensor. More...
|
|
Tensor_ | neg (const Permutation &perm) const |
| Create a negated and permuted copy of this tensor. More...
|
|
Tensor_ & | neg_to () |
| Negate elements of this tensor. More...
|
|
Tensor_ | conj () const |
| Create a complex conjugated copy of this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | conj (const Scalar factor) const |
| Create a complex conjugated and scaled copy of this tensor. More...
|
|
Tensor_ | conj (const Permutation &perm) const |
| Create a complex conjugated and permuted copy of this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ | conj (const Scalar factor, const Permutation &perm) const |
| Create a complex conjugated, scaled, and permuted copy of this tensor. More...
|
|
Tensor_ & | conj_to () |
| Complex conjugate this tensor. More...
|
|
template<typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr> |
Tensor_ & | conj_to (const Scalar factor) |
| Complex conjugate and scale this tensor. More...
|
|
template<typename U , typename AU , typename V , typename std::enable_if<!detail::is_tensor_of_tensor< Tensor_, Tensor< U, AU >>::value >::type * = nullptr> |
Tensor_ | gemm (const Tensor< U, AU > &other, const V factor, const math::GemmHelper &gemm_helper) const |
| Contract this tensor with other . More...
|
|
template<typename U , typename AU , typename V , typename AV , typename W , typename std::enable_if<!detail::is_tensor_of_tensor< Tensor_, Tensor< U, AU >, Tensor< V, AV >>::value >::type * = nullptr> |
Tensor_ & | gemm (const Tensor< U, AU > &left, const Tensor< V, AV > &right, const W factor, const math::GemmHelper &gemm_helper) |
| Contract two tensors and accumulate the scaled result to this tensor. More...
|
|
value_type | trace () const |
| Generalized tensor trace. More...
|
|
template<typename ReduceOp , typename JoinOp , typename Scalar > |
decltype(auto) | reduce (ReduceOp &&reduce_op, JoinOp &&join_op, Scalar identity) const |
| Unary reduction operation. More...
|
|
template<typename Right , typename ReduceOp , typename JoinOp , typename Scalar , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
decltype(auto) | reduce (const Right &other, ReduceOp &&reduce_op, JoinOp &&join_op, Scalar identity) const |
| Binary reduction operation. More...
|
|
numeric_type | sum () const |
| Sum of elements. More...
|
|
numeric_type | product () const |
| Product of elements. More...
|
|
scalar_type | squared_norm () const |
| Square of vector 2-norm. More...
|
|
scalar_type | norm () const |
| Vector 2-norm. More...
|
|
template<typename Numeric = numeric_type> |
numeric_type | min (typename std::enable_if< detail::is_strictly_ordered< Numeric >::value >::type *=nullptr) const |
| Minimum element. More...
|
|
template<typename Numeric = numeric_type> |
numeric_type | max (typename std::enable_if< detail::is_strictly_ordered< Numeric >::value >::type *=nullptr) const |
| Maximum element. More...
|
|
scalar_type | abs_min () const |
| Absolute minimum element. More...
|
|
scalar_type | abs_max () const |
| Absolute maximum element. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
numeric_type | dot (const Right &other) const |
| Vector dot (not inner!) product. More...
|
|
template<typename Right , typename std::enable_if< is_tensor< Right >::value >::type * = nullptr> |
numeric_type | inner_product (const Right &other) const |
| Vector inner product. More...
|
|