SyTen

◆ prodD() [2/6]

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::CudaDenseTensorImpl::prodD ( CudaDenseTensor< 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 = false,
EliminateZeros const  ezeros = EliminateZeros::No,
DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *  = nullptr 
)
inline

Product/Contraction of a CUDA dense tensor and a standard dense tensor.

If either tensor is larger than SYTEN_CUDA_THRESHOLD, the calculation is done on the GPU, otherwise, the calculation is done on the host.

References syten::EnvVars::cuda_size_to_gpu, and syten::CudaDenseTensorImpl::CudaDenseTensor< rank, Scalar >::size().

+ Here is the call graph for this function: