DenseLinAlgPack_LAPACK_C_Decl.cpp

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 #include "DenseLinAlgPack_LAPACK_C_Decl.hpp"
00030 
00031 // DPOTRF
00032 
00033 extern "C" {
00034   FORTRAN_FUNC_DECL_UL( void, DPOTRF, dpotrf ) ( FORTRAN_CONST_CHAR_1_ARG(UPLO)
00035     , const LAPACK_C_Decl::f_int& N, LAPACK_C_Decl::f_dbl_prec* A
00036     , const LAPACK_C_Decl::f_int& LDA, LAPACK_C_Decl::f_int* INFO  );
00037 }
00038 
00039 void LAPACK_C_Decl::dpotrf(  const f_char& UPLO
00040   , const f_int& N, f_dbl_prec* A, const f_int& LDA
00041   , f_int* INFO  )
00042 {
00043   FORTRAN_FUNC_CALL_UL(DPOTRF,dpotrf) (FORTRAN_CHAR_1_ARG_CALL(UPLO),N,A,LDA,INFO);
00044 }
00045 
00046 // DGEQRF
00047 
00048 extern "C" {
00049   FORTRAN_FUNC_DECL_UL( void, DGEQRF, dgeqrf ) (
00050     const LAPACK_C_Decl::f_int& M, const LAPACK_C_Decl::f_int& N
00051     , LAPACK_C_Decl::f_dbl_prec* A, const LAPACK_C_Decl::f_int& LDA
00052     , LAPACK_C_Decl::f_dbl_prec* TAU, LAPACK_C_Decl::f_dbl_prec* WORK
00053     , const LAPACK_C_Decl::f_int& LWORK, LAPACK_C_Decl::f_int* INFO  );
00054 }
00055 
00056 void LAPACK_C_Decl::dgeqrf( const f_int& M
00057   , const f_int& N, f_dbl_prec* A, const f_int& LDA
00058   , f_dbl_prec* TAU, f_dbl_prec* WORK
00059   , const f_int& LWORK, f_int* INFO  )
00060 {
00061   FORTRAN_FUNC_CALL_UL(DGEQRF,dgeqrf) (M,N,A,LDA,TAU,WORK,LWORK,INFO);
00062 }
00063 
00064 // DORMRQ
00065 
00066 extern "C" {
00067   FORTRAN_FUNC_DECL_UL( void, DORMQR, dormqr ) ( FORTRAN_CONST_CHAR_1_ARG(SIDE)
00068     , FORTRAN_CONST_CHAR_1_ARG(TRANS)
00069     , const LAPACK_C_Decl::f_int& M, const LAPACK_C_Decl::f_int& N
00070     , const LAPACK_C_Decl::f_int& K, const LAPACK_C_Decl::f_dbl_prec* A
00071     , const LAPACK_C_Decl::f_int& LDA, const LAPACK_C_Decl::f_dbl_prec* TAU
00072     , LAPACK_C_Decl::f_dbl_prec* C, const LAPACK_C_Decl::f_int& LDC
00073     , LAPACK_C_Decl::f_dbl_prec* WORK, const LAPACK_C_Decl::f_int& LWORK
00074     , LAPACK_C_Decl::f_int* INFO );
00075 }
00076 
00077 void LAPACK_C_Decl::dormqr( const f_char& SIDE
00078   , const f_char& TRANS, const f_int& M, const f_int& N
00079   , const f_int& K, const f_dbl_prec* A, const f_int& LDA
00080   , const f_dbl_prec* TAU, f_dbl_prec* C, const f_int& LDC
00081   , f_dbl_prec* WORK, const f_int& LWORK, f_int* INFO )
00082 {
00083   FORTRAN_FUNC_CALL_UL(DORMQR,dormqr)(FORTRAN_CHAR_1_ARG_CALL(SIDE)
00084     ,FORTRAN_CHAR_1_ARG_CALL(TRANS),M,N,K,A,LDA,TAU,C,LDC,WORK,LWORK,INFO);
00085 }
00086 
00087 // DSYTRF
00088 
00089 extern "C" {
00090   FORTRAN_FUNC_DECL_UL( void, DSYTRF, dsytrf ) ( FORTRAN_CONST_CHAR_1_ARG(UPLO)
00091     , const LAPACK_C_Decl::f_int& N, LAPACK_C_Decl::f_dbl_prec A[]
00092     , const LAPACK_C_Decl::f_int& LDA
00093     , LAPACK_C_Decl::f_int IPIV[], LAPACK_C_Decl::f_dbl_prec WORK[]
00094     , const LAPACK_C_Decl::f_int& LWORK
00095     , LAPACK_C_Decl::f_int* INFO );
00096 }
00097 
00098 void LAPACK_C_Decl::dsytrf( const f_char& UPLO
00099   , const f_int& N, f_dbl_prec A[], const f_int& LDA
00100   , f_int IPIV[], f_dbl_prec WORK[], const f_int& LWORK
00101   , f_int* INFO )
00102 {
00103   FORTRAN_FUNC_CALL_UL(DSYTRF,dsytrf)(FORTRAN_CHAR_1_ARG_CALL(UPLO)
00104     ,N,A,LDA,IPIV,WORK,LWORK,INFO);
00105 }
00106 
00107 // DSYTRS
00108 
00109 extern "C" {
00110   FORTRAN_FUNC_DECL_UL( void, DSYTRS, dsytrs ) ( FORTRAN_CONST_CHAR_1_ARG(UPLO)
00111     , const LAPACK_C_Decl::f_int& N, const LAPACK_C_Decl::f_int& NRHS
00112     , const LAPACK_C_Decl::f_dbl_prec A[]
00113     , const LAPACK_C_Decl::f_int& LDA, const LAPACK_C_Decl::f_int IPIV[]
00114     , LAPACK_C_Decl::f_dbl_prec B[]
00115     , const LAPACK_C_Decl::f_int& LDB, LAPACK_C_Decl::f_int* INFO );
00116 }
00117 
00118 void LAPACK_C_Decl::dsytrs( const f_char& UPLO
00119   , const f_int& N, const f_int& NRHS, const f_dbl_prec A[]
00120   , const f_int& LDA, const f_int IPIV[], f_dbl_prec B[]
00121   , const f_int& LDB, f_int* INFO )
00122 {
00123   FORTRAN_FUNC_CALL_UL(DSYTRS,dsytrs)(FORTRAN_CHAR_1_ARG_CALL(UPLO)
00124     ,N,NRHS,A,LDA,IPIV,B,LDB,INFO);
00125 }
00126 
00127 // DGETRF
00128 
00129 extern "C" {
00130   FORTRAN_FUNC_DECL_UL( void, DGETRF, dgetrf ) (
00131     const LAPACK_C_Decl::f_int& M ,const LAPACK_C_Decl::f_int& N
00132     ,LAPACK_C_Decl::f_dbl_prec A[], const LAPACK_C_Decl::f_int& LDA
00133     ,LAPACK_C_Decl::f_int IPIV[], LAPACK_C_Decl::f_int* INFO
00134     );
00135 }
00136 
00137 void LAPACK_C_Decl::dgetrf(
00138   const f_int& M, const f_int& N, f_dbl_prec A[], const f_int& LDA
00139   ,f_int IPIV[], f_int* INFO
00140   )
00141 {
00142   FORTRAN_FUNC_CALL_UL(DGETRF,dgetrf)(M,N,A,LDA,IPIV,INFO);
00143 }
00144 
00145 // DGETRS
00146 
00147 extern "C" {
00148   FORTRAN_FUNC_DECL_UL( void, DGETRS, dgetrs ) (
00149     FORTRAN_CONST_CHAR_1_ARG(TRANS)
00150     ,const LAPACK_C_Decl::f_int& N, const LAPACK_C_Decl::f_int& NRHS
00151     ,const LAPACK_C_Decl::f_dbl_prec* A, const LAPACK_C_Decl::f_int& LDA
00152     ,const LAPACK_C_Decl::f_int IPIV[]
00153     ,LAPACK_C_Decl::f_dbl_prec* B, const LAPACK_C_Decl::f_int& LDB
00154     ,LAPACK_C_Decl::f_int* INFO
00155     );
00156 }
00157 
00158 void LAPACK_C_Decl::dgetrs(
00159   const f_char& TRANS
00160   ,const f_int& N, const f_int& NRHS, const f_dbl_prec A[]
00161   ,const f_int& LDA, const f_int IPIV[], f_dbl_prec B[]
00162   ,const f_int& LDB, f_int* INFO
00163   )
00164 {
00165   FORTRAN_FUNC_CALL_UL(DGETRS,dgetrs)(
00166     FORTRAN_CHAR_1_ARG_CALL(TRANS),N,NRHS,A,LDA,IPIV,B,LDB,INFO
00167     );
00168 }

Generated on Wed May 12 21:31:33 2010 for DenseLinAlgPack: Concreate C++ Classes for Dense Blas-Compatible Linear Algebra by  doxygen 1.4.7