xref: /aosp_15_r20/external/cblas/include/cblas_f77.h (revision 1858f9982ea1ad57fb52080c08594e4d1cce4fa1)
1*1858f998SYi Kong /*
2*1858f998SYi Kong  * cblas_f77.h
3*1858f998SYi Kong  * Written by Keita Teranishi
4*1858f998SYi Kong  *
5*1858f998SYi Kong  * Updated by Jeff Horner
6*1858f998SYi Kong  * Merged cblas_f77.h and cblas_fortran_header.h
7*1858f998SYi Kong  */
8*1858f998SYi Kong 
9*1858f998SYi Kong #ifndef CBLAS_F77_H
10*1858f998SYi Kong #define CBLAS_F77_H
11*1858f998SYi Kong 
12*1858f998SYi Kong #define FCHAR char *
13*1858f998SYi Kong #define FINT const int *
14*1858f998SYi Kong 
15*1858f998SYi Kong /*
16*1858f998SYi Kong  * Level 1 BLAS
17*1858f998SYi Kong  */
18*1858f998SYi Kong // Google-local: Nonstandard xerbla name to avoid collisions with LAPACK.
19*1858f998SYi Kong #define F77_xerbla cblas_f77_xerbla_
20*1858f998SYi Kong #define F77_srotg      srotg_
21*1858f998SYi Kong #define F77_srotmg     srotmg_
22*1858f998SYi Kong #define F77_srot       srot_
23*1858f998SYi Kong #define F77_srotm      srotm_
24*1858f998SYi Kong #define F77_drotg      drotg_
25*1858f998SYi Kong #define F77_drotmg     drotmg_
26*1858f998SYi Kong #define F77_drot       drot_
27*1858f998SYi Kong #define F77_drotm      drotm_
28*1858f998SYi Kong #define F77_sswap      sswap_
29*1858f998SYi Kong #define F77_scopy      scopy_
30*1858f998SYi Kong #define F77_saxpy      saxpy_
31*1858f998SYi Kong #define F77_dswap      dswap_
32*1858f998SYi Kong #define F77_dcopy      dcopy_
33*1858f998SYi Kong #define F77_daxpy      daxpy_
34*1858f998SYi Kong #define F77_cswap      cswap_
35*1858f998SYi Kong #define F77_ccopy      ccopy_
36*1858f998SYi Kong #define F77_caxpy      caxpy_
37*1858f998SYi Kong #define F77_zswap      zswap_
38*1858f998SYi Kong #define F77_zcopy      zcopy_
39*1858f998SYi Kong #define F77_zaxpy      zaxpy_
40*1858f998SYi Kong #define F77_sscal      sscal_
41*1858f998SYi Kong #define F77_dscal      dscal_
42*1858f998SYi Kong #define F77_cscal      cscal_
43*1858f998SYi Kong #define F77_zscal      zscal_
44*1858f998SYi Kong #define F77_csscal      csscal_
45*1858f998SYi Kong #define F77_zdscal      zdscal_
46*1858f998SYi Kong 
47*1858f998SYi Kong // Google-local: Use the function version of these, so that we don't need
48*1858f998SYi Kong // the built-in Fortran wrappers.
49*1858f998SYi Kong #define F77_sdot   sdot_
50*1858f998SYi Kong #define F77_ddot   ddot_
51*1858f998SYi Kong #define F77_dsdot   dsdot_
52*1858f998SYi Kong #define F77_sdsdot   sdsdot_
53*1858f998SYi Kong #define F77_snrm2  snrm2_
54*1858f998SYi Kong #define F77_sasum  sasum_
55*1858f998SYi Kong #define F77_dnrm2  dnrm2_
56*1858f998SYi Kong #define F77_dasum  dasum_
57*1858f998SYi Kong #define F77_isamax isamax_
58*1858f998SYi Kong #define F77_idamax idamax_
59*1858f998SYi Kong #define F77_icamax icamax_
60*1858f998SYi Kong #define F77_izamax izamax_
61*1858f998SYi Kong #define F77_scnrm2  scnrm2_
62*1858f998SYi Kong #define F77_scasum  scasum_
63*1858f998SYi Kong #define F77_dznrm2  dznrm2_
64*1858f998SYi Kong #define F77_dzasum  dzasum_
65*1858f998SYi Kong 
66*1858f998SYi Kong // Google-local: Use Eigen's "subroutine" versions of these functions, not
67*1858f998SYi Kong // the built-in Fortran wrappers.
68*1858f998SYi Kong #define F77_cdotc_sub  cdotcw_
69*1858f998SYi Kong #define F77_cdotu_sub  cdotuw_
70*1858f998SYi Kong #define F77_zdotu_sub  zdotuw_
71*1858f998SYi Kong #define F77_zdotc_sub  zdotcw_
72*1858f998SYi Kong 
73*1858f998SYi Kong /*
74*1858f998SYi Kong  * Level 2 BLAS
75*1858f998SYi Kong  */
76*1858f998SYi Kong #define F77_ssymv      ssymv_
77*1858f998SYi Kong #define F77_ssbmv      ssbmv_
78*1858f998SYi Kong #define F77_sspmv      sspmv_
79*1858f998SYi Kong #define F77_sger       sger_
80*1858f998SYi Kong #define F77_ssyr       ssyr_
81*1858f998SYi Kong #define F77_sspr       sspr_
82*1858f998SYi Kong #define F77_ssyr2      ssyr2_
83*1858f998SYi Kong #define F77_sspr2      sspr2_
84*1858f998SYi Kong #define F77_dsymv      dsymv_
85*1858f998SYi Kong #define F77_dsbmv      dsbmv_
86*1858f998SYi Kong #define F77_dspmv      dspmv_
87*1858f998SYi Kong #define F77_dger       dger_
88*1858f998SYi Kong #define F77_dsyr       dsyr_
89*1858f998SYi Kong #define F77_dspr       dspr_
90*1858f998SYi Kong #define F77_dsyr2      dsyr2_
91*1858f998SYi Kong #define F77_dspr2      dspr2_
92*1858f998SYi Kong #define F77_chemv      chemv_
93*1858f998SYi Kong #define F77_chbmv      chbmv_
94*1858f998SYi Kong #define F77_chpmv      chpmv_
95*1858f998SYi Kong #define F77_cgeru      cgeru_
96*1858f998SYi Kong #define F77_cgerc      cgerc_
97*1858f998SYi Kong #define F77_cher       cher_
98*1858f998SYi Kong #define F77_chpr       chpr_
99*1858f998SYi Kong #define F77_cher2      cher2_
100*1858f998SYi Kong #define F77_chpr2      chpr2_
101*1858f998SYi Kong #define F77_zhemv      zhemv_
102*1858f998SYi Kong #define F77_zhbmv      zhbmv_
103*1858f998SYi Kong #define F77_zhpmv      zhpmv_
104*1858f998SYi Kong #define F77_zgeru      zgeru_
105*1858f998SYi Kong #define F77_zgerc      zgerc_
106*1858f998SYi Kong #define F77_zher       zher_
107*1858f998SYi Kong #define F77_zhpr       zhpr_
108*1858f998SYi Kong #define F77_zher2      zher2_
109*1858f998SYi Kong #define F77_zhpr2      zhpr2_
110*1858f998SYi Kong #define F77_sgemv      sgemv_
111*1858f998SYi Kong #define F77_sgbmv      sgbmv_
112*1858f998SYi Kong #define F77_strmv      strmv_
113*1858f998SYi Kong #define F77_stbmv      stbmv_
114*1858f998SYi Kong #define F77_stpmv      stpmv_
115*1858f998SYi Kong #define F77_strsv      strsv_
116*1858f998SYi Kong #define F77_stbsv      stbsv_
117*1858f998SYi Kong #define F77_stpsv      stpsv_
118*1858f998SYi Kong #define F77_dgemv      dgemv_
119*1858f998SYi Kong #define F77_dgbmv      dgbmv_
120*1858f998SYi Kong #define F77_dtrmv      dtrmv_
121*1858f998SYi Kong #define F77_dtbmv      dtbmv_
122*1858f998SYi Kong #define F77_dtpmv      dtpmv_
123*1858f998SYi Kong #define F77_dtrsv      dtrsv_
124*1858f998SYi Kong #define F77_dtbsv      dtbsv_
125*1858f998SYi Kong #define F77_dtpsv      dtpsv_
126*1858f998SYi Kong #define F77_cgemv      cgemv_
127*1858f998SYi Kong #define F77_cgbmv      cgbmv_
128*1858f998SYi Kong #define F77_ctrmv      ctrmv_
129*1858f998SYi Kong #define F77_ctbmv      ctbmv_
130*1858f998SYi Kong #define F77_ctpmv      ctpmv_
131*1858f998SYi Kong #define F77_ctrsv      ctrsv_
132*1858f998SYi Kong #define F77_ctbsv      ctbsv_
133*1858f998SYi Kong #define F77_ctpsv      ctpsv_
134*1858f998SYi Kong #define F77_zgemv      zgemv_
135*1858f998SYi Kong #define F77_zgbmv      zgbmv_
136*1858f998SYi Kong #define F77_ztrmv      ztrmv_
137*1858f998SYi Kong #define F77_ztbmv      ztbmv_
138*1858f998SYi Kong #define F77_ztpmv      ztpmv_
139*1858f998SYi Kong #define F77_ztrsv      ztrsv_
140*1858f998SYi Kong #define F77_ztbsv      ztbsv_
141*1858f998SYi Kong #define F77_ztpsv      ztpsv_
142*1858f998SYi Kong /*
143*1858f998SYi Kong  * Level 3 BLAS
144*1858f998SYi Kong  */
145*1858f998SYi Kong #define F77_chemm      chemm_
146*1858f998SYi Kong #define F77_cherk      cherk_
147*1858f998SYi Kong #define F77_cher2k     cher2k_
148*1858f998SYi Kong #define F77_zhemm      zhemm_
149*1858f998SYi Kong #define F77_zherk      zherk_
150*1858f998SYi Kong #define F77_zher2k     zher2k_
151*1858f998SYi Kong #define F77_sgemm      sgemm_
152*1858f998SYi Kong #define F77_ssymm      ssymm_
153*1858f998SYi Kong #define F77_ssyrk      ssyrk_
154*1858f998SYi Kong #define F77_ssyr2k     ssyr2k_
155*1858f998SYi Kong #define F77_strmm      strmm_
156*1858f998SYi Kong #define F77_strsm      strsm_
157*1858f998SYi Kong #define F77_dgemm      dgemm_
158*1858f998SYi Kong #define F77_dsymm      dsymm_
159*1858f998SYi Kong #define F77_dsyrk      dsyrk_
160*1858f998SYi Kong #define F77_dsyr2k     dsyr2k_
161*1858f998SYi Kong #define F77_dtrmm      dtrmm_
162*1858f998SYi Kong #define F77_dtrsm      dtrsm_
163*1858f998SYi Kong #define F77_cgemm      cgemm_
164*1858f998SYi Kong #define F77_csymm      csymm_
165*1858f998SYi Kong #define F77_csyrk      csyrk_
166*1858f998SYi Kong #define F77_csyr2k     csyr2k_
167*1858f998SYi Kong #define F77_ctrmm      ctrmm_
168*1858f998SYi Kong #define F77_ctrsm      ctrsm_
169*1858f998SYi Kong #define F77_zgemm      zgemm_
170*1858f998SYi Kong #define F77_zsymm      zsymm_
171*1858f998SYi Kong #define F77_zsyrk      zsyrk_
172*1858f998SYi Kong #define F77_zsyr2k     zsyr2k_
173*1858f998SYi Kong #define F77_ztrmm      ztrmm_
174*1858f998SYi Kong #define F77_ztrsm      ztrsm_
175*1858f998SYi Kong 
176*1858f998SYi Kong #ifdef __cplusplus
177*1858f998SYi Kong extern "C" {
178*1858f998SYi Kong #endif
179*1858f998SYi Kong 
180*1858f998SYi Kong    void F77_xerbla(FCHAR, void *);
181*1858f998SYi Kong /*
182*1858f998SYi Kong  * Level 1 Fortran Prototypes
183*1858f998SYi Kong  */
184*1858f998SYi Kong 
185*1858f998SYi Kong /* Single Precision */
186*1858f998SYi Kong 
187*1858f998SYi Kong    void F77_srot(FINT, float *, FINT, float *, FINT, const float *, const float *);
188*1858f998SYi Kong    void F77_srotg(float *,float *,float *,float *);
189*1858f998SYi Kong    void F77_srotm( FINT, float *, FINT, float *, FINT, const float *);
190*1858f998SYi Kong    void F77_srotmg(float *,float *,float *,const float *, float *);
191*1858f998SYi Kong    void F77_sswap( FINT, float *, FINT, float *, FINT);
192*1858f998SYi Kong    void F77_scopy( FINT, const float *, FINT, float *, FINT);
193*1858f998SYi Kong    void F77_saxpy( FINT, const float *, const float *, FINT, float *, FINT);
194*1858f998SYi Kong    void F77_sscal( FINT, const float *, float *, FINT);
195*1858f998SYi Kong 
196*1858f998SYi Kong    // Google-local: Use the function version of these, so that we don't need
197*1858f998SYi Kong    // the built-in Fortran wrappers.
198*1858f998SYi Kong    float F77_sdot(FINT, const float *, FINT, const float *, FINT);
199*1858f998SYi Kong    float F77_sdsdot( FINT, const float *, const float *, FINT, const float *, FINT);
200*1858f998SYi Kong    float F77_snrm2( FINT, const float *, FINT);
201*1858f998SYi Kong    float F77_sasum( FINT, const float *, FINT);
202*1858f998SYi Kong    int F77_isamax( FINT, const float *, FINT);
203*1858f998SYi Kong 
204*1858f998SYi Kong /* Double Precision */
205*1858f998SYi Kong 
206*1858f998SYi Kong    void F77_drot(FINT, double *, FINT, double *, FINT, const double *, const double *);
207*1858f998SYi Kong    void F77_drotg(double *,double *,double *,double *);
208*1858f998SYi Kong    void F77_drotm( FINT, double *, FINT, double *, FINT, const double *);
209*1858f998SYi Kong    void F77_drotmg(double *,double *,double *,const double *, double *);
210*1858f998SYi Kong    void F77_dswap( FINT, double *, FINT, double *, FINT);
211*1858f998SYi Kong    void F77_dcopy( FINT, const double *, FINT, double *, FINT);
212*1858f998SYi Kong    void F77_daxpy( FINT, const double *, const double *, FINT, double *, FINT);
213*1858f998SYi Kong    void F77_dswap( FINT, double *, FINT, double *, FINT);
214*1858f998SYi Kong    void F77_dscal( FINT, const double *, double *, FINT);
215*1858f998SYi Kong 
216*1858f998SYi Kong    // Google-local: Use the function version of these, so that we don't need
217*1858f998SYi Kong    // the built-in Fortran wrappers.
218*1858f998SYi Kong    double F77_ddot(FINT, const double *, FINT, const double *, FINT);
219*1858f998SYi Kong    double F77_dsdot(FINT, const float *, FINT, const float *, FINT);
220*1858f998SYi Kong    double F77_dnrm2( FINT, const double *, FINT);
221*1858f998SYi Kong    double F77_dasum( FINT, const double *, FINT);
222*1858f998SYi Kong    int F77_idamax( FINT, const double * , FINT);
223*1858f998SYi Kong 
224*1858f998SYi Kong /* Single Complex Precision */
225*1858f998SYi Kong 
226*1858f998SYi Kong    void F77_cswap( FINT, void *, FINT, void *, FINT);
227*1858f998SYi Kong    void F77_ccopy( FINT, const void *, FINT, void *, FINT);
228*1858f998SYi Kong    void F77_caxpy( FINT, const void *, const void *, FINT, void *, FINT);
229*1858f998SYi Kong    void F77_cswap( FINT, void *, FINT, void *, FINT);
230*1858f998SYi Kong    void F77_cdotc_sub( FINT, const void *, FINT, const void *, FINT, void *);
231*1858f998SYi Kong    void F77_cdotu_sub( FINT, const void *, FINT, const void *, FINT, void *);
232*1858f998SYi Kong    void F77_cscal( FINT, const void *, void *, FINT);
233*1858f998SYi Kong    void F77_csscal( FINT, const float *, void *, FINT);
234*1858f998SYi Kong 
235*1858f998SYi Kong    // Google-local: Use the function version of these, so that we don't need
236*1858f998SYi Kong    // the built-in Fortran wrappers.
237*1858f998SYi Kong    int F77_icamax( FINT, const void *, FINT);
238*1858f998SYi Kong    float F77_scnrm2( FINT, const void *, FINT);
239*1858f998SYi Kong    float F77_scasum( FINT, const void *, FINT);
240*1858f998SYi Kong 
241*1858f998SYi Kong /* Double Complex Precision */
242*1858f998SYi Kong 
243*1858f998SYi Kong    void F77_zswap( FINT, void *, FINT, void *, FINT);
244*1858f998SYi Kong    void F77_zcopy( FINT, const void *, FINT, void *, FINT);
245*1858f998SYi Kong    void F77_zaxpy( FINT, const void *, const void *, FINT, void *, FINT);
246*1858f998SYi Kong    void F77_zswap( FINT, void *, FINT, void *, FINT);
247*1858f998SYi Kong    void F77_zdotc_sub( FINT, const void *, FINT, const void *, FINT, void *);
248*1858f998SYi Kong    void F77_zdotu_sub( FINT, const void *, FINT, const void *, FINT, void *);
249*1858f998SYi Kong    void F77_zdscal( FINT, const double *, void *, FINT);
250*1858f998SYi Kong    void F77_zscal( FINT, const void *, void *, FINT);
251*1858f998SYi Kong 
252*1858f998SYi Kong    // Google-local: Use the function version of these, so that we don't need
253*1858f998SYi Kong    // the built-in Fortran wrappers.
254*1858f998SYi Kong    int F77_izamax( FINT, const void *, FINT);
255*1858f998SYi Kong    double F77_dznrm2( FINT, const void *, FINT);
256*1858f998SYi Kong    double F77_dzasum( FINT, const void *, FINT);
257*1858f998SYi Kong 
258*1858f998SYi Kong /*
259*1858f998SYi Kong  * Level 2 Fortran Prototypes
260*1858f998SYi Kong  */
261*1858f998SYi Kong 
262*1858f998SYi Kong /* Single Precision */
263*1858f998SYi Kong 
264*1858f998SYi Kong    void F77_sgemv(FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
265*1858f998SYi Kong    void F77_sgbmv(FCHAR, FINT, FINT, FINT, FINT, const float *,  const float *, FINT, const float *, FINT, const float *, float *, FINT);
266*1858f998SYi Kong    void F77_ssymv(FCHAR, FINT, const float *, const float *, FINT, const float *,  FINT, const float *, float *, FINT);
267*1858f998SYi Kong    void F77_ssbmv(FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
268*1858f998SYi Kong    void F77_sspmv(FCHAR, FINT, const float *, const float *, const float *, FINT, const float *, float *, FINT);
269*1858f998SYi Kong    void F77_strmv( FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT);
270*1858f998SYi Kong    void F77_stbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT);
271*1858f998SYi Kong    void F77_strsv( FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT);
272*1858f998SYi Kong    void F77_stbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT);
273*1858f998SYi Kong    void F77_stpmv( FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT);
274*1858f998SYi Kong    void F77_stpsv( FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT);
275*1858f998SYi Kong    void F77_sger( FINT, FINT, const float *, const float *, FINT, const float *, FINT, float *, FINT);
276*1858f998SYi Kong    void F77_ssyr(FCHAR, FINT, const float *, const float *, FINT, float *, FINT);
277*1858f998SYi Kong    void F77_sspr(FCHAR, FINT, const float *, const float *, FINT, float *);
278*1858f998SYi Kong    void F77_sspr2(FCHAR, FINT, const float *, const float *, FINT, const float *, FINT,  float *);
279*1858f998SYi Kong    void F77_ssyr2(FCHAR, FINT, const float *, const float *, FINT, const float *, FINT,  float *, FINT);
280*1858f998SYi Kong 
281*1858f998SYi Kong /* Double Precision */
282*1858f998SYi Kong 
283*1858f998SYi Kong    void F77_dgemv(FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
284*1858f998SYi Kong    void F77_dgbmv(FCHAR, FINT, FINT, FINT, FINT, const double *,  const double *, FINT, const double *, FINT, const double *, double *, FINT);
285*1858f998SYi Kong    void F77_dsymv(FCHAR, FINT, const double *, const double *, FINT, const double *,  FINT, const double *, double *, FINT);
286*1858f998SYi Kong    void F77_dsbmv(FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
287*1858f998SYi Kong    void F77_dspmv(FCHAR, FINT, const double *, const double *, const double *, FINT, const double *, double *, FINT);
288*1858f998SYi Kong    void F77_dtrmv( FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT);
289*1858f998SYi Kong    void F77_dtbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT);
290*1858f998SYi Kong    void F77_dtrsv( FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT);
291*1858f998SYi Kong    void F77_dtbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT);
292*1858f998SYi Kong    void F77_dtpmv( FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT);
293*1858f998SYi Kong    void F77_dtpsv( FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT);
294*1858f998SYi Kong    void F77_dger( FINT, FINT, const double *, const double *, FINT, const double *, FINT, double *, FINT);
295*1858f998SYi Kong    void F77_dsyr(FCHAR, FINT, const double *, const double *, FINT, double *, FINT);
296*1858f998SYi Kong    void F77_dspr(FCHAR, FINT, const double *, const double *, FINT, double *);
297*1858f998SYi Kong    void F77_dspr2(FCHAR, FINT, const double *, const double *, FINT, const double *, FINT,  double *);
298*1858f998SYi Kong    void F77_dsyr2(FCHAR, FINT, const double *, const double *, FINT, const double *, FINT,  double *, FINT);
299*1858f998SYi Kong 
300*1858f998SYi Kong /* Single Complex Precision */
301*1858f998SYi Kong 
302*1858f998SYi Kong    void F77_cgemv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
303*1858f998SYi Kong    void F77_cgbmv(FCHAR, FINT, FINT, FINT, FINT, const void *,  const void *, FINT, const void *, FINT, const void *, void *, FINT);
304*1858f998SYi Kong    void F77_chemv(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
305*1858f998SYi Kong    void F77_chbmv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
306*1858f998SYi Kong    void F77_chpmv(FCHAR, FINT, const void *, const void *, const void *, FINT, const void *, void *, FINT);
307*1858f998SYi Kong    void F77_ctrmv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT);
308*1858f998SYi Kong    void F77_ctbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT);
309*1858f998SYi Kong    void F77_ctpmv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT);
310*1858f998SYi Kong    void F77_ctrsv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT);
311*1858f998SYi Kong    void F77_ctbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT);
312*1858f998SYi Kong    void F77_ctpsv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *,FINT);
313*1858f998SYi Kong    void F77_cgerc( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT);
314*1858f998SYi Kong    void F77_cgeru( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *,  FINT);
315*1858f998SYi Kong    void F77_cher(FCHAR, FINT, const float *, const void *, FINT, void *, FINT);
316*1858f998SYi Kong    void F77_cher2(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT);
317*1858f998SYi Kong    void F77_chpr(FCHAR, FINT, const float *, const void *, FINT, void *);
318*1858f998SYi Kong    void F77_chpr2(FCHAR, FINT, const float *, const void *, FINT, const void *, FINT, void *);
319*1858f998SYi Kong 
320*1858f998SYi Kong /* Double Complex Precision */
321*1858f998SYi Kong 
322*1858f998SYi Kong    void F77_zgemv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
323*1858f998SYi Kong    void F77_zgbmv(FCHAR, FINT, FINT, FINT, FINT, const void *,  const void *, FINT, const void *, FINT, const void *, void *, FINT);
324*1858f998SYi Kong    void F77_zhemv(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
325*1858f998SYi Kong    void F77_zhbmv(FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT);
326*1858f998SYi Kong    void F77_zhpmv(FCHAR, FINT, const void *, const void *, const void *, FINT, const void *, void *, FINT);
327*1858f998SYi Kong    void F77_ztrmv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT);
328*1858f998SYi Kong    void F77_ztbmv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT);
329*1858f998SYi Kong    void F77_ztpmv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT);
330*1858f998SYi Kong    void F77_ztrsv( FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT);
331*1858f998SYi Kong    void F77_ztbsv( FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT);
332*1858f998SYi Kong    void F77_ztpsv( FCHAR, FCHAR, FCHAR, FINT, const void *, void *,FINT);
333*1858f998SYi Kong    void F77_zgerc( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT);
334*1858f998SYi Kong    void F77_zgeru( FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *,  FINT);
335*1858f998SYi Kong    void F77_zher(FCHAR, FINT, const double *, const void *, FINT, void *, FINT);
336*1858f998SYi Kong    void F77_zher2(FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT);
337*1858f998SYi Kong    void F77_zhpr(FCHAR, FINT, const double *, const void *, FINT, void *);
338*1858f998SYi Kong    void F77_zhpr2(FCHAR, FINT, const double *, const void *, FINT, const void *, FINT, void *);
339*1858f998SYi Kong 
340*1858f998SYi Kong /*
341*1858f998SYi Kong  * Level 3 Fortran Prototypes
342*1858f998SYi Kong  */
343*1858f998SYi Kong 
344*1858f998SYi Kong /* Single Precision */
345*1858f998SYi Kong 
346*1858f998SYi Kong    void F77_sgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
347*1858f998SYi Kong    void F77_ssymm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
348*1858f998SYi Kong    void F77_ssyrk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT);
349*1858f998SYi Kong    void F77_ssyr2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
350*1858f998SYi Kong    void F77_strmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT);
351*1858f998SYi Kong    void F77_strsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT);
352*1858f998SYi Kong 
353*1858f998SYi Kong /* Double Precision */
354*1858f998SYi Kong 
355*1858f998SYi Kong    void F77_dgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
356*1858f998SYi Kong    void F77_dsymm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
357*1858f998SYi Kong    void F77_dsyrk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT);
358*1858f998SYi Kong    void F77_dsyr2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
359*1858f998SYi Kong    void F77_dtrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
360*1858f998SYi Kong    void F77_dtrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
361*1858f998SYi Kong 
362*1858f998SYi Kong /* Single Complex Precision */
363*1858f998SYi Kong 
364*1858f998SYi Kong    void F77_cgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
365*1858f998SYi Kong    void F77_csymm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
366*1858f998SYi Kong    void F77_chemm(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
367*1858f998SYi Kong    void F77_csyrk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT);
368*1858f998SYi Kong    void F77_cherk(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, float *, FINT);
369*1858f998SYi Kong    void F77_csyr2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
370*1858f998SYi Kong    void F77_cher2k(FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT);
371*1858f998SYi Kong    void F77_ctrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT);
372*1858f998SYi Kong    void F77_ctrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, const float *, FINT, float *, FINT);
373*1858f998SYi Kong 
374*1858f998SYi Kong /* Double Complex Precision */
375*1858f998SYi Kong 
376*1858f998SYi Kong    void F77_zgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
377*1858f998SYi Kong    void F77_zsymm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
378*1858f998SYi Kong    void F77_zhemm(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
379*1858f998SYi Kong    void F77_zsyrk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT);
380*1858f998SYi Kong    void F77_zherk(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, double *, FINT);
381*1858f998SYi Kong    void F77_zsyr2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
382*1858f998SYi Kong    void F77_zher2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
383*1858f998SYi Kong    void F77_ztrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
384*1858f998SYi Kong    void F77_ztrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
385*1858f998SYi Kong 
386*1858f998SYi Kong #ifdef __cplusplus
387*1858f998SYi Kong }
388*1858f998SYi Kong #endif
389*1858f998SYi Kong 
390*1858f998SYi Kong #endif /*  CBLAS_F77_H */
391