Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagesmc
Path: blob/master/build/pkgs/iml/patches/blas_headers.patch
8820 views
1
diff -ruN iml-1.0.1-sage/cblas.h src/cblas.h
2
--- iml-1.0.1-sage/cblas.h 1970-01-01 01:00:00.000000000 +0100
3
+++ src/cblas.h 2007-02-15 07:51:41.000000000 +0100
4
@@ -0,0 +1,606 @@
5
+/* blas/gsl_cblas.h
6
+ *
7
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
8
+ *
9
+ * This program is free software; you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation; either version 2 of the License, or (at
12
+ * your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful, but
15
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
+ */
23
+
24
+/* This is a copy of the CBLAS standard header.
25
+ * We carry this around so we do not have to
26
+ * break our model for flexible BLAS functionality.
27
+ */
28
+
29
+#ifndef __GSL_CBLAS_H__
30
+#define __GSL_CBLAS_H__
31
+#include <stddef.h>
32
+
33
+#undef __BEGIN_DECLS
34
+#undef __END_DECLS
35
+#ifdef __cplusplus
36
+#define __BEGIN_DECLS extern "C" {
37
+#define __END_DECLS }
38
+#else
39
+#define __BEGIN_DECLS /* empty */
40
+#define __END_DECLS /* empty */
41
+#endif
42
+
43
+__BEGIN_DECLS
44
+
45
+/*
46
+ * Enumerated and derived types
47
+ */
48
+#define CBLAS_INDEX size_t /* this may vary between platforms */
49
+
50
+enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
51
+enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
52
+enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
53
+enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
54
+enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
55
+
56
+/*
57
+ * ===========================================================================
58
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
59
+ * ===========================================================================
60
+ */
61
+float cblas_sdsdot(const int N, const float alpha, const float *X,
62
+ const int incX, const float *Y, const int incY);
63
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
64
+ const int incY);
65
+float cblas_sdot(const int N, const float *X, const int incX,
66
+ const float *Y, const int incY);
67
+double cblas_ddot(const int N, const double *X, const int incX,
68
+ const double *Y, const int incY);
69
+
70
+/*
71
+ * Functions having prefixes Z and C only
72
+ */
73
+void cblas_cdotu_sub(const int N, const void *X, const int incX,
74
+ const void *Y, const int incY, void *dotu);
75
+void cblas_cdotc_sub(const int N, const void *X, const int incX,
76
+ const void *Y, const int incY, void *dotc);
77
+
78
+void cblas_zdotu_sub(const int N, const void *X, const int incX,
79
+ const void *Y, const int incY, void *dotu);
80
+void cblas_zdotc_sub(const int N, const void *X, const int incX,
81
+ const void *Y, const int incY, void *dotc);
82
+
83
+
84
+/*
85
+ * Functions having prefixes S D SC DZ
86
+ */
87
+float cblas_snrm2(const int N, const float *X, const int incX);
88
+float cblas_sasum(const int N, const float *X, const int incX);
89
+
90
+double cblas_dnrm2(const int N, const double *X, const int incX);
91
+double cblas_dasum(const int N, const double *X, const int incX);
92
+
93
+float cblas_scnrm2(const int N, const void *X, const int incX);
94
+float cblas_scasum(const int N, const void *X, const int incX);
95
+
96
+double cblas_dznrm2(const int N, const void *X, const int incX);
97
+double cblas_dzasum(const int N, const void *X, const int incX);
98
+
99
+
100
+/*
101
+ * Functions having standard 4 prefixes (S D C Z)
102
+ */
103
+CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
104
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
105
+CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
106
+CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
107
+
108
+/*
109
+ * ===========================================================================
110
+ * Prototypes for level 1 BLAS routines
111
+ * ===========================================================================
112
+ */
113
+
114
+/*
115
+ * Routines with standard 4 prefixes (s, d, c, z)
116
+ */
117
+void cblas_sswap(const int N, float *X, const int incX,
118
+ float *Y, const int incY);
119
+void cblas_scopy(const int N, const float *X, const int incX,
120
+ float *Y, const int incY);
121
+void cblas_saxpy(const int N, const float alpha, const float *X,
122
+ const int incX, float *Y, const int incY);
123
+
124
+void cblas_dswap(const int N, double *X, const int incX,
125
+ double *Y, const int incY);
126
+void cblas_dcopy(const int N, const double *X, const int incX,
127
+ double *Y, const int incY);
128
+void cblas_daxpy(const int N, const double alpha, const double *X,
129
+ const int incX, double *Y, const int incY);
130
+
131
+void cblas_cswap(const int N, void *X, const int incX,
132
+ void *Y, const int incY);
133
+void cblas_ccopy(const int N, const void *X, const int incX,
134
+ void *Y, const int incY);
135
+void cblas_caxpy(const int N, const void *alpha, const void *X,
136
+ const int incX, void *Y, const int incY);
137
+
138
+void cblas_zswap(const int N, void *X, const int incX,
139
+ void *Y, const int incY);
140
+void cblas_zcopy(const int N, const void *X, const int incX,
141
+ void *Y, const int incY);
142
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
143
+ const int incX, void *Y, const int incY);
144
+
145
+
146
+/*
147
+ * Routines with S and D prefix only
148
+ */
149
+void cblas_srotg(float *a, float *b, float *c, float *s);
150
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
151
+void cblas_srot(const int N, float *X, const int incX,
152
+ float *Y, const int incY, const float c, const float s);
153
+void cblas_srotm(const int N, float *X, const int incX,
154
+ float *Y, const int incY, const float *P);
155
+
156
+void cblas_drotg(double *a, double *b, double *c, double *s);
157
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
158
+void cblas_drot(const int N, double *X, const int incX,
159
+ double *Y, const int incY, const double c, const double s);
160
+void cblas_drotm(const int N, double *X, const int incX,
161
+ double *Y, const int incY, const double *P);
162
+
163
+
164
+/*
165
+ * Routines with S D C Z CS and ZD prefixes
166
+ */
167
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
168
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
169
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
170
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
171
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
172
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
173
+
174
+/*
175
+ * ===========================================================================
176
+ * Prototypes for level 2 BLAS
177
+ * ===========================================================================
178
+ */
179
+
180
+/*
181
+ * Routines with standard 4 prefixes (S, D, C, Z)
182
+ */
183
+void cblas_sgemv(const enum CBLAS_ORDER order,
184
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
185
+ const float alpha, const float *A, const int lda,
186
+ const float *X, const int incX, const float beta,
187
+ float *Y, const int incY);
188
+void cblas_sgbmv(const enum CBLAS_ORDER order,
189
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
190
+ const int KL, const int KU, const float alpha,
191
+ const float *A, const int lda, const float *X,
192
+ const int incX, const float beta, float *Y, const int incY);
193
+void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
194
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
195
+ const int N, const float *A, const int lda,
196
+ float *X, const int incX);
197
+void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
198
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
199
+ const int N, const int K, const float *A, const int lda,
200
+ float *X, const int incX);
201
+void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
202
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
203
+ const int N, const float *Ap, float *X, const int incX);
204
+void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
205
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
206
+ const int N, const float *A, const int lda, float *X,
207
+ const int incX);
208
+void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
209
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
210
+ const int N, const int K, const float *A, const int lda,
211
+ float *X, const int incX);
212
+void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
213
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
214
+ const int N, const float *Ap, float *X, const int incX);
215
+
216
+void cblas_dgemv(const enum CBLAS_ORDER order,
217
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
218
+ const double alpha, const double *A, const int lda,
219
+ const double *X, const int incX, const double beta,
220
+ double *Y, const int incY);
221
+void cblas_dgbmv(const enum CBLAS_ORDER order,
222
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
223
+ const int KL, const int KU, const double alpha,
224
+ const double *A, const int lda, const double *X,
225
+ const int incX, const double beta, double *Y, const int incY);
226
+void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
227
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
228
+ const int N, const double *A, const int lda,
229
+ double *X, const int incX);
230
+void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
231
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
232
+ const int N, const int K, const double *A, const int lda,
233
+ double *X, const int incX);
234
+void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
235
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
236
+ const int N, const double *Ap, double *X, const int incX);
237
+void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
238
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
239
+ const int N, const double *A, const int lda, double *X,
240
+ const int incX);
241
+void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
242
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
243
+ const int N, const int K, const double *A, const int lda,
244
+ double *X, const int incX);
245
+void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
246
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
247
+ const int N, const double *Ap, double *X, const int incX);
248
+
249
+void cblas_cgemv(const enum CBLAS_ORDER order,
250
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
251
+ const void *alpha, const void *A, const int lda,
252
+ const void *X, const int incX, const void *beta,
253
+ void *Y, const int incY);
254
+void cblas_cgbmv(const enum CBLAS_ORDER order,
255
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
256
+ const int KL, const int KU, const void *alpha,
257
+ const void *A, const int lda, const void *X,
258
+ const int incX, const void *beta, void *Y, const int incY);
259
+void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
260
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
261
+ const int N, const void *A, const int lda,
262
+ void *X, const int incX);
263
+void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
264
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
265
+ const int N, const int K, const void *A, const int lda,
266
+ void *X, const int incX);
267
+void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
268
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
269
+ const int N, const void *Ap, void *X, const int incX);
270
+void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
271
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
272
+ const int N, const void *A, const int lda, void *X,
273
+ const int incX);
274
+void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
275
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
276
+ const int N, const int K, const void *A, const int lda,
277
+ void *X, const int incX);
278
+void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
279
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
280
+ const int N, const void *Ap, void *X, const int incX);
281
+
282
+void cblas_zgemv(const enum CBLAS_ORDER order,
283
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
284
+ const void *alpha, const void *A, const int lda,
285
+ const void *X, const int incX, const void *beta,
286
+ void *Y, const int incY);
287
+void cblas_zgbmv(const enum CBLAS_ORDER order,
288
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
289
+ const int KL, const int KU, const void *alpha,
290
+ const void *A, const int lda, const void *X,
291
+ const int incX, const void *beta, void *Y, const int incY);
292
+void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
293
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
294
+ const int N, const void *A, const int lda,
295
+ void *X, const int incX);
296
+void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
297
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
298
+ const int N, const int K, const void *A, const int lda,
299
+ void *X, const int incX);
300
+void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
301
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
302
+ const int N, const void *Ap, void *X, const int incX);
303
+void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
304
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
305
+ const int N, const void *A, const int lda, void *X,
306
+ const int incX);
307
+void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
308
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
309
+ const int N, const int K, const void *A, const int lda,
310
+ void *X, const int incX);
311
+void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
312
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
313
+ const int N, const void *Ap, void *X, const int incX);
314
+
315
+
316
+/*
317
+ * Routines with S and D prefixes only
318
+ */
319
+void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
320
+ const int N, const float alpha, const float *A,
321
+ const int lda, const float *X, const int incX,
322
+ const float beta, float *Y, const int incY);
323
+void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
324
+ const int N, const int K, const float alpha, const float *A,
325
+ const int lda, const float *X, const int incX,
326
+ const float beta, float *Y, const int incY);
327
+void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
328
+ const int N, const float alpha, const float *Ap,
329
+ const float *X, const int incX,
330
+ const float beta, float *Y, const int incY);
331
+void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
332
+ const float alpha, const float *X, const int incX,
333
+ const float *Y, const int incY, float *A, const int lda);
334
+void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
335
+ const int N, const float alpha, const float *X,
336
+ const int incX, float *A, const int lda);
337
+void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
338
+ const int N, const float alpha, const float *X,
339
+ const int incX, float *Ap);
340
+void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
341
+ const int N, const float alpha, const float *X,
342
+ const int incX, const float *Y, const int incY, float *A,
343
+ const int lda);
344
+void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
345
+ const int N, const float alpha, const float *X,
346
+ const int incX, const float *Y, const int incY, float *A);
347
+
348
+void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
349
+ const int N, const double alpha, const double *A,
350
+ const int lda, const double *X, const int incX,
351
+ const double beta, double *Y, const int incY);
352
+void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
353
+ const int N, const int K, const double alpha, const double *A,
354
+ const int lda, const double *X, const int incX,
355
+ const double beta, double *Y, const int incY);
356
+void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
357
+ const int N, const double alpha, const double *Ap,
358
+ const double *X, const int incX,
359
+ const double beta, double *Y, const int incY);
360
+void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
361
+ const double alpha, const double *X, const int incX,
362
+ const double *Y, const int incY, double *A, const int lda);
363
+void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
364
+ const int N, const double alpha, const double *X,
365
+ const int incX, double *A, const int lda);
366
+void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
367
+ const int N, const double alpha, const double *X,
368
+ const int incX, double *Ap);
369
+void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
370
+ const int N, const double alpha, const double *X,
371
+ const int incX, const double *Y, const int incY, double *A,
372
+ const int lda);
373
+void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
374
+ const int N, const double alpha, const double *X,
375
+ const int incX, const double *Y, const int incY, double *A);
376
+
377
+
378
+/*
379
+ * Routines with C and Z prefixes only
380
+ */
381
+void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
382
+ const int N, const void *alpha, const void *A,
383
+ const int lda, const void *X, const int incX,
384
+ const void *beta, void *Y, const int incY);
385
+void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
386
+ const int N, const int K, const void *alpha, const void *A,
387
+ const int lda, const void *X, const int incX,
388
+ const void *beta, void *Y, const int incY);
389
+void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
390
+ const int N, const void *alpha, const void *Ap,
391
+ const void *X, const int incX,
392
+ const void *beta, void *Y, const int incY);
393
+void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
394
+ const void *alpha, const void *X, const int incX,
395
+ const void *Y, const int incY, void *A, const int lda);
396
+void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
397
+ const void *alpha, const void *X, const int incX,
398
+ const void *Y, const int incY, void *A, const int lda);
399
+void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
400
+ const int N, const float alpha, const void *X, const int incX,
401
+ void *A, const int lda);
402
+void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
403
+ const int N, const float alpha, const void *X,
404
+ const int incX, void *A);
405
+void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
406
+ const void *alpha, const void *X, const int incX,
407
+ const void *Y, const int incY, void *A, const int lda);
408
+void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
409
+ const void *alpha, const void *X, const int incX,
410
+ const void *Y, const int incY, void *Ap);
411
+
412
+void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
413
+ const int N, const void *alpha, const void *A,
414
+ const int lda, const void *X, const int incX,
415
+ const void *beta, void *Y, const int incY);
416
+void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
417
+ const int N, const int K, const void *alpha, const void *A,
418
+ const int lda, const void *X, const int incX,
419
+ const void *beta, void *Y, const int incY);
420
+void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
421
+ const int N, const void *alpha, const void *Ap,
422
+ const void *X, const int incX,
423
+ const void *beta, void *Y, const int incY);
424
+void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
425
+ const void *alpha, const void *X, const int incX,
426
+ const void *Y, const int incY, void *A, const int lda);
427
+void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
428
+ const void *alpha, const void *X, const int incX,
429
+ const void *Y, const int incY, void *A, const int lda);
430
+void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
431
+ const int N, const double alpha, const void *X, const int incX,
432
+ void *A, const int lda);
433
+void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
434
+ const int N, const double alpha, const void *X,
435
+ const int incX, void *A);
436
+void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
437
+ const void *alpha, const void *X, const int incX,
438
+ const void *Y, const int incY, void *A, const int lda);
439
+void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
440
+ const void *alpha, const void *X, const int incX,
441
+ const void *Y, const int incY, void *Ap);
442
+
443
+/*
444
+ * ===========================================================================
445
+ * Prototypes for level 3 BLAS
446
+ * ===========================================================================
447
+ */
448
+
449
+/*
450
+ * Routines with standard 4 prefixes (S, D, C, Z)
451
+ */
452
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
453
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
454
+ const int K, const float alpha, const float *A,
455
+ const int lda, const float *B, const int ldb,
456
+ const float beta, float *C, const int ldc);
457
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
458
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
459
+ const float alpha, const float *A, const int lda,
460
+ const float *B, const int ldb, const float beta,
461
+ float *C, const int ldc);
462
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
463
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
464
+ const float alpha, const float *A, const int lda,
465
+ const float beta, float *C, const int ldc);
466
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
467
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
468
+ const float alpha, const float *A, const int lda,
469
+ const float *B, const int ldb, const float beta,
470
+ float *C, const int ldc);
471
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
472
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
473
+ const enum CBLAS_DIAG Diag, const int M, const int N,
474
+ const float alpha, const float *A, const int lda,
475
+ float *B, const int ldb);
476
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
477
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
478
+ const enum CBLAS_DIAG Diag, const int M, const int N,
479
+ const float alpha, const float *A, const int lda,
480
+ float *B, const int ldb);
481
+
482
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
483
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
484
+ const int K, const double alpha, const double *A,
485
+ const int lda, const double *B, const int ldb,
486
+ const double beta, double *C, const int ldc);
487
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
488
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
489
+ const double alpha, const double *A, const int lda,
490
+ const double *B, const int ldb, const double beta,
491
+ double *C, const int ldc);
492
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
493
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
494
+ const double alpha, const double *A, const int lda,
495
+ const double beta, double *C, const int ldc);
496
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
497
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
498
+ const double alpha, const double *A, const int lda,
499
+ const double *B, const int ldb, const double beta,
500
+ double *C, const int ldc);
501
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
502
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
503
+ const enum CBLAS_DIAG Diag, const int M, const int N,
504
+ const double alpha, const double *A, const int lda,
505
+ double *B, const int ldb);
506
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
507
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
508
+ const enum CBLAS_DIAG Diag, const int M, const int N,
509
+ const double alpha, const double *A, const int lda,
510
+ double *B, const int ldb);
511
+
512
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
513
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
514
+ const int K, const void *alpha, const void *A,
515
+ const int lda, const void *B, const int ldb,
516
+ const void *beta, void *C, const int ldc);
517
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
518
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
519
+ const void *alpha, const void *A, const int lda,
520
+ const void *B, const int ldb, const void *beta,
521
+ void *C, const int ldc);
522
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
523
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
524
+ const void *alpha, const void *A, const int lda,
525
+ const void *beta, void *C, const int ldc);
526
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
527
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
528
+ const void *alpha, const void *A, const int lda,
529
+ const void *B, const int ldb, const void *beta,
530
+ void *C, const int ldc);
531
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
532
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
533
+ const enum CBLAS_DIAG Diag, const int M, const int N,
534
+ const void *alpha, const void *A, const int lda,
535
+ void *B, const int ldb);
536
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
537
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
538
+ const enum CBLAS_DIAG Diag, const int M, const int N,
539
+ const void *alpha, const void *A, const int lda,
540
+ void *B, const int ldb);
541
+
542
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
543
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
544
+ const int K, const void *alpha, const void *A,
545
+ const int lda, const void *B, const int ldb,
546
+ const void *beta, void *C, const int ldc);
547
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
548
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
549
+ const void *alpha, const void *A, const int lda,
550
+ const void *B, const int ldb, const void *beta,
551
+ void *C, const int ldc);
552
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
553
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
554
+ const void *alpha, const void *A, const int lda,
555
+ const void *beta, void *C, const int ldc);
556
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
557
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
558
+ const void *alpha, const void *A, const int lda,
559
+ const void *B, const int ldb, const void *beta,
560
+ void *C, const int ldc);
561
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
562
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
563
+ const enum CBLAS_DIAG Diag, const int M, const int N,
564
+ const void *alpha, const void *A, const int lda,
565
+ void *B, const int ldb);
566
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
567
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
568
+ const enum CBLAS_DIAG Diag, const int M, const int N,
569
+ const void *alpha, const void *A, const int lda,
570
+ void *B, const int ldb);
571
+
572
+
573
+/*
574
+ * Routines with prefixes C and Z only
575
+ */
576
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
577
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
578
+ const void *alpha, const void *A, const int lda,
579
+ const void *B, const int ldb, const void *beta,
580
+ void *C, const int ldc);
581
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
582
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
583
+ const float alpha, const void *A, const int lda,
584
+ const float beta, void *C, const int ldc);
585
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
586
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
587
+ const void *alpha, const void *A, const int lda,
588
+ const void *B, const int ldb, const float beta,
589
+ void *C, const int ldc);
590
+
591
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
592
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
593
+ const void *alpha, const void *A, const int lda,
594
+ const void *B, const int ldb, const void *beta,
595
+ void *C, const int ldc);
596
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
597
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
598
+ const double alpha, const void *A, const int lda,
599
+ const double beta, void *C, const int ldc);
600
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
601
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
602
+ const void *alpha, const void *A, const int lda,
603
+ const void *B, const int ldb, const double beta,
604
+ void *C, const int ldc);
605
+
606
+void cblas_xerbla(int p, const char *rout, const char *form, ...);
607
+
608
+__END_DECLS
609
+
610
+#endif /* __GSL_CBLAS_H__ */
611
diff -ruN iml-1.0.1-sage/gsl_cblas.h src/gsl_cblas.h
612
--- iml-1.0.1-sage/gsl_cblas.h 1970-01-01 01:00:00.000000000 +0100
613
+++ src/gsl_cblas.h 2007-02-15 07:51:41.000000000 +0100
614
@@ -0,0 +1,606 @@
615
+/* blas/gsl_cblas.h
616
+ *
617
+ * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
618
+ *
619
+ * This program is free software; you can redistribute it and/or modify
620
+ * it under the terms of the GNU General Public License as published by
621
+ * the Free Software Foundation; either version 2 of the License, or (at
622
+ * your option) any later version.
623
+ *
624
+ * This program is distributed in the hope that it will be useful, but
625
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
626
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
627
+ * General Public License for more details.
628
+ *
629
+ * You should have received a copy of the GNU General Public License
630
+ * along with this program; if not, write to the Free Software
631
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
632
+ */
633
+
634
+/* This is a copy of the CBLAS standard header.
635
+ * We carry this around so we do not have to
636
+ * break our model for flexible BLAS functionality.
637
+ */
638
+
639
+#ifndef __GSL_CBLAS_H__
640
+#define __GSL_CBLAS_H__
641
+#include <stddef.h>
642
+
643
+#undef __BEGIN_DECLS
644
+#undef __END_DECLS
645
+#ifdef __cplusplus
646
+#define __BEGIN_DECLS extern "C" {
647
+#define __END_DECLS }
648
+#else
649
+#define __BEGIN_DECLS /* empty */
650
+#define __END_DECLS /* empty */
651
+#endif
652
+
653
+__BEGIN_DECLS
654
+
655
+/*
656
+ * Enumerated and derived types
657
+ */
658
+#define CBLAS_INDEX size_t /* this may vary between platforms */
659
+
660
+enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
661
+enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
662
+enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
663
+enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
664
+enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
665
+
666
+/*
667
+ * ===========================================================================
668
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
669
+ * ===========================================================================
670
+ */
671
+float cblas_sdsdot(const int N, const float alpha, const float *X,
672
+ const int incX, const float *Y, const int incY);
673
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
674
+ const int incY);
675
+float cblas_sdot(const int N, const float *X, const int incX,
676
+ const float *Y, const int incY);
677
+double cblas_ddot(const int N, const double *X, const int incX,
678
+ const double *Y, const int incY);
679
+
680
+/*
681
+ * Functions having prefixes Z and C only
682
+ */
683
+void cblas_cdotu_sub(const int N, const void *X, const int incX,
684
+ const void *Y, const int incY, void *dotu);
685
+void cblas_cdotc_sub(const int N, const void *X, const int incX,
686
+ const void *Y, const int incY, void *dotc);
687
+
688
+void cblas_zdotu_sub(const int N, const void *X, const int incX,
689
+ const void *Y, const int incY, void *dotu);
690
+void cblas_zdotc_sub(const int N, const void *X, const int incX,
691
+ const void *Y, const int incY, void *dotc);
692
+
693
+
694
+/*
695
+ * Functions having prefixes S D SC DZ
696
+ */
697
+float cblas_snrm2(const int N, const float *X, const int incX);
698
+float cblas_sasum(const int N, const float *X, const int incX);
699
+
700
+double cblas_dnrm2(const int N, const double *X, const int incX);
701
+double cblas_dasum(const int N, const double *X, const int incX);
702
+
703
+float cblas_scnrm2(const int N, const void *X, const int incX);
704
+float cblas_scasum(const int N, const void *X, const int incX);
705
+
706
+double cblas_dznrm2(const int N, const void *X, const int incX);
707
+double cblas_dzasum(const int N, const void *X, const int incX);
708
+
709
+
710
+/*
711
+ * Functions having standard 4 prefixes (S D C Z)
712
+ */
713
+CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
714
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
715
+CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
716
+CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
717
+
718
+/*
719
+ * ===========================================================================
720
+ * Prototypes for level 1 BLAS routines
721
+ * ===========================================================================
722
+ */
723
+
724
+/*
725
+ * Routines with standard 4 prefixes (s, d, c, z)
726
+ */
727
+void cblas_sswap(const int N, float *X, const int incX,
728
+ float *Y, const int incY);
729
+void cblas_scopy(const int N, const float *X, const int incX,
730
+ float *Y, const int incY);
731
+void cblas_saxpy(const int N, const float alpha, const float *X,
732
+ const int incX, float *Y, const int incY);
733
+
734
+void cblas_dswap(const int N, double *X, const int incX,
735
+ double *Y, const int incY);
736
+void cblas_dcopy(const int N, const double *X, const int incX,
737
+ double *Y, const int incY);
738
+void cblas_daxpy(const int N, const double alpha, const double *X,
739
+ const int incX, double *Y, const int incY);
740
+
741
+void cblas_cswap(const int N, void *X, const int incX,
742
+ void *Y, const int incY);
743
+void cblas_ccopy(const int N, const void *X, const int incX,
744
+ void *Y, const int incY);
745
+void cblas_caxpy(const int N, const void *alpha, const void *X,
746
+ const int incX, void *Y, const int incY);
747
+
748
+void cblas_zswap(const int N, void *X, const int incX,
749
+ void *Y, const int incY);
750
+void cblas_zcopy(const int N, const void *X, const int incX,
751
+ void *Y, const int incY);
752
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
753
+ const int incX, void *Y, const int incY);
754
+
755
+
756
+/*
757
+ * Routines with S and D prefix only
758
+ */
759
+void cblas_srotg(float *a, float *b, float *c, float *s);
760
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
761
+void cblas_srot(const int N, float *X, const int incX,
762
+ float *Y, const int incY, const float c, const float s);
763
+void cblas_srotm(const int N, float *X, const int incX,
764
+ float *Y, const int incY, const float *P);
765
+
766
+void cblas_drotg(double *a, double *b, double *c, double *s);
767
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
768
+void cblas_drot(const int N, double *X, const int incX,
769
+ double *Y, const int incY, const double c, const double s);
770
+void cblas_drotm(const int N, double *X, const int incX,
771
+ double *Y, const int incY, const double *P);
772
+
773
+
774
+/*
775
+ * Routines with S D C Z CS and ZD prefixes
776
+ */
777
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
778
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
779
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
780
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
781
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
782
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
783
+
784
+/*
785
+ * ===========================================================================
786
+ * Prototypes for level 2 BLAS
787
+ * ===========================================================================
788
+ */
789
+
790
+/*
791
+ * Routines with standard 4 prefixes (S, D, C, Z)
792
+ */
793
+void cblas_sgemv(const enum CBLAS_ORDER order,
794
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
795
+ const float alpha, const float *A, const int lda,
796
+ const float *X, const int incX, const float beta,
797
+ float *Y, const int incY);
798
+void cblas_sgbmv(const enum CBLAS_ORDER order,
799
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
800
+ const int KL, const int KU, const float alpha,
801
+ const float *A, const int lda, const float *X,
802
+ const int incX, const float beta, float *Y, const int incY);
803
+void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
804
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
805
+ const int N, const float *A, const int lda,
806
+ float *X, const int incX);
807
+void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
808
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
809
+ const int N, const int K, const float *A, const int lda,
810
+ float *X, const int incX);
811
+void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
812
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
813
+ const int N, const float *Ap, float *X, const int incX);
814
+void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
815
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
816
+ const int N, const float *A, const int lda, float *X,
817
+ const int incX);
818
+void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
819
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
820
+ const int N, const int K, const float *A, const int lda,
821
+ float *X, const int incX);
822
+void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
823
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
824
+ const int N, const float *Ap, float *X, const int incX);
825
+
826
+void cblas_dgemv(const enum CBLAS_ORDER order,
827
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
828
+ const double alpha, const double *A, const int lda,
829
+ const double *X, const int incX, const double beta,
830
+ double *Y, const int incY);
831
+void cblas_dgbmv(const enum CBLAS_ORDER order,
832
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
833
+ const int KL, const int KU, const double alpha,
834
+ const double *A, const int lda, const double *X,
835
+ const int incX, const double beta, double *Y, const int incY);
836
+void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
837
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
838
+ const int N, const double *A, const int lda,
839
+ double *X, const int incX);
840
+void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
841
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
842
+ const int N, const int K, const double *A, const int lda,
843
+ double *X, const int incX);
844
+void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
845
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
846
+ const int N, const double *Ap, double *X, const int incX);
847
+void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
848
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
849
+ const int N, const double *A, const int lda, double *X,
850
+ const int incX);
851
+void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
852
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
853
+ const int N, const int K, const double *A, const int lda,
854
+ double *X, const int incX);
855
+void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
856
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
857
+ const int N, const double *Ap, double *X, const int incX);
858
+
859
+void cblas_cgemv(const enum CBLAS_ORDER order,
860
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
861
+ const void *alpha, const void *A, const int lda,
862
+ const void *X, const int incX, const void *beta,
863
+ void *Y, const int incY);
864
+void cblas_cgbmv(const enum CBLAS_ORDER order,
865
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
866
+ const int KL, const int KU, const void *alpha,
867
+ const void *A, const int lda, const void *X,
868
+ const int incX, const void *beta, void *Y, const int incY);
869
+void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
870
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
871
+ const int N, const void *A, const int lda,
872
+ void *X, const int incX);
873
+void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
874
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
875
+ const int N, const int K, const void *A, const int lda,
876
+ void *X, const int incX);
877
+void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
878
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
879
+ const int N, const void *Ap, void *X, const int incX);
880
+void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
881
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
882
+ const int N, const void *A, const int lda, void *X,
883
+ const int incX);
884
+void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
885
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
886
+ const int N, const int K, const void *A, const int lda,
887
+ void *X, const int incX);
888
+void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
889
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
890
+ const int N, const void *Ap, void *X, const int incX);
891
+
892
+void cblas_zgemv(const enum CBLAS_ORDER order,
893
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
894
+ const void *alpha, const void *A, const int lda,
895
+ const void *X, const int incX, const void *beta,
896
+ void *Y, const int incY);
897
+void cblas_zgbmv(const enum CBLAS_ORDER order,
898
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
899
+ const int KL, const int KU, const void *alpha,
900
+ const void *A, const int lda, const void *X,
901
+ const int incX, const void *beta, void *Y, const int incY);
902
+void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
903
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
904
+ const int N, const void *A, const int lda,
905
+ void *X, const int incX);
906
+void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
907
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
908
+ const int N, const int K, const void *A, const int lda,
909
+ void *X, const int incX);
910
+void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
911
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
912
+ const int N, const void *Ap, void *X, const int incX);
913
+void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
914
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
915
+ const int N, const void *A, const int lda, void *X,
916
+ const int incX);
917
+void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
918
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
919
+ const int N, const int K, const void *A, const int lda,
920
+ void *X, const int incX);
921
+void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
922
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
923
+ const int N, const void *Ap, void *X, const int incX);
924
+
925
+
926
+/*
927
+ * Routines with S and D prefixes only
928
+ */
929
+void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
930
+ const int N, const float alpha, const float *A,
931
+ const int lda, const float *X, const int incX,
932
+ const float beta, float *Y, const int incY);
933
+void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
934
+ const int N, const int K, const float alpha, const float *A,
935
+ const int lda, const float *X, const int incX,
936
+ const float beta, float *Y, const int incY);
937
+void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
938
+ const int N, const float alpha, const float *Ap,
939
+ const float *X, const int incX,
940
+ const float beta, float *Y, const int incY);
941
+void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
942
+ const float alpha, const float *X, const int incX,
943
+ const float *Y, const int incY, float *A, const int lda);
944
+void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
945
+ const int N, const float alpha, const float *X,
946
+ const int incX, float *A, const int lda);
947
+void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
948
+ const int N, const float alpha, const float *X,
949
+ const int incX, float *Ap);
950
+void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
951
+ const int N, const float alpha, const float *X,
952
+ const int incX, const float *Y, const int incY, float *A,
953
+ const int lda);
954
+void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
955
+ const int N, const float alpha, const float *X,
956
+ const int incX, const float *Y, const int incY, float *A);
957
+
958
+void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
959
+ const int N, const double alpha, const double *A,
960
+ const int lda, const double *X, const int incX,
961
+ const double beta, double *Y, const int incY);
962
+void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
963
+ const int N, const int K, const double alpha, const double *A,
964
+ const int lda, const double *X, const int incX,
965
+ const double beta, double *Y, const int incY);
966
+void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
967
+ const int N, const double alpha, const double *Ap,
968
+ const double *X, const int incX,
969
+ const double beta, double *Y, const int incY);
970
+void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
971
+ const double alpha, const double *X, const int incX,
972
+ const double *Y, const int incY, double *A, const int lda);
973
+void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
974
+ const int N, const double alpha, const double *X,
975
+ const int incX, double *A, const int lda);
976
+void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
977
+ const int N, const double alpha, const double *X,
978
+ const int incX, double *Ap);
979
+void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
980
+ const int N, const double alpha, const double *X,
981
+ const int incX, const double *Y, const int incY, double *A,
982
+ const int lda);
983
+void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
984
+ const int N, const double alpha, const double *X,
985
+ const int incX, const double *Y, const int incY, double *A);
986
+
987
+
988
+/*
989
+ * Routines with C and Z prefixes only
990
+ */
991
+void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
992
+ const int N, const void *alpha, const void *A,
993
+ const int lda, const void *X, const int incX,
994
+ const void *beta, void *Y, const int incY);
995
+void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
996
+ const int N, const int K, const void *alpha, const void *A,
997
+ const int lda, const void *X, const int incX,
998
+ const void *beta, void *Y, const int incY);
999
+void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1000
+ const int N, const void *alpha, const void *Ap,
1001
+ const void *X, const int incX,
1002
+ const void *beta, void *Y, const int incY);
1003
+void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
1004
+ const void *alpha, const void *X, const int incX,
1005
+ const void *Y, const int incY, void *A, const int lda);
1006
+void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
1007
+ const void *alpha, const void *X, const int incX,
1008
+ const void *Y, const int incY, void *A, const int lda);
1009
+void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1010
+ const int N, const float alpha, const void *X, const int incX,
1011
+ void *A, const int lda);
1012
+void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1013
+ const int N, const float alpha, const void *X,
1014
+ const int incX, void *A);
1015
+void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
1016
+ const void *alpha, const void *X, const int incX,
1017
+ const void *Y, const int incY, void *A, const int lda);
1018
+void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
1019
+ const void *alpha, const void *X, const int incX,
1020
+ const void *Y, const int incY, void *Ap);
1021
+
1022
+void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1023
+ const int N, const void *alpha, const void *A,
1024
+ const int lda, const void *X, const int incX,
1025
+ const void *beta, void *Y, const int incY);
1026
+void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1027
+ const int N, const int K, const void *alpha, const void *A,
1028
+ const int lda, const void *X, const int incX,
1029
+ const void *beta, void *Y, const int incY);
1030
+void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1031
+ const int N, const void *alpha, const void *Ap,
1032
+ const void *X, const int incX,
1033
+ const void *beta, void *Y, const int incY);
1034
+void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
1035
+ const void *alpha, const void *X, const int incX,
1036
+ const void *Y, const int incY, void *A, const int lda);
1037
+void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
1038
+ const void *alpha, const void *X, const int incX,
1039
+ const void *Y, const int incY, void *A, const int lda);
1040
+void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1041
+ const int N, const double alpha, const void *X, const int incX,
1042
+ void *A, const int lda);
1043
+void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
1044
+ const int N, const double alpha, const void *X,
1045
+ const int incX, void *A);
1046
+void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
1047
+ const void *alpha, const void *X, const int incX,
1048
+ const void *Y, const int incY, void *A, const int lda);
1049
+void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
1050
+ const void *alpha, const void *X, const int incX,
1051
+ const void *Y, const int incY, void *Ap);
1052
+
1053
+/*
1054
+ * ===========================================================================
1055
+ * Prototypes for level 3 BLAS
1056
+ * ===========================================================================
1057
+ */
1058
+
1059
+/*
1060
+ * Routines with standard 4 prefixes (S, D, C, Z)
1061
+ */
1062
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
1063
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
1064
+ const int K, const float alpha, const float *A,
1065
+ const int lda, const float *B, const int ldb,
1066
+ const float beta, float *C, const int ldc);
1067
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1068
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1069
+ const float alpha, const float *A, const int lda,
1070
+ const float *B, const int ldb, const float beta,
1071
+ float *C, const int ldc);
1072
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1073
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1074
+ const float alpha, const float *A, const int lda,
1075
+ const float beta, float *C, const int ldc);
1076
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1077
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1078
+ const float alpha, const float *A, const int lda,
1079
+ const float *B, const int ldb, const float beta,
1080
+ float *C, const int ldc);
1081
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1082
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1083
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1084
+ const float alpha, const float *A, const int lda,
1085
+ float *B, const int ldb);
1086
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1087
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1088
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1089
+ const float alpha, const float *A, const int lda,
1090
+ float *B, const int ldb);
1091
+
1092
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
1093
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
1094
+ const int K, const double alpha, const double *A,
1095
+ const int lda, const double *B, const int ldb,
1096
+ const double beta, double *C, const int ldc);
1097
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1098
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1099
+ const double alpha, const double *A, const int lda,
1100
+ const double *B, const int ldb, const double beta,
1101
+ double *C, const int ldc);
1102
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1103
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1104
+ const double alpha, const double *A, const int lda,
1105
+ const double beta, double *C, const int ldc);
1106
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1107
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1108
+ const double alpha, const double *A, const int lda,
1109
+ const double *B, const int ldb, const double beta,
1110
+ double *C, const int ldc);
1111
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1112
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1113
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1114
+ const double alpha, const double *A, const int lda,
1115
+ double *B, const int ldb);
1116
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1117
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1118
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1119
+ const double alpha, const double *A, const int lda,
1120
+ double *B, const int ldb);
1121
+
1122
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
1123
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
1124
+ const int K, const void *alpha, const void *A,
1125
+ const int lda, const void *B, const int ldb,
1126
+ const void *beta, void *C, const int ldc);
1127
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1128
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1129
+ const void *alpha, const void *A, const int lda,
1130
+ const void *B, const int ldb, const void *beta,
1131
+ void *C, const int ldc);
1132
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1133
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1134
+ const void *alpha, const void *A, const int lda,
1135
+ const void *beta, void *C, const int ldc);
1136
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1137
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1138
+ const void *alpha, const void *A, const int lda,
1139
+ const void *B, const int ldb, const void *beta,
1140
+ void *C, const int ldc);
1141
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1142
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1143
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1144
+ const void *alpha, const void *A, const int lda,
1145
+ void *B, const int ldb);
1146
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1147
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1148
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1149
+ const void *alpha, const void *A, const int lda,
1150
+ void *B, const int ldb);
1151
+
1152
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
1153
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
1154
+ const int K, const void *alpha, const void *A,
1155
+ const int lda, const void *B, const int ldb,
1156
+ const void *beta, void *C, const int ldc);
1157
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1158
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1159
+ const void *alpha, const void *A, const int lda,
1160
+ const void *B, const int ldb, const void *beta,
1161
+ void *C, const int ldc);
1162
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1163
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1164
+ const void *alpha, const void *A, const int lda,
1165
+ const void *beta, void *C, const int ldc);
1166
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1167
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1168
+ const void *alpha, const void *A, const int lda,
1169
+ const void *B, const int ldb, const void *beta,
1170
+ void *C, const int ldc);
1171
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1172
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1173
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1174
+ const void *alpha, const void *A, const int lda,
1175
+ void *B, const int ldb);
1176
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1177
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
1178
+ const enum CBLAS_DIAG Diag, const int M, const int N,
1179
+ const void *alpha, const void *A, const int lda,
1180
+ void *B, const int ldb);
1181
+
1182
+
1183
+/*
1184
+ * Routines with prefixes C and Z only
1185
+ */
1186
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1187
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1188
+ const void *alpha, const void *A, const int lda,
1189
+ const void *B, const int ldb, const void *beta,
1190
+ void *C, const int ldc);
1191
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1192
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1193
+ const float alpha, const void *A, const int lda,
1194
+ const float beta, void *C, const int ldc);
1195
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1196
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1197
+ const void *alpha, const void *A, const int lda,
1198
+ const void *B, const int ldb, const float beta,
1199
+ void *C, const int ldc);
1200
+
1201
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
1202
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
1203
+ const void *alpha, const void *A, const int lda,
1204
+ const void *B, const int ldb, const void *beta,
1205
+ void *C, const int ldc);
1206
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1207
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1208
+ const double alpha, const void *A, const int lda,
1209
+ const double beta, void *C, const int ldc);
1210
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
1211
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
1212
+ const void *alpha, const void *A, const int lda,
1213
+ const void *B, const int ldb, const double beta,
1214
+ void *C, const int ldc);
1215
+
1216
+void cblas_xerbla(int p, const char *rout, const char *form, ...);
1217
+
1218
+__END_DECLS
1219
+
1220
+#endif /* __GSL_CBLAS_H__ */
1221
1222