====== Utilisation des nombres complexes ====== sur nemo, penser à choisir la dernière version du compilateur: nemo-henry% module load ss12 La doc du compilateur C++ et des librairies fournies est [[http://docs.sun.com/app/docs/doc/819-5267?a=load|ici]] \\ On peut partir de l'[[http://www-fourier.ujf-grenoble.fr/~faure/enseignement/doc_c++/complex_CC.html|exemple]], et pour compiler: #include #include #include int main() { typedef std ::complex < float >complex; complex z(1, 2), zz(3, 4), I(0, 1); complex zzz = z + zz; std::cout << zzz << std::endl; std::cout << real(zzz) << std::endl; std::cout << imag(zzz) << std::endl; std::cout << norm(zzz) << std::endl; std::cout << abs(zzz) << std::endl; std::cout << I * I << std::endl; std::cout << sqrt(complex(-1.)) << std::endl; std::cout << " OK !" << std::endl; } nemo-henry% CC -m64 -library=stlport4 -library=complex comp.C nemo-henry% ldd comp libstlport.so.1 => /opt/studio12/SUNWspro/lib/stlport4/amd64/libstlport.so.1 librt.so.1 => /lib/64/librt.so.1 libCrun.so.1 => /usr/lib/64/libCrun.so.1 libm.so.2 => /lib/64/libm.so.2 libc.so.1 => /lib/64/libc.so.1 libaio.so.1 => /lib/64/libaio.so.1 libmd.so.1 => /lib/64/libmd.so.1 ou bien, avec gcc par défaut (3.4.3): nemo-henry% g++ -m64 comp.C -lm -o comp nemo-henry% ldd comp libstdc++.so.6 => /usr/sfw/lib/amd64/libstdc++.so.6 libm.so.2 => /lib/64/libm.so.2 libgcc_s.so.1 => /usr/sfw/lib/amd64/libgcc_s.so.1 libc.so.1 => /lib/64/libc.so.1