Chapitre 6. Programmation en R
269
Attention
Vous aurez not´ e qu’il a ´ et´ e n´ ecessaire d’indiquer respectivement les chemins d’acc` es vers les dossiers contenant les fichiers R.h, Rmath.h et R.dll.
Modifiez ceux-ci au besoin suivant la configuration de votre syst` eme. Par
ailleurs, le symbole ^ indique, en langage MS-DOS, une ligne incompl` ete.
Linux
g++ -c integ.cpp -o integ.o -I"/usr/lib/R/include" -fPIC
g++ -shared -o integ.so integ.o -I"/usr/lib/R/include" \
-L"/usr/lib" -lR
Maintenant, pour r´ ealiser le calcul sous R, il suffit d’utiliser les instructions
suivantes :
> dyn.load(paste("integ",.Platform$dynlib.ext,sep=""))
> # c’est-à-dire: dyn.load("integ.dll") sous Microsoft Windows.
> .C("testintegral",val=0.0)$val
[1] 2.407529
Bien entendu, le r´ esultat de ce calcul varie suivant les r´ ealisations 1 et 2
obtenues.
6.5.3.2 La librairie newmat
La librairie newmat permet de manipuler diff´ erents types de matrices et
d’effectuer des op´ erations classiques telles que : multiplication, transposition,
inversion, calculs de valeurs propres, d´ ecompositions, etc.
Renvoi
La documentation compl` ete de cette librairie est disponible (en anglais)
ici : http://www.robertnz.net/nm11.htm
Le code ci-dessous, disponible ` a l’adresse http://biostatisticien.eu/
springeR/inv.cpp, est un code C/C++ utilisant cette librairie pour inverser
une matrice et pourra ˆ etre appel´ e depuis R.
1 # define WANT _ STREAM
2 # define WANT _ MATH
3 # include " newmatap .h"
4 # include " newmatio .h"
5 # ifdef use _ namespace
269
Attention
Vous aurez not´ e qu’il a ´ et´ e n´ ecessaire d’indiquer respectivement les chemins d’acc` es vers les dossiers contenant les fichiers R.h, Rmath.h et R.dll.
Modifiez ceux-ci au besoin suivant la configuration de votre syst` eme. Par
ailleurs, le symbole ^ indique, en langage MS-DOS, une ligne incompl` ete.
Linux
g++ -c integ.cpp -o integ.o -I"/usr/lib/R/include" -fPIC
g++ -shared -o integ.so integ.o -I"/usr/lib/R/include" \
-L"/usr/lib" -lR
Maintenant, pour r´ ealiser le calcul sous R, il suffit d’utiliser les instructions
suivantes :
> dyn.load(paste("integ",.Platform$dynlib.ext,sep=""))
> # c’est-à-dire: dyn.load("integ.dll") sous Microsoft Windows.
> .C("testintegral",val=0.0)$val
[1] 2.407529
Bien entendu, le r´ esultat de ce calcul varie suivant les r´ ealisations 1 et 2
obtenues.
6.5.3.2 La librairie newmat
La librairie newmat permet de manipuler diff´ erents types de matrices et
d’effectuer des op´ erations classiques telles que : multiplication, transposition,
inversion, calculs de valeurs propres, d´ ecompositions, etc.
Renvoi
La documentation compl` ete de cette librairie est disponible (en anglais)
ici : http://www.robertnz.net/nm11.htm
Le code ci-dessous, disponible ` a l’adresse http://biostatisticien.eu/
springeR/inv.cpp, est un code C/C++ utilisant cette librairie pour inverser
une matrice et pourra ˆ etre appel´ e depuis R.
1 # define WANT _ STREAM
2 # define WANT _ MATH
3 # include " newmatap .h"
4 # include " newmatio .h"
5 # ifdef use _ namespace
