Special cases of dense tensor-tensor contractions, e.g. More...
#include "inc/util/limvec.h"
#include "inc/dense/dense_prod_base.h"
#include "inc/dense/dense_transpose.h"
Namespaces | |
namespace | syten |
Syten namespace. | |
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 (DenseTensor< frank, Scalar > const &a, DenseTensor< srank, Scalar > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, bool conjugate_a, 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... | |
Special cases of dense tensor-tensor contractions, e.g.
1·1 tensors, split and merge tensors and 1·Y contractions.