GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
lo-blas-proto.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2016-2018 John W. Eaton
4 
5 This file is part of Octave.
6 
7 Octave is free software: you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if ! defined (octave_lo_blas_proto_h)
24 #define octave_lo_blas_proto_h 1
25 
26 #include "octave-config.h"
27 
28 #include "f77-fcn.h"
29 
30 extern "C"
31 {
32  // DOT (liboctave/external/blas-xtra)
33 
34  F77_RET_T
35  F77_FUNC (xddot, XDDOT) (const F77_INT&, const F77_DBLE*,
36  const F77_INT&, const F77_DBLE*,
37  const F77_INT&, F77_DBLE&);
38 
39  F77_RET_T
40  F77_FUNC (xsdot, XSDOT) (const F77_INT&, const F77_REAL*,
41  const F77_INT&, const F77_REAL*,
42  const F77_INT&, F77_REAL&);
43 
44  // DOT3
45 
46  F77_RET_T
47  F77_FUNC (ddot3, DDOT3) (const F77_INT&, const F77_INT&,
48  const F77_INT&, const F77_DBLE*,
49  const F77_DBLE*, F77_DBLE*);
50 
51  F77_RET_T
52  F77_FUNC (sdot3, SDOT3) (const F77_INT&, const F77_INT&,
53  const F77_INT&, const F77_REAL*,
54  const F77_REAL*, F77_REAL*);
55 
56  // DOTC (liboctave/external/blas-xtra)
57 
58  F77_RET_T
59  F77_FUNC (xcdotc, XCDOTC) (const F77_INT&, const F77_CMPLX*,
60  const F77_INT&, const F77_CMPLX*,
61  const F77_INT&, F77_CMPLX*);
62 
63  F77_RET_T
64  F77_FUNC (xzdotc, XZDOTC) (const F77_INT&, const F77_DBLE_CMPLX*,
65  const F77_INT&, const F77_DBLE_CMPLX*,
66  const F77_INT&, F77_DBLE_CMPLX*);
67 
68  // DOTC3
69 
70  F77_RET_T
71  F77_FUNC (cdotc3, CDOTC3) (const F77_INT&, const F77_INT&,
72  const F77_INT&, const F77_CMPLX*,
73  const F77_CMPLX*, F77_CMPLX*);
74 
75  F77_RET_T
76  F77_FUNC (zdotc3, ZDOTC3) (const F77_INT&, const F77_INT&,
77  const F77_INT&, const F77_DBLE_CMPLX*,
79 
80  // DOTU (liboctave/external/blas-xtra)
81 
82  F77_RET_T
83  F77_FUNC (xcdotu, XCDOTU) (const F77_INT&, const F77_CMPLX*,
84  const F77_INT&, const F77_CMPLX*,
85  const F77_INT&, F77_CMPLX*);
86 
87  F77_RET_T
88  F77_FUNC (xzdotu, XZDOTU) (const F77_INT&, const F77_DBLE_CMPLX*,
89  const F77_INT&, const F77_DBLE_CMPLX*,
90  const F77_INT&, F77_DBLE_CMPLX*);
91 
92  // GEMM
93 
94  F77_RET_T
95  F77_FUNC (cgemm, CGEMM) (F77_CONST_CHAR_ARG_DECL,
97  const F77_INT&, const F77_INT&,
98  const F77_INT&, const F77_CMPLX&,
99  const F77_CMPLX*, const F77_INT&,
100  const F77_CMPLX*, const F77_INT&,
101  const F77_CMPLX&, F77_CMPLX*,
102  const F77_INT&
105 
106  F77_RET_T
107  F77_FUNC (dgemm, DGEMM) (F77_CONST_CHAR_ARG_DECL,
109  const F77_INT&, const F77_INT&,
110  const F77_INT&, const F77_DBLE&,
111  const F77_DBLE*, const F77_INT&,
112  const F77_DBLE*, const F77_INT&,
113  const F77_DBLE&, F77_DBLE*,
114  const F77_INT&
117 
118  F77_RET_T
119  F77_FUNC (sgemm, SGEMM) (F77_CONST_CHAR_ARG_DECL,
121  const F77_INT&, const F77_INT&,
122  const F77_INT&, const F77_REAL&,
123  const F77_REAL*, const F77_INT&,
124  const F77_REAL*, const F77_INT&,
125  const F77_REAL&, F77_REAL*,
126  const F77_INT&
129 
130  F77_RET_T
131  F77_FUNC (zgemm, ZGEMM) (F77_CONST_CHAR_ARG_DECL,
133  const F77_INT&, const F77_INT&,
134  const F77_INT&, const F77_DBLE_CMPLX&,
135  const F77_DBLE_CMPLX*, const F77_INT&,
136  const F77_DBLE_CMPLX*, const F77_INT&,
138  const F77_INT&
141 
142  // GEMV
143 
144  F77_RET_T
145  F77_FUNC (cgemv, CGEMV) (F77_CONST_CHAR_ARG_DECL,
146  const F77_INT&, const F77_INT&,
147  const F77_CMPLX&, const F77_CMPLX*,
148  const F77_INT&, const F77_CMPLX*,
149  const F77_INT&, const F77_CMPLX&,
150  F77_CMPLX*, const F77_INT&
152 
153  F77_RET_T
154  F77_FUNC (dgemv, DGEMV) (F77_CONST_CHAR_ARG_DECL,
155  const F77_INT&, const F77_INT&,
156  const F77_DBLE&, const F77_DBLE*,
157  const F77_INT&, const F77_DBLE*,
158  const F77_INT&, const F77_DBLE&,
159  F77_DBLE*, const F77_INT&
161 
162  F77_RET_T
163  F77_FUNC (sgemv, SGEMV) (F77_CONST_CHAR_ARG_DECL,
164  const F77_INT&, const F77_INT&,
165  const F77_REAL&, const F77_REAL*,
166  const F77_INT&, const F77_REAL*,
167  const F77_INT&, const F77_REAL&,
168  F77_REAL*, const F77_INT&
170 
171  F77_RET_T
172  F77_FUNC (zgemv, ZGEMV) (F77_CONST_CHAR_ARG_DECL,
173  const F77_INT&, const F77_INT&,
174  const F77_DBLE_CMPLX&, const F77_DBLE_CMPLX*,
175  const F77_INT&, const F77_DBLE_CMPLX*,
176  const F77_INT&, const F77_DBLE_CMPLX&,
177  F77_DBLE_CMPLX*, const F77_INT&
179 
180  // MATM3
181 
182  F77_RET_T
183  F77_FUNC (cmatm3, CMATM3) (const F77_INT&, const F77_INT&,
184  const F77_INT&, const F77_INT&,
185  const F77_CMPLX*, const F77_CMPLX*,
186  F77_CMPLX*);
187  F77_RET_T
188  F77_FUNC (dmatm3, DMATM3) (const F77_INT&, const F77_INT&,
189  const F77_INT&, const F77_INT&,
190  const F77_DBLE*, const F77_DBLE*, F77_DBLE*);
191 
192  F77_RET_T
193  F77_FUNC (smatm3, SMATM3) (const F77_INT&, const F77_INT&,
194  const F77_INT&, const F77_INT&,
195  const F77_REAL*, const F77_REAL*, F77_REAL*);
196 
197  F77_RET_T
198  F77_FUNC (zmatm3, ZMATM3) (const F77_INT&, const F77_INT&,
199  const F77_INT&, const F77_INT&,
200  const F77_DBLE_CMPLX*, const F77_DBLE_CMPLX*,
201  F77_DBLE_CMPLX*);
202 
203  // XERBLA
204 
205  F77_RET_T
206  F77_FUNC (xerbla, XERBLA) (F77_CONST_CHAR_ARG_DECL, const F77_INT&
208 }
209 
210 #endif
double _Complex F77_DBLE_CMPLX
Definition: f77-fcn.h:303
subroutine xddot(n, dx, incx, dy, incy, retval)
Definition: xddot.f:2
double F77_DBLE
Definition: f77-fcn.h:301
subroutine cmatm3(m, n, k, np, a, b, c)
Definition: cmatm3.f:22
subroutine cdotc3(m, n, k, a, b, c)
Definition: cdotc3.f:22
float F77_REAL
Definition: f77-fcn.h:302
subroutine smatm3(m, n, k, np, a, b, c)
Definition: smatm3.f:22
F77_RET_T const F77_DBLE const F77_INT const F77_DBLE const F77_INT F77_DBLE &F77_RET_T const F77_REAL const F77_INT const F77_REAL const F77_INT F77_REAL &F77_RET_T const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_DBLE *F77_RET_T const F77_INT const F77_INT const F77_REAL const F77_REAL F77_REAL *F77_RET_T const F77_CMPLX const F77_INT const F77_CMPLX const F77_INT F77_CMPLX *F77_RET_T const F77_DBLE_CMPLX const F77_INT const F77_DBLE_CMPLX const F77_INT F77_DBLE_CMPLX *F77_RET_T const F77_INT const F77_INT const F77_CMPLX const F77_CMPLX F77_CMPLX *F77_RET_T const F77_INT const F77_INT const F77_DBLE_CMPLX const F77_DBLE_CMPLX F77_DBLE_CMPLX *F77_RET_T const F77_CMPLX const F77_INT const F77_CMPLX const F77_INT F77_CMPLX *F77_RET_T const F77_DBLE_CMPLX const F77_INT const F77_DBLE_CMPLX const F77_INT F77_DBLE_CMPLX *F77_RET_T const F77_INT const F77_INT const F77_INT const F77_CMPLX const F77_CMPLX const F77_INT const F77_CMPLX const F77_INT const F77_CMPLX F77_CMPLX const F77_INT &F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL
Definition: lo-blas-proto.h:96
F77_RET_T(F77_CONST_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, const F77_INT &, const F77_INT &, const F77_INT &, F77_INT &, F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, F77_DBLE *, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, const F77_INT &, F77_DBLE *, F77_INT *, F77_INT &F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL)
F77_RET_T F77_FUNC(xddot, XDDOT)(const F77_INT &
subroutine xzdotu(n, zx, incx, zy, incy, retval)
Definition: xzdotu.f:2
float _Complex F77_CMPLX
Definition: f77-fcn.h:304
subroutine dmatm3(m, n, k, np, a, b, c)
Definition: dmatm3.f:22
subroutine xsdot(n, dx, incx, dy, incy, retval)
Definition: xsdot.f:2
subroutine zmatm3(m, n, k, np, a, b, c)
Definition: zmatm3.f:22
subroutine sdot3(m, n, k, a, b, c)
Definition: sdot3.f:22
F77_RET_T const F77_DBLE const F77_INT const F77_DBLE const F77_INT F77_DBLE &F77_RET_T const F77_REAL const F77_INT const F77_REAL const F77_INT F77_REAL &F77_RET_T const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_DBLE *F77_RET_T const F77_INT const F77_INT const F77_REAL const F77_REAL F77_REAL *F77_RET_T const F77_CMPLX const F77_INT const F77_CMPLX const F77_INT F77_CMPLX *F77_RET_T const F77_DBLE_CMPLX const F77_INT const F77_DBLE_CMPLX const F77_INT F77_DBLE_CMPLX *F77_RET_T const F77_INT const F77_INT const F77_CMPLX const F77_CMPLX F77_CMPLX *F77_RET_T const F77_INT const F77_INT const F77_DBLE_CMPLX const F77_DBLE_CMPLX F77_DBLE_CMPLX *F77_RET_T const F77_CMPLX const F77_INT const F77_CMPLX const F77_INT F77_CMPLX *F77_RET_T const F77_DBLE_CMPLX const F77_INT const F77_DBLE_CMPLX const F77_INT F77_DBLE_CMPLX *F77_RET_T F77_CONST_CHAR_ARG_DECL
Definition: lo-blas-proto.h:96
subroutine xzdotc(n, zx, incx, zy, incy, retval)
Definition: xzdotc.f:2
subroutine xcdotc(n, zx, incx, zy, incy, retval)
Definition: xcdotc.f:2
octave_f77_int_type F77_INT
Definition: f77-fcn.h:305
subroutine ddot3(m, n, k, a, b, c)
Definition: ddot3.f:22
subroutine xcdotu(n, zx, incx, zy, incy, retval)
Definition: xcdotu.f:2
subroutine zdotc3(m, n, k, a, b, c)
Definition: zdotc3.f:22