GNU Octave  9.1.0
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-2024 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
7 //
8 // This file is part of Octave.
9 //
10 // Octave is free software: you can redistribute it and/or modify it
11 // under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING. If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if ! defined (octave_lo_blas_proto_h)
27 #define octave_lo_blas_proto_h 1
28 
29 #include "octave-config.h"
30 
31 #include "f77-fcn.h"
32 
33 extern "C"
34 {
35  // DOT (liboctave/external/blas-xtra)
36 
37  F77_RET_T
38  F77_FUNC (xddot, XDDOT) (const F77_INT&, const F77_DBLE *,
39  const F77_INT&, const F77_DBLE *,
40  const F77_INT&, F77_DBLE&);
41 
42  F77_RET_T
43  F77_FUNC (xsdot, XSDOT) (const F77_INT&, const F77_REAL *,
44  const F77_INT&, const F77_REAL *,
45  const F77_INT&, F77_REAL&);
46 
47  // DOT3
48 
49  F77_RET_T
50  F77_FUNC (ddot3, DDOT3) (const F77_INT&, const F77_INT&,
51  const F77_INT&, const F77_DBLE *,
52  const F77_DBLE *, F77_DBLE *);
53 
54  F77_RET_T
55  F77_FUNC (sdot3, SDOT3) (const F77_INT&, const F77_INT&,
56  const F77_INT&, const F77_REAL *,
57  const F77_REAL *, F77_REAL *);
58 
59  // DOTC (liboctave/external/blas-xtra)
60 
61  F77_RET_T
62  F77_FUNC (xcdotc, XCDOTC) (const F77_INT&, const F77_CMPLX *,
63  const F77_INT&, const F77_CMPLX *,
64  const F77_INT&, F77_CMPLX *);
65 
66  F77_RET_T
67  F77_FUNC (xzdotc, XZDOTC) (const F77_INT&, const F77_DBLE_CMPLX *,
68  const F77_INT&, const F77_DBLE_CMPLX *,
69  const F77_INT&, F77_DBLE_CMPLX *);
70 
71  // DOTC3
72 
73  F77_RET_T
74  F77_FUNC (cdotc3, CDOTC3) (const F77_INT&, const F77_INT&,
75  const F77_INT&, const F77_CMPLX *,
76  const F77_CMPLX *, F77_CMPLX *);
77 
78  F77_RET_T
79  F77_FUNC (zdotc3, ZDOTC3) (const F77_INT&, const F77_INT&,
80  const F77_INT&, const F77_DBLE_CMPLX *,
81  const F77_DBLE_CMPLX *, F77_DBLE_CMPLX *);
82 
83  // DOTU (liboctave/external/blas-xtra)
84 
85  F77_RET_T
86  F77_FUNC (xcdotu, XCDOTU) (const F77_INT&, const F77_CMPLX *,
87  const F77_INT&, const F77_CMPLX *,
88  const F77_INT&, F77_CMPLX *);
89 
90  F77_RET_T
91  F77_FUNC (xzdotu, XZDOTU) (const F77_INT&, const F77_DBLE_CMPLX *,
92  const F77_INT&, const F77_DBLE_CMPLX *,
93  const F77_INT&, F77_DBLE_CMPLX *);
94 
95  // GEMM
96 
97  F77_RET_T
100  const F77_INT&, const F77_INT&,
101  const F77_INT&, const F77_CMPLX&,
102  const F77_CMPLX *, const F77_INT&,
103  const F77_CMPLX *, const F77_INT&,
104  const F77_CMPLX&, F77_CMPLX *,
105  const F77_INT&
108 
109  F77_RET_T
112  const F77_INT&, const F77_INT&,
113  const F77_INT&, const F77_DBLE&,
114  const F77_DBLE *, const F77_INT&,
115  const F77_DBLE *, const F77_INT&,
116  const F77_DBLE&, F77_DBLE *,
117  const F77_INT&
120 
121  F77_RET_T
124  const F77_INT&, const F77_INT&,
125  const F77_INT&, const F77_REAL&,
126  const F77_REAL *, const F77_INT&,
127  const F77_REAL *, const F77_INT&,
128  const F77_REAL&, F77_REAL *,
129  const F77_INT&
132 
133  F77_RET_T
136  const F77_INT&, const F77_INT&,
137  const F77_INT&, const F77_DBLE_CMPLX&,
138  const F77_DBLE_CMPLX *, const F77_INT&,
139  const F77_DBLE_CMPLX *, const F77_INT&,
140  const F77_DBLE_CMPLX&, F77_DBLE_CMPLX *,
141  const F77_INT&
144 
145  // GEMV
146 
147  F77_RET_T
149  const F77_INT&, const F77_INT&,
150  const F77_CMPLX&, const F77_CMPLX *,
151  const F77_INT&, const F77_CMPLX *,
152  const F77_INT&, const F77_CMPLX&,
153  F77_CMPLX *, const F77_INT&
155 
156  F77_RET_T
158  const F77_INT&, const F77_INT&,
159  const F77_DBLE&, const F77_DBLE *,
160  const F77_INT&, const F77_DBLE *,
161  const F77_INT&, const F77_DBLE&,
162  F77_DBLE *, const F77_INT&
164 
165  F77_RET_T
167  const F77_INT&, const F77_INT&,
168  const F77_REAL&, const F77_REAL *,
169  const F77_INT&, const F77_REAL *,
170  const F77_INT&, const F77_REAL&,
171  F77_REAL *, const F77_INT&
173 
174  F77_RET_T
176  const F77_INT&, const F77_INT&,
177  const F77_DBLE_CMPLX&, const F77_DBLE_CMPLX *,
178  const F77_INT&, const F77_DBLE_CMPLX *,
179  const F77_INT&, const F77_DBLE_CMPLX&,
180  F77_DBLE_CMPLX *, const F77_INT&
182 
183  // MATM3
184 
185  F77_RET_T
186  F77_FUNC (cmatm3, CMATM3) (const F77_INT&, const F77_INT&,
187  const F77_INT&, const F77_INT&,
188  const F77_CMPLX *, const F77_CMPLX *,
189  F77_CMPLX *);
190  F77_RET_T
191  F77_FUNC (dmatm3, DMATM3) (const F77_INT&, const F77_INT&,
192  const F77_INT&, const F77_INT&,
193  const F77_DBLE *, const F77_DBLE *, F77_DBLE *);
194 
195  F77_RET_T
196  F77_FUNC (smatm3, SMATM3) (const F77_INT&, const F77_INT&,
197  const F77_INT&, const F77_INT&,
198  const F77_REAL *, const F77_REAL *, F77_REAL *);
199 
200  F77_RET_T
201  F77_FUNC (zmatm3, ZMATM3) (const F77_INT&, const F77_INT&,
202  const F77_INT&, const F77_INT&,
203  const F77_DBLE_CMPLX *, const F77_DBLE_CMPLX *,
204  F77_DBLE_CMPLX *);
205 
206  // XERBLA
207 
208  OCTAVE_API
209  F77_RET_T
210  F77_FUNC (xerbla, XERBLA) (F77_CONST_CHAR_ARG_DECL, const F77_INT&
212 }
213 
214 #endif
subroutine cdotc3(m, n, k, a, b, c)
Definition: cdotc3.f:23
subroutine cmatm3(m, n, k, np, a, b, c)
Definition: cmatm3.f:21
subroutine ddot3(m, n, k, a, b, c)
Definition: ddot3.f:23
subroutine dmatm3(m, n, k, np, a, b, c)
Definition: dmatm3.f:23
float F77_REAL
Definition: f77-fcn.h:303
double F77_DBLE
Definition: f77-fcn.h:302
double _Complex F77_DBLE_CMPLX
Definition: f77-fcn.h:304
octave_f77_int_type F77_INT
Definition: f77-fcn.h:306
float _Complex F77_CMPLX
Definition: f77-fcn.h:305
F77_RET_T F77_FUNC(xddot, XDDOT)(const F77_INT &
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
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:99
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)
#define OCTAVE_API
Definition: main.cc:55
subroutine sdot3(m, n, k, a, b, c)
Definition: sdot3.f:23
subroutine smatm3(m, n, k, np, a, b, c)
Definition: smatm3.f:23
subroutine xcdotc(n, zx, incx, zy, incy, retval)
Definition: xcdotc.f:2
subroutine xcdotu(n, zx, incx, zy, incy, retval)
Definition: xcdotu.f:2
subroutine xddot(n, dx, incx, dy, incy, retval)
Definition: xddot.f:2
subroutine xsdot(n, dx, incx, dy, incy, retval)
Definition: xsdot.f:2
subroutine xzdotc(n, zx, incx, zy, incy, retval)
Definition: xzdotc.f:2
subroutine xzdotu(n, zx, incx, zy, incy, retval)
Definition: xzdotu.f:2
subroutine zdotc3(m, n, k, a, b, c)
Definition: zdotc3.f:23
subroutine zmatm3(m, n, k, np, a, b, c)
Definition: zmatm3.f:23