====== 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