ifp_lapackd.h

00001 /*      LAPACK++ (V. 1.0 Beta)                      */
00002 /*      (C) 1992-1994 All Rights Reserved.              */
00003 /*
00004               LAPACK++ 1.0: Linear Algebra Package 1.0
00005                University of Tennessee, Knoxvilee, TN.
00006             Oak Ridge National Laboratory, Oak Ridge, TN.
00007         Authors: J. J. Dongarra, E. Greaser, R. Pozo, D. Walker
00008                  (C) 1992-1993 All Rights Reserved
00009 
00010                              NOTICE
00011 
00012  Permission to use, copy, modify, and distribute this software and
00013  its documentation for any purpose and without fee is hereby granted
00014  provided that the above copyright notice appear in all copies and
00015  that both the copyright notice and this permission notice appear in
00016  supporting documentation.
00017 
00018  Neither the Institutions (University of Tennessee, and Oak Ridge National
00019  Laboratory) nor the Authors make any representations about the suitability
00020  of this software for any purpose.  This software is provided ``as is''
00021  without express or implied warranty.
00022 
00023  LAPACK++ was funded in part by the U.S. Department of Energy, the
00024  National Science Foundation and the State of Tennessee.
00025 */
00026 
00027 //      Double precision Lapack routines
00028 
00029 #ifndef _IFP_DLAPACK_H_
00030 #define _IFP_DLAPACK_H_
00031 
00032 #include "ifp_arch.h"
00033 
00034 extern "C"
00035 {
00036 // *************************** Utility Routines **********************
00037 
00038 
00039     double F77NAME(dlamch)(char *t);
00040 
00041 
00042 
00043 //******************** Linear Equation Solvers *************************
00044     void F77NAME(dgesv)(integer *n, integer *k, doublereal *A, integer *lda, integer *ipiv,
00045             doublereal *X, integer *ldx, integer *info);
00046 
00047     void F77NAME(dposv)(char *uplo, integer *m, integer *k , doublereal *A, integer *lda,
00048         doublereal *X, integer *ldx, integer *info);
00049 
00050     void F77NAME(dsysv)(const char *uplo, integer *n, integer *nrhs, doublereal *A, 
00051             integer *lda, integer *ipv, integer *lidb, doublereal *work, integer *lwork, integer *info);
00052 
00053 //******************** Lapack Utility Routines ************************
00054 
00055     void F77NAME(dgels)(char *trans, integer *m, integer *n, integer *nrhs, doublereal *A,
00056         integer *lda, doublereal *B, integer *ldb, doublereal *work, integer *lwork, integer *info);
00057 
00058     void F77NAME(dtimmg)(integer *iflag, integer *m, integer *n, doublereal *A, integer *lda,
00059                 integer *kl, integer *ku);
00060 
00061     void F77NAME(dlaswp)(integer *n, doublereal *A, integer *lda, integer *k1, integer *k2,
00062                 integer *ipiv, integer *incx);
00063 
00064     doublereal F77NAME(dopla)(char *subname, integer *m, integer *n, integer *kl, integer *ku,
00065             integer *nb);
00066 
00067 // ******************* LU Factorization Routines **********************
00068 
00069     void F77NAME(dgetrf)(integer *m, integer *n, doublereal *A, integer *lda, integer *ipiv,
00070                 integer *info);
00071 
00072     void F77NAME(dgetf2)(integer *m, integer *n, doublereal *A, integer *lda, integer *ipiv,
00073                 integer *info);
00074 
00075     void F77NAME(dgbtrf)(integer *m, integer *n, integer *KL, integer *KU, doublereal *BM,
00076                 integer *LDBM, integer *ipiv, integer *info);
00077 
00078     void F77NAME(dgttrf)(integer *N, doublereal *DL, doublereal *D, doublereal *DU,
00079                 doublereal *DU2, integer *ipiv, integer *info);
00080 
00081     void F77NAME(dpotrf)(char *UPLO, integer *N, doublereal *SM, integer *LDSM,
00082                 integer *info);
00083 
00084     void F77NAME(dsytrf)(char *UPLO, integer *N, doublereal *SM, integer *LDSM,
00085                 integer *ipiv, doublereal *WORK, integer *LWORK, integer *info);
00086 
00087     void F77NAME(dpbtrf)(char *UPLO, integer *N, integer *KD, doublereal *SBM,
00088                 integer *LDSM, integer *info);
00089 
00090     void F77NAME(dpttrf)(integer *N, doublereal *D, doublereal *E, integer *info);
00091 
00092 // ********************* LU Solve Routines ***************************
00093 
00094     void F77NAME(dgetrs)(char *trans, integer *N, integer *nrhs, doublereal *A, integer *lda, 
00095             integer * ipiv, doublereal *b, integer *ldb, integer *info);
00096 
00097     void F77NAME(dgbtrs)(char *trans, integer *N, integer *kl, integer *ku, integer *nrhs,
00098             doublereal *AB, integer *ldab, integer *ipiv, doublereal *b, integer *ldb, integer *info);
00099 
00100     void F77NAME(dsytrs)(char *uplo, integer *N, integer *nrhs, doublereal *A, integer *lda, 
00101             integer *ipiv, doublereal *b, integer *ldb, integer *info);
00102 
00103     void F77NAME(dgttrs)(char *trans, integer *N, integer *nrhs, doublereal *DL, 
00104                 doublereal *D, doublereal *DU, doublereal *DU2, integer *ipiv, doublereal *b, 
00105                 integer *ldb, integer *info);
00106 
00107     void F77NAME(dpotrs)(char *UPLO, integer *N, integer *nrhs, doublereal *A, integer *LDA,
00108                 doublereal *b, integer *ldb, integer *info);
00109 
00110     void F77NAME(dpttrs)(integer *N, integer *nrhs, doublereal *D, doublereal *E, 
00111                 doublereal *b, integer *ldb, integer *info);
00112 
00113     void F77NAME(dpbtrs)(char *UPLO, integer *N, integer *KD, integer *nrhs, doublereal *AB,
00114                 integer *LDAB, doublereal *b, integer *ldb, integer *info);
00115 
00116 // ********************* Eigen Solve Routines ***************************
00117 
00118     void F77NAME(dsyev)(char *jobz, char *uplo, integer *N, doublereal *S,
00119     integer *lda, doublereal *eig, doublereal *work, integer *lwork, integer *info);
00120 
00121 // *******************************
00122 }
00123 
00124 #endif 

Generated on Tue Jul 13 09:27:13 2010 for IFPACK by  doxygen 1.4.7