SyTen

◆ rows() [2/2]

template<Rank rank>
Index syten::Delinearise::rows ( Tensor< rank > const &  in,
Index const  uncombinedLeg,
Tensor< 2 > &  t,
Tensor< rank > &  p,
std::vector< Index leading_dimensions = std::vector<Index>(),
bool  relax_if_necessary = false 
)
inline

Row-based Delinearisation.

Parameters
[in]ininput tensor to decompose into in → t p
[in]uncombinedLegleg of in/p which is not combined and at which t attaches
[out]toutput tensor with rank 2
[out]poutput tensor with same rank as in
[in]leading_dimensionsnumber of leading dimensions for threshold estimates
[in]relax_if_necessaryDo a rank-revealing QR decomposition after each dense decomposition. If the resulting matrix is not full rank, relax the epsilon threshold to allow cancellation to zero and re-try.
Returns
the number of discarded vectors

Internally uses Delinearise::cols() and transposes t manually afterwards.

References cols(), and syten::transpose().

+ Here is the call graph for this function: