如何使用CX\u有限范围开/关
在我的测试代码中,如何使用CX\u有限范围开/关,c,pragma,C,Pragma,在我的测试代码中,CX\u LIMITED\u RANGE ON/OFF之间复杂计算使用的cpu时间没有差异。 CX_LIMITED_RANGE ON/OFF,何时以及如何使用#pragma STDC CX_LIMITED_RANGE ON,以及何时使用默认的#pragma STDC CX_LIMITED_RANGE OFF之间有什么区别 谢谢 void use_CX_LIMITED_RANGE() { double complex z1 = 3.0 + I * 4.0; dou
CX\u LIMITED\u RANGE ON/OFF
之间复杂计算使用的cpu时间没有差异。
CX_LIMITED_RANGE ON/OFF
,何时以及如何使用#pragma STDC CX_LIMITED_RANGE ON
,以及何时使用默认的#pragma STDC CX_LIMITED_RANGE OFF
之间有什么区别
谢谢
void use_CX_LIMITED_RANGE()
{
double complex z1 = 3.0 + I * 4.0;
double complex z2 = 1.0 + I * 2.0;
#pragma STDC CX_LIMITED_RANGE ON
clock_t c1 = clock();
double complex z3;
for (int i = 0; i < 100000; ++i) {
z3 = cabs(z1 * z2);
}
clock_t c2 = clock();
printf("CX_LIMITED_RANGE ON %lu cpu clock\n", c2 - c1);
printf("|z1 * z2| = %f + %fi\n", creal(z3), cimag(z3));
printf("\n");
#pragma STDC CX_LIMITED_RANGE OFF
c1 = clock();
for (int i = 0; i < 100000; ++i) {
z3 = cabs(z1 * z2);
}
c2 = clock();
printf("CX_LIMITED_RANGE OFF %lu\n", c2 - c1);
printf("|z1 * z2| = %f + %fi\n", creal(z3), cimag(z3));
}
void use\u CX\u LIMITED\u RANGE()
{
双复z1=3.0+I*4.0;
双复z2=1.0+I*2.0;
#布拉格STDC CX\u有限公司
时钟c1=时钟();
双络合物z3;
对于(int i=0;i<100000;++i){
z3=驾驶室(z1*z2);
}
时钟=时钟();
printf(“在%lu cpu时钟上的CX限制范围”,c2-c1);
printf(“|z1*z2 |)=%f+%fi\n”,creal(z3),cimag(z3));
printf(“\n”);
#布拉格STDC CX\u有限公司\u范围关闭
c1=时钟();
对于(int i=0;i<100000;++i){
z3=驾驶室(z1*z2);
}
c2=时钟();
printf(“CX\u有限范围关闭%lu\n”,c2-c1);
printf(“|z1*z2 |)=%f+%fi\n”,creal(z3),cimag(z3));
}
> p>一直试图在C++中使用GCC的这个语用,没有运气。我在-fcx有限范围内获得了5倍的性能提升,但是在代码中指定它没有效果。根据GCC的C99状态页面,它们还不支持标准pragmas