相关疑难解决方法(0)

一起计算sin和cos的最快方法是什么?

我想一起计算一个值的正弦和正弦值(例如创建一个旋转矩阵).当然我可以一个接一个地分别计算它们a = cos(x); b = sin(x);,但我想知道在需要两个值时是否有更快的方法.

编辑: 总结到目前为止的答案:

  • 弗拉德说,有asm命令FSINCOS计算它们(几乎与FSIN单独呼叫同时)

  • Chi注意到的那样,这种优化有时已经由编译器完成(当使用优化标志时).

  • 咖啡厅指出,其功能sincossincosf可能是可用的,并且可以通过只包括直接调用math.h

  • 讨论使用查找表的 tanascius方法存在争议.(但是在我的计算机和基准测试场景中,它运行速度比sincos32位浮点几乎相同的速度快3倍.)

  • Joel Goodwin与一种极其快速近似技术的有趣方法相关联,具有相当好的准确性(对我来说,这比查表更快)

c c# c++ algorithm math

98
推荐指数
9
解决办法
2万
查看次数

___sincos_stret链接时未定义的符号

就像前文提到这里,___sincos_stret编译使用使用Xcode5命令行工具,这个符号项目时无法找到.

在上面提到的线程中,为IOS目标发布了一个解决方案(传递-miphoneos-version-min=5.0给编译器),是否有针对desktop(x64)目标的解决方案?

例如,当我尝试编译polycode时,它就会发生.

编辑2:

奇怪的是,在手动编译上一个错误中引用的库之后,错误现在恰好位于lto.o中,这是一个内部llvm头本身...

undef: ___sincos_stret
Undefined symbols for architecture x86_64:
  "___sincos_stret", referenced from:
      _mdct_init in lto.o
      _dradfg in lto.o
Run Code Online (Sandbox Code Playgroud)

我正在使用Xcode 5运行OSX 10.9 DP.这是链接步骤.

c++ macos xcode xcode5

14
推荐指数
3
解决办法
9541
查看次数

一次计算正弦和余弦

我有一个使用相同参数的正弦和余弦的科学代码(我基本上需要该参数的复数指数).我想知道是否有可能比分别调用正弦和余弦函数更快.

另外我只需要0.1%的精度.那么有什么方法可以找到默认的触发功能并截断功率系列的速度?

我想到的另一件事是,有没有办法执行余数运算,结果总是积极的?在我自己使用的算法中,x=fmod(x,2*pi);但如果x为负数,我需要加2pi(较小的域意味着我可以使用较短的幂级数)

编辑:LUT原来是最好的方法,但我很高兴我了解了其他近似技术.我还建议使用明确的中点近似.这就是我最终做的事情:

const int N = 10000;//about 3e-4 error for 1000//3e-5 for 10 000//3e-6 for 100 000
double *cs = new double[N];
double *sn = new double[N];
for(int i  =0;i<N;i++){
    double A= (i+0.5)*2*pi/N;
    cs[i]=cos(A);
    sn[i]=sin(A);
}
Run Code Online (Sandbox Code Playgroud)

以下部分近似(中点)sincos(2*pi*(wc2 + t [j]*(cotp*t [j] -wc)))

double A=(wc2+t[j]*(cotp*t[j]-wc));
int B =(int)N*(A-floor(A));
re += cs[B]*f[j];
im += sn[B]*f[j];
Run Code Online (Sandbox Code Playgroud)

另一种方法可能是使用切比雪夫分解.您可以使用orthogonality属性来查找系数.针对指数进行了优化,它看起来像这样:

double fastsin(double x){
    x=x-floor(x/2/pi)*2*pi-pi;//this line can be improved, both inside this 
                              //function and before you input it into the function

    double x2 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm trigonometry

9
推荐指数
1
解决办法
2116
查看次数

标签 统计

c++ ×3

algorithm ×2

c ×1

c# ×1

macos ×1

math ×1

trigonometry ×1

xcode ×1

xcode5 ×1