std::vector<std::pair<std::vector<RDef>, std::vector<Index> > > syten::TensorBlocks::sort_VecRepIdx_some | ( | Tensor< rank > const & | input, |
std::array< Rank, numMatches > const & | matches | ||
) |
Sorts the blocks in input
into buckets.
Each bucket is a pair of a vector of RDefs and a vector of indices. The vector of RDefs denotes how the blocks in the bucket transform, legs are in the ordering as they occur in matches
. The list of indices is are indices into input
. The legs in matches
are 1-indexed. The resulting vector is sorted in ascending order with respect to operator<(a.first, b.first)
for any two elements a
, b
.
References syten::Tensor< rank >::begin(), std::copy(), syten::Tensor< rank >::empty(), std::iota(), std::make_pair(), std::partition_point(), std::vector< T >::reserve(), syten::Tensor< rank >::size(), std::array< T >::size(), and std::sort().
Referenced by syten::tensorSortBuckets().