我正在尝试使用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而不是闪电战,工作正常。然而,带闪电战的第二个区块不会执行cos(myarray)
。编译器似乎计算出迭代,但无法找到函数来为值Compiler error log
cos(x)
我还想使用boost::multiprecision::mpfr
,但一次只能使用一件事。我希望有人可以提供帮助。