Column-based Delinearisation.
- Parameters
-
[in] | in | input tensor to decompose into in → p t |
[in] | uncombinedLeg | leg of in /p which is not combined and at which t attaches |
[out] | p | output tensor with same rank as in |
[out] | t | output tensor with rank 2 |
[in] | leading_dimensions | number of leading dimensions for threshold estimates |
[in] | relax_if_necessary | Do 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
References syten::Tensor< rank >::clear(), cols(), syten::DenseTensor< rank, Scalar >::dim(), syten::Tensor< rank >::dirs, syten::Tensor< rank >::empty(), syten::hasCGC(), syten::makeIdentity(), std::move(), syten::No, syten::partial_abs(), syten::Tensor< rank >::push_back(), std::vector< T >::push_back(), syten::rank(), syten::Tensor< rank >::reduce(), syten::Tensor< rank >::reserve(), std::vector< T >::size(), SYTEN_DELINEARISE_THRESHOLD, and syten::tensorSortBuckets().