tensor_interface.h
Scalar tensor_reduce(ReduceOp &&reduce_op, JoinOp &&join_op, Scalar identity, const T1 &tensor1, const Ts &... tensors)
Reduction operation for contiguous tensors.
Definition: kernels.h:665
result_tensor scale(const Scalar factor) const
Construct a scaled copy of this tensor.
Definition: tensor_interface.h:478
result_tensor add(const Right &right, const Scalar factor, const Perm &perm) const
Scale and add this and other to construct a new, permuted tensor.
Definition: tensor_interface.h:581
TensorInterface_ & mult_to(const Right &right, const Scalar factor)
Scale and multiply this tensor by right.
Definition: tensor_interface.h:883
result_tensor binary(const Right &right, Op &&op) const
Use a binary, element wise operation to construct a new tensor.
Definition: tensor_interface.h:327
TensorInterface_ & add_to(const Right &right)
Add other to this tensor.
Definition: tensor_interface.h:621
void reduce_op(ReduceOp &&reduce_op, JoinOp &&join_op, const Result &identity, const std::size_t n, Result &result, const Args *const ... args)
Definition: vector_op.h:628
result_tensor scale(const Scalar factor, const Perm &perm) const
Construct a scaled and permuted copy of this tensor.
Definition: tensor_interface.h:494
TensorInterface_ & operator=(TensorInterface_ &&)=delete
Type trait for extracting the scalar type of tensors and arrays.
Definition: type_traits.h:744
TensorInterface_ & inplace_binary(const Right &right, Op &&op)
Use a binary, element wise operation to modify this tensor.
Definition: tensor_interface.h:382
result_tensor add(const Right &right, const Scalar factor) const
Scale and add this and other to construct a new tensor.
Definition: tensor_interface.h:562
result_tensor add(const Right &right) const
Add this and other to construct a new tensors.
Definition: tensor_interface.h:522
result_tensor add(const numeric_type value, const Perm &perm) const
Add a constant to a permuted copy of this tensor.
Definition: tensor_interface.h:608
TensorInterface_ & shift_to(const Index &bound_shift)
Shift the lower and upper bound of this tensor view.
Definition: tensor_interface.h:276
KroneckerDeltaTile< _N >::numeric_type min(const KroneckerDeltaTile< _N > &arg)
TensorInterface_ & mult_to(const Right &right)
Multiply this tensor by right.
Definition: tensor_interface.h:867
std::add_pointer< typename std::add_const< T >::type >::type const_pointer
Element pointer type.
Definition: tensor_interface.h:99
result_tensor subt(const numeric_type value) const
Subtract a constant from a copy of this tensor.
Definition: tensor_interface.h:734
TensorInterface_ & inplace_unary(Op &&op)
Use a unary, element wise operation to modify this tensor.
Definition: tensor_interface.h:439
numeric_type reduce(ReduceOp &&reduce_op, JoinOp &&join_op, const numeric_type identity) const
Unary reduction operation.
Definition: tensor_interface.h:988
TensorInterface(const TensorInterface< U, R, UOpResult > &other)
Type conversion copy constructor.
Definition: tensor_interface.h:157
result_tensor add(const Right &right, const Perm &perm) const
Add this and other to construct a new, permuted tensor.
Definition: tensor_interface.h:541
TensorInterface_ & subt_to(const Right &right)
Subtract right from this tensor.
Definition: tensor_interface.h:755
result_tensor subt(const Right &right, const Scalar factor, const Perm &perm) const
Scale and subtract this and right to construct a new, permuted tensor.
Definition: tensor_interface.h:721
TILEDARRAY_FORCE_INLINE auto inner_product(const L l, const R r)
Inner product of a real value and a numeric value.
Definition: complex.h:67
T1::size_type inner_size(const T1 &tensor1, const T2 &)
Get the inner size of two tensors.
Definition: utility.h:260
result_tensor mult(const Right &right) const
Multiply this by right to create a new tensor.
Definition: tensor_interface.h:792
result_tensor subt(const Right &right, const Perm &perm) const
Subtract this and right to construct a new, permuted tensor.
Definition: tensor_interface.h:681
TensorInterface_ & conj_to(const Scalar factor)
Complex conjugate and scale this tensor.
Definition: tensor_interface.h:971
result_tensor mult(const Right &right, const Scalar factor) const
Scale and multiply this by right to create a new tensor.
Definition: tensor_interface.h:832
detail::numeric_type< value_type >::type numeric_type
the numeric type that supports T
Definition: tensor_interface.h:102
TensorInterface_ & add_to(const Right &right, const Scalar factor)
Add other to this tensor, and scale the result.
Definition: tensor_interface.h:637
result_tensor unary(Op &&op) const
Use a unary, element wise operation to construct a new tensor.
Definition: tensor_interface.h:395
~TensorInterface()=default
Definition: type_traits.h:77
TensorInterface_ & subt_to(const numeric_type value)
Subtract a constant from this tensor.
Definition: tensor_interface.h:780
result_tensor unary(Op &&op, const Perm &perm) const
Use a unary, element wise operation to construct a new, permuted tensor.
Definition: tensor_interface.h:413
ordinal_type size_type
Definition: tensor_interface.h:89
KroneckerDeltaTile< _N >::numeric_type max(const KroneckerDeltaTile< _N > &arg)
bool operator==(const TileReference< Impl > &a, const TileReference< Impl > &b)
comparison operator for TileReference objects
Definition: array_impl.h:120
TensorInterface_ & scale_to(const Scalar factor)
Scale this tensor.
Definition: tensor_interface.h:507
result_tensor conj(const Perm &perm) const
Create a complex conjugated and permuted copy of this tensor.
Definition: tensor_interface.h:940
TensorInterface(TensorInterface< U, R, UOpResult > &&other)
Type conversion move constructor.
Definition: tensor_interface.h:168
numeric_type inner_product(const Right &other) const
Definition: tensor_interface.h:1126
TensorInterface_ & operator=(const T1 &other)
Definition: tensor_interface.h:193
result_tensor shift(const std::initializer_list< Index > &bound_shift) const
Make a copy of this view shited by bound_shift.
Definition: tensor_interface.h:311
result_tensor permute(const Perm &perm) const
Definition: tensor_interface.h:448
Tensor interface for external data.
Definition: tensor_interface.h:82
Definition: array_impl.cpp:28
result_tensor subt(const numeric_type value, const Perm &perm) const
Subtract a constant from a permuted copy of this tensor.
Definition: tensor_interface.h:744
result_tensor neg(const Perm &perm) const
Create a negated and permuted copy of this tensor.
Definition: tensor_interface.h:904
const_reference operator()(const Index &... idx) const
Element accessor.
Definition: tensor_interface.h:251
reference operator[](const ordinal_type index)
Element subscript accessor.
Definition: tensor_interface.h:231
std::add_lvalue_reference< T >::type reference
Element reference type.
Definition: tensor_interface.h:93
std::add_lvalue_reference< typename std::add_const< T >::type >::type const_reference
Element reference type.
Definition: tensor_interface.h:96
result_tensor conj(const Scalar factor, const Perm &perm) const
Create a complex conjugated, scaled, and permuted copy of this tensor.
Definition: tensor_interface.h:955
TensorInterface(const range_type &range, pointer data)
Construct a new view of tensor.
Definition: tensor_interface.h:177
result_tensor add(const numeric_type value) const
Add a constant to a copy of this tensor.
Definition: tensor_interface.h:595
ComplexConjugate< S > conj_op(const S factor)
ComplexConjugate operator factory function.
Definition: complex.h:204
result_tensor subt(const Right &right) const
Subtract this and right to construct a new tensor.
Definition: tensor_interface.h:662
TensorInterface_ & operator=(const TensorInterface_ &)=delete
result_tensor mult(const Right &right, const Scalar factor, const Perm &perm) const
Scale and multiply this by right to create a new, permuted tensor.
Definition: tensor_interface.h:851
TensorInterface(const TensorInterface_ &)=default
numeric_type reduce(const Right &other, ReduceOp &&reduce_op, JoinOp &&join_op, const numeric_type identity) const
Binary reduction operation.
Definition: tensor_interface.h:1010
Type trait for extracting the numeric type of tensors and arrays.
Definition: type_traits.h:709
TensorInterface_ & add_to(const numeric_type value)
Add a constant to this tensor.
Definition: tensor_interface.h:647
const_reference operator[](const ordinal_type index) const
Element subscript accessor.
Definition: tensor_interface.h:222
result_tensor binary(const Right &right, Op &&op, const Perm &perm) const
Use a binary, element wise operation to construct a new, permuted tensor.
Definition: tensor_interface.h:347
result_tensor conj() const
Create a complex conjugated copy of this tensor.
Definition: tensor_interface.h:919
void inplace_tensor_op(Op &&op, TR &result, const Ts &... tensors)
In-place tensor operations with contiguous data.
Definition: kernels.h:197
TensorInterface_ & subt_to(const Right &right, const Scalar factor)
Subtract right from and scale this tensor.
Definition: tensor_interface.h:771
void tensor_init(Op &&op, TR &result, const Ts &... tensors)
Initialize tensor with contiguous tensor arguments.
Definition: kernels.h:421
result_tensor subt(const Right &right, const Scalar factor) const
Scale and subtract this and right to construct a new tensor.
Definition: tensor_interface.h:702
result_tensor conj(const Scalar factor) const
Create a complex conjugated and scaled copy of this tensor.
Definition: tensor_interface.h:929
OpResult result_tensor
Tensor type used as the return type from operations that produce a tensor.
Definition: tensor_interface.h:106
TensorInterface()=delete
Compiler generated functions.
detail::scalar_type< value_type >::type scalar_type
the scalar type that supports T
Definition: tensor_interface.h:104
result_tensor shift(const Index &bound_shift) const
Make a copy of this view shited by bound_shift.
Definition: tensor_interface.h:300
TensorInterface(TensorInterface_ &&)=default
result_tensor mult(const Right &right, const Perm &perm) const
Multiply this by right to create a new, permuted tensor.
Definition: tensor_interface.h:811
TensorInterface(range_type &&range, pointer data)
Construct a new view of tensor.
Definition: tensor_interface.h:186
TensorInterface_ & shift_to(const std::initializer_list< Index > &bound_shift)
Shift the lower and upper bound of this tensor view.
Definition: tensor_interface.h:288
void remap(detail::TensorInterface< T, Range_, OpResult > &, T *const, const Index1 &, const Index2 &)
Definition: tensor_map.h:154