tile_interface.h File Reference
#include <TiledArray/tensor/type_traits.h>
#include <TiledArray/type_traits.h>
#include <iterator>
#include <vector>
Include dependency graph for tile_interface.h:
This graph shows which files directly or indirectly include this file:
Namespaces | |
TiledArray | |
TiledArray::math | |
TiledArray::detail | |
Typedefs | |
template<typename... T> | |
using | TiledArray::result_of_subt_t = decltype(subt(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_subt_to_t = decltype(subt_to(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_mult_t = decltype(mult(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_mult_to_t = decltype(mult_to(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_binary_t = decltype(binary(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_inplace_binary_t = decltype(inplace_binary(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_neg_t = decltype(neg(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_neg_to_t = decltype(neg_to(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_conj_t = decltype(conj(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_conj_to_t = decltype(conj_to(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_unary_t = decltype(unary(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_inplace_unary_t = decltype(inplace_unary(std::declval< T >()...)) |
template<typename... T> | |
using | TiledArray::result_of_gemm_t = decltype(gemm(std::declval< T >()...)) |
template<typename T > | |
using | TiledArray::result_of_sum_t = decltype(sum(std::declval< T >())) |
template<typename T > | |
using | TiledArray::result_of_product_t = decltype(product(std::declval< T >())) |
template<typename T > | |
using | TiledArray::result_of_squared_norm_t = decltype(squared_norm(std::declval< T >())) |
template<typename T , typename ResultType = T> | |
using | TiledArray::result_of_norm_t = decltype(norm(std::declval< T >(), std::declval< ResultType & >())) |
template<typename T > | |
using | TiledArray::result_of_max_t = decltype(max(std::declval< T >())) |
template<typename T > | |
using | TiledArray::result_of_min_t = decltype(min(std::declval< T >())) |
template<typename T > | |
using | TiledArray::result_of_abs_max_t = decltype(abs_max(std::declval< T >())) |
template<typename T > | |
using | TiledArray::result_of_abs_min_t = decltype(abs_min(std::declval< T >())) |
template<typename L , typename R > | |
using | TiledArray::result_of_dot_t = decltype(dot(std::declval< L >(), std::declval< R >())) |
Functions | |
template<typename Left , typename Right > | |
auto | TiledArray::subt (const Left &left, const Right &right) |
Subtract tile arguments. More... | |
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric_v< Scalar >>::type * = nullptr> | |
auto | TiledArray::subt (const Left &left, const Right &right, const Scalar factor) |
Subtract and scale tile arguments. More... | |
template<typename Left , typename Right , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm>>> | |
auto | TiledArray::subt (const Left &left, const Right &right, const Perm &perm) |
Subtract and permute tile arguments. More... | |
template<typename Left , typename Right , typename Scalar , typename Perm , typename std::enable_if< detail::is_numeric_v< Scalar > &&detail::is_permutation_v< Perm >>::type * = nullptr> | |
auto | TiledArray::subt (const Left &left, const Right &right, const Scalar factor, const Perm &perm) |
Subtract, scale, and permute tile arguments. More... | |
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric_v< Scalar >>::type * = nullptr> | |
auto | TiledArray::subt (const Arg &arg, const Scalar value) |
Subtract a scalar constant from the tile argument. More... | |
template<typename Arg , typename Scalar , typename Perm , typename std::enable_if< detail::is_numeric_v< Scalar > &&detail::is_permutation_v< Perm >>::type * = nullptr> | |
auto | TiledArray::subt (const Arg &arg, const Scalar value, const Perm &perm) |
Subtract a constant scalar and permute tile argument. More... | |
template<typename Result , typename Arg > | |
Result & | TiledArray::subt_to (Result &result, const Arg &arg) |
Subtract from the result tile. More... | |
template<typename Result , typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric_v< Scalar >>::type * = nullptr> | |
Result & | TiledArray::subt_to (Result &result, const Arg &arg, const Scalar factor) |
Subtract and scale from the result tile. More... | |
template<typename Result , typename Scalar , typename std::enable_if< detail::is_numeric_v< Scalar >>::type * = nullptr> | |
Result & | TiledArray::subt_to (Result &result, const Scalar value) |
Subtract constant scalar from the result tile. More... | |
template<typename Left , typename Right > | |
auto | TiledArray::mult (const Left &left, const Right &right) |
Multiplication tile arguments. More... | |
template<typename Left , typename Right , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
auto | TiledArray::mult (const Left &left, const Right &right, const Scalar factor) |
Multiplication and scale tile arguments. More... | |
template<typename Left , typename Right , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm> && detail::has_member_function_mult_anyreturn_v< const Left, const Right&, const Perm&>>> | |
auto | TiledArray::mult (const Left &left, const Right &right, const Perm &perm) |
Multiplication and permute tile arguments. More... | |
template<typename Left , typename Right , typename Scalar , typename Perm , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar > &&detail::is_permutation_v< Perm >> * = nullptr> | |
auto | TiledArray::mult (const Left &left, const Right &right, const Scalar factor, const Perm &perm) |
Multiplication, scale, and permute tile arguments. More... | |
template<typename Result , typename Arg > | |
Result & | TiledArray::mult_to (Result &result, const Arg &arg) |
Multiply to the result tile. More... | |
template<typename Result , typename Arg , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
Result & | TiledArray::mult_to (Result &result, const Arg &arg, const Scalar factor) |
Multiply and scale to the result tile. More... | |
template<typename Left , typename Right , typename Op > | |
decltype(auto) | TiledArray::binary (const Left &left, const Right &right, Op &&op) |
Binary element-wise transform producing a new tile. More... | |
template<typename Left , typename Right , typename Op , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm>>> | |
decltype(auto) | TiledArray::binary (const Left &left, const Right &right, Op &&op, const Perm &perm) |
Binary element-wise transform producing a new tile. More... | |
template<typename Left , typename Right , typename Op > | |
Left & | TiledArray::inplace_binary (Left &left, const Right &right, Op &&op) |
Binary element-wise in-place transform. More... | |
template<typename Arg > | |
auto | TiledArray::neg (const Arg &arg) |
Negate the tile argument. More... | |
template<typename Arg , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm>>> | |
auto | TiledArray::neg (const Arg &arg, const Perm &perm) |
Negate and permute tile argument. More... | |
template<typename Result > | |
Result & | TiledArray::neg_to (Result &result) |
Negate the tile argument in-place. More... | |
template<typename Arg > | |
auto | TiledArray::conj (const Arg &arg) |
Create a complex conjugated copy of a tile. More... | |
template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
auto | TiledArray::conj (const Arg &arg, const Scalar factor) |
Create a complex conjugated and scaled copy of a tile. More... | |
template<typename Arg , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm>>> | |
auto | TiledArray::conj (const Arg &arg, const Perm &perm) |
Create a complex conjugated and permuted copy of a tile. More... | |
template<typename Arg , typename Scalar , typename Perm , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > &&detail::is_permutation_v< Perm >>::type * = nullptr> | |
auto | TiledArray::conj (const Arg &arg, const Scalar factor, const Perm &perm) |
Create a complex conjugated, scaled, and permuted copy of a tile. More... | |
template<typename Result > | |
Result & | TiledArray::conj_to (Result &result) |
In-place complex conjugate a tile. More... | |
template<typename Result , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
Result & | TiledArray::conj_to (Result &result, const Scalar factor) |
In-place complex conjugate and scale a tile. More... | |
template<typename Arg , typename Op > | |
decltype(auto) | TiledArray::unary (const Arg &arg, Op &&op) |
Unary element-wise transform producing a new tile. More... | |
template<typename Arg , typename Op , typename Perm , typename = std::enable_if_t<detail::is_permutation_v<Perm>>> | |
decltype(auto) | TiledArray::unary (const Arg &arg, Op &&op, const Perm &perm) |
Unary element-wise transform producing a new tile. More... | |
template<typename Result , typename Op > | |
Result & | TiledArray::inplace_unary (Result &arg, Op &&op) |
Unary element-wise in-place transform. More... | |
template<typename Left , typename Right , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
auto | TiledArray::gemm (const Left &left, const Right &right, const Scalar factor, const math::GemmHelper &gemm_config) |
Contract 2 tensors over head/tail modes and scale the product. More... | |
template<typename Result , typename Left , typename Right , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
Result & | TiledArray::gemm (Result &result, const Left &left, const Right &right, const Scalar factor, const math::GemmHelper &gemm_config) |
template<typename Result , typename Left , typename Right , typename ElementMultiplyAddOp , std::enable_if_t< std::is_invocable_r_v< void, std::remove_reference_t< ElementMultiplyAddOp >, typename Result::value_type &, const typename Left::value_type &, const typename Right::value_type & >> * = nullptr> | |
Result & | TiledArray::gemm (Result &result, const Left &left, const Right &right, const math::GemmHelper &gemm_config, ElementMultiplyAddOp &&element_multiplyadd_op) |
template<typename Arg > | |
auto | TiledArray::sum (const Arg &arg) |
Sum the hyper-diagonal elements a tile. More... | |
template<typename Arg > | |
auto | TiledArray::product (const Arg &arg) |
Multiply the elements of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::squared_norm (const Arg &arg) |
Squared vector 2-norm of the elements of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::norm (const Arg &arg) |
Vector 2-norm of a tile. More... | |
template<typename Arg , typename ResultType > | |
void | TiledArray::norm (const Arg &arg, ResultType &result) |
Vector 2-norm of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::max (const Arg &arg) |
Maximum element of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::min (const Arg &arg) |
Minimum element of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::abs_max (const Arg &arg) |
Absolute maximum element of a tile. More... | |
template<typename Arg > | |
auto | TiledArray::abs_min (const Arg &arg) |
Absolute mainimum element of a tile. More... | |
template<typename Left , typename Right > | |
auto | TiledArray::dot (const Left &left, const Right &right) |
Vector dot product of two tiles. More... | |
template<typename Left , typename Right > | |
auto | TiledArray::inner_product (const Left &left, const Right &right) |
Vector inner product of two tiles. More... | |