加速框架“签到”功能

Posted

技术标签:

【中文标题】加速框架“签到”功能【英文标题】:Accelerate framework "sign" function 【发布时间】:2015-04-22 17:01:29 【问题描述】:

我正在尝试找到一种超级快速的方法来获取向量中每个值的符号。我希望在加速框架中找到一个功能来执行此操作,但找不到。这是它的作用:

float *inputVector = .... // some audio vector
int length = ...// length of input vector.
float *outputVector = ....// result

for( int i = 0; i<length; i++ )

  if( inputVector[i] >= 0 ) outputVector[i] = 1;
  else outputVector[i] = -1;

【问题讨论】:

标准 C/C++ 数学函数是signbitf。您可能需要对负零进行更正,但在大多数情况下,这应该足够了。 【参考方案1】:

好吧,我想我已经找到了办法……

vvcopysignf() "复制一个数组,根据第二个数组设置每个值的符号。"

因此,一种方法是创建一个 1 数组,然后使用此函数根据输入数组更改 1 的符号。

float *ones = ... // a vector filled with 1's
float *input = .... // an input vector
float *output = ... // an output vector
int bufferSize = ... // size of the vectors;

vvcopysignf(output, ones, input, &bufferSize);

//output now is an array of -1s and 1s based the sign of the input.

【讨论】:

用 dispatch_benchmark 运行一些测试——这个方法比问题中描述的循环快 80%。甚至比使用 signbit() 更快

以上是关于加速框架“签到”功能的主要内容,如果未能解决你的问题,请参考以下文章

SSM框架实现考勤签到系统

多多签到系统小程序功能模块源码V1.0.12

会议怎么实现二维码签到,最好是微信公众平台上的功能

laravel 实现每日签到及奖励功能

php实现签到功能

签到功能,用 MySQL 还是 Redis ?