OurLibLapack.h

Go to the documentation of this file.
00001 /* Copyright (C) INRIA 1999-2005
00002 ** 
00003 ** This program is free software; you can redistribute it and/or modify it
00004 ** under the terms of the GNU General Public License version 2 as published
00005 ** by the Free Software Foundation.
00006 ** 
00007 ** This program is distributed in the hope that it will be useful, but
00008 ** WITHOUT ANY WARRANTY; without even the implied warranty of
00009 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00010 ** Public License for more details.
00011 ** 
00012 ** You should have received a copy of the GNU General Public License along
00013 ** with this program; if not, write to the Free Software Foundation, Inc.,
00014 ** 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00015 **
00016 */
00026 #ifndef __ourliblapack_h
00027 #define __ourliblapack_h
00028 
00029 #ifdef WINDOWS
00030 #define extern __declspec (dllexport)
00031 #endif
00032 
00033 
00035 // Fonctions BLAS et LAPACK
00037 
00038 // Decomposition (P)LU de la matrice A, stockee dans A et ipiv
00039 
00040 extern void
00041 dgetrf_(const int *m,
00042         const int *n,
00043         double *A,
00044         const int *lda,
00045         int *ipiv,
00046         int *info);
00047 
00048 
00049 // Inversion de la matrice A apres avoir fait sa decomposition (P)LU,
00050 // stockee dans A et ipiv
00051 extern void
00052 dgetri_(const int *n,
00053         double *A,
00054         const int *lda,
00055         int *ipiv,
00056         double *work,
00057         int *lwork,
00058         int *info);
00059 
00060 // Multiplication par inv(A) apres avoir fait sa decomposition (P)LU,
00061 // stockee dans A et ipiv
00062 extern void
00063 dgetrs_(const char *trans,
00064         const int *n,
00065         const int *nrhs,
00066         const double *A,
00067         const int *lda,
00068         const int *ipiv,
00069         double *B,
00070         const int *ldb,
00071         int *info);
00072 
00073 // B = inv(A)*B, strictement equivalent a dgetrf_ suivi de dgetrs_
00074 extern int
00075 dgesv_(const int *n,
00076        const int *nrhs,
00077        double *A,
00078        const int *lda,
00079        int *ipiv,
00080        double *B,
00081        const int *ldb,
00082        int *info);
00083 
00084 // Multiplication de matrices: C = alpha*A*B+beta*C
00085 extern int
00086 dgemm_(const char *transa,
00087        const char *transb,
00088        const int *m,
00089        const int *n,
00090        const int *k,
00091        const double *alpha,
00092        const double *A,
00093        const int *lda,
00094        const double *B,
00095        const int *ldb,
00096        const double *beta,
00097        double *C,
00098        const int *ldc);
00099 
00100 // Multiplication matrice/vecteur: y = alpha*A*x+beta*y
00101 extern int
00102 dgemv_(const char *trans,
00103        const int *m,
00104        const int *n,
00105        const double *alpha,
00106        const double *A,
00107        const int *lda,
00108        const double *x,
00109        const int *incx,
00110        const double *beta,
00111        double *y,
00112        const int *incy);
00113 
00114 // Addition de vecteurs: y = alpha*x+y
00115 extern int
00116 daxpy_(const int *n,
00117        const double *alpha,
00118        const double *x,
00119        const int *incx,
00120        double *y,
00121        const int *incy);
00122 
00123 // Multiplication scalaire/vecteur: x = alpha*x
00124 extern int
00125 dscal_(const int *n,
00126        const double *alpha,
00127        double *x,
00128        const int *incx);
00129 
00130 // Copie d'un vecteur: y = x
00131 extern int
00132 dcopy_(const int *n,
00133        const double *x,
00134        const int *incx,
00135        double *y,
00136        const int *incy);
00137 
00138 
00140 // Algo de resolution de QP, qld
00142 extern int 
00143 ql0001_(const int *m,
00144         const int *me,
00145         const int *mmax,
00146         const int *n,
00147         const int *nmax,
00148         const int *mnn,
00149         const double *c,
00150         const double *d,
00151         const double *a,
00152         const double *b,
00153         const double *xl,
00154         const double *xu,
00155         double *x,
00156         double *u,
00157         const int *iout,
00158         int *ifail,
00159         const int *iprint,
00160         double *war,
00161         int *lwar,
00162         int *iwar,
00163         int *liwar,
00164         const double *eps1);
00165 
00166 
00167 
00168 #endif

HuMAnS

humans-users@inrialpes.fr


Generated on Tue Mar 6 14:12:05 2007 for HuMAnS by doxygen 1.4.7