btas.h File Reference
#include <TiledArray/tensor/kernels.h>#include <TiledArray/tile_interface/permute.h>#include <TiledArray/tile_interface/trace.h>#include <TiledArray/utility.h>#include "TiledArray/config.h"#include "TiledArray/math/blas.h"#include "TiledArray/math/gemm_helper.h"#include "TiledArray/range.h"#include "TiledArray/tensor/type_traits.h"#include "TiledArray/tile_interface/cast.h"#include <btas/features.h>#include <btas/generic/axpy_impl.h>#include <btas/generic/permute.h>#include <btas/tensor.h>#include <madness/world/archive.h>
Include dependency graph for btas.h:

This graph shows which files directly or indirectly include this file:

Namespaces | |
| btas | |
| TiledArray | |
| TiledArray::detail | |
Functions | |
| const TiledArray::Range & | TiledArray::detail::make_ta_range (const TiledArray::Range &range) |
| template<::blas::Layout Order, typename... Args> | |
| TiledArray::Range | TiledArray::detail::make_ta_range (const btas::RangeNd< Order, Args... > &range) |
| makes TiledArray::Range from a btas::RangeNd More... | |
| bool | TiledArray::congruent (const Range &r1, const Range &r2) |
| Test if the two ranges are congruent. More... | |
| template<blas::Layout Order, typename... Args> | |
| bool | btas::is_congruent (const btas::RangeNd< Order, Args... > &r1, const btas::RangeNd< Order, Args... > &r2) |
| Test if the two ranges are congruent. More... | |
| template<typename T , typename Range , typename Storage > | |
| decltype(auto) | btas::make_ti (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| decltype(auto) | btas::make_ti (btas::Tensor< T, Range, Storage > &arg) |
| template<typename... Args> | |
| bool | btas::operator== (const TiledArray::Range &range1, const btas::BaseRangeNd< Args... > &range2) |
| template<typename T1 , typename S1 , typename T2 , typename S2 > | |
| bool | btas::operator== (const btas::Tensor< T1, TiledArray::Range, S1 > &t1, const btas::Tensor< T2, TiledArray::Range, S2 > &t2) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::clone (const btas::Tensor< T, Range, Storage > &arg) |
Computes the result of applying permutation perm to arg. More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::permute (const btas::Tensor< T, Range, Storage > &arg, const TiledArray::Permutation &perm) |
Computes the result of applying permutation perm to arg. More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::permute (const btas::Tensor< T, Range, Storage > &arg, const TiledArray::BipartitePermutation &perm) |
Computes the result of applying bipartite permutation perm to arg. More... | |
| template<typename T , typename Range , typename Storage , typename Index > | |
| btas::Tensor< T, Range, Storage > | btas::shift (const btas::Tensor< T, Range, Storage > &arg, const Index &range_shift) |
Shift the range of arg. More... | |
| template<typename T , typename Range , typename Storage , typename Index > | |
| btas::Tensor< T, Range, Storage > & | btas::shift_to (btas::Tensor< T, Range, Storage > &arg, const Index &range_shift) |
Shift the range of arg in place. More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::add (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2) |
| result[i] = arg1[i] + arg2[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::add (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor) |
| result[i] = (arg1[i] + arg2[i]) * factor More... | |
| template<typename T , typename Range , typename Storage , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| btas::Tensor< T, Range, Storage > | btas::add (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Perm &perm) |
| result[perm ^ i] = (arg1[i] + arg2[i]) More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename Perm , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > &&TiledArray::detail::is_permutation_v< Perm >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::add (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor, const Perm &perm) |
| result[perm ^ i] = (arg1[i] + arg2[i]) * factor More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > & | btas::add_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg) |
| result[i] += arg[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > & | btas::add_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg, const Scalar factor) |
| result[i] += factor * arg[i] More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::subt (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2) |
| result[i] = arg1[i] - arg2[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::subt (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor) |
| result[i] = (arg1[i] - arg2[i]) * factor More... | |
| template<typename T , typename Range , typename Storage , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| btas::Tensor< T, Range, Storage > | btas::subt (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Perm &perm) |
| result[perm ^ i] = (arg1[i] - arg2[i]) * factor More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename Perm , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > &&TiledArray::detail::is_permutation_v< Perm >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::subt (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor, const Perm &perm) |
| result[perm ^ i] = (arg1[i] - arg2[i]) * factor More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > & | btas::subt_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg) |
| result[i] -= arg[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > & | btas::subt_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg, const Scalar factor) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::mult (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2) |
| result[i] = arg1[i] * arg2[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::mult (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor) |
| result[i] = arg1[i] * arg2[i] * factor More... | |
| template<typename T , typename Range , typename Storage , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| btas::Tensor< T, Range, Storage > | btas::mult (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Perm &perm) |
| result[perm ^ i] = arg1[i] * arg2[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename Perm , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > &&TiledArray::detail::is_permutation_v< Perm >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::mult (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, const Scalar factor, const Perm &perm) |
| result[perm ^ i] = arg1[i] * arg2[i] * factor More... | |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > & | btas::mult_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg) |
| result[i] *= arg[i] More... | |
| template<typename T , typename Range , typename Storage , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr> | |
| btas::Tensor< T, Range, Storage > & | btas::mult_to (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &arg, const Scalar factor) |
| result[i] *= arg[i] * factor More... | |
| template<typename T , typename Range , typename Storage , typename Op > | |
| auto | btas::binary (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, Op &&op) |
| template<typename T , typename Range , typename Storage , typename Op , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| auto | btas::binary (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, Op &&op, const Perm &perm) |
| template<typename T , typename Range , typename Storage , typename Op > | |
| btas::Tensor< T, Range, Storage > & | btas::inplace_binary (btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2, Op &&op) |
| template<typename T , typename Range , typename Storage , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
| btas::Tensor< T, Range, Storage > & | btas::scale_to (btas::Tensor< T, Range, Storage > &result, const Scalar factor) |
| template<typename T , typename Range , typename Storage , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
| decltype(auto) | btas::scale (const btas::Tensor< T, Range, Storage > &result, const Scalar factor) |
| template<typename T , typename Range , typename Storage , typename Scalar , typename Perm , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar > &&TiledArray::detail::is_permutation_v< Perm >> * = nullptr> | |
| decltype(auto) | btas::scale (const btas::Tensor< T, Range, Storage > &result, const Scalar factor, const Perm &perm) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > & | btas::neg_to (btas::Tensor< T, Range, Storage > &result) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::neg (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| btas::Tensor< T, Range, Storage > | btas::neg (const btas::Tensor< T, Range, Storage > &arg, const Perm &perm) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > | btas::conj (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| btas::Tensor< T, Range, Storage > | btas::conj (const btas::Tensor< T, Range, Storage > &arg, const Perm &perm) |
| template<typename T , typename Range , typename Storage , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::conj (const btas::Tensor< T, Range, Storage > &arg, const Scalar factor) |
| template<typename T , typename Range , typename Storage , typename Scalar , typename Perm , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar > &&TiledArray::detail::is_permutation_v< Perm >> * = nullptr> | |
| btas::Tensor< T, Range, Storage > | btas::conj (const btas::Tensor< T, Range, Storage > &arg, const Scalar factor, const Perm &perm) |
| template<typename T , typename Range , typename Storage > | |
| btas::Tensor< T, Range, Storage > & | btas::conj_to (btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage , typename Scalar , std::enable_if_t< TiledArray::detail::is_numeric_v< Scalar >> * = nullptr> | |
| btas::Tensor< T, Range, Storage > & | btas::conj_to (btas::Tensor< T, Range, Storage > &arg, const Scalar factor) |
| template<typename T , typename Range , typename Storage , typename Op > | |
| auto | btas::unary (const btas::Tensor< T, Range, Storage > &arg, Op &&op) |
| template<typename T , typename Range , typename Storage , typename Op , typename Perm , typename = std::enable_if_t<TiledArray::detail::is_permutation_v<Perm>>> | |
| auto | btas::unary (const btas::Tensor< T, Range, Storage > &arg, Op &&op, const Perm &perm) |
| template<typename T , typename Range , typename Storage , typename Op > | |
| btas::Tensor< T, Range, Storage > & | btas::inplace_unary (const btas::Tensor< T, Range, Storage > &arg, Op &&op) |
| template<typename T , typename Range , typename Storage , typename Scalar > | |
| btas::Tensor< T, Range, Storage > | btas::gemm (const btas::Tensor< T, Range, Storage > &left, const btas::Tensor< T, Range, Storage > &right, Scalar factor, const TiledArray::math::GemmHelper &gemm_helper) |
| template<typename T , typename Range , typename Storage , typename Scalar > | |
| void | btas::gemm (btas::Tensor< T, Range, Storage > &result, const btas::Tensor< T, Range, Storage > &left, const btas::Tensor< T, Range, Storage > &right, Scalar factor, const TiledArray::math::GemmHelper &gemm_helper) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::trace (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::sum (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::product (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::squared_norm (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::dot (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::inner_product (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::norm (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage , typename ResultType > | |
| void | btas::norm (const btas::Tensor< T, Range, Storage > &arg, ResultType &result) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::max (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::min (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::abs_max (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename T , typename Range , typename Storage > | |
| T | btas::abs_min (const btas::Tensor< T, Range, Storage > &arg) |
| template<typename Perm > | |
| std::enable_if<!TiledArray::detail::is_permutation_v< Perm >, TiledArray::Range >::type | TiledArray::permute (const TiledArray::Range &r, const Perm &p) |
Variables | |
| template<typename T > | |
| constexpr const bool | TiledArray::detail::is_btas_tensor_v = is_btas_tensor<T>::value |
1.8.20