btas Namespace Reference

Classes

struct  range_traits< TiledArray::Range >
 

Functions

template<blas::Layout Order, typename... Args>
bool 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) make_ti (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
decltype(auto) make_ti (btas::Tensor< T, Range, Storage > &arg)
 
template<typename... Args>
bool operator== (const TiledArray::Range &range1, const btas::BaseRangeNd< Args... > &range2)
 
template<typename T1 , typename S1 , typename T2 , typename S2 >
bool 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 > 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 > 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 > 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 > 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 > & 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 > 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 > 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 > 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 > 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 > & 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 > & 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 > 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 > 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 > 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 > 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 > & 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 > & 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 > 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 > 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 > 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 > 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 > & 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 > & 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 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 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 > & 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 > & 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) 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) 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 > & neg_to (btas::Tensor< T, Range, Storage > &result)
 
template<typename T , typename Range , typename Storage >
btas::Tensor< T, Range, Storage > 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 > neg (const btas::Tensor< T, Range, Storage > &arg, const Perm &perm)
 
template<typename T , typename Range , typename Storage >
btas::Tensor< T, Range, Storage > 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 > 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 > 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 > 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 > & 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 > & conj_to (btas::Tensor< T, Range, Storage > &arg, const Scalar factor)
 
template<typename T , typename Range , typename Storage , typename Op >
auto 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 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 > & 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 > 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 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 >
trace (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
sum (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
product (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
squared_norm (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
dot (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2)
 
template<typename T , typename Range , typename Storage >
inner_product (const btas::Tensor< T, Range, Storage > &arg1, const btas::Tensor< T, Range, Storage > &arg2)
 
template<typename T , typename Range , typename Storage >
norm (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage , typename ResultType >
void norm (const btas::Tensor< T, Range, Storage > &arg, ResultType &result)
 
template<typename T , typename Range , typename Storage >
max (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
min (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
abs_max (const btas::Tensor< T, Range, Storage > &arg)
 
template<typename T , typename Range , typename Storage >
abs_min (const btas::Tensor< T, Range, Storage > &arg)
 

Function Documentation

◆ abs_max()

template<typename T , typename Range , typename Storage >
T btas::abs_max ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 774 of file btas.h.

Here is the call graph for this function:

◆ abs_min()

template<typename T , typename Range , typename Storage >
T btas::abs_min ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 779 of file btas.h.

Here is the call graph for this function:

◆ add() [1/4]

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 
)
inline

result[i] = arg1[i] + arg2[i]

Examples
For.

Definition at line 218 of file btas.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add() [2/4]

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 
)
inline

result[perm ^ i] = (arg1[i] + arg2[i])

Definition at line 242 of file btas.h.

Here is the call graph for this function:

◆ add() [3/4]

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 
)
inline

result[i] = (arg1[i] + arg2[i]) * factor

Definition at line 230 of file btas.h.

Here is the call graph for this function:

◆ add() [4/4]

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 
)
inline

result[perm ^ i] = (arg1[i] + arg2[i]) * factor

Definition at line 256 of file btas.h.

Here is the call graph for this function:

◆ add_to() [1/2]

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 
)
inline

result[i] += arg[i]

Definition at line 267 of file btas.h.

Here is the call graph for this function:

◆ add_to() [2/2]

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 
)
inline

result[i] += factor * arg[i]

Definition at line 280 of file btas.h.

Here is the call graph for this function:

◆ binary() [1/2]

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 
)
inline

Definition at line 438 of file btas.h.

Here is the call graph for this function:

◆ binary() [2/2]

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 
)
inline

Definition at line 448 of file btas.h.

Here is the call graph for this function:

◆ clone()

template<typename T , typename Range , typename Storage >
btas::Tensor<T, Range, Storage> btas::clone ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Computes the result of applying permutation perm to arg.

Definition at line 151 of file btas.h.

Here is the caller graph for this function:

◆ conj() [1/4]

template<typename T , typename Range , typename Storage >
btas::Tensor<T, Range, Storage> btas::conj ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 518 of file btas.h.

Here is the call graph for this function:

◆ conj() [2/4]

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 
)
inline

Definition at line 527 of file btas.h.

