我正在尝试结合 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)
值执行实际操作的函数:编译器错误日志
我也想使用boost::multiprecision::mpfr
,但一次一件事。我希望有人能帮帮忙。