Ускорьте рамки на iphone - PullRequest
       39

Ускорьте рамки на iphone

4 голосов
/ 18 марта 2012

Ускорение фреймворка это хорошо, если я хочу сделать некоторую алгебру на векторах или вычислить БПФ. Но, если я что-то упустил, в случае, если я хочу вычислить косинус (или любой другой триггер) значений в векторе, нет никакого способа сделать это с ускорением. Кроме того, vecLib помечен как недоступный на iphone, а в vDSP отсутствуют такие вещи, как квадратные корни, логарифмы, тригонометрические функции ...

Я действительно прав? о_О

Если да, как ускорить вычисления этих отсутствующих функций и воспользоваться возможностями ускорения, используемыми?


Ответ:

Как сказал ниже MrMage, в Accelerate доступно семейство функций vv.... К ним относятся триги, логи, корни и т. Д. Но поддержка сложных чисел не поддерживается. Спасибо MrMage!

Ответы [ 2 ]

3 голосов
/ 18 марта 2012

Согласно документации по iOS 5.1, по крайней мере vvsinf (и аналогичные функции из vecLib) доступны в iOS 5.0 и более поздних версиях. Я думаю, это должно удовлетворить ваши потребности.

0 голосов
/ 18 марта 2012

Мое чтение документации говорит мне, что Accelerate / vfp.h существует на iOS, и что там есть триггерные функции. Однако я не пробовал его использовать, поэтому я продолжу предполагать, что я не прав.

Быстрые реализации триггеров оказываются не очень умными. Есть математическая вещь, называемая расширением Тейлора, которая говорит примерно:

sin(theta+epsilon) = sin(theta) + x*epsilon + small corrections

Таким образом, это означает, что вы можете создать справочную таблицу, в которой для ключевых значений theta записываются sin (theta) и x. Затем вы выполняете приведенное выше уравнение, которое очень быстро (посмотрите на Fused Add и Multiply от Accelerate).

...