| STensor syten::STensorImpl::prod | ( | STensorProxy const & | a, |
| STensorProxy const & | b, | ||
| SourceLocation const & | loc = SourceLocation::current() |
||
| ) |
Contracts tensors a and b over all common indices.
STensor objects can be implicitly converted to STensorProxy objects. Additionally, calling conj() on a STensor creates a STensorProxy object which remembers that it has to complex-conjugate the underlying tensor during contractions.
The implementation calls prod_impl() which matches bases and already has the input tensor ranks as template parameters and then calls prod_impl_impl() to actually perform the contraction for a specific number of contracted legs.
References syten::conj(), conj(), syten::STensorImpl::Autodiff::create_product_differentiable(), if_constexpr, syten::STensorImpl::STensorProxy::is_conjugated(), prod(), SYTEN_TENSOR_RANK, and syten::STensorImpl::STensorProxy::visit().
Referenced by syten::STensorImpl::Autodiff::create_product_differentiable(), demerge(), flip_in_product(), flip_on_tensor(), invert_diagonal(), merge(), normSqd(), operator*(), operator*=(), overlap(), prod(), project(), real(), and trace().
Here is the call graph for this function:
Here is the caller graph for this function: