Teuchos_LAPACK_wrappers.hpp

Go to the documentation of this file.
00001 // @HEADER
00002 // ***********************************************************************
00003 // 
00004 //                    Teuchos: Common Tools Package
00005 //                 Copyright (2004) 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 Michael A. Heroux (maherou@sandia.gov) 
00025 // 
00026 // ***********************************************************************
00027 // @HEADER
00028 
00029 // Kris
00030 // 06.11.03 -- Format cleanup
00031 // 06.17.03 -- Added LAPY2 and GEES by request
00032 // 07.08.03 -- Move into Teuchos package/namespace
00033 
00034 #ifndef _TEUCHOS_LAPACK_WRAPPERS_HPP_
00035 #define _TEUCHOS_LAPACK_WRAPPERS_HPP_
00036 
00037 #include "Teuchos_ConfigDefs.hpp"
00038 
00042 /* Define fcd (Fortran Teuchos_fcd descriptor) for non-standard situations */
00043 
00044 #if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
00045 
00046 #if defined(CRAY_T3X)
00047 
00048 #include <fortran.h>
00049 #define PREFIX
00050 #define Teuchos_fcd fcd 
00051 
00052 #define DGEQRF_F77  F77_FUNC(sgeqrf,SGEQRF)
00053 #define DGETRF_F77  F77_FUNC(sgetrf,SGETRF)
00054 #define DGETRS_F77  F77_FUNC(sgetrs,SGETRS)
00055 #define DGETRI_F77  F77_FUNC(sgetri,SGETRI)
00056 #define DGERFS_F77  F77_FUNC(sgerfs,SGERFS)
00057 #define DGECON_F77  F77_FUNC(sgecon,SGECON)
00058 #define DGESVX_F77  F77_FUNC(sgesvx,SGESVX)
00059 #define DGESV_F77   F77_FUNC(sgesv,SGESV)
00060 #define DGEEQU_F77  F77_FUNC(sgeequ,SGEEQU)
00061 #define DSYTRD_F77  F77_FUNC(ssytrd,SSYTRD)
00062 #define DPOTRF_F77  F77_FUNC(spotrf,SPOTRF)
00063 #define DPOTRS_F77  F77_FUNC(spotrs,SPOTRS)
00064 #define DPOTRI_F77  F77_FUNC(spotri,SPOTRI)
00065 #define DPOCON_F77  F77_FUNC(spocon,SPOCON)
00066 #define DPOSV_F77   F77_FUNC(sposv,SPOSV)
00067 #define DPOEQU_F77  F77_FUNC(spoequ,SPOEQU)
00068 #define DPORFS_F77  F77_FUNC(sporfs,SPORFS)
00069 #define DPOSVX_F77  F77_FUNC(sposvx,SPOSVX)
00070 #define DLAMCH_F77  F77_FUNC(slamch,SLAMCH)
00071 #define DGELS_F77   F77_FUNC(sgels,SGELS)
00072 #define DGEEV_F77   F77_FUNC(sgeev,SGEEV)
00073 #define DGEHRD_F77  F77_FUNC(sgehrd,SGEHRD)
00074 #define DHSEQR_F77  F77_FUNC(shseqr,SHSEQR)
00075 #define DORMQR_F77  F77_FUNC(sormqr,SORMQR)
00076 #define DORGQR_F77  F77_FUNC(sorgqr,SORGQR)
00077 #define DORGHR_F77  F77_FUNC(sorghr,SORGHR)
00078 #define DORMHR_F77  F77_FUNC(sormhr,SORMHR)
00079 #define DTREVC_F77  F77_FUNC(strevc,STREVC)
00080 #define DTREXC_F77  F77_FUNC(strexc,STREXC)
00081 #define DGEES_F77   F77_FUNC(sgees,SGEES)
00082 #define DSPEV_F77   F77_FUNC(sspev,SSPEV)
00083 #define DSYEV_F77   F77_FUNC(ssyev,SSYEV)
00084 #define DSYGV_F77   F77_FUNC(ssygv,SSYGV)
00085 #define DSTEQR_F77  F77_FUNC(ssteqr,SSTEQR)
00086 #define DLAPY2_F77  F77_FUNC(slapy2,SLAPY2)
00087 #define DLARND_F77  F77_FUNC(slarnd,SLARND)
00088 #define DLARNV_F77  F77_FUNC(slarnv,SLARNV)
00089 #define ILAENV_F77  F77_FUNC(ilaenv,ILAENV)
00090 
00091 #ifdef HAVE_TEUCHOS_COMPLEX
00092 
00093 #define ZGEQRF_F77  F77_FUNC(cgeqrf,CGEQRF)
00094 #define ZGETRF_F77  F77_FUNC(cgetrf,CGETRF)
00095 #define ZGETRS_F77  F77_FUNC(cgetrs,CGETRS)
00096 #define ZGETRI_F77  F77_FUNC(cgetri,CGETRI)
00097 #define ZGERFS_F77  F77_FUNC(cgerfs,CGERFS)
00098 #define ZGECON_F77  F77_FUNC(cgecon,CGECON)
00099 #define ZGESVX_F77  F77_FUNC(cgesvx,CGESVX)
00100 #define ZGESV_F77   F77_FUNC(cgesv,CGESV)
00101 #define ZGEEQU_F77  F77_FUNC(cgeequ,CGEEQU)
00102 #define ZPOTRF_F77  F77_FUNC(cpotrf,CPOTRF)
00103 #define ZPOTRS_F77  F77_FUNC(cpotrs,CPOTRS)
00104 #define ZPOTRI_F77  F77_FUNC(cpotri,CPOTRI)
00105 #define ZPOCON_F77  F77_FUNC(cpocon,CPOCON)
00106 #define ZPOSV_F77   F77_FUNC(cposv,CPOSV)
00107 #define ZPOEQU_F77  F77_FUNC(cpoequ,CPOEQU)
00108 #define ZPORFS_F77  F77_FUNC(cporfs,CPORFS)
00109 #define ZPOSVX_F77  F77_FUNC(cposvx,CPOSVX)
00110 #define ZGELS_F77   F77_FUNC(cgels,CGELS)
00111 #define ZGEEV_F77   F77_FUNC(cgeev,CGEEV)
00112 #define ZGEHRD_F77  F77_FUNC(cgehrd,CGEHRD)
00113 #define ZHSEQR_F77  F77_FUNC(chseqr,CHSEQR)
00114 #define ZTREVC_F77  F77_FUNC(ctrevc,CTREVC)
00115 #define ZTREXC_F77  F77_FUNC(ctrexc,CTREXC)
00116 #define ZGEES_F77   F77_FUNC(cgees,CGEES)
00117 #define ZSTEQR_F77  F77_FUNC(csteqr,CSTEQR)
00118 #define ZLARND_F77  F77_FUNC(clarnd,CLARND)
00119 #define ZLARNV_F77  F77_FUNC(clarnv,CLARNV)
00120 
00121 #endif
00122 
00123 #elif defined(INTEL_CXML)
00124 
00125 #define PREFIX __stdcall 
00126 #define Teuchos_fcd const char *, unsigned int 
00127 
00128 #define DGEQRF_F77  F77_FUNC(dgeqrf,DGEQRF)
00129 #define DGETRF_F77  F77_FUNC(dgetrf,DGETRF)
00130 #define DGETRS_F77  F77_FUNC(dgetrs,DGETRS)
00131 #define DGETRI_F77  F77_FUNC(dgetri,DGETRI)
00132 #define DGERFS_F77  F77_FUNC(dgerfs,DGERFS)
00133 #define DGECON_F77  F77_FUNC(dgecon,DGECON)
00134 #define DGESVX_F77  F77_FUNC(dgesvx,DGESVX)
00135 #define DGESV_F77   F77_FUNC(dgesv,DGESV)
00136 #define DGEEQU_F77  F77_FUNC(dgeequ,DGEEQU)
00137 #define DSYTRD_F77  F77_FUNC(dsytrd,DSYTRD)
00138 #define DPOTRF_F77  F77_FUNC(dpotrf,DPOTRF)
00139 #define DPOTRS_F77  F77_FUNC(dpotrs,DPOTRS)
00140 #define DPOTRI_F77  F77_FUNC(dpotri,DPOTRI)
00141 #define DPOCON_F77  F77_FUNC(dpocon,DPOCON)
00142 #define DPOSV_F77   F77_FUNC(dposv,DPOSV)
00143 #define DPOEQU_F77  F77_FUNC(dpoequ,DPOEQU)
00144 #define DPORFS_F77  F77_FUNC(dporfs,DPORFS)
00145 #define DPOSVX_F77  F77_FUNC(dposvx,DPOSVX)
00146 #define DLAMCH_F77  F77_FUNC(dlamch,DLAMCH)
00147 #define DGELS_F77   F77_FUNC(dgels,DGELS)
00148 #define DGEEV_F77   F77_FUNC(dgeev,DGEEV)
00149 #define DGEHRD_F77  F77_FUNC(dgehrd,DGEHRD)
00150 #define DHSEQR_F77  F77_FUNC(dhseqr,DHSEQR)
00151 #define DORGHR_F77  F77_FUNC(dorghr,DORGHR)
00152 #define DORGQR_F77  F77_FUNC(dorgqr,DORGQR)
00153 #define DORMHR_F77  F77_FUNC(dormhr,DORMHR)
00154 #define DORMQR_F77  F77_FUNC(dormqr,DORMQR)
00155 #define DTREVC_F77  F77_FUNC(dtrevc,DTREVC)
00156 #define DTREXC_F77  F77_FUNC(dtrexc,DTREXC)
00157 #define DGEES_F77   F77_FUNC(dgees,DGEES)
00158 #define DSPEV_F77   F77_FUNC(dspev,DSPEV)
00159 #define DSYEV_F77   F77_FUNC(dsyev,DSYEV)
00160 #define DSYGV_F77   F77_FUNC(dsygv,DSYGV)
00161 #define DSTEQR_F77  F77_FUNC(dsteqr,DSTEQR)
00162 #define DLAPY2_F77  F77_FUNC(dlapy2,DLAPY2)
00163 #define DLARND_F77  F77_FUNC(dlarnd,DLARND)
00164 #define DLARNV_F77  F77_FUNC(dlarnv,DLARNV)
00165 #define ILAENV_F77  F77_FUNC(ilaenv,ILAENV)
00166 
00167 #ifdef HAVE_TEUCHOS_COMPLEX
00168 
00169 #define ZGEQRF_F77  F77_FUNC(zgeqrf,ZGEQRF)
00170 #define ZGETRF_F77  F77_FUNC(zgetrf,ZGETRF)
00171 #define ZGETRS_F77  F77_FUNC(zgetrs,ZGETRS)
00172 #define ZGETRI_F77  F77_FUNC(zgetri,ZGETRI)
00173 #define ZGERFS_F77  F77_FUNC(zgerfs,ZGERFS)
00174 #define ZGECON_F77  F77_FUNC(zgecon,ZGECON)
00175 #define ZGESVX_F77  F77_FUNC(zgesvx,ZGESVX)
00176 #define ZGESV_F77   F77_FUNC(zgesv,ZGESV)
00177 #define ZGEEQU_F77  F77_FUNC(zgeequ,ZGEEQU)
00178 #define ZPOTRF_F77  F77_FUNC(zpotrf,ZPOTRF)
00179 #define ZPOTRS_F77  F77_FUNC(zpotrs,ZPOTRS)
00180 #define ZPOTRI_F77  F77_FUNC(zpotri,ZPOTRI)
00181 #define ZPOCON_F77  F77_FUNC(zpocon,ZPOCON)
00182 #define ZPOSV_F77   F77_FUNC(zposv,ZPOSV)
00183 #define ZPOEQU_F77  F77_FUNC(zpoequ,ZPOEQU)
00184 #define ZPORFS_F77  F77_FUNC(zporfs,ZPORFS)
00185 #define ZPOSVX_F77  F77_FUNC(zposvx,ZPOSVX)
00186 #define ZGELS_F77   F77_FUNC(zgels,ZGELS)
00187 #define ZGEEV_F77   F77_FUNC(zgeev,ZGEEV)
00188 #define ZGEHRD_F77  F77_FUNC(zgehrd,ZGEHRD)
00189 #define ZHSEQR_F77  F77_FUNC(zhseqr,ZHSEQR)
00190 #define ZTREVC_F77  F77_FUNC(ztrevc,ZTREVC)
00191 #define ZTREXC_F77  F77_FUNC(ztrexc,ZTREXC)
00192 #define ZGEES_F77   F77_FUNC(zgees,ZGEES)
00193 #define ZSTEQR_F77  F77_FUNC(zsteqr,ZSTEQR)
00194 #define ZLARND_F77  F77_FUNC(zlarnd,ZLARND)
00195 #define ZLARNV_F77  F77_FUNC(zlarnv,ZLARNV)
00196 
00197 #endif
00198 
00199 #elif defined(INTEL_MKL)
00200 
00201 #define PREFIX
00202 #define Teuchos_fcd const char *
00203 
00204 #define DGEQRF_F77  F77_FUNC(dgeqrf,DGEQRF)
00205 #define DGETRF_F77  F77_FUNC(dgetrf,DGETRF)
00206 #define DGETRS_F77  F77_FUNC(dgetrs,DGETRS)
00207 #define DGETRI_F77  F77_FUNC(dgetri,DGETRI)
00208 #define DGERFS_F77  F77_FUNC(dgerfs,DGERFS)
00209 #define DGECON_F77  F77_FUNC(dgecon,DGECON)
00210 #define DGESVX_F77  F77_FUNC(dgesvx,DGESVX)
00211 #define DGESV_F77   F77_FUNC(dgesv,DGESV)
00212 #define DGEEQU_F77  F77_FUNC(dgeequ,DGEEQU)
00213 #define DSYTRD_F77  F77_FUNC(dsytrd,DSYTRD)
00214 #define DPOTRF_F77  F77_FUNC(dpotrf,DPOTRF)
00215 #define DPOTRS_F77  F77_FUNC(dpotrs,DPOTRS)
00216 #define DPOTRI_F77  F77_FUNC(dpotri,DPOTRI)
00217 #define DPOCON_F77  F77_FUNC(dpocon,DPOCON)
00218 #define DPOSV_F77   F77_FUNC(dposv,DPOSV)
00219 #define DPOEQU_F77  F77_FUNC(dpoequ,DPOEQU)
00220 #define DPORFS_F77  F77_FUNC(dporfs,DPORFS)
00221 #define DPOSVX_F77  F77_FUNC(dposvx,DPOSVX)
00222 #define DLAMCH_F77  F77_FUNC(dlamch,DLAMCH)
00223 #define DGELS_F77   F77_FUNC(dgels,DGELS)
00224 #define DGEEV_F77   F77_FUNC(dgeev,DGEEV)
00225 #define DGEHRD_F77  F77_FUNC(dgehrd,DGEHRD)
00226 #define DHSEQR_F77  F77_FUNC(dhseqr,DHSEQR)
00227 #define DORGHR_F77  F77_FUNC(dorghr,DORGHR)
00228 #define DORGQR_F77  F77_FUNC(dorgqr,DORGQR)
00229 #define DORMHR_F77  F77_FUNC(dormhr,DORMHR)
00230 #define DORMQR_F77  F77_FUNC(dormqr,DORMQR)
00231 #define DTREVC_F77  F77_FUNC(dtrevc,DTREVC)
00232 #define DTREXC_F77  F77_FUNC(dtrexc,DTREXC)
00233 #define DGEES_F77   F77_FUNC(dgees,DGEES)
00234 #define DSPEV_F77   F77_FUNC(dspev,DSPEV)
00235 #define DSYEV_F77   F77_FUNC(dsyev,DSYEV)
00236 #define DSYGV_F77   F77_FUNC(dsygv,DSYGV)
00237 #define DSTEQR_F77  F77_FUNC(dsteqr,DSTEQR)
00238 #define DLAPY2_F77  F77_FUNC(dlapy2,DLAPY2)
00239 #define DLARND_F77  F77_FUNC(dlarnd,DLARND)
00240 #define DLARNV_F77  F77_FUNC(dlarnv,DLARNV)
00241 #define ILAENV_F77  F77_FUNC(ilaenv,ILAENV)
00242 
00243 #ifdef HAVE_TEUCHOS_COMPLEX
00244 
00245 #define ZGEQRF_F77  F77_FUNC(zgeqrf,ZGEQRF)
00246 #define ZGETRF_F77  F77_FUNC(zgetrf,ZGETRF)
00247 #define ZGETRS_F77  F77_FUNC(zgetrs,ZGETRS)
00248 #define ZGETRI_F77  F77_FUNC(zgetri,ZGETRI)
00249 #define ZGERFS_F77  F77_FUNC(zgerfs,ZGERFS)
00250 #define ZGECON_F77  F77_FUNC(zgecon,ZGECON)
00251 #define ZGESVX_F77  F77_FUNC(zgesvx,ZGESVX)
00252 #define ZGESV_F77   F77_FUNC(zgesv,ZGESV)
00253 #define ZGEEQU_F77  F77_FUNC(zgeequ,ZGEEQU)
00254 #define ZPOTRF_F77  F77_FUNC(zpotrf,ZPOTRF)
00255 #define ZPOTRS_F77  F77_FUNC(zpotrs,ZPOTRS)
00256 #define ZPOTRI_F77  F77_FUNC(zpotri,ZPOTRI)
00257 #define ZPOCON_F77  F77_FUNC(zpocon,ZPOCON)
00258 #define ZPOSV_F77   F77_FUNC(zposv,ZPOSV)
00259 #define ZPOEQU_F77  F77_FUNC(zpoequ,ZPOEQU)
00260 #define ZPORFS_F77  F77_FUNC(zporfs,ZPORFS)
00261 #define ZPOSVX_F77  F77_FUNC(zposvx,ZPOSVX)
00262 #define ZGELS_F77   F77_FUNC(zgels,ZGELS)
00263 #define ZGEEV_F77   F77_FUNC(zgeev,ZGEEV)
00264 #define ZGEHRD_F77  F77_FUNC(zgehrd,ZGEHRD)
00265 #define ZHSEQR_F77  F77_FUNC(zhseqr,ZHSEQR)
00266 #define ZTREVC_F77  F77_FUNC(ztrevc,ZTREVC)
00267 #define ZTREXC_F77  F77_FUNC(ztrexc,ZTREXC)
00268 #define ZGEES_F77   F77_FUNC(zgees,ZGEES)
00269 #define ZSTEQR_F77  F77_FUNC(zsteqr,ZSTEQR)
00270 #define ZLARND_F77  F77_FUNC(zlarnd,ZLARND)
00271 #define ZLARNV_F77  F77_FUNC(zlarnv,ZLARNV)
00272 
00273 #endif
00274 
00275 #endif 
00276 
00277 /* All three of these machines use a simple uppercase mangling of Fortran names */
00278 
00279 /* if F77_FUNC is defined undefine it because we want to redefine */
00280 
00281 #ifdef F77_FUNC
00282 #undef F77_FUNC
00283 #endif
00284 
00285 #define F77_FUNC(lcase,UCASE) PREFIX UCASE
00286 
00287 #else /* Define Teuchos_fcd for all other machines */
00288 
00289 #define PREFIX
00290 #define Teuchos_fcd const char * 
00291 
00292 #ifndef HAVE_CONFIG_H
00293 
00294 #ifdef F77_FUNC
00295 #undef F77_FUNC
00296 #endif
00297 
00298 #ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
00299 #define F77_FUNC(lcase,UCASE) lcase
00300 #else /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE not defined*/
00301 #define F77_FUNC(lcase,UCASE) lcase ## _
00302 #endif /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE */
00303 
00304 #endif /* HAVE_CONFIG_H */
00305 
00306 #define DGEQRF_F77  F77_FUNC(dgeqrf,DGEQRF)
00307 #define DGETRF_F77  F77_FUNC(dgetrf,DGETRF)
00308 #define DGETRS_F77  F77_FUNC(dgetrs,DGETRS)
00309 #define DGETRI_F77  F77_FUNC(dgetri,DGETRI)
00310 #define DGERFS_F77  F77_FUNC(dgerfs,DGERFS)
00311 #define DGECON_F77  F77_FUNC(dgecon,DGECON)
00312 #define DGESVX_F77  F77_FUNC(dgesvx,DGESVX)
00313 #define DGESV_F77   F77_FUNC(dgesv,DGESV)
00314 #define DGEEQU_F77  F77_FUNC(dgeequ,DGEEQU)
00315 #define DSYTRD_F77  F77_FUNC(dsytrd,DSYTRD)
00316 #define DPOTRF_F77  F77_FUNC(dpotrf,DPOTRF)
00317 #define DPOTRS_F77  F77_FUNC(dpotrs,DPOTRS)
00318 #define DPOTRI_F77  F77_FUNC(dpotri,DPOTRI)
00319 #define DPOCON_F77  F77_FUNC(dpocon,DPOCON)
00320 #define DPOSV_F77   F77_FUNC(dposv,DPOSV)
00321 #define DPOEQU_F77  F77_FUNC(dpoequ,DPOEQU)
00322 #define DPORFS_F77  F77_FUNC(dporfs,DPORFS)
00323 #define DPOSVX_F77  F77_FUNC(dposvx,DPOSVX)
00324 #define DLAMCH_F77  F77_FUNC(dlamch,DLAMCH)
00325 #define DGELS_F77   F77_FUNC(dgels,DGELS)
00326 #define DGEEV_F77   F77_FUNC(dgeev,DGEEV)
00327 #define DGEHRD_F77  F77_FUNC(dgehrd,DGEHRD)
00328 #define DHSEQR_F77  F77_FUNC(dhseqr,DHSEQR)
00329 #define DORGHR_F77  F77_FUNC(dorghr,DORGHR)
00330 #define DORGQR_F77  F77_FUNC(dorgqr,DORGQR)
00331 #define DORMHR_F77  F77_FUNC(dormhr,DORMHR)
00332 #define DORMQR_F77  F77_FUNC(dormqr,DORMQR)
00333 #define DTREVC_F77  F77_FUNC(dtrevc,DTREVC)
00334 #define DTREXC_F77  F77_FUNC(dtrexc,DTREXC)
00335 #define DGEES_F77   F77_FUNC(dgees,DGEES)
00336 #define DSPEV_F77   F77_FUNC(dspev,DSPEV)
00337 #define DSYEV_F77   F77_FUNC(dsyev,DSYEV)
00338 #define DSYGV_F77   F77_FUNC(dsygv,DSYGV)
00339 #define DSTEQR_F77  F77_FUNC(dsteqr,DSTEQR)
00340 #define DLAPY2_F77  F77_FUNC(dlapy2,DLAPY2)
00341 #define DLARND_F77  F77_FUNC(dlarnd,DLARND)
00342 #define DLARNV_F77  F77_FUNC(dlarnv,DLARNV)
00343 #define ILAENV_F77  F77_FUNC(ilaenv,ILAENV)
00344 
00345 #ifdef HAVE_TEUCHOS_COMPLEX
00346 
00347 #define ZGEQRF_F77  F77_FUNC(zgeqrf,ZGEQRF)
00348 #define ZGETRF_F77  F77_FUNC(zgetrf,ZGETRF)
00349 #define ZGETRS_F77  F77_FUNC(zgetrs,ZGETRS)
00350 #define ZGETRI_F77  F77_FUNC(zgetri,ZGETRI)
00351 #define ZGERFS_F77  F77_FUNC(zgerfs,ZGERFS)
00352 #define ZGECON_F77  F77_FUNC(zgecon,ZGECON)
00353 #define ZGESVX_F77  F77_FUNC(zgesvx,ZGESVX)
00354 #define ZGESV_F77   F77_FUNC(zgesv,ZGESV)
00355 #define ZGEEQU_F77  F77_FUNC(zgeequ,ZGEEQU)
00356 #define ZPOTRF_F77  F77_FUNC(zpotrf,ZPOTRF)
00357 #define ZPOTRS_F77  F77_FUNC(zpotrs,ZPOTRS)
00358 #define ZPOTRI_F77  F77_FUNC(zpotri,ZPOTRI)
00359 #define ZPOCON_F77  F77_FUNC(zpocon,ZPOCON)
00360 #define ZPOSV_F77   F77_FUNC(zposv,ZPOSV)
00361 #define ZPOEQU_F77  F77_FUNC(zpoequ,ZPOEQU)
00362 #define ZPORFS_F77  F77_FUNC(zporfs,ZPORFS)
00363 #define ZPOSVX_F77  F77_FUNC(zposvx,ZPOSVX)
00364 #define ZGELS_F77   F77_FUNC(zgels,ZGELS)
00365 #define ZGEEV_F77   F77_FUNC(zgeev,ZGEEV)
00366 #define ZGEHRD_F77  F77_FUNC(zgehrd,ZGEHRD)
00367 #define ZHSEQR_F77  F77_FUNC(zhseqr,ZHSEQR)
00368 #define ZTREVC_F77  F77_FUNC(ztrevc,ZTREVC)
00369 #define ZTREXC_F77  F77_FUNC(ztrexc,ZTREXC)
00370 #define ZGEES_F77   F77_FUNC(zgees,ZGEES)
00371 #define ZSTEQR_F77  F77_FUNC(zsteqr,ZSTEQR)
00372 #define ZLARND_F77  F77_FUNC(zlarnd,ZLARND)
00373 #define ZLARNV_F77  F77_FUNC(zlarnv,ZLARNV)
00374 
00375 #endif /* HAVE_TEUCHOS_COMPLEX */
00376 
00377 #endif
00378 
00379 #define SGEQRF_F77  F77_FUNC(sgeqrf,SGEQRF)
00380 #define SGETRF_F77  F77_FUNC(sgetrf,SGETRF)
00381 #define SGETRS_F77  F77_FUNC(sgetrs,SGETRS)
00382 #define SGETRI_F77  F77_FUNC(sgetri,SGETRI)
00383 #define SGERFS_F77  F77_FUNC(sgerfs,SGERFS)
00384 #define SGECON_F77  F77_FUNC(sgecon,SGECON)
00385 #define SGESVX_F77  F77_FUNC(sgesvx,SGESVX)
00386 #define SGESV_F77   F77_FUNC(sgesv,SGESV)
00387 #define SGEEQU_F77  F77_FUNC(sgeequ,SGEEQU)
00388 #define SSYTRD_F77  F77_FUNC(ssytrd,SSYTRD)
00389 #define SPOTRF_F77  F77_FUNC(spotrf,SPOTRF)
00390 #define SPOTRS_F77  F77_FUNC(spotrs,SPOTRS)
00391 #define SPOTRI_F77  F77_FUNC(spotri,SPOTRI)
00392 #define SPOCON_F77  F77_FUNC(spocon,SPOCON)
00393 #define SPOSV_F77   F77_FUNC(sposv,SPOSV)
00394 #define SPOEQU_F77  F77_FUNC(spoequ,SPOEQU)
00395 #define SPORFS_F77  F77_FUNC(sporfs,SPORFS)
00396 #define SPOSVX_F77  F77_FUNC(sposvx,SPOSVX)
00397 #define SGELS_F77   F77_FUNC(sgels,SGELS)
00398 #define SGEEV_F77   F77_FUNC(sgeev,SGEEV)
00399 #define SGEHRD_F77  F77_FUNC(sgehrd,SGEHRD)
00400 #define SHSEQR_F77  F77_FUNC(shseqr,SHSEQR)
00401 #define SORGHR_F77  F77_FUNC(sorghr,SORGHR)
00402 #define SORGQR_F77  F77_FUNC(sorgqr,SORGQR)
00403 #define SORMHR_F77  F77_FUNC(sormhr,SORMHR)
00404 #define SORMQR_F77  F77_FUNC(sormqr,SORMQR)
00405 #define STREVC_F77  F77_FUNC(strevc,STREVC)
00406 #define STREXC_F77  F77_FUNC(strexc,STREXC)
00407 #define SLAMCH_F77  F77_FUNC(slamch,SLAMCH)
00408 #define SGEES_F77   F77_FUNC(sgees,SGEES)
00409 #define SSPEV_F77   F77_FUNC(sspev,SSPEV)
00410 #define SSYEV_F77   F77_FUNC(ssyev,SSYEV)
00411 #define SSYGV_F77   F77_FUNC(ssygv,SSYGV)
00412 #define SSTEQR_F77  F77_FUNC(ssteqr,SSTEQR)
00413 #define SLAPY2_F77  F77_FUNC(slapy2,SLAPY2)
00414 #define SLARND_F77  F77_FUNC(slarnd,SLARND)
00415 #define SLARNV_F77  F77_FUNC(slarnv,SLARNV)
00416 
00417 #ifdef HAVE_TEUCHOS_COMPLEX
00418 
00419 #define CGEQRF_F77  F77_FUNC(cgeqrf,CGEQRF)
00420 #define CGETRF_F77  F77_FUNC(cgetrf,CGETRF)
00421 #define CGETRS_F77  F77_FUNC(cgetrs,CGETRS)
00422 #define CGETRI_F77  F77_FUNC(cgetri,CGETRI)
00423 #define CGERFS_F77  F77_FUNC(cgerfs,CGERFS)
00424 #define CGECON_F77  F77_FUNC(cgecon,CGECON)
00425 #define CGESVX_F77  F77_FUNC(cgesvx,CGESVX)
00426 #define CGESV_F77   F77_FUNC(cgesv,CGESV)
00427 #define CGEEQU_F77  F77_FUNC(cgeequ,CGEEQU)
00428 #define CPOTRF_F77  F77_FUNC(cpotrf,CPOTRF)
00429 #define CPOTRS_F77  F77_FUNC(cpotrs,CPOTRS)
00430 #define CPOTRI_F77  F77_FUNC(cpotri,CPOTRI)
00431 #define CPOCON_F77  F77_FUNC(cpocon,CPOCON)
00432 #define CPOSV_F77   F77_FUNC(cposv,CPOSV)
00433 #define CPOEQU_F77  F77_FUNC(cpoequ,CPOEQU)
00434 #define CPORFS_F77  F77_FUNC(cporfs,CPORFS)
00435 #define CPOSVX_F77  F77_FUNC(cposvx,CPOSVX)
00436 #define CGELS_F77   F77_FUNC(cgels,CGELS)
00437 #define CGEEV_F77   F77_FUNC(cgeev,CGEEV)
00438 #define CGEHRD_F77  F77_FUNC(cgehrd,CGEHRD)
00439 #define CHSEQR_F77  F77_FUNC(chseqr,CHSEQR)
00440 #define CTREVC_F77  F77_FUNC(ctrevc,CTREVC)
00441 #define CTREXC_F77  F77_FUNC(ctrexc,CTREXC)
00442 #define CGEES_F77   F77_FUNC(cgees,CGEES)
00443 #define CSTEQR_F77  F77_FUNC(csteqr,CSTEQR)
00444 #define CLARND_F77  F77_FUNC(clarnd,CLARND)
00445 #define CLARNV_F77  F77_FUNC(clarnv,CLARNV)
00446 
00447 #endif /* HAVE_TEUCHOS_COMPLEX */
00448 
00449 #ifdef __cplusplus
00450 extern "C" {
00451 #endif
00452 
00453 // Double precision LAPACK linear solvers
00454 void PREFIX DGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, double* a, const int* lda, double* b, const int* ldb, double* work, const int* lwork, int* info);
00455 void PREFIX DGEQRF_F77(const int* m, const int* n, double* a, const int* lda, double* tau, double* work, const int* lwork, int* info);
00456 void PREFIX DGETRF_F77(const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info); 
00457 void PREFIX DGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda,const int* ipiv, double* x , const int* ldx, int* info);
00458 void PREFIX DGETRI_F77(const int* n, double* a, const int* lda, const int* ipiv, double* work , const int* lwork, int* info);
00459 void PREFIX DGECON_F77(Teuchos_fcd norm, const int* n, const double* a, const int* lda, const double* anorm, double* rcond, double* work, int* iwork, int* info); 
00460 void PREFIX DGESV_F77(const int* n, const int* nrhs, double* a, const int* lda, int* ipiv, double* x , const int* ldx, int* info);
00461 void PREFIX DGEEQU_F77(const int* m, const int* n, const double* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info); 
00462 void PREFIX DGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const double* af, const int* ldaf, const int* ipiv, const double* b, const int* ldb, double* x, const int* ldx, double* ferr, double* berr, double* work, int* iwork, int* info);
00463 void PREFIX DGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double* af, const int* ldaf, int* ipiv, Teuchos_fcd, double* r,
00464 double* c, double* b, const int* ldb, double* x, const int* ldx, double* rcond, double* ferr, double* berr, double* work, int* iwork, int* info);
00465 void PREFIX DSYTRD_F77(Teuchos_fcd, const int* n, double* a, const int* lda, double* D, double* E, double* tau, double* work, const int* lwork, int* info);
00466 void PREFIX DPOTRF_F77(Teuchos_fcd, const int* n, double* a, const int* lda, int* info); 
00467 void PREFIX DPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, double*x , const int* ldx, int* info);
00468 void PREFIX DPOTRI_F77(Teuchos_fcd, const int* n, double* a, const int* lda, int* info); 
00469 void PREFIX DPOCON_F77(Teuchos_fcd, const int* n, const double* a, const int* lda, const double* anorm, double* rcond, double* work, int* iwork, int* info); 
00470 void PREFIX DPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double*x , const int* ldx, int* info);
00471 void PREFIX DPOEQU_F77(const int* n, const double* a, const int* lda, double* s, double* scond, double* amax, int* info); 
00472 void PREFIX DPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, const double* af, const int* ldaf, const double* b, const int* ldb, double* x, const int* ldx, double* ferr, double* berr, double* work, int* iwork, int* info);
00473 void PREFIX DPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double* af, const int* ldaf, Teuchos_fcd, double* s, double* b, const int* ldb, double* x, const int* ldx, double* rcond, double* ferr, double* berr, double* work, int* iwork, int* info);
00474 
00475 // Single precision LAPACK linear solvers
00476 void PREFIX SGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, float* a, const int* lda, float* b, const int* ldb, float* work, const int* lwork, int* info);
00477 void PREFIX SGEQRF_F77(const int* m, const int* n, float* a, const int* lda, float* tau, float* work, const int* lwork, int* info);
00478 void PREFIX SGETRF_F77(const int* m, const int* n, float* a, const int* lda, int* ipiv, int* info);
00479 void PREFIX SGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda,const int* ipiv, float* x , const int* ldx, int* info);
00480 void PREFIX SGETRI_F77(const int* n, float* a, const int* lda, const int* ipiv, float* work , const int* lwork, int* info);
00481 void PREFIX SGECON_F77(Teuchos_fcd norm, const int* n, const float* a, const int* lda, const float* anorm, float* rcond, float* work, int* iwork, int* info); 
00482 void PREFIX SGESV_F77(const int* n, const int* nrhs, float* a, const int* lda, int* ipiv, float* x , const int* ldx, int* info);
00483 void PREFIX SGEEQU_F77(const int* m, const int* n, const float* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info); 
00484 void PREFIX SGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const float* af, const int* ldaf, const int* ipiv, const float* b, const int* ldb, float* x, const int* ldx, float* ferr, float* berr, float* work, int* iwork, int* info);
00485 void PREFIX SGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float* af, const int* ldaf, int* ipiv, Teuchos_fcd, float* r,
00486 float* c, float* b, const int* ldb, float* x, const int* ldx, float* rcond, float* ferr, float* berr, float* work, int* iwork, int* info);
00487 void PREFIX SSYTRD_F77(Teuchos_fcd, const int* n, float* a, const int* lda, float* D, float* E, float* tau, float* work, const int* lwork, int* info);
00488 void PREFIX SPOTRF_F77(Teuchos_fcd, const int* n, float* a, const int* lda, int* info); 
00489 void PREFIX SPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, float*x , const int* ldx, int* info);
00490 void PREFIX SPOTRI_F77(Teuchos_fcd, const int* n, float* a, const int* lda, int* info); 
00491 void PREFIX SPOCON_F77(Teuchos_fcd, const int* n, const float* a, const int* lda, const float* anorm, float* rcond, float* work, int* iwork, int* info); 
00492 void PREFIX SPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float*x , const int* ldx, int* info);
00493 void PREFIX SPOEQU_F77(const int* n, const float* a, const int* lda, float* s, float* scond, float* amax, int* info); 
00494 void PREFIX SPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, const float* af, const int* ldaf, const float* b, const int* ldb, float* x, const int* ldx, float* ferr, float* berr, float* work, int* iwork, int* info);
00495 void PREFIX SPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float* af, const int* ldaf, Teuchos_fcd, float* s, float* b, const int* ldb, float* x, const int* ldx, float* rcond, float* ferr, float* berr, float* work, int* iwork, int* info);
00496 
00497 // Double precision LAPACK eigen solvers
00498 void PREFIX DSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* ap, double* w, double* z, const int* ldz, double* work, int* info);
00499 void PREFIX DSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* w, double* work, const int* lwork, int* info);
00500 void PREFIX DSYGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* B, const int* ldb, double* w, double* work, const int* lwork, int* info);
00501 void PREFIX DSTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, double* Z, const int* ldz, double* work, int* info);
00502 void PREFIX DGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* wr, double* wi, double* vl, const int* ldvl, double* vr, const int* ldvr, double* work, const int* lwork, int* info);
00503 void PREFIX DGEHRD_F77(const int* n, const int* ilo, const int* ihi, double* A, const int* lda, double* tau, double* work, const int* lwork, int* info);
00504 void PREFIX DHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, double* h, const int* ldh, double* wr, double* wi, double* z, const int* ldz, double* work, const int* lwork, int* info);
00505 void PREFIX DGEES_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, double* a, const int* lda, int*sdim, double* wr, double* wi, double* vs, const int* ldvs, double* work, const int* lwork, int* bwork, int* info);
00506 void PREFIX DORGHR_F77(const int* n, const int* ilo, const int* ihi, double* a, const int* lda, double* tau, double* work, int* lwork, int* info);
00507 void PREFIX DORMHR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* ilo, const int* ihi, const double* a, const int* lda, const double* tau, double* c, const int* ldc, double* work, int* lwork, int* info);
00508 void PREFIX DORGQR_F77(const int* m, const int* n, const int* k, double* a, const int* lda, const double* tau, double* work, const int* lwork, int* info);
00509 void PREFIX DORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* k, double* a, const int* lda, const double* tau, double* C, const int* ldc, double* work, const int* lwork, int* info);
00510 void PREFIX DTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const double* t, const int* ldt, double* vl, const int* ldvl, double* vr, const int* ldvr, const int* mm, int* m, double* work, int* info); 
00511 void PREFIX DTREXC_F77(Teuchos_fcd, const int* n, double* t, const int* ldt, double* q, const int* ldq, int* ifst, int* ilst, double* work, int* info);
00512 
00513 // Single precision LAPACK eigen solvers
00514 void PREFIX SSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* ap, float* w, float* z, const int* ldz, float* work, int* info);
00515 void PREFIX SSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* w, float* work, const int* lwork, int* info);
00516 void PREFIX SSYGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* B, const int* ldb, float* w, float* work, const int* lwork, int* info);
00517 void PREFIX SSTEQR_F77(Teuchos_fcd, const int* n, float* D, float* E, float* Z, const int* ldz, float* work, int* info);
00518 void PREFIX SGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* wr, float* wi, float* vl, const int* ldvl, float* vr, const int* ldvr, float* work, const int* lwork, int* info);
00519 void PREFIX SGEHRD_F77(const int* n, const int* ilo, const int* ihi, float* A, const int* lda, float* tau, float* work, const int* lwork, int* info);
00520 void PREFIX SHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, float* h, const int* ldh, float* wr, float* wi, float* z, const int* ldz, float* work, const int* lwork, int* info);
00521 void PREFIX SGEES_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, float* a, const int* lda, int* sdim, float* wr, float* wi, float* vs, const int* ldvs, float* work, const int* lwork, int* bwork, int* info);
00522 void PREFIX SORGHR_F77(const int* n, const int* ilo, const int* ihi, float* a, const int* lda, float* tau, float* work, int* lwork, int* info);
00523 void PREFIX SORMHR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* ilo, const int* ihi, const float* a, const int* lda, const float* tau, float* c, const int* ldc, float* work, int* lwork, int* info);
00524 void PREFIX SORGQR_F77(const int* m, const int* n, const int* k, float* a, const int* lda, const float* tau, float* work, const int* lwork, int* info);
00525 void PREFIX SORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* k, float* a, const int* lda, const float* tau, float* C, const int* ldc, float* work, const int* lwork, int* info);
00526 void PREFIX STREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const float* t, const int* ldt, float* vl, const int* ldvl, float* vr, const int* ldvr, const int* mm, int* m, float* work, int* info); 
00527 void PREFIX STREXC_F77(Teuchos_fcd, const int* n, float* t, const int* ldt, float* q, const int* ldq, int* ifst, int* ilst, float* work, int* info);
00528 
00529 float PREFIX SLARND_F77(const int* idist, int* seed);
00530 double PREFIX DLARND_F77(const int* idist, int* seed);
00531 
00532 void PREFIX SLARNV_F77(const int* idist, int* seed, const int* n, float* v);
00533 void PREFIX DLARNV_F77(const int* idist, int* seed, const int* n, double* v);
00534 
00535 float PREFIX SLAMCH_F77(Teuchos_fcd);
00536 double PREFIX DLAMCH_F77(Teuchos_fcd);
00537 
00538 #if defined (INTEL_CXML)
00539 int PREFIX ILAENV_F77( const int* ispec, const char* name, unsigned int name_len, const char* opts, unsigned int opts_len, const int* N1, const int* N2, const int* N3, const int* N4 );
00540 #else
00541 int PREFIX ILAENV_F77( const int* ispec, const char* name, const char* opts, const int* N1, const int* N2, const int* N3, const int* N4, unsigned int name_len, unsigned int opts_len );
00542 #endif
00543 
00544 float PREFIX SLAPY2_F77(const float* x, const float* y);
00545 double PREFIX DLAPY2_F77(const double* x, const double* y);
00546 
00547 #ifdef HAVE_TEUCHOS_COMPLEX
00548 
00549 // Double precision complex LAPACK linear solvers
00550 void PREFIX ZGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, complex<double>* a, const int* lda, complex<double>* b, const int* ldb, complex<double>* work, const int* lwork, int* info);
00551 void PREFIX ZGEQRF_F77(const int* m, const int* n, complex<double>* a, const int* lda, complex<double>* tau, complex<double>* work, const int* lwork, int* info);
00552 void PREFIX ZGETRF_F77(const int* m, const int* n, complex<double>* a, const int* lda, int* ipiv, int* info); 
00553 void PREFIX ZGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<double>* a, const int* lda,const int* ipiv, complex<double>* x , const int* ldx, int* info);
00554 void PREFIX ZGETRI_F77(const int* n, complex<double>* a, const int* lda, const int* ipiv, complex<double>* work , const int* lwork, int* info);
00555 void PREFIX ZGECON_F77(Teuchos_fcd norm, const int* n, const complex<double>* a, const int* lda, const double* anorm, double* rcond, complex<double>* work, double* rwork, int* info); 
00556 void PREFIX ZGESV_F77(const int* n, const int* nrhs, complex<double>* a, const int* lda, int* ipiv, complex<double>* x , const int* ldx, int* info);
00557 void PREFIX ZGEEQU_F77(const int* m, const int* n, const complex<double>* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info); 
00558 void PREFIX ZGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<double>* a, const int* lda, const complex<double>* af, const int* ldaf, const int* ipiv, const complex<double>* b, const int* ldb, complex<double>* x, const int* ldx, double* ferr, double* berr, complex<double>* work, double* iwork, int* info);
00559 void PREFIX ZGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, complex<double>* a, const int* lda, complex<double>* af, const int* ldaf, int* ipiv, Teuchos_fcd, double* r,
00560 double* c, complex<double>* b, const int* ldb, complex<double>* x, const int* ldx, double* rcond, double* ferr, double* berr, complex<double>* work, double* iwork, int* info);
00561 void PREFIX ZPOTRF_F77(Teuchos_fcd, const int* n, complex<double>* a, const int* lda, int* info); 
00562 void PREFIX ZPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<double>* a, const int* lda, complex<double>*x , const int* ldx, int* info);
00563 void PREFIX ZPOTRI_F77(Teuchos_fcd, const int* n, complex<double>* a, const int* lda, int* info); 
00564 void PREFIX ZPOCON_F77(Teuchos_fcd, const int* n, const complex<double>* a, const int* lda, const double* anorm, double* rcond, complex<double>* work, double* rwork, int* info); 
00565 void PREFIX ZPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, complex<double>* a, const int* lda, complex<double>*x , const int* ldx, int* info);
00566 void PREFIX ZPOEQU_F77(const int* n, const complex<double>* a, const int* lda, double* s, double* scond, double* amax, int* info); 
00567 void PREFIX ZPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, complex<double>* a, const int* lda, const complex<double>* af, const int* ldaf, const complex<double>* b, const int* ldb, complex<double>* x, const int* ldx, double* ferr, double* berr, complex<double>* work, double* rwork, int* info);
00568 void PREFIX ZPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, complex<double>* a, const int* lda, complex<double>* af, const int* ldaf, Teuchos_fcd, double* s, complex<double>* b, const int* ldb, complex<double>* x, const int* ldx, double* rcond, double* ferr, double* berr, complex<double>* work, double* rwork, int* info);
00569 
00570 // Single precision complex LAPACK linear solvers
00571 void PREFIX CGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, complex<float>* a, const int* lda, complex<float>* b, const int* ldb, complex<float>* work, const int* lwork, int* info);
00572 void PREFIX CGEQRF_F77(const int* m, const int* n, complex<float>* a, const int* lda, complex<float>* tau, complex<float>* work, const int* lwork, int* info);
00573 void PREFIX CGETRF_F77(const int* m, const int* n, complex<float>* a, const int* lda, int* ipiv, int* info);
00574 void PREFIX CGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<float>* a, const int* lda,const int* ipiv, complex<float>* x , const int* ldx, int* info);
00575 void PREFIX CGETRI_F77(const int* n, complex<float>* a, const int* lda, const int* ipiv, complex<float>* work , const int* lwork, int* info);
00576 void PREFIX CGECON_F77(Teuchos_fcd norm, const int* n, const complex<float>* a, const int* lda, const float* anorm, float* rcond, complex<float>* work, float* rwork, int* info); 
00577 void PREFIX CGESV_F77(const int* n, const int* nrhs, complex<float>* a, const int* lda, int* ipiv, complex<float>* x, const int* ldx, int* info);
00578 void PREFIX CGEEQU_F77(const int* m, const int* n, const complex<float>* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info); 
00579 void PREFIX CGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<float>* a, const int* lda, const complex<float>* af, const int* ldaf, const int* ipiv, const complex<float>* b, const int* ldb, complex<float>* x, const int* ldx, float* ferr, float* berr, complex<float>* work, float* rwork, int* info);
00580 void PREFIX CGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, complex<float>* a, const int* lda, complex<float>* af, const int* ldaf, int* ipiv, Teuchos_fcd, float* r,
00581 float* c, complex<float>* b, const int* ldb, complex<float>* x, const int* ldx, float* rcond, float* ferr, float* berr, complex<float>* work, float* rwork, int* info);
00582 void PREFIX CPOTRF_F77(Teuchos_fcd, const int* n, complex<float>* a, const int* lda, int* info); 
00583 void PREFIX CPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const complex<float>* a, const int* lda, complex<float>*x , const int* ldx, int* info);
00584 void PREFIX CPOTRI_F77(Teuchos_fcd, const int* n, complex<float>* a, const int* lda, int* info); 
00585 void PREFIX CPOCON_F77(Teuchos_fcd, const int* n, const complex<float>* a, const int* lda, const float* anorm, float* rcond, complex<float>* work, float* rwork, int* info); 
00586 void PREFIX CPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, complex<float>* a, const int* lda, complex<float>*x , const int* ldx, int* info);
00587 void PREFIX CPOEQU_F77(const int* n, const complex<float>* a, const int* lda, float* s, float* scond, float* amax, int* info); 
00588 void PREFIX CPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, complex<float>* a, const int* lda, const complex<float>* af, const int* ldaf, const complex<float>* b, const int* ldb, complex<float>* x, const int* ldx, float* ferr, float* berr, complex<float>* work, float* rwork, int* info);
00589 void PREFIX CPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, complex<float>* a, const int* lda, complex<float>* af, const int* ldaf, Teuchos_fcd, float* s, complex<float>* b, const int* ldb, complex<float>* x, const int* ldx, float* rcond, float* ferr, float* berr, complex<float>* work, float* rwork, int* info);
00590 
00591 // Double precision complex LAPACK eigen solvers
00592 void PREFIX ZSTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, complex<double>* Z, const int* ldz, complex<double>* work, int* info);
00593 void PREFIX ZGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, complex<double>* a, const int* lda, complex<double>* w, complex<double>* vl, const int* ldvl, complex<double>* vr, const int* ldvr, complex<double>* work, const int* lwork, double* rwork, int* info);
00594 void PREFIX ZGEHRD_F77(const int* n, const int* ilo, const int* ihi, complex<double>* A, const int* lda, complex<double>* tau, complex<double>* work, const int* lwork, int* info);
00595 void PREFIX ZHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, complex<double>* h, const int* ldh, complex<double>* w, complex<double>* z, const int* ldz, complex<double>* work, const int* lwork, int* info);
00596 void PREFIX ZGEES_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, complex<double>* a, const int* lda, int* sdim, complex<double>* w, complex<double>* vs, const int* ldvs, complex<double>* work, const int* lwork, double* rwork, int* bwork, int* info);
00597 void PREFIX ZTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const complex<double>* t, const int* ldt, complex<double>* vl, const int* ldvl, complex<double>* vr, const int* ldvr, const int* mm, int* m, complex<double>* work, double* rwork, int* info); 
00598 void PREFIX ZTREXC_F77(Teuchos_fcd, const int* n, complex<double>* t, const int* ldt, complex<double>* q, const int* ldq, int* ifst, int* ilst, int* info);
00599 
00600 // Single precision complex LAPACK eigen solvers
00601 void PREFIX CSTEQR_F77(Teuchos_fcd, const int* n, complex<float>* D, complex<float>* E, complex<float>* Z, const int* ldz, complex<float>* work, int* info);
00602 void PREFIX CGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, complex<float>* a, const int* lda, complex<float>* wr, complex<float>* vl, const int* ldvl, complex<float>* vr, const int* ldvr, complex<float>* work, const int* lwork, float* rwork, int* info);
00603 void PREFIX CGEHRD_F77(const int* n, const int* ilo, const int* ihi, complex<float>* A, const int* lda, complex<float>* tau, complex<float>* work, const int* lwork, int* info);
00604 void PREFIX CHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, complex<float>* h, const int* ldh, complex<float>* w, complex<float>* z, const int* ldz, complex<float>* work, const int* lwork, int* info);
00605 void PREFIX CGEES_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, complex<float>* a, const int* lda, int* sdim, complex<float>* w, complex<float>* vs, const int* ldvs, complex<float>* work, const int* lwork, float* rwork, int* bwork, int* info);
00606 void PREFIX CTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const complex<float>* t, const int* ldt, complex<float>* vl, const int* ldvl, complex<float>* vr, const int* ldvr, const int* mm, int* m, complex<float>* work, float* rwork, int* info); 
00607 void PREFIX CTREXC_F77(Teuchos_fcd, const int* n, complex<float>* t, const int* ldt, complex<float>* q, const int* ldq, int* ifst, int* ilst, int* info);
00608 
00609 complex<float> PREFIX CLARND_F77(const int* idist, int* seed);
00610 complex<double> PREFIX ZLARND_F77(const int* idist, int* seed);
00611 
00612 void PREFIX CLARNV_F77(const int* idist, int* seed, const int* n, complex<float>* v);
00613 void PREFIX ZLARNV_F77(const int* idist, int* seed, const int* n, complex<double>* v);
00614 
00615 #endif /* HAVE_TEUCHOS_COMPLEX */
00616 
00617 #ifdef __cplusplus
00618 }
00619 
00620 #endif
00621 
00622 #endif // end of TEUCHOS_LAPACK_WRAPPERS_HPP_

Generated on Thu Sep 18 12:41:17 2008 for Teuchos - Trilinos Tools Package by doxygen 1.3.9.1