2015-06-24 8 views
0

Я хотел бы использовать библиотеки Accelerate Framework для сортировки данных (пары значений x и y).Переупорядочение с ракурсом ускорения

Я использовал функцию vDSP_vsorti, чтобы найти вектор с индексами упорядочения данных x. Теперь я должен изменить порядок данных y в соответствии с порядком индексов сортировки x.

Как я мог это сделать? Существует ли функция в ускорителе Framework для изменения порядка вектора?

+0

Я вижу, что это C++, поэтому используйте std :: sort с соответствующим предикатом – davidhigh

ответ

-1

Можете ли вы использовать vDSP_vgathr? Эти API-интерфейсы захватывают значения из вектора, используя другой вектор индексов.

https://developer.apple.com/library/mac/documentation/Accelerate/Reference/vDSPRef/index.html#//apple_ref/c/func/vDSP_vgathr

Вот краткое изложение: Single-вектор Сбор Функции в этой группе можно использовать либо индексы или указатели, хранящиеся в пределах одного исходного вектора для генерации нового вектора, содержащего выбранные элементы из любого второго вектора источника или из памяти.

vDSP_vgathr Vector gather; единственная точность.

Декларация СВИФТ

func vDSP_vgathr(_ __vDSP_A: UnsafePointer<Float>, _ __vDSP_B: UnsafePointer<vDSP_Length>, _ __vDSP_J: vDSP_Stride, _ __vDSP_C: UnsafeMutablePointer<Float>, _ __vDSP_K: vDSP_Stride, _ __vDSP_N: vDSP_Length)

Objective-C

void vDSP_vgathr (const float *__vDSP_A, const vDSP_Length *__vDSP_B, vDSP_Stride __vDSP_IB, float *__vDSP_C, vDSP_Stride __vDSP_IC, vDSP_Length __vDSP_N); Параметры __vDSP_A
одинарной точности в реальном входной вектор __vDSP_B
целочисленный вектор, содержащие индексы __vDSP_J
Страйда для B __vDSP_C
одинарной точности в реальном выходном вектор __vDSP_K
Страйда для С __vDSP_N
Число элементов для обработки Обсуждения выполняет следующие операции:

использует элементы вектор В качестве индексов для копирования выбранных элементов вектора A в последовательные местоположения в векторе C. Обратите внимание, что 1, а не ноль, рассматривается как первое местоположение во входном векторе при оценке индексов. Эта функция может быть сделана неуместной.