我只是想知道我的程序会更快,因为我在浮点变量中使用sin和cos所以我决定以这种方式测试它:
int c;
float a;
float b = 0.5;
/***********************/
glfwSetTime(0.0);
time = glfwGetTime();
printf("\n%f", time);
/***********************/
glfwSetTime(0.0);
a = sinf(b);
for (c = 0; c < 10000; c++)
sinf(b);
time = glfwGetTime();
printf("\n%f, %f", time, a);
/***********************/
glfwSetTime(0.0);
a = sin(b);
for (c = 0; c < 10000; c++)
sin(b);
time = glfwGetTime();
printf("\n%f, %f", time, a);
/***********************/
while (1);
这是我得到的输出:
0.000001
0.000505, 0.479426
0.000300, 0.479426
问题是一样的,为什么使用带浮动的sin()比使用正确的函数sinf()更快?谢谢!
答案 0 :(得分:1)
sinf
的某些实现只是对sin
的简单调用,具有float
之前和之后的转换。可能是你的情况。
例如,请参阅:http://code.metager.de/source/xref/gnu/octave/gnulib-hg/lib/sinf.c