Here is the call graph for this function:

◆ conj() [3/4]

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 
)
inline

Definition at line 535 of file btas.h.

Here is the call graph for this function:

◆ conj() [4/4]

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 
)
inline

Definition at line 546 of file btas.h.

Here is the call graph for this function:

◆ conj_to() [1/2]

template<typename T , typename Range , typename Storage >
btas::Tensor<T, Range, Storage>& btas::conj_to ( btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 554 of file btas.h.

Here is the call graph for this function:

◆ conj_to() [2/2]

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 
)
inline

Definition at line 563 of file btas.h.

Here is the call graph for this function:

◆ dot()

template<typename T , typename Range , typename Storage >
T btas::dot ( const btas::Tensor< T, Range, Storage > &  arg1,
const btas::Tensor< T, Range, Storage > &  arg2 
)
inline

Definition at line 740 of file btas.h.

Here is the call graph for this function:

◆ gemm() [1/2]

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 
)
inline

Definition at line 644 of file btas.h.

Here is the call graph for this function:

◆ gemm() [2/2]

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 
)
inline
Examples
For.

Definition at line 596 of file btas.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ inner_product()

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 
)
inline

Definition at line 746 of file btas.h.

Here is the call graph for this function:

◆ inplace_binary()

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 
)
inline

Definition at line 457 of file btas.h.

Here is the call graph for this function:

◆ inplace_unary()

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 
)
inline

Definition at line 589 of file btas.h.

Here is the call graph for this function:

◆ is_congruent()

template<blas::Layout Order, typename... Args>
bool btas::is_congruent ( const btas::RangeNd< Order, Args... > &  r1,
const btas::RangeNd< Order, Args... > &  r2 
)
inline

Test if the two ranges are congruent.

This function tests that the rank and extent of r1 are equal to those of r2.

Parameters
r1The first Range to compare
r2The second Range to compare

Definition at line 98 of file btas.h.

◆ make_ti() [1/2]

template<typename T , typename Range , typename Storage >
decltype(auto) btas::make_ti ( btas::Tensor< T, Range, Storage > &  arg)

Definition at line 113 of file btas.h.

◆ make_ti() [2/2]

template<typename T , typename Range , typename Storage >
decltype(auto) btas::make_ti ( const btas::Tensor< T, Range, Storage > &  arg)

Definition at line 106 of file btas.h.

Here is the caller graph for this function:

◆ max()

template<typename T , typename Range , typename Storage >
T btas::max ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 764 of file btas.h.

Here is the call graph for this function:

◆ min()

template<typename T , typename Range , typename Storage >
T btas::min ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 769 of file btas.h.

Here is the call graph for this function:

◆ mult() [1/4]

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 
)
inline

result[i] = arg1[i] * arg2[i]

Examples
For.

Definition at line 363 of file btas.h.

Here is the call graph for this function:

◆ mult() [2/4]

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 
)
inline

result[perm ^ i] = arg1[i] * arg2[i]

Definition at line 387 of file btas.h.

Here is the call graph for this function:

◆ mult() [3/4]

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 
)
inline

result[i] = arg1[i] * arg2[i] * factor

Definition at line 375 of file btas.h.

Here is the call graph for this function:

◆ mult() [4/4]

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 
)
inline

result[perm ^ i] = arg1[i] * arg2[i] * factor

Definition at line 401 of file btas.h.

Here is the call graph for this function:

◆ mult_to() [1/2]

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 
)
inline

result[i] *= arg[i]

Definition at line 412 of file btas.h.

Here is the call graph for this function:

◆ mult_to() [2/2]

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 
)
inline

result[i] *= arg[i] * factor

Definition at line 425 of file btas.h.

Here is the call graph for this function:

◆ neg() [1/2]

template<typename T , typename Range , typename Storage >
btas::Tensor<T, Range, Storage> btas::neg ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 502 of file btas.h.

Here is the call graph for this function:

◆ neg() [2/2]

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 
)
inline

Definition at line 511 of file btas.h.

Here is the call graph for this function:

◆ neg_to()

template<typename T , typename Range , typename Storage >
btas::Tensor<T, Range, Storage>& btas::neg_to ( btas::Tensor< T, Range, Storage > &  result)
inline

