1 //////////////////////////////////////////////////////////////////////// 2 // 3 // Copyright (C) 2016-2021 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 98 F77_FUNC (cgemm, CGEMM) (F77_CONST_CHAR_ARG_DECL, 99 F77_CONST_CHAR_ARG_DECL, 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& 106 F77_CHAR_ARG_LEN_DECL 107 F77_CHAR_ARG_LEN_DECL); 108 109 F77_RET_T 110 F77_FUNC (dgemm, DGEMM) (F77_CONST_CHAR_ARG_DECL, 111 F77_CONST_CHAR_ARG_DECL, 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& 118 F77_CHAR_ARG_LEN_DECL 119 F77_CHAR_ARG_LEN_DECL); 120 121 F77_RET_T 122 F77_FUNC (sgemm, SGEMM) (F77_CONST_CHAR_ARG_DECL, 123 F77_CONST_CHAR_ARG_DECL, 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& 130 F77_CHAR_ARG_LEN_DECL 131 F77_CHAR_ARG_LEN_DECL); 132 133 F77_RET_T 134 F77_FUNC (zgemm, ZGEMM) (F77_CONST_CHAR_ARG_DECL, 135 F77_CONST_CHAR_ARG_DECL, 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& 142 F77_CHAR_ARG_LEN_DECL 143 F77_CHAR_ARG_LEN_DECL); 144 145 // GEMV 146 147 F77_RET_T 148 F77_FUNC (cgemv, CGEMV) (F77_CONST_CHAR_ARG_DECL, 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& 154 F77_CHAR_ARG_LEN_DECL); 155 156 F77_RET_T 157 F77_FUNC (dgemv, DGEMV) (F77_CONST_CHAR_ARG_DECL, 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& 163 F77_CHAR_ARG_LEN_DECL); 164 165 F77_RET_T 166 F77_FUNC (sgemv, SGEMV) (F77_CONST_CHAR_ARG_DECL, 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& 172 F77_CHAR_ARG_LEN_DECL); 173 174 F77_RET_T 175 F77_FUNC (zgemv, ZGEMV) (F77_CONST_CHAR_ARG_DECL, 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& 181 F77_CHAR_ARG_LEN_DECL); 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 F77_RET_T 209 F77_FUNC (xerbla, XERBLA) (F77_CONST_CHAR_ARG_DECL, const F77_INT& 210 F77_CHAR_ARG_LEN_DECL); 211 } 212 213 #endif 214