【发布时间】:2013-12-04 19:38:49
【问题描述】:
我正在尝试结合 blitz++ 的漂亮数组语法进行任意精度算术。我的问题是,cos、exp 等通用数学函数不起作用:
#include <blitz/array.h>
#include <boost/multiprecision/float128.hpp>
using namespace boost::multiprecision;
using namespace blitz;
int main() {
float128 a = 1;
a = cos(a);
cout << a << endl;
Array<float128,3> myarray(2,3,4);
myarray = 1;
myarray = cos(myarray);
cout << myarray;
}
g++ test.cpp -lquadmath -o test
第一个块,仅使用 float128 而不是 blitz,工作正常。然而,闪电战的第二个区块不会执行cos(myarray)。编译器看似计算出迭代,但找不到执行实际 cos(x) 值的函数:Compiler error log
我也想使用boost::multiprecision::mpfr,但一次只做一件事。我希望有人可以提供帮助。
【问题讨论】: