SyTen

◆ prod() [3/6]

template<Rank summed, Rank frank, Rank srank>
std::enable_if_t<frank + srank - 2 * summed != 0, Tensor<frank + srank - 2 * summed> > syten::prod ( Tensor< frank > const &  a,
Tensor< srank > const &  b,
std::map< int, int > const &  m_a,
std::map< int, int > const &  m_b,
bool const  conj = false,
EliminateZeros const  ezeros = EliminateZeros::No,
SourceLocation  location = SourceLocation::current() 
)
inline

Legacy variant 2 of the Tensor-Tensor-to-Tensor product.

Parameters
afirst tensor
bsecond tensor
m_atensor target specification for first tensor
m_btensor target specification for second tensor
conjif true, complex-conjugate the second tensor
ezerosif Yes, eliminate zeros.
locationCallsite identifier.

Mappings m_a, m_b are translated into c_a/c_b by using the key of the map as 1-indexed location of the value in c_?. That is, a map 2 → 3, 1 → -2, 3 → 1 is equivalent to a product specification {-2, 3, 1}.

References syten::CudaDenseTensorImpl::conj(), and SYTEN_ASSERT.

+ Here is the call graph for this function: