272
Le logiciel R - Maˆ ıtriser le langage
dossier contiendra par exemple ` a la racine un fichier nomm´ e make.inc.example,
qu’il vous faudra renommer en make.inc apr` es en avoir modifi´ e la ligne SHELL
= /bin/sh en SHELL = sh. Ensuite, tapez les instructions suivantes dans une
fenˆ etre de commande MS-DOS :
cd C:\lapack
make lapacklib blaslib
Au bout de plusieurs minutes, les librairies statiques librefblas.a ainsi que
liblapack.a seront cr´ e´ ees.
Renvoi
La documentation pour ces librairies peut ˆ etre consult´ ee ` a l’adresse
http://www.netlib.org/lapack/lug. Il est aussi bon de regarder directement les codes sources des routines BLAS et LAPACK que l’on souhaite
utiliser, car ils contiennent la description d´ etaill´ ee des arguments de ces
routines.
Voil` a le code Fortran, disponible ` a l’adresse http://biostatisticien.eu/
springeR/inv.f90, d’une sous-routine permettant de calculer l’inverse d’une
matrice. Il utilise les sous-routines external DGETRF et DGETRI de la librairie
Lapack.
1 ! Renvoie l’inverse d’une matrice calcul´ ee en trouvant
2 ! la d´ ecomposition LU. D´ epend de LAPACK.
3 subroutine invF (A , Ainv ,m)
4
double precision , dimension (m ,m), intent ( in ) :: A
5
double precision , dimension ( size (A ,1) , size (A ,2)) , &
6
intent ( inout ) :: Ainv
7
8
! array de travail pour LAPACK
9
double precision , dimension ( size (A ,1)) :: work
10
integer , dimension ( size (A ,1)) :: ipiv ! indices pivot
11
integer :: n , info , m
12
13
! Procedures externes d´ efinies dans LAPACK
14
external DGETRF
15
external DGETRI
16
17
! Stocke A dans Ainv pour l’emp^ echer
18
! d’^ etre ´ ecras´ ee par LAPACK
19
Ainv = A
20
n = size (A ,1)
21
22
! DGETRF calcule une factorisation LU
Le logiciel R - Maˆ ıtriser le langage
dossier contiendra par exemple ` a la racine un fichier nomm´ e make.inc.example,
qu’il vous faudra renommer en make.inc apr` es en avoir modifi´ e la ligne SHELL
= /bin/sh en SHELL = sh. Ensuite, tapez les instructions suivantes dans une
fenˆ etre de commande MS-DOS :
cd C:\lapack
make lapacklib blaslib
Au bout de plusieurs minutes, les librairies statiques librefblas.a ainsi que
liblapack.a seront cr´ e´ ees.
Renvoi
La documentation pour ces librairies peut ˆ etre consult´ ee ` a l’adresse
http://www.netlib.org/lapack/lug. Il est aussi bon de regarder directement les codes sources des routines BLAS et LAPACK que l’on souhaite
utiliser, car ils contiennent la description d´ etaill´ ee des arguments de ces
routines.
Voil` a le code Fortran, disponible ` a l’adresse http://biostatisticien.eu/
springeR/inv.f90, d’une sous-routine permettant de calculer l’inverse d’une
matrice. Il utilise les sous-routines external DGETRF et DGETRI de la librairie
Lapack.
1 ! Renvoie l’inverse d’une matrice calcul´ ee en trouvant
2 ! la d´ ecomposition LU. D´ epend de LAPACK.
3 subroutine invF (A , Ainv ,m)
4
double precision , dimension (m ,m), intent ( in ) :: A
5
double precision , dimension ( size (A ,1) , size (A ,2)) , &
6
intent ( inout ) :: Ainv
7
8
! array de travail pour LAPACK
9
double precision , dimension ( size (A ,1)) :: work
10
integer , dimension ( size (A ,1)) :: ipiv ! indices pivot
11
integer :: n , info , m
12
13
! Procedures externes d´ efinies dans LAPACK
14
external DGETRF
15
external DGETRI
16
17
! Stocke A dans Ainv pour l’emp^ echer
18
! d’^ etre ´ ecras´ ee par LAPACK
19
Ainv = A
20
n = size (A ,1)
21
22
! DGETRF calcule une factorisation LU
