Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用CX\u有限范围开/关_C_Pragma - Fatal编程技术网

如何使用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