|
DenseLinAlgPack: Concreate C++ Classes for Dense Blas-Compatible Linear Algebra Version of the Day
|
00001 // @HEADER 00002 // *********************************************************************** 00003 // 00004 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization 00005 // Copyright (2003) Sandia Corporation 00006 // 00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00008 // license for use of this work by or on behalf of the U.S. Government. 00009 // 00010 // This library is free software; you can redistribute it and/or modify 00011 // it under the terms of the GNU Lesser General Public License as 00012 // published by the Free Software Foundation; either version 2.1 of the 00013 // License, or (at your option) any later version. 00014 // 00015 // This library is distributed in the hope that it will be useful, but 00016 // WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 // Lesser General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU Lesser General Public 00021 // License along with this library; if not, write to the Free Software 00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00023 // USA 00024 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 00025 // 00026 // *********************************************************************** 00027 // @HEADER 00028 00029 #ifndef LAPACK_C_DECL_H 00030 #define LAPACK_C_DECL_H 00031 00032 #include "Teuchos_F77_wrappers.h" 00033 00034 // C Declarations for calling LAPACK functions. 00035 00036 namespace LAPACK_C_Decl { 00037 00038 typedef FortranTypes::f_int f_int; 00039 typedef FortranTypes::f_real f_real; 00040 typedef FortranTypes::f_dbl_prec f_dbl_prec; 00041 typedef FortranTypes::f_logical f_logical; 00042 typedef FortranTypes::f_char f_char; 00043 00044 // DPOTRF 00045 00046 void dpotrf( const f_char& UPLO 00047 , const f_int& N, f_dbl_prec* A, const f_int& LDA 00048 , f_int* INFO ); 00049 00050 // DGEQRF 00051 00052 void dgeqrf( const f_int& M 00053 , const f_int& N, f_dbl_prec* A, const f_int& LDA 00054 , f_dbl_prec* TAU, f_dbl_prec* WORK 00055 , const f_int& LWORK, f_int* INFO ); 00056 00057 // DORMRQ 00058 00059 void dormqr( const f_char& SIDE 00060 , const f_char& TRANS, const f_int& M, const f_int& N 00061 , const f_int& K, const f_dbl_prec* A, const f_int& LDA 00062 , const f_dbl_prec* TAU, f_dbl_prec* C, const f_int& LDC 00063 , f_dbl_prec* WORK, const f_int& LWORK, f_int* INFO ); 00064 00065 // DSYTRF 00066 00067 void dsytrf( const f_char& UPLO 00068 , const f_int& N, f_dbl_prec A[], const f_int& LDA 00069 , f_int IPIV[], f_dbl_prec WORK[], const f_int& LWORK 00070 , f_int* INFO ); 00071 00072 // DSYTRS 00073 00074 void dsytrs( const f_char& UPLO 00075 , const f_int& N, const f_int& NRHS, const f_dbl_prec A[] 00076 , const f_int& LDA, const f_int IPIV[], f_dbl_prec B[] 00077 , const f_int& LDB, f_int* INFO ); 00078 00079 // DGETRF 00080 00081 void dgetrf( 00082 const f_int& M, const f_int& N, f_dbl_prec A[], const f_int& LDA 00083 ,f_int IPIV[], f_int* INFO 00084 ); 00085 00086 // DGETRS 00087 00088 void dgetrs( 00089 const f_char& TRANS 00090 ,const f_int& N, const f_int& NRHS, const f_dbl_prec A[] 00091 ,const f_int& LDA, const f_int IPIV[], f_dbl_prec B[] 00092 ,const f_int& LDB, f_int* INFO 00093 ); 00094 00095 00096 } // end namespace LAPACK_C_Decl 00097 00098 #endif // LAPACK_C_DECL_H
1.7.4