MCPcopy Create free account
hub / github.com/MegEngine/MegCC / qsort_descent_inplace

Function qsort_descent_inplace

yolox_example/main.cpp:124–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122}
123
124static void qsort_descent_inplace(
125 std::vector<OutputInfo>& faceoutput_infos, int left, int right) {
126 int i = left;
127 int j = right;
128 float p = faceoutput_infos[(left + right) / 2].prob;
129
130 while (i <= j) {
131 while (faceoutput_infos[i].prob > p)
132 i++;
133
134 while (faceoutput_infos[j].prob < p)
135 j--;
136
137 if (i <= j) {
138 // swap
139 std::swap(faceoutput_infos[i], faceoutput_infos[j]);
140
141 i++;
142 j--;
143 }
144 }
145
146#pragma omp parallel sections
147 {
148#pragma omp section
149 {
150 if (left < j)
151 qsort_descent_inplace(faceoutput_infos, left, j);
152 }
153#pragma omp section
154 {
155 if (i < right)
156 qsort_descent_inplace(faceoutput_infos, i, right);
157 }
158 }
159}
160
161static void qsort_descent_inplace(std::vector<OutputInfo>& output_infos) {
162 if (output_infos.empty())

Callers 1

postpreprocessFunction · 0.85

Calls 1

swapFunction · 0.85

Tested by

no test coverage detected