void syten::correct_cgc_tensors | ( | Tensor< r > & | in, |
bool | recursive = false , |
||
SourceLocation | loc = SourceLocation::current() |
||
) |
Corrects the CGC space by reconstructing it from a fusion tree.
This function iteratively merges legs of the tensor together until it is reduced to a rank-2 tensor. The rank-2 tensor has a well-defined CGC space proportional to the identity matrix. The elements of the CGC block are equalised and the tensor legs un-merged until the original tensor is obtained.
in | [in,out] Tensor to be corrected. Needs to have at least one incoming leg and one outgoing leg. |
recursive | Set to true on recursive calls from within the function |
loc | Callsite identifier |
References syten::Tensor< rank >::b(), std::vector< T >::begin(), syten::Tensor< rank >::clear(), correct_cgc_tensors(), syten::Tensor< rank >::dirs, std::vector< T >::end(), syten::Basis::f(), gME(), syten::Tensor< rank >::hasCGC(), Inc, insertIOFullHalf(), logGW(), Out, std::vector< T >::push_back(), syten::Tensor< rank >::size(), std::vector< T >::size(), std::sort(), and SYTEN_ASSERT_MSG.