SyTen

◆ delinearise()

std::tuple< Index, STensor, STensor, SBasis > syten::STensorImpl::delinearise ( STensor const &  in,
SBasisId const &  uncombined,
std::vector< Index leading_dimensions = std::vectorIndex >(),
bool  relax_if_necessary = false 
)

Delinarisation decomposition for STensor.

Parameters
ininput tensor
uncombinedbasis over which the delinarisation will be performed
leading_dimensionsnumber of leading dimensions for threshold estimates
relax_if_necessaryDo a rank-revealing QR decomposition after each
Returns
a tuple of the number of discarded columns, the tensors P and T and the new shared basis of P (nicknamed dln-gen).
Remarks
This function is not autodifferentiable.

References syten::STensorImpl::STensor::autodiff_enabled(), syten::Tensor< rank >::b(), syten::STensorImpl::STensor::b(), syten::STensorImpl::STensor::bi(), syten::Delinearise::cols(), syten::STensorImpl::SBasis::dir(), syten::STensorImpl::SBasis::f(), syten::STensorImpl::STensor::get_bases(), syten::STensorImpl::STensor::get_fermionic_order(), if_constexpr, syten::Inc, syten::STensorImpl::STensor::move(), std::move(), SYTEN_ASSERT_MSG, SYTEN_TENSOR_RANK, and syten::STensorImpl::STensor::visit().

+ Here is the call graph for this function: