xref: /petsc/include/petscblaslapack.h (revision 8f4c8dbae9fb44058773f34f09fcc2f3338ce78e)
1*8f4c8dbaSBarry Smith /* $Id: plapack.h,v 1.19 1996/04/09 23:15:24 bsmith Exp bsmith $ */
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
95392566eSBarry Smith Cray T3D.  Yet another reason to hate ...
105392566eSBarry Smith 
11a1e12872SBarry Smith */
12a1e12872SBarry Smith #if !defined(_PLAPACK_H)
13a1e12872SBarry Smith #define _PLAPACK_H
14a1e12872SBarry Smith 
1519b02663SBarry Smith #include "petsc.h"
16a1e12872SBarry Smith 
17*8f4c8dbaSBarry Smith /*
18*8f4c8dbaSBarry Smith    This include file on the Cray T3D defines the interface between
19*8f4c8dbaSBarry Smith   Fortran and C representations of charactor strings.
20*8f4c8dbaSBarry Smith */
21*8f4c8dbaSBarry 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 */
30*8f4c8dbaSBarry Smith 
31*8f4c8dbaSBarry Smith #if defined(USES_FORTRAN_SINGLE)
32*8f4c8dbaSBarry Smith /*
33*8f4c8dbaSBarry Smith    For these machines we must call the single precision Fortran version
34*8f4c8dbaSBarry Smith */
35*8f4c8dbaSBarry Smith #define DGEQRF   SGEQRF
36*8f4c8dbaSBarry Smith #define DGETRF   SGETRF
37*8f4c8dbaSBarry Smith #define DDOT     SDOT
38*8f4c8dbaSBarry Smith #define DNRM2    SNRM2
39*8f4c8dbaSBarry Smith #define DSCAL    SSCAL
40*8f4c8dbaSBarry Smith #define DCOPY    SCOPY
41*8f4c8dbaSBarry Smith #define DSWAP    SSWAP
42*8f4c8dbaSBarry Smith #define DAXPY    SAXPY
43*8f4c8dbaSBarry Smith #define DASUM    SASUM
44*8f4c8dbaSBarry Smith #define DSORMQR  SORMQR
45*8f4c8dbaSBarry Smith #define DTRTRS   STRTRS
46*8f4c8dbaSBarry Smith #define DPOTRF   SPOTRF
47*8f4c8dbaSBarry Smith #define DPOTRS   SPOTRS
48*8f4c8dbaSBarry Smith #define DGEMV    SGEMV
49*8f4c8dbaSBarry Smith #define DGETRS   SGETRS
50*8f4c8dbaSBarry Smith #define DGETRS   SGETRS
51*8f4c8dbaSBarry Smith #define DGEMM    SGEMM
52*8f4c8dbaSBarry Smith #define DGESVD   SGESVD
53*8f4c8dbaSBarry Smith #define DTRMV    STRMV
54*8f4c8dbaSBarry Smith #define DTRSL    STRSL
55*8f4c8dbaSBarry Smith #endif
56*8f4c8dbaSBarry Smith 
57*8f4c8dbaSBarry Smith #if defined(HAVE_FORTRAN_CAPS)
58c0534c1cSBarry Smith #define LAgeqrf_ DGEQRF
595392566eSBarry Smith #define LAgetrf_ DGETRF
60c0581c19SLois Curfman McInnes #define LAgetf2_ DGETF2
61a1e12872SBarry Smith #define BLdot_   DDOT
62a1e12872SBarry Smith #define BLnrm2_  DNRM2
63a1e12872SBarry Smith #define BLscal_  DSCAL
64a1e12872SBarry Smith #define BLcopy_  DCOPY
65a1e12872SBarry Smith #define BLswap_  DSWAP
66a1e12872SBarry Smith #define BLaxpy_  DAXPY
67a1e12872SBarry Smith #define BLasum_  DASUM
68227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
69c0534c1cSBarry Smith #define LAgeqrf_ dgeqrf
705392566eSBarry Smith #define LAgetrf_ dgetrf
71c0581c19SLois Curfman McInnes #define LAgetf2_ dgetf2
72a1e12872SBarry Smith #define BLdot_   ddot
73a1e12872SBarry Smith #define BLnrm2_  dnrm2
74a1e12872SBarry Smith #define BLscal_  dscal
75a1e12872SBarry Smith #define BLcopy_  dcopy
76a1e12872SBarry Smith #define BLswap_  dswap
77a1e12872SBarry Smith #define BLaxpy_  daxpy
78a1e12872SBarry Smith #define BLasum_  dasum
79a1e12872SBarry Smith #else
80c0534c1cSBarry Smith #define LAgeqrf_ dgeqrf_
815392566eSBarry Smith #define LAgetrf_ dgetrf_
82c0581c19SLois Curfman McInnes #define LAgetf2_ dgetf2_
83a1e12872SBarry Smith #define BLdot_   ddot_
84a1e12872SBarry Smith #define BLnrm2_  dnrm2_
85a1e12872SBarry Smith #define BLscal_  dscal_
86a1e12872SBarry Smith #define BLcopy_  dcopy_
87a1e12872SBarry Smith #define BLswap_  dswap_
88a1e12872SBarry Smith #define BLaxpy_  daxpy_
89a1e12872SBarry Smith #define BLasum_  dasum_
90a1e12872SBarry Smith #endif
91a1e12872SBarry Smith 
924eeb42bcSBarry Smith /*
934eeb42bcSBarry Smith    Real with character string arguments.
944eeb42bcSBarry Smith */
95*8f4c8dbaSBarry Smith #if defined(USES_CPTOFCD)
96*8f4c8dbaSBarry Smith /*
97*8f4c8dbaSBarry Smith    Note that this assumes that machines which use cptofcd() use
98*8f4c8dbaSBarry Smith   the HAVE_FORTRAN_CAPS option. This is true on the Cray T3d.
99*8f4c8dbaSBarry Smith */
100*8f4c8dbaSBarry Smith #define LAormqr_(a,b,c,d,e,f,g,h,i,j,k,l,m)  DORMQR(_cptofcd((a),1),\
101bbb6d6a8SBarry Smith              _cptofcd((b),1),(c),(d),(e),(f),(g),(h),(i),(j),(k),(l),(m))
102*8f4c8dbaSBarry Smith #define LAtrtrs_(a,b,c,d,e,f,g,h,i,j) DTRTRS(_cptofcd((a),1),_cptofcd((b),1),\
103c0534c1cSBarry Smith                              _cptofcd((c),1),(d),(e),(f),(g),(h),(i),(j))
104*8f4c8dbaSBarry Smith #define LApotrf_(a,b,c,d,e) DPOTRF(_cptofcd((a),1),(b),(c),(d),(e))
105*8f4c8dbaSBarry Smith #define LApotrs_(a,b,c,d,e,f,g,h) DPOTRS(_cptofcd((a),1),(b),(c),(d),(e),\
1065392566eSBarry Smith                                          (f),(g),(h))
107*8f4c8dbaSBarry Smith #define LAgemv_(a,b,c,d,e,f,g,h,i,j,k) DGEMV(_cptofcd((a),1),(b),(c),(d),(e),\
1085392566eSBarry Smith                                         (f),(g),(h),(i),(j),(k))
109*8f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) DGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
1105392566eSBarry Smith                                         (f),(g),(h),(i))
111*8f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) DGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
1124eeb42bcSBarry Smith                                         (f),(g),(h),(i))
113*8f4c8dbaSBarry Smith #define BLgemm_(a,b,c,d,e,f,g,h,i,j,k,l,m) DGEMM(_cptofcd((a),1), \
1144eeb42bcSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
1154eeb42bcSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m))
116*8f4c8dbaSBarry Smith #define LAgesvd_(a,b,c,d,e,f,g,h,i,j,k,l,m) DGESVD(_cptofcd((a),1), \
117af6b99e9SBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
118af6b99e9SBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m))
119*8f4c8dbaSBarry Smith #define LAtrmv_  DTRMV
120*8f4c8dbaSBarry Smith #define LAtrsl_  DTRSL
121227d817aSBarry Smith #elif defined(HAVE_FORTRAN_CAPS)
122c0534c1cSBarry Smith #define LAormqr_ DORMQR
123c0534c1cSBarry Smith #define LAtrtrs_ DTRTRS
124a1e12872SBarry Smith #define LApotrf_ DPOTRF
125a1e12872SBarry Smith #define LApotrs_ DPOTRS
126a1e12872SBarry Smith #define LAgemv_  DGEMV
127a1e12872SBarry Smith #define LAgetrs_ DGETRS
128a1e12872SBarry Smith #define LAtrmv_  DTRMV
129a1e12872SBarry Smith #define LAtrsl_  DTRSL
130af6b99e9SBarry Smith #define LAgesvd_ DGESVD
1314eeb42bcSBarry Smith #define BLgemm_  DGEMM
132227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
133c0534c1cSBarry Smith #define LAormqr_ dormqr
134c0534c1cSBarry Smith #define LAtrtrs_ dtrtrs
135a1e12872SBarry Smith #define LApotrf_ dpotrf
136a1e12872SBarry Smith #define LApotrs_ dpotrs
137a1e12872SBarry Smith #define LAgemv_  dgemv
138a1e12872SBarry Smith #define LAgetrs_ dgetrs
139a1e12872SBarry Smith #define LAtrmv_  dtrmv
140a1e12872SBarry Smith #define LAtrsl_  dtrsl
1414eeb42bcSBarry Smith #define BLgemm_  dgemm
142af6b99e9SBarry Smith #define LAgesvd_ dgesvd
143a1e12872SBarry Smith #else
144c0534c1cSBarry Smith #define LAormqr_ dormqr_
145c0534c1cSBarry Smith #define LAtrtrs_ dtrtrs_
146a1e12872SBarry Smith #define LApotrf_ dpotrf_
147a1e12872SBarry Smith #define LApotrs_ dpotrs_
148a1e12872SBarry Smith #define LAgemv_  dgemv_
149a1e12872SBarry Smith #define LAgetrs_ dgetrs_
150a1e12872SBarry Smith #define LAtrmv_  dtrmv_
151a1e12872SBarry Smith #define LAtrsl_  dtrsl_
1524eeb42bcSBarry Smith #define BLgemm_  dgemm_
153af6b99e9SBarry Smith #define LAgesvd_ dgesvd_
154a1e12872SBarry Smith #endif
155a1e12872SBarry Smith 
156a1e12872SBarry Smith #else
1574eeb42bcSBarry Smith /*
1584eeb42bcSBarry Smith    Complex with no character string arguments
1594eeb42bcSBarry Smith */
160*8f4c8dbaSBarry Smith #if defined(USES_FORTRAN_SINGLE)
161*8f4c8dbaSBarry Smith #define ZGEQRF  CGEQRF
162*8f4c8dbaSBarry Smith #define ZDOTC   CDOTC
163*8f4c8dbaSBarry Smith #define DZNRM2  SCNRM2
164*8f4c8dbaSBarry Smith #define ZSCAL   CSCAL
165*8f4c8dbaSBarry Smith #define ZCOPY   CCOPY
166*8f4c8dbaSBarry Smith #define ZSWAP   CSWAP
167*8f4c8dbaSBarry Smith #define ZAXPY   CAXPY
168*8f4c8dbaSBarry Smith #define DZASUM  SCASUM
169*8f4c8dbaSBarry Smith #define ZGETRF  CGETRF
170*8f4c8dbaSBarry Smith #define ZTRTRS  CTRTRS
171*8f4c8dbaSBarry Smith #define ZPOTRF  CPOTRF
172*8f4c8dbaSBarry Smith #define ZPOTRS  CPOTRS
173*8f4c8dbaSBarry Smith #define ZGEMV   CGEMV
174*8f4c8dbaSBarry Smith #define ZGETRS  CGETRS
175*8f4c8dbaSBarry Smith #define ZGEMM   SGEMM
176*8f4c8dbaSBarry Smith #define ZTRMV   CTRMV
177*8f4c8dbaSBarry Smith #define ZTRSL   CTRSL
178*8f4c8dbaSBarry Smith #endif
179*8f4c8dbaSBarry Smith 
180*8f4c8dbaSBarry Smith #if defined(HAVE_FORTRAN_CAPS)
181c0534c1cSBarry Smith #define LAgeqrf_ ZGEQRF
182a1e12872SBarry Smith #define BLdot_   ZDOTC
183a1e12872SBarry Smith #define BLnrm2_  DZNRM2
184a1e12872SBarry Smith #define BLscal_  ZSCAL
185a1e12872SBarry Smith #define BLcopy_  ZCOPY
186a1e12872SBarry Smith #define BLswap_  ZSWAP
187a1e12872SBarry Smith #define BLaxpy_  ZAXPY
188a1e12872SBarry Smith #define BLasum_  DZASUM
189227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
190c0534c1cSBarry Smith #define LAgeqrf_ zgeqrf
1915392566eSBarry Smith #define LAgetrf_ zgetrf
19208d0dac7SLois Curfman McInnes #define LAgetf2_ zgetf2
193a1e12872SBarry Smith #define BLdot_   zdotc
194a1e12872SBarry Smith #define BLnrm2_  dznrm2
195a1e12872SBarry Smith #define BLscal_  zscal
196a1e12872SBarry Smith #define BLcopy_  zcopy
197a1e12872SBarry Smith #define BLswap_  zswap
198a1e12872SBarry Smith #define BLaxpy_  zaxpy
199a1e12872SBarry Smith #define BLasum_  dzasum
200a1e12872SBarry Smith #else
201c0534c1cSBarry Smith #define LAgeqrf_ zgeqrf_
2025392566eSBarry Smith #define LAgetrf_ zgetrf_
20308d0dac7SLois Curfman McInnes #define LAgetf2_ zgetf2_
204a1e12872SBarry Smith #define BLdot_   zdotc_
205a1e12872SBarry Smith #define BLnrm2_  dznrm2_
206a1e12872SBarry Smith #define BLscal_  zscal_
207a1e12872SBarry Smith #define BLcopy_  zcopy_
208a1e12872SBarry Smith #define BLswap_  zswap_
209a1e12872SBarry Smith #define BLaxpy_  zaxpy_
210a1e12872SBarry Smith #define BLasum_  dzasum_
211a1e12872SBarry Smith #endif
212a1e12872SBarry Smith 
213*8f4c8dbaSBarry Smith #if defined(USES_CTOPFCD)
214*8f4c8dbaSBarry Smith #define LAtrtrs_(a,b,c,d,e,f,g,h,i,j) ZTRTRS(_cptofcd((a),1),_cptofcd((b),1),\
215c0534c1cSBarry Smith                               _cptofcd((c),1),(d),(e),(f),(g),(h),(i),(j))
216*8f4c8dbaSBarry Smith #define LApotrf_(a,b,c,d,e)       ZPOTRF(_cptofcd((a),1),(b),(c),(d),(e))
217*8f4c8dbaSBarry Smith #define LApotrs_(a,b,c,d,e,f,g,h) ZPOTRS(_cptofcd((a),1),(b),(c),(d),(e),\
2185392566eSBarry Smith                                          (f),(g),(h))
219*8f4c8dbaSBarry Smith #define LAgemv_(a,b,c,d,e,f,g,h,i,j,k) ZGEMV(_cptofcd((a),1),(b),(c),(d),(e),\
2205392566eSBarry Smith                                         (f),(g),(h),(i),(j),(k))
221*8f4c8dbaSBarry Smith #define LAgetrs_(a,b,c,d,e,f,g,h,i) ZGETRS(_cptofcd((a),1),(b),(c),(d),(e),\
2225392566eSBarry Smith                                         (f),(g),(h),(i))
223*8f4c8dbaSBarry Smith #define BLgemm_(a,b,c,d,e,f,g,h,i,j,k,l,m) ZGEMM(_cptofcd((a),1), \
2244eeb42bcSBarry Smith                                             _cptofcd((a),1),(c),(d),(e),\
2254eeb42bcSBarry Smith                                         (f),(g),(h),(i),(j),(k),(l),(m))
226*8f4c8dbaSBarry Smith #define LAtrmv_  ZTRMV
227*8f4c8dbaSBarry Smith #define LAtrsl_  ZTRSL
228227d817aSBarry Smith #elif defined(HAVE_FORTRAN_CAPS)
229c0534c1cSBarry Smith #define LAtrtrs_ ZTRTRS
230a1e12872SBarry Smith #define LApotrf_ ZPOTRF
231a1e12872SBarry Smith #define LApotrs_ ZPOTRS
232a1e12872SBarry Smith #define LAgemv_  ZGEMV
233a1e12872SBarry Smith #define LAgetrf_ ZGETRF
23408d0dac7SLois Curfman McInnes #define LAgetf2_ ZGETF2
235a1e12872SBarry Smith #define LAgetrs_ ZGETRS
236a1e12872SBarry Smith #define LAtrmv_  ZTRMV
237a1e12872SBarry Smith #define LAtrsl_  ZTRSL
2385a778de9SBarry Smith #define BLgemm_  ZGEMM
239227d817aSBarry Smith #elif !defined(HAVE_FORTRAN_UNDERSCORE)
240c0534c1cSBarry Smith #define LAtrtrs_ ztrtrs
241a1e12872SBarry Smith #define LApotrf_ zpotrf
242a1e12872SBarry Smith #define LApotrs_ zpotrs
243a1e12872SBarry Smith #define LAgemv_  zgemv
244a1e12872SBarry Smith #define LAgetrs_ zgetrs
245a1e12872SBarry Smith #define LAtrmv_  ztrmv
246a1e12872SBarry Smith #define LAtrsl_  ztrsl
2475a778de9SBarry Smith #define BLgemm_  zgemm
248a1e12872SBarry Smith #else
249c0534c1cSBarry Smith #define LAtrtrs_ ztrtrs_
250a1e12872SBarry Smith #define LApotrf_ zpotrf_
251a1e12872SBarry Smith #define LApotrs_ zpotrs_
252a1e12872SBarry Smith #define LAgemv_  zgemv_
253a1e12872SBarry Smith #define LAgetrs_ zgetrs_
254a1e12872SBarry Smith #define LAtrmv_  ztrmv_
255a1e12872SBarry Smith #define LAtrsl_  ztrsl_
2565a778de9SBarry Smith #define BLgemm_  zgemm_
257a1e12872SBarry Smith #endif
258a1e12872SBarry Smith 
259a1e12872SBarry Smith #endif
260a1e12872SBarry Smith 
261a1e12872SBarry Smith #if defined(__cplusplus)
262a1e12872SBarry Smith extern "C" {
263a1e12872SBarry Smith #endif
264a1e12872SBarry Smith 
265*8f4c8dbaSBarry Smith /*
266*8f4c8dbaSBarry Smith    BLdot cannot be used with COMPLEX because it cannot
267*8f4c8dbaSBarry Smith    handle returing a double complex to C++.
268126c565eSBarry Smith */
269126c565eSBarry Smith extern double BLdot_(int*,Scalar*,int*,Scalar*,int*);
2701eb62cbbSBarry Smith extern double BLnrm2_(int*,Scalar*,int*),BLasum_(int*,Scalar*,int*);
2711eb62cbbSBarry Smith extern void   BLscal_(int*,Scalar*,Scalar*,int*);
2721eb62cbbSBarry Smith extern void   BLcopy_(int*,Scalar*,int*,Scalar*,int*);
2731eb62cbbSBarry Smith extern void   BLswap_(int*,Scalar*,int*,Scalar*,int*);
2741eb62cbbSBarry Smith extern void   BLaxpy_(int*,Scalar*,Scalar*,int*,Scalar*,int*);
2751eb62cbbSBarry Smith extern void   LAgetrf_(int*,int*,Scalar*,int*,int*,int*);
276bae8960eSLois Curfman McInnes extern void   LAgetf2_(int*,int*,Scalar*,int*,int*,int*);
277c0534c1cSBarry Smith extern void   LAgeqrf_(int*,int*,Scalar*,int*,Scalar*,Scalar*,int*,int*);
2785392566eSBarry Smith 
279*8f4c8dbaSBarry Smith #if defined(USES_CPTOFCD)
280112a2221SBarry Smith 
281112a2221SBarry Smith #if defined(PETSC_COMPLEX)
282*8f4c8dbaSBarry Smith extern void   ZPOTRF(_fcd,int*,Scalar*,int*,int*);
283*8f4c8dbaSBarry Smith extern void   ZGEMV(_fcd,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
2845392566eSBarry Smith                         Scalar*,Scalar*,int*);
285*8f4c8dbaSBarry Smith extern void   ZPOTRS(_fcd,int*,int*,Scalar*,int*,Scalar*,int*,int*);
286*8f4c8dbaSBarry Smith extern void   ZGETRS(_fcd,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
287*8f4c8dbaSBarry Smith extern void   ZGEMM(_fcd,_fcd,int*,int*,int*,Scalar*,Scalar*,int*,
2884eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
2895392566eSBarry Smith #else
290*8f4c8dbaSBarry Smith extern void   DPOTRF(_fcd,int*,Scalar*,int*,int*);
291*8f4c8dbaSBarry Smith extern void   DGEMV(_fcd,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
292112a2221SBarry Smith                         Scalar*,Scalar*,int*);
293*8f4c8dbaSBarry Smith extern void   DPOTRS(_fcd,int*,int*,Scalar*,int*,Scalar*,int*,int*);
294*8f4c8dbaSBarry Smith extern void   DGETRS(_fcd,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
295*8f4c8dbaSBarry Smith extern void   DGEMM(_fcd,_fcd,int*,int*,int*,Scalar*,Scalar*,int*,
2964eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
297*8f4c8dbaSBarry Smith extern void   DGESVD(_fcd,_fcd,int *,int*, Scalar *,int*,Scalar*,Scalar*,
298af6b99e9SBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
299112a2221SBarry Smith #endif
300112a2221SBarry Smith 
301112a2221SBarry Smith #else
302c0534c1cSBarry Smith extern void   LAormqr_(char*,char*,int*,int*,int*,Scalar*,int*,Scalar*,Scalar*,
303c0534c1cSBarry Smith                        int*,Scalar*,int*,int*);
304c0534c1cSBarry Smith extern void   LAtrtrs_(char*,char*,char*,int*,int*,Scalar*,int*,Scalar*,int*,
305c0534c1cSBarry Smith                        int*);
3061eb62cbbSBarry Smith extern void   LApotrf_(char*,int*,Scalar*,int*,int*);
3071eb62cbbSBarry Smith extern void   LAgemv_(char*,int*,int*,Scalar*,Scalar*,int*,Scalar *,int*,
308a1e12872SBarry Smith                        Scalar*,Scalar*,int*);
3091eb62cbbSBarry Smith extern void   LApotrs_(char*,int*,int*,Scalar*,int*,Scalar*,int*,int*);
3101eb62cbbSBarry Smith extern void   LAgetrs_(char*,int*,int*,Scalar*,int*,int*,Scalar*,int*,int*);
3114eeb42bcSBarry Smith extern void   BLgemm_(char *,char*,int*,int*,int*,Scalar*,Scalar*,int*,
3124eeb42bcSBarry Smith                       Scalar*,int*,Scalar*,Scalar*,int*);
313af6b99e9SBarry Smith extern void   LAgesvd_(char *,char *,int *,int*, Scalar *,int*,Scalar*,Scalar*,
314af6b99e9SBarry Smith                       int*,Scalar*,int*,Scalar*,int*,int*);
3155392566eSBarry Smith #endif
316a1e12872SBarry Smith 
317a1e12872SBarry Smith #if defined(__cplusplus)
31802834360SBarry Smith }
319a1e12872SBarry Smith #endif
320a1e12872SBarry Smith 
321a1e12872SBarry Smith #endif
3225a778de9SBarry Smith 
3235a778de9SBarry Smith 
3245a778de9SBarry Smith 
325