SyTen

◆ prodD() [2/5]

template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0>
GenericDenseTensor<frank + srank - 2 * summed, Scalar> syten::IdentityDenseTensorImpl::prodD ( DenseTensor< frank, Scalar > const &  a,
IdentityDenseTensor< srank, Scalar > const &  b,
std::array< int, frank > const &  c_a,
std::array< int, srank > const &  c_b,
bool  = false,
EliminateZeros const  ezeros = EliminateZeros::No,
DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *  = nullptr 
)
inline

Product of a standard dense tensor and an identity dense tensor.

Only the case of rank-3 identity dense tensors is special-cased here and done by merge and split above. Otherwise, the identity dense tensor is transformed into a standard dense tensor and the standard dense product is used.

References syten::Cuda::copy(), if_constexpr, merge(), and split().

+ Here is the call graph for this function: