autres_exemples_c

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 ici
On peut partir de l'exemple, et pour compiler:

#include <stdio.h>
#include <complex>
#include <iostream>

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
  • autres_exemples_c.txt
  • Dernière modification: 2017/08/25 09:56
  • (modification externe)