exflib のサイトでは、 C++ のテンプレート・ライブラリィと exflib は協調して動くように書いてある。
test-cpp-complex-2.cpp |
// test-cpp-complex-2.cpp #include <iostream> #include <iomanip> // setprecision() #include <complex> #include <math.h> #define PRECISION 50 #include <exfloat.h> using namespace std; int main(void) { complex<exfloat> I(0,1), z, one; one = 1; cout << "I=" << I << endl; cout << "I^2=" << I * I << endl; cout << setprecision(PRECISION+10) << "sqrt(I)=" << sqrt(I) << endl; cout << "sqrt(I)の自乗=" << sqrt(I)*sqrt(I) << endl; z=one+I; cout << "z=" << z << ", z^2=" << z*z << endl; return 0; } |
[katsurada:~/study-c-c++-2010] mk% g++ test-cpp-complex-2.cpp -lexfloat [katsurada:~/study-c-c++-2010] mk% ./a.out I=(0,1) I^2=(-1,0) sqrt(I)=(0.70710678118654752440084436210484903928483593768847,0.70710678118654752440084436210484903928483593768847) sqrt(I)=(0,1) z=(1,1), z^2=(0,2) [katsurada:~/study-c-c++-2010] mk% |
sqrt() のような関数もちゃんと動くのは大したものだ (少し驚いた)。
桂田 祐史