| 319 | } |
| 320 | |
| 321 | void sort_f(SyncArray<float_type> &f_val2sort, SyncArray<int> &f_idx2sort) { |
| 322 | vector<std::pair<float_type, int>> paris; |
| 323 | float_type *f_val2sort_data = f_val2sort.host_data(); |
| 324 | int *f_idx2sort_data = f_idx2sort.host_data(); |
| 325 | for (int i = 0; i < f_val2sort.size(); ++i) { |
| 326 | paris.emplace_back(f_val2sort_data[i], f_idx2sort_data[i]); |
| 327 | } |
| 328 | std::sort(paris.begin(), paris.end()); |
| 329 | for (int i = 0; i < f_idx2sort.size(); ++i) { |
| 330 | f_idx2sort_data[i] = paris[i].second; |
| 331 | } |
| 332 | } |
| 333 | } |
| 334 | |