2017-05-24 26 views
-1

我将一些matlab代码转换为C++。有些代码行长度大约为250,000。此外,它们涉及非常大的尾数,如“2.209647215146515615616515615615103202897891 316e-258”,精度对我很重要(我知道这个数字非常接近零,但我不能用零代替)。在MATLAB完美运行如何将matlab长线方程转换为C++?

这些代码(快速准确),但在C++中,有一些问题:

  • 第一:编译时间耗时过长。

  • 第二:花了很长时间建立后,它的工作非常非常慢! 我正在使用Visual Studio 2015,并且在其中编写代码时,由于线条和预处理任务的大小很大,它停止工作,我必须重新启动它。 有没有什么办法可以在C++和Visual Studio IDE中使用很长的代码和很大的数字?

+4

请尝试本地化您的问题并提供[mcve]。你不能简化你的表情吗? – m7913d

+0

你尝试过'无符号long long'吗? – pandoragami

+1

@pandoragami这将无法正常工作,因为无符号long long首先仅用于整数,并且此问题使用双精度。接下来,无符号long long只能保存20位左右的数字,而这需要精确到250位左右的数字。 –

回答

2

你可能想从gmplib.org

GMP是高精度计算一个免费的图书馆,在 符号整数,有理数操作和浮点数尝试GMP。除了GMP运行的机器上 可用内存所暗示的那些之外, 对精度没有实际的限制。 GMP具有丰富的功能,并且功能具有常规界面。

你的问题是非常广泛的,虽然加,因为你使用Visual Studio它可能是与你现有的库来编译这是一场噩梦。我建议你去看看Linux,并为此进行“科学计算”。