Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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
C++ 复数C++;实施绩效_C++_Visual C++_Gcc - Fatal编程技术网

C++ 复数C++;实施绩效

C++ 复数C++;实施绩效,c++,visual-c++,gcc,C++,Visual C++,Gcc,我有一个花大量时间做复杂指数演算的程序。 它目前使用C99数学库中的cexp。(我将其称为复杂) 但我必须让程序也在windows下运行 ATM我使用MinGW,但如果性能更好,我想切换到MSVC。 然而,MSVC不提供C99支持,所以它必须是C++复杂模板类实现(我将称之为复杂);还包括_complextypedef,但没有cexp,因此我必须使用sin和cos“手动”计算它 所以我想知道,从性能角度看,哪一个更好: 呆在MinGW,使用复合材料。我研究了libc6的源代码,看起来不管怎样都

我有一个花大量时间做复杂指数演算的程序。 它目前使用C99数学库中的
cexp
。(我将其称为复杂)

但我必须让程序也在windows下运行

ATM我使用MinGW,但如果性能更好,我想切换到MSVC。 然而,MSVC不提供C99支持,所以它必须是C++复杂模板类实现(我将称之为复杂);还包括_complextypedef,但没有
cexp
,因此我必须使用sin和cos“手动”计算它

所以我想知道,从性能角度看,哪一个更好:

  • 呆在MinGW,使用复合材料。我研究了libc6的源代码,看起来不管怎样都有对sin和cos的调用
  • 使用MSVC,使用复杂的实现
  • 使用MSVC,使用_复杂的实现
另外,如果我变得复杂或_复杂,是否值得保持复杂(对于Unix操作系统)? 或者性能上的差异是否无关紧要(使用gcc 4.7和-O3,使用MSVC和/O2?)


谢谢。

你到底在做什么,需要调用这么多的
xexp()
?傅里叶变换,但我不能使用任何FFT库。而我正处在一个项目的最后期限,所以这基本上只是“锦上添花”。@user1495627哈!我怀疑这样的事情。如果你在做FFT,你应该缓存你的旋转因子,而不是一遍遍地计算它们。你不需要改变算法来缓存旋转因子。如果您要实现任何FFT并关心性能,那么您要做的第一件事就是预计算并缓存旋转因子。缓存旋转因子所带来的性能提升可能会让您从更快的
cexp()
中获得的任何东西相形见绌。为什么只考虑MSVC?如果性能很重要,那么不妨试试英特尔编译器。