TRIQS/nda 2.0.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
add.hpp
#include "./interface/cutensor_interface.hpp"
#include "./interface/tblis_interface.hpp"
#include "./tools.hpp"
#include "../mem/address_space.hpp"
#include "../traits.hpp"
#include <string_view>
#include <utility>

Detailed Description

Provides a generic tensor addition with cuTENSOR/TBLIS/nda dispatch.

Definition in file add.hpp.

Go to the source code of this file.

Functions

template<BlasArrayOrConj A, BlasArrayFor< A > B>
void nda::tensor::add (A const &a, B &&b)
 Convenience overload of nda::tensor::add with nda::tensor::default_index strings, \( \alpha = 1 \) and \( \beta = 0 \).
template<BlasArrayOrConj A, BlasArrayFor< A > B>
void nda::tensor::add (A const &a, std::string_view idx_a, B &&b, std::string_view idx_b)
 Convenience overload of nda::tensor::add with \( \alpha = 1 \) and \( \beta = 0 \).
template<BlasArrayOrConj A, BlasArrayOrConjFor< A > B, BlasArrayFor< A > C>
void nda::tensor::add (A const &a, std::string_view idx_a, B const &b, std::string_view idx_b, C &&c, std::string_view idx_c)
 Convenience overload of out-of-place nda::tensor::add with \( \alpha = 1 \) and \( \beta = 1 \).
template<BlasArrayOrConj A, BlasArrayFor< A > B>
void nda::tensor::add (get_value_t< A > alpha, A const &a, get_value_t< A > beta, B &&b)
 Convenience overload of nda::tensor::add with nda::tensor::default_index strings.
template<BlasArrayOrConj A, BlasArrayFor< A > B>
void nda::tensor::add (get_value_t< A > alpha, A const &a, std::string_view idx_a, get_value_t< A > beta, B &&b, std::string_view idx_b)
 Tensor addition with cuTENSOR/TBLIS/nda dispatch.
template<BlasArrayOrConj A, BlasArrayOrConjFor< A > B, BlasArrayFor< A > C>
void nda::tensor::add (get_value_t< A > alpha, A const &a, std::string_view idx_a, get_value_t< A > beta, B const &b, std::string_view idx_b, C &&c, std::string_view idx_c)
 Out-of-place tensor addition with cuTENSOR/TBLIS/nda dispatch.