|
| | 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...
|
| |