270
Le logiciel R - Maˆ ıtriser le langage
6 using namespace NEWMAT ;
7 # endif
8 extern "C" {
9
void invC ( double * values , int * nrow ) {
10
int i , j;
11
Matrix M( nrow [0] , nrow [0]);
12
M << values ;
13
M << M.i (); // Calcul de l ' inverse de M
14
for (i =1; i <= nrow [0]; i ++) {
15
for (j =1; j <= nrow [0]; j ++) {
16
values [ nrow [0] * (i -1)+ j -1] = M(i ,j );
17
}
18
}
19
M. Release ();
20
return ;
21
}}
Astuce
T´ el´ echargez le fichier http://www.robertnz.net/ftp/newmat11.zip
et d´ ecompressez-le dans C:/newmat. Ensuite, tapez les instructions suivantes dans une fenˆ etre MSDOS :
cd \
cd newmat
g++ -O2 -c * .cpp
ar cr newmat.a * .o
ranlib newmat.a
cp newmat.a newmat.dll
Apr` es quelques minutes, les librairies newmat.a et newmat.dll sont cr´ e´ ees
dans le dossier C:\newmat.
Vous devez maintenant cr´ eer la librairie inv.dll (ou inv.so sous Linux)
au moyen des instructions suivantes :
cd dossier contenant le fichier inv.cpp
g++ -IC:\newmat -o inv.o -c inv.cpp
R CMD SHLIB inv.cpp -IC:\newmat C:/newmat/newmat.a
Linux
g++ -I/usr/include/R -I/usr/local/include -Inewmat -fpic \
-c inv.cpp -o inv.o
R CMD SHLIB inv.cpp -Inewmat newmat/newmat.a
Précédent

- 303/701

Suivant