Definition at line 494 of file btas.h.

Here is the call graph for this function:

◆ norm() [1/2]

template<typename T , typename Range , typename Storage >
T btas::norm ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 753 of file btas.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ norm() [2/2]

template<typename T , typename Range , typename Storage , typename ResultType >
void btas::norm ( const btas::Tensor< T, Range, Storage > &  arg,
ResultType &  result 
)
inline

Definition at line 758 of file btas.h.

Here is the call graph for this function:

◆ operator==() [1/2]

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 
)

Definition at line 139 of file btas.h.

Here is the call graph for this function:

◆ operator==() [2/2]

template<typename... Args>
bool btas::operator== ( const TiledArray::Range range1,
const btas::BaseRangeNd< Args... > &  range2 
)
inline

Definition at line 120 of file btas.h.

Here is the call graph for this function:

◆ permute() [1/2]

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 
)
inline

Computes the result of applying bipartite permutation perm to arg.

Definition at line 168 of file btas.h.

Here is the call graph for this function:

◆ permute() [2/2]

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 
)
inline

Computes the result of applying permutation perm to arg.

Definition at line 158 of file btas.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ product()

template<typename T , typename Range , typename Storage >
T btas::product ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 728 of file btas.h.

Here is the call graph for this function:

◆ scale() [1/2]

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 
)
inline

Definition at line 476 of file btas.h.

Here is the call graph for this function:

◆ scale() [2/2]

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 
)
inline

Definition at line 487 of file btas.h.

Here is the call graph for this function:

◆ scale_to()

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 
)
inline

Definition at line 467 of file btas.h.

Here is the call graph for this function:

◆ shift()

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 
)
inline

Shift the range of arg.

Parameters
argThe tile argument to be shifted
range_shiftThe offset to be applied to the argument range
Returns
A copy of the tile with a new range

Definition at line 197 of file btas.h.

Here is the call graph for this function:

◆ shift_to()

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 
)
inline

Shift the range of arg in place.

Parameters
argThe tile argument to be shifted
range_shiftThe offset to be applied to the argument range
Returns
A copy of the tile with a new range

Definition at line 210 of file btas.h.

Here is the caller graph for this function:

◆ squared_norm()

template<typename T , typename Range , typename Storage >
T btas::squared_norm ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 734 of file btas.h.

Here is the call graph for this function:

◆ subt() [1/4]

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 
)
inline

result[i] = arg1[i] - arg2[i]

Definition at line 291 of file btas.h.

Here is the call graph for this function:

◆ subt() [2/4]

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 
)
inline

result[perm ^ i] = (arg1[i] - arg2[i]) * factor

Definition at line 315 of file btas.h.

Here is the call graph for this function:

◆ subt() [3/4]

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 
)
inline

result[i] = (arg1[i] - arg2[i]) * factor

Definition at line 303 of file btas.h.

Here is the call graph for this function:

◆ subt() [4/4]

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 
)
inline

result[perm ^ i] = (arg1[i] - arg2[i]) * factor

Definition at line 329 of file btas.h.

Here is the call graph for this function:

◆ subt_to() [1/2]

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 
)
inline

result[i] -= arg[i]

Definition at line 340 of file btas.h.

Here is the call graph for this function:

◆ subt_to() [2/2]

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 
)
inline

Definition at line 352 of file btas.h.

Here is the call graph for this function:

◆ sum()

template<typename T , typename Range , typename Storage >
T btas::sum ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 723 of file btas.h.

Here is the call graph for this function:

◆ trace()

template<typename T , typename Range , typename Storage >
T btas::trace ( const btas::Tensor< T, Range, Storage > &  arg)
inline

Definition at line 718 of file btas.h.

◆ unary() [1/2]

template<typename T , typename Range , typename Storage , typename Op >
auto btas::unary ( const btas::Tensor< T, Range, Storage > &  arg,
Op &&  op 
)
inline

Definition at line 574 of file btas.h.

Here is the call graph for this function:

◆ unary() [2/2]

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 
)
inline

Definition at line 582 of file btas.h.

Here is the call graph for this function: