| 118 | } |
| 119 | |
| 120 | std::vector<int64> InversePermutation( |
| 121 | absl::Span<const int64> input_permutation) { |
| 122 | DCHECK(IsPermutation(input_permutation, input_permutation.size())); |
| 123 | std::vector<int64> output_permutation(input_permutation.size(), -1); |
| 124 | for (size_t i = 0; i < input_permutation.size(); ++i) { |
| 125 | output_permutation.at(input_permutation.at(i)) = i; |
| 126 | } |
| 127 | return output_permutation; |
| 128 | } |
| 129 | |
| 130 | std::vector<int64> ComposePermutations(absl::Span<const int64> p1, |
| 131 | absl::Span<const int64> p2) { |