xref: /petsc/include/petscblaslapack.h (revision 633a50d314633336723dcec87b357833e0b7dc66)
1*633a50d3SSatish Balay /* $Id: plapack.h,v 1.26 1997/04/03 22:15:28 balay Exp balay $ */
2a1e12872SBarry Smith /*
3c0581c19SLois Curfman McInnes    This file provides some name space protection from LAPACK and BLAS and
4c0581c19SLois Curfman McInnes allows the appropriate single or double precision version to be used.
5c0581c19SLois Curfman McInnes This file also deals with different Fortran 77 naming conventions on machines.
65392566eSBarry Smith 
75392566eSBarry Smith    Another problem is charactor strings are represented differently on
85392566eSBarry Smith on some machines in C and Fortran 77. This problem comes up on the
9*633a50d3SSatish Balay Cray T3D/T3E.
105392566eSBarry Smith 
11a1e12872SBarry Smith */
12a1e12872SBarry Smith #if !defined(_PLAPACK_H)
13a1e12872SBarry Smith #define _PLAPACK_H
14a1e12872SBarry Smith 
1519b02663SBarry Smith #include "petsc.h"
16a1e12872SBarry Smith 
178f4c8dbaSBarry Smith /*
18*633a50d3SSatish Balay    This include file on the Cray T3D/T3E defines the interface between
198f4c8dbaSBarry Smith   Fortran and C representations of charactor strings.
208f4c8dbaSBarry Smith */
218f4c8dbaSBarry Smith #if defined(USES_CPTOFCD)
225392566eSBarry Smith #include "fortran.h"
235392566eSBarry Smith #endif
245392566eSBarry Smith 
25a1e12872SBarry Smith #if !defined(PETSC_COMPLEX)
264eeb42bcSBarry Smith 
274eeb42bcSBarry Smith /*
284eeb42bcSBarry Smith     These are real case with no character string arguments
294eeb42bcSBarry Smith */
308f4c8dbaSBarry Smith 
318f4c8dbaSBarry Smith #if defined(USES_FORTRAN_SINGLE)
328f4c8dbaSBarry Smith /*
338f4c8dbaSBarry Smith    For these machines we must call the single precision Fortran version
348f4c8dbaSBarry Smith */
358f4c8dbaSBarry Smith #define DGEQRF   SGEQRF
368f4c8dbaSBarry Smith #define DGETRF   SGETRF
378f4c8dbaSBarry Smith #define DDOT     SDOT
388f4c8dbaSBarry Smith #define DNRM2    SNRM2
398f4c8dbaSBarry Smith #define DSCAL    SSCAL
408f4c8dbaSBarry Smith #define DCOPY    SCOPY
418f4c8dbaSBarry Smith #define DSWAP    SSWAP
428f4c8dbaSBarry Smith #define DAXPY    SAXPY
438f4c8dbaSBarry Smith #define DASUM    SASUM
448f4c8dbaSBarry Smith #define DSORMQR  SORMQR
458f4c8dbaSBarry Smith #define DTRTRS   STRTRS
468f4c8dbaSBarry Smith #define DPOTRF   SPOTRF
478f4c8dbaSBarry Smith #define DPOTRS   SPOTRS
488f4c8dbaSBarry Smith #define DGEMV    SGEMV
498f4c8dbaSBarry Smith #define DGETRS   SGETRS
508f4c8dbaSBarry Smith #define DGETRS   SGETRS
518f4c8dbaSBarry Smith #define DGEMM    SGEMM
528f4c8dbaSBarry Smith #define DGESVD   SGESVD
53d4fbbf0eSBarry Smith #define DGEEV    SGEEV
548f4c8dbaSBarry Smith #define DTRMV    STRMV
558f4c8dbaSBarry Smith #define DTRSL    STRSL
568f4c8dbaSBarry Smith #endif
578f4c8dbaSBarry Smith 
588f4c8dbaSBarry Smith #if defined(HAVE_FORTRAN_CAPS)
59c0534c1cSBarry Smith #define LAgeqrf_ DGEQRF
605392566eSBarry Smith #define LAgetrf_ DGETRF
61c0581c19SLois Curfman McInnes #define LAgetf2_ DGETF2
62a1e12872SBarry Smith #define BLdot_   DDOT
63a1e12872SBarry Smith #define BLnrm2_  DNRM2
64a1e12872SBarry Smith #define BLscal_  DSCAL
65a1e12872SBarry Smith #define BLcopy_  DCOPY
66a1e12872SBarry Smith #define BLswap_  DSWAP
67a1e12872SBarry Smith #define BLaxpy_  DAXPY
68a1e12872SBarry Smith #define BLasum_  DASUM
69227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
70c0534c1cSBarry Smith #define LAgeqrf_ dgeqrf
715392566eSBarry Smith #define LAgetrf_ dgetrf
72c0581c19SLois Curfman McInnes #define LAgetf2_ dgetf2
73a1e12872SBarry Smith #define BLdot_   ddot
74a1e12872SBarry Smith #define BLnrm2_  dnrm2
75a1e12872SBarry Smith #define BLscal_  dscal
76a1e12872SBarry Smith #define BLcopy_  dcopy
77a1e12872SBarry Smith #define BLswap_  dswap
78a1e12872SBarry Smith #define BLaxpy_  daxpy
79a1e12872SBarry Smith #define BLasum_  dasum
80a1e12872SBarry Smith #else
81c0534c1cSBarry Smith #define LAgeqrf_ dgeqrf_
825392566eSBarry Smith #define LAgetrf_ dgetrf_
83c0581c19SLois Curfman McInnes #define LAgetf2_ dgetf2_
84a1e12872SBarry Smith #define BLdot_   ddot_
85a1e12872SBarry Smith #define BLnrm2_  dnrm2_
86a1e12872SBarry Smith #define BLscal_  dscal_
87a1e12872SBarry Smith #define BLcopy_  dcopy_
88a1e12872SBarry Smith #define BLswap_  dswap_
89a1e12872SBarry Smith #define BLaxpy_  daxpy_
90a1e12872SBarry Smith #define BLasum_  dasum_
91a1e12872SBarry Smith #endif
92a1e12872SBarry Smith 
934eeb42bcSBarry Smith /*
944eeb42bcSBarry Smith    Real with character string arguments.
954eeb42bcSBarry Smith */
968f4c8dbaSBarry Smith #if defined(USES_CPTOFCD)
978f4c8dbaSBarry Smith /*
988f4c8dbaSBarry Smith    Note that this assumes that machines which use cptofcd() use
99*633a50d3SSatish Balay   the HAVE_FORTRAN_CAPS option. This is true on the Cray T3D/T3E.
1008f4c8dbaSBarry Smith */
1018f4c8dbaSBarry Smith #define LAormqr_(a,b,c,d,e,f,g,h,i,j,k,l,m)  DORMQR(_cptofcd((a),1),\
102bbb6d6a8SBarry Smith              _cptofcd((b),1),(c),(d),(e),(f),(g),(h),(i),(j),(k),(l),(m))
1038f4c8dbaSBarry Smith #define LAtrtrs_(a,b,c,d,e,f,g,h,i,j) DTRTRS(_cptofcd((a),1),_cptofcd((b),1),\
104c0534c1cSBarry Smith                              _cptofcd((c),1),(d),(e),(f),(g),(h),(i),(j))
1058f4c8dbaSBarry Smith #define LApotrf_(a,b,c,d,e) DPOTRF(_cptofcd((a),1),(b),(c),(d),(e))
1068f4c8dbaSBarry Smith #define LApotrs_(a,b,c,d,e,f,g,h) DPOTRS(_cptofcd((a),1),(b),(c),(d),(e),\
1075392566eSBarry Smith                                          (f),(g),(h))
1088f4c8dbaSBarry Smith #define LAgemv_(a,b,c,d,e,f,g,h,i,j,k) DGEMV(_cptofcd((a),1),(b),(c),(d),(e),\
1095392566eSBarry Smith                                         (f),(g),(h),(i),(j),(k))
1108f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) DGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
1115392566eSBarry Smith                                         (f),(g),(h),(i))
1128f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) DGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
1134eeb42bcSBarry Smith                                         (f),(g),(h),(i))
1148f4c8dbaSBarry Smith #define BLgemm_(a,b,c,d,e,f,g,h,i,j,k,l,m) DGEMM(_cptofcd((a),1), \
1154eeb42bcSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
1164eeb42bcSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m))
11721c89e3eSBarry Smith #define LAgesvd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n) DGESVD(_cptofcd((a),1), \
118af6b99e9SBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
11921c89e3eSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m),(n))
120d4fbbf0eSBarry Smith #define LAgeev_(a,b,c,d,e,f,g,h,i,j,k,l,m,n) DGEEV(_cptofcd((a),1), \
121d4fbbf0eSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
122d4fbbf0eSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m),(n))
1238f4c8dbaSBarry Smith #define LAtrmv_  DTRMV
1248f4c8dbaSBarry Smith #define LAtrsl_  DTRSL
125*633a50d3SSatish Balay #define LAgetrf_ DGETRF
126227d817aSBarry Smith #elif defined(HAVE_FORTRAN_CAPS)
127c0534c1cSBarry Smith #define LAormqr_ DORMQR
128c0534c1cSBarry Smith #define LAtrtrs_ DTRTRS
129a1e12872SBarry Smith #define LApotrf_ DPOTRF
130a1e12872SBarry Smith #define LApotrs_ DPOTRS
131a1e12872SBarry Smith #define LAgemv_  DGEMV
132a1e12872SBarry Smith #define LAgetrs_ DGETRS
133a1e12872SBarry Smith #define LAtrmv_  DTRMV
134a1e12872SBarry Smith #define LAtrsl_  DTRSL
135af6b99e9SBarry Smith #define LAgesvd_ DGESVD
136d4fbbf0eSBarry Smith #define LAgeev_  DGEEV
1374eeb42bcSBarry Smith #define BLgemm_  DGEMM
138227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
139c0534c1cSBarry Smith #define LAormqr_ dormqr
140c0534c1cSBarry Smith #define LAtrtrs_ dtrtrs
141a1e12872SBarry Smith #define LApotrf_ dpotrf
142a1e12872SBarry Smith #define LApotrs_ dpotrs
143a1e12872SBarry Smith #define LAgemv_  dgemv
144a1e12872SBarry Smith #define LAgetrs_ dgetrs
145a1e12872SBarry Smith #define LAtrmv_  dtrmv
146a1e12872SBarry Smith #define LAtrsl_  dtrsl
1474eeb42bcSBarry Smith #define BLgemm_  dgemm
148af6b99e9SBarry Smith #define LAgesvd_ dgesvd
149d4fbbf0eSBarry Smith #define LAgeev_  dgeev
150a1e12872SBarry Smith #else
151c0534c1cSBarry Smith #define LAormqr_ dormqr_
152c0534c1cSBarry Smith #define LAtrtrs_ dtrtrs_
153a1e12872SBarry Smith #define LApotrf_ dpotrf_
154a1e12872SBarry Smith #define LApotrs_ dpotrs_
155a1e12872SBarry Smith #define LAgemv_  dgemv_
156a1e12872SBarry Smith #define LAgetrs_ dgetrs_
157a1e12872SBarry Smith #define LAtrmv_  dtrmv_
158a1e12872SBarry Smith #define LAtrsl_  dtrsl_
1594eeb42bcSBarry Smith #define BLgemm_  dgemm_
160af6b99e9SBarry Smith #define LAgesvd_ dgesvd_
161d4fbbf0eSBarry Smith #define LAgeev_  dgeev_
162a1e12872SBarry Smith #endif
163a1e12872SBarry Smith 
164a1e12872SBarry Smith #else
1654eeb42bcSBarry Smith /*
1664eeb42bcSBarry Smith    Complex with no character string arguments
1674eeb42bcSBarry Smith */
1688f4c8dbaSBarry Smith #if defined(USES_FORTRAN_SINGLE)
1698f4c8dbaSBarry Smith #define ZGEQRF  CGEQRF
1708f4c8dbaSBarry Smith #define ZDOTC   CDOTC
1718f4c8dbaSBarry Smith #define DZNRM2  SCNRM2
1728f4c8dbaSBarry Smith #define ZSCAL   CSCAL
1738f4c8dbaSBarry Smith #define ZCOPY   CCOPY
1748f4c8dbaSBarry Smith #define ZSWAP   CSWAP
1758f4c8dbaSBarry Smith #define ZAXPY   CAXPY
1768f4c8dbaSBarry Smith #define DZASUM  SCASUM
1778f4c8dbaSBarry Smith #define ZGETRF  CGETRF
1788f4c8dbaSBarry Smith #define ZTRTRS  CTRTRS
1798f4c8dbaSBarry Smith #define ZPOTRF  CPOTRF
1808f4c8dbaSBarry Smith #define ZPOTRS  CPOTRS
1818f4c8dbaSBarry Smith #define ZGEMV   CGEMV
1828f4c8dbaSBarry Smith #define ZGETRS  CGETRS
1838f4c8dbaSBarry Smith #define ZGEMM   SGEMM
1848f4c8dbaSBarry Smith #define ZTRMV   CTRMV
185*633a50d3SSatish Balay #define ZGEEV   CGEEV
1868f4c8dbaSBarry Smith #endif
1878f4c8dbaSBarry Smith 
1888f4c8dbaSBarry Smith #if defined(HAVE_FORTRAN_CAPS)
189c0534c1cSBarry Smith #define LAgeqrf_ ZGEQRF
190a1e12872SBarry Smith #define BLdot_   ZDOTC
191a1e12872SBarry Smith #define BLnrm2_  DZNRM2
192a1e12872SBarry Smith #define BLscal_  ZSCAL
193a1e12872SBarry Smith #define BLcopy_  ZCOPY
194a1e12872SBarry Smith #define BLswap_  ZSWAP
195a1e12872SBarry Smith #define BLaxpy_  ZAXPY
196a1e12872SBarry Smith #define BLasum_  DZASUM
197*633a50d3SSatish Balay #define LAgetrf_ ZGETRF
198227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
199c0534c1cSBarry Smith #define LAgeqrf_ zgeqrf
2005392566eSBarry Smith #define LAgetrf_ zgetrf
20108d0dac7SLois Curfman McInnes #define LAgetf2_ zgetf2
202a1e12872SBarry Smith #define BLdot_   zdotc
203a1e12872SBarry Smith #define BLnrm2_  dznrm2
204a1e12872SBarry Smith #define BLscal_  zscal
205a1e12872SBarry Smith #define BLcopy_  zcopy
206a1e12872SBarry Smith #define BLswap_  zswap
207a1e12872SBarry Smith #define BLaxpy_  zaxpy
208a1e12872SBarry Smith #define BLasum_  dzasum
209a1e12872SBarry Smith #else
210c0534c1cSBarry Smith #define LAgeqrf_ zgeqrf_
2115392566eSBarry Smith #define LAgetrf_ zgetrf_
21208d0dac7SLois Curfman McInnes #define LAgetf2_ zgetf2_
213a1e12872SBarry Smith #define BLdot_   zdotc_
214a1e12872SBarry Smith #define BLnrm2_  dznrm2_
215a1e12872SBarry Smith #define BLscal_  zscal_
216a1e12872SBarry Smith #define BLcopy_  zcopy_
217a1e12872SBarry Smith #define BLswap_  zswap_
218a1e12872SBarry Smith #define BLaxpy_  zaxpy_
219a1e12872SBarry Smith #define BLasum_  dzasum_
220a1e12872SBarry Smith #endif
221a1e12872SBarry Smith 
222a2ce50c7SBarry Smith #if defined(USES_CPTOFCD)
2238f4c8dbaSBarry Smith #define LAtrtrs_(a,b,c,d,e,f,g,h,i,j) ZTRTRS(_cptofcd((a),1),_cptofcd((b),1),\
224c0534c1cSBarry Smith                               _cptofcd((c),1),(d),(e),(f),(g),(h),(i),(j))
2258f4c8dbaSBarry Smith #define LApotrf_(a,b,c,d,e)       ZPOTRF(_cptofcd((a),1),(b),(c),(d),(e))
2268f4c8dbaSBarry Smith #define LApotrs_(a,b,c,d,e,f,g,h) ZPOTRS(_cptofcd((a),1),(b),(c),(d),(e),\
2275392566eSBarry Smith                                          (f),(g),(h))
2288f4c8dbaSBarry Smith #define LAgemv_(a,b,c,d,e,f,g,h,i,j,k) ZGEMV(_cptofcd((a),1),(b),(c),(d),(e),\
2295392566eSBarry Smith                                         (f),(g),(h),(i),(j),(k))
2308f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) ZGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
2315392566eSBarry Smith                                         (f),(g),(h),(i))
2328f4c8dbaSBarry Smith #define BLgemm_(a,b,c,d,e,f,g,h,i,j,k,l,m) ZGEMM(_cptofcd((a),1), \
2334eeb42bcSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
2344eeb42bcSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m))
235d4fbbf0eSBarry Smith #define LAgesvd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,p) ZGESVD(_cptofcd((a),1), \
236d4fbbf0eSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
237d4fbbf0eSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m),(n),(p))
238639f9d9dSBarry Smith #define LAgeev_(a,b,c,d,e,f,g,h,i,j,k,l,m,n) ZGEEV(_cptofcd((a),1), \
239d4fbbf0eSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
240639f9d9dSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m),(n))
2418f4c8dbaSBarry Smith #define LAtrmv_  ZTRMV
2428f4c8dbaSBarry Smith #define LAtrsl_  ZTRSL
243227d817aSBarry Smith #elif defined(HAVE_FORTRAN_CAPS)
244c0534c1cSBarry Smith #define LAtrtrs_ ZTRTRS
245a1e12872SBarry Smith #define LApotrf_ ZPOTRF
246a1e12872SBarry Smith #define LApotrs_ ZPOTRS
247a1e12872SBarry Smith #define LAgemv_  ZGEMV
248a1e12872SBarry Smith #define LAgetrf_ ZGETRF
24908d0dac7SLois Curfman McInnes #define LAgetf2_ ZGETF2
250a1e12872SBarry Smith #define LAgetrs_ ZGETRS
251a1e12872SBarry Smith #define LAtrmv_  ZTRMV
252a1e12872SBarry Smith #define LAtrsl_  ZTRSL
2535a778de9SBarry Smith #define BLgemm_  ZGEMM
254d4fbbf0eSBarry Smith #define LAgesvd_ ZGESVD
255d4fbbf0eSBarry Smith #define LAgeev_  ZGEEV
256227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
257c0534c1cSBarry Smith #define LAtrtrs_ ztrtrs
258a1e12872SBarry Smith #define LApotrf_ zpotrf
259a1e12872SBarry Smith #define LApotrs_ zpotrs
260a1e12872SBarry Smith #define LAgemv_  zgemv
261a1e12872SBarry Smith #define LAgetrs_ zgetrs
262a1e12872SBarry Smith #define LAtrmv_  ztrmv
263a1e12872SBarry Smith #define LAtrsl_  ztrsl
2645a778de9SBarry Smith #define BLgemm_  zgemm
265d4fbbf0eSBarry Smith #define LAgesvd_ zgesvd
266d4fbbf0eSBarry Smith #define LAgeev_  zgeev
267a1e12872SBarry Smith #else
268c0534c1cSBarry Smith #define LAtrtrs_ ztrtrs_
269a1e12872SBarry Smith #define LApotrf_ zpotrf_
270a1e12872SBarry Smith #define LApotrs_ zpotrs_
271a1e12872SBarry Smith #define LAgemv_  zgemv_
272a1e12872SBarry Smith #define LAgetrs_ zgetrs_
273a1e12872SBarry Smith #define LAtrmv_  ztrmv_
274a1e12872SBarry Smith #define LAtrsl_  ztrsl_
2755a778de9SBarry Smith #define BLgemm_  zgemm_
276d4fbbf0eSBarry Smith #define LAgesvd_ zgesvd_
277d4fbbf0eSBarry Smith #define LAgeev_  zgeev_
278a1e12872SBarry Smith #endif
279a1e12872SBarry Smith 
280a1e12872SBarry Smith #endif
281a1e12872SBarry Smith 
282a1e12872SBarry Smith #if defined(__cplusplus)
283a1e12872SBarry Smith extern "C" {
284a1e12872SBarry Smith #endif
285a1e12872SBarry Smith 
2868f4c8dbaSBarry Smith /*
2878f4c8dbaSBarry Smith    BLdot cannot be used with COMPLEX because it cannot
2888f4c8dbaSBarry Smith    handle returing a double complex to C++.
289126c565eSBarry Smith */
290126c565eSBarry Smith extern double BLdot_(int*,Scalar*,int*,Scalar*,int*);
2911eb62cbbSBarry Smith extern double BLnrm2_(int*,Scalar*,int*),BLasum_(int*,Scalar*,int*);
2921eb62cbbSBarry Smith extern void   BLscal_(int*,Scalar*,Scalar*,int*);
2931eb62cbbSBarry Smith extern void   BLcopy_(int*,Scalar*,int*,Scalar*,int*);
2941eb62cbbSBarry Smith extern void   BLswap_(int*,Scalar*,int*,Scalar*,int*);
2951eb62cbbSBarry Smith extern void   BLaxpy_(int*,Scalar*,Scalar*,int*,Scalar*,int*);
2961eb62cbbSBarry Smith extern void   LAgetrf_(int*,int*,Scalar*,int*,int*,int*);
297bae8960eSLois Curfman McInnes extern void   LAgetf2_(int*,int*,Scalar*,int*,int*,int*);
298c0534c1cSBarry Smith extern void   LAgeqrf_(int*,int*,Scalar*,int*,Scalar*,Scalar*,int*,int*);
2995392566eSBarry Smith 
3008f4c8dbaSBarry Smith #if defined(USES_CPTOFCD)
301112a2221SBarry Smith 
302112a2221SBarry Smith #if defined(PETSC_COMPLEX)
3038f4c8dbaSBarry Smith extern void   ZPOTRF(_fcd,int*,Scalar*,int*,int*);
3048f4c8dbaSBarry Smith extern void   ZGEMV(_fcd,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
3055392566eSBarry Smith                         Scalar*,Scalar*,int*);
3068f4c8dbaSBarry Smith extern void   ZPOTRS(_fcd,int*,int*,Scalar*,int*,Scalar*,int*,int*);
3078f4c8dbaSBarry Smith extern void   ZGETRS(_fcd,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
3088f4c8dbaSBarry Smith extern void   ZGEMM(_fcd,_fcd,int*,int*,int*,Scalar*,Scalar*,int*,
3094eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
310d4fbbf0eSBarry Smith extern void   ZGESVD(_fcd,_fcd,int *,int*, Scalar *,int*,double*,Scalar*,
311d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,double*,int*);
312d4fbbf0eSBarry Smith extern void   ZGEEV(_fcd,_fcd,int *, Scalar *,int*,Scalar*,Scalar*,
313d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,double*,int*);
3145392566eSBarry Smith #else
3158f4c8dbaSBarry Smith extern void   DPOTRF(_fcd,int*,Scalar*,int*,int*);
3168f4c8dbaSBarry Smith extern void   DGEMV(_fcd,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
317112a2221SBarry Smith                         Scalar*,Scalar*,int*);
3188f4c8dbaSBarry Smith extern void   DPOTRS(_fcd,int*,int*,Scalar*,int*,Scalar*,int*,int*);
3198f4c8dbaSBarry Smith extern void   DGETRS(_fcd,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
3208f4c8dbaSBarry Smith extern void   DGEMM(_fcd,_fcd,int*,int*,int*,Scalar*,Scalar*,int*,
3214eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
3228f4c8dbaSBarry Smith extern void   DGESVD(_fcd,_fcd,int *,int*, Scalar *,int*,Scalar*,Scalar*,
323af6b99e9SBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
324d4fbbf0eSBarry Smith extern void   DGEEV(_fcd,_fcd,int *,Scalar *,int*,Scalar*,Scalar*,Scalar*,
325d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
326112a2221SBarry Smith #endif
327112a2221SBarry Smith 
328112a2221SBarry Smith #else
329c0534c1cSBarry Smith extern void   LAormqr_(char*,char*,int*,int*,int*,Scalar*,int*,Scalar*,Scalar*,
330c0534c1cSBarry Smith                        int*,Scalar*,int*,int*);
331c0534c1cSBarry Smith extern void   LAtrtrs_(char*,char*,char*,int*,int*,Scalar*,int*,Scalar*,int*,
332c0534c1cSBarry Smith                        int*);
3331eb62cbbSBarry Smith extern void   LApotrf_(char*,int*,Scalar*,int*,int*);
3341eb62cbbSBarry Smith extern void   LAgemv_(char*,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
335a1e12872SBarry Smith                        Scalar*,Scalar*,int*);
3361eb62cbbSBarry Smith extern void   LApotrs_(char*,int*,int*,Scalar*,int*,Scalar*,int*,int*);
3371eb62cbbSBarry Smith extern void   LAgetrs_(char*,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
3384eeb42bcSBarry Smith extern void   BLgemm_(char *,char*,int*,int*,int*,Scalar*,Scalar*,int*,
3394eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
340d4fbbf0eSBarry Smith #if !defined(PETSC_COMPLEX)
341d4fbbf0eSBarry Smith extern void   LAgeev_(char *,char *,int *, Scalar *,int*,double*,double*,Scalar*,
342af6b99e9SBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
343d4fbbf0eSBarry Smith extern void   LAgesvd_(char *,char *,int *,int*, Scalar *,int*,double*,Scalar*,
344d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
345d4fbbf0eSBarry Smith #else
346d4fbbf0eSBarry Smith extern void   LAgeev_(char *,char *,int *, Scalar *,int*,Scalar*,Scalar*,
347d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,double*,int*);
348d4fbbf0eSBarry Smith extern void   LAgesvd_(char *,char *,int *,int*, Scalar *,int*,double*,Scalar*,
349d4fbbf0eSBarry Smith                       int*,Scalar*,int*,Scalar*,int*,double*,int*);
350d4fbbf0eSBarry Smith #endif
3515392566eSBarry Smith #endif
352a1e12872SBarry Smith 
353a1e12872SBarry Smith #if defined(__cplusplus)
35402834360SBarry Smith }
355a1e12872SBarry Smith #endif
356a1e12872SBarry Smith 
357a1e12872SBarry Smith #endif
3585a778de9SBarry Smith 
3595a778de9SBarry Smith 
3605a778de9SBarry Smith 
361