SyTen
dense_prod_special.h File Reference

Special cases of dense tensor-tensor contractions, e.g. More...

+ Include dependency graph for dense_prod_special.h:
+ This graph shows which files directly or indirectly include this file:

Namespaces

 syten
 Syten namespace.
 
 syten::DenseProduct
 Contains helper functions related to the product of two dense tensors, see syten::prodD() for the main entry point.
 

Functions

template<Rank summed, Rank frank, Rank srank, Rank rrank, typename Scalar >
void syten::DenseProduct::gemm_transpose (DenseTensor< frank, Scalar > const &a, DenseTensor< srank, Scalar > const &b, DenseTensor< rrank, Scalar > &r, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b)
 Product of two trivial-order tensors with subsequent transpose to obtain the desired order in the output. More...
 
template<Rank summed, Rank frank, Rank srank, typename Scalar >
DenseTensor< frank+srank - 2 *summed, Scalar > syten::DenseProduct::one_times_many ([[maybe_unused]] DenseTensor< frank, Scalar > const &a, [[maybe_unused]] DenseTensor< srank, Scalar > const &b, [[maybe_unused]] std::array< int, frank > const &c_a, [[maybe_unused]] std::array< int, srank > const &c_b, [[maybe_unused]] bool conjugate_a, [[maybe_unused]] bool conjugate_b)
 Product of a singleton tensor and a larger tensor. More...
 
template<Rank summed, Rank frank, Rank srank, typename Scalar >
DenseTensor< frank+srank - 2 *summed, Scalar > syten::DenseProduct::one_times_one (DenseTensor< frank, Scalar > const &a, DenseTensor< srank, Scalar > const &b, std::array< int, frank > const &, std::array< int, srank > const &, bool conjugate)
 Product of two singleton tensors. More...
 

Detailed Description

Special cases of dense tensor-tensor contractions, e.g.

1·1 tensors, split and merge tensors and 1·Y contractions.