/ani/mrses

To get this branch, use:
bzr branch http://suren.me/webbzr/ani/mrses

« back to all changes in this revision

Viewing changes to cell/ext/cblas.h

  • Committer: Suren A. Chilingaryan
  • Date: 2010-04-28 04:30:08 UTC
  • Revision ID: csa@dside.dyndns.org-20100428043008-vd9z0nso9axezvlp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* --------------------------------------------------------------- */
 
2
/* Copyright LAPACK Users' Guide, Third Edition.                   */
 
3
/* AUTHORS = Anderson, E. and Bai, Z. and Bischof, C. and          */
 
4
/*           Blackford, S. and Demmel, J. and Dongarra, J. and     */
 
5
/*           Du Croz, J. and Greenbaum, A. and Hammarling, S. and  */
 
6
/*           McKenney, A. and Sorensen, D.                         */
 
7
/* PUBLISHER = Society for Industrial and Applied Mathematics      */
 
8
/* YEAR = 1999                                                     */
 
9
/* ISBN = 0-89871-447-8 (paperback)                                */
 
10
/*                                                                 */
 
11
/* Redistribution and use in source and binary forms, with or      */
 
12
/* without modification, are permitted provided that the           */
 
13
/* following conditions are met:                                   */
 
14
/*                                                                 */
 
15
/* - Redistributions of source code must retain the above copyright*/
 
16
/*   notice, this list of conditions and the following disclaimer. */
 
17
/*                                                                 */
 
18
/* - Redistributions in binary form must reproduce the above       */
 
19
/*   copyright notice, this list of conditions and the following   */
 
20
/*   disclaimer in the documentation and/or other materials        */
 
21
/*   provided with the distribution.                               */
 
22
/*                                                                 */
 
23
/* - Neither the name of Anderson, E. and Bai, Z. and Bischof, C.  */
 
24
/*   and Blackford, S. and Demmel, J. and Dongarra, J. and         */
 
25
/*   Du Croz, J. and Greenbaum, A. and Hammarling, S. and          */
 
26
/*   McKenney, A. and Sorensen, D. nor the names of its            */ 
 
27
/*   contributors may be used to endorse or promote products       */
 
28
/*   derived from this software without specific prior written     */
 
29
/*   permission.                                                   */
 
30
/*                                                                 */
 
31
/*                                                                 */
 
32
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND          */
 
33
/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,   */
 
34
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF        */
 
35
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        */
 
36
/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR            */
 
37
/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,    */
 
38
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT    */
 
39
/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;    */
 
40
/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)        */
 
41
/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN       */
 
42
/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR    */
 
43
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  */
 
44
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.              */
 
45
/* --------------------------------------------------------------  */
 
46
/* PROLOG END TAG zYx                                              */
 
47
#ifndef CBLAS_H
 
48
#define CBLAS_H
 
49
#include <stddef.h>
 
50
 
 
51
#ifdef __cplusplus
 
52
extern "C"
 
53
{
 
54
#endif
 
55
 
 
56
 
 
57
/*
 
58
 * Enumerated and derived types
 
59
 */
 
60
#define CBLAS_INDEX size_t  /* this may vary between platforms */
 
61
 
 
62
enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
 
63
enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
 
64
enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
 
65
enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
 
66
enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
 
67
 
 
68
/*
 
69
 * ===========================================================================
 
70
 * Prototypes for level 1 BLAS functions (complex are recast as routines)
 
71
 * ===========================================================================
 
72
 */
 
73
float  cblas_sdsdot(const int N, const float alpha, const float *X,
 
74
                    const int incX, const float *Y, const int incY);
 
75
double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
 
76
                   const int incY);
 
77
float  cblas_sdot(const int N, const float  *X, const int incX,
 
78
                  const float  *Y, const int incY);
 
79
double cblas_ddot(const int N, const double *X, const int incX,
 
80
                  const double *Y, const int incY);
 
81
 
 
82
/*
 
83
 * Functions having prefixes Z and C only
 
84
 */
 
85
void   cblas_cdotu_sub(const int N, const void *X, const int incX,
 
86
                       const void *Y, const int incY, void *dotu);
 
87
void   cblas_cdotc_sub(const int N, const void *X, const int incX,
 
88
                       const void *Y, const int incY, void *dotc);
 
89
 
 
90
void   cblas_zdotu_sub(const int N, const void *X, const int incX,
 
91
                       const void *Y, const int incY, void *dotu);
 
92
void   cblas_zdotc_sub(const int N, const void *X, const int incX,
 
93
                       const void *Y, const int incY, void *dotc);
 
94
 
 
95
 
 
96
/*
 
97
 * Functions having prefixes S D SC DZ
 
98
 */
 
99
float  cblas_snrm2(const int N, const float *X, const int incX);
 
100
float  cblas_sasum(const int N, const float *X, const int incX);
 
101
 
 
102
double cblas_dnrm2(const int N, const double *X, const int incX);
 
103
double cblas_dasum(const int N, const double *X, const int incX);
 
104
 
 
105
float  cblas_scnrm2(const int N, const void *X, const int incX);
 
106
float  cblas_scasum(const int N, const void *X, const int incX);
 
107
 
 
108
double cblas_dznrm2(const int N, const void *X, const int incX);
 
109
double cblas_dzasum(const int N, const void *X, const int incX);
 
110
 
 
111
 
 
112
/*
 
113
 * Functions having standard 4 prefixes (S D C Z)
 
114
 */
 
115
CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
 
116
CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
 
117
CBLAS_INDEX cblas_icamax(const int N, const void   *X, const int incX);
 
118
CBLAS_INDEX cblas_izamax(const int N, const void   *X, const int incX);
 
119
 
 
120
/*
 
121
 * ===========================================================================
 
122
 * Prototypes for level 1 BLAS routines
 
123
 * ===========================================================================
 
124
 */
 
125
 
 
126
/* 
 
127
 * Routines with standard 4 prefixes (s, d, c, z)
 
128
 */
 
129
void cblas_sswap(const int N, float *X, const int incX, 
 
130
                 float *Y, const int incY);
 
131
void cblas_scopy(const int N, const float *X, const int incX, 
 
132
                 float *Y, const int incY);
 
133
void cblas_saxpy(const int N, const float alpha, const float *X,
 
134
                 const int incX, float *Y, const int incY);
 
135
 
 
136
void cblas_dswap(const int N, double *X, const int incX, 
 
137
                 double *Y, const int incY);
 
138
void cblas_dcopy(const int N, const double *X, const int incX, 
 
139
                 double *Y, const int incY);
 
140
void cblas_daxpy(const int N, const double alpha, const double *X,
 
141
                 const int incX, double *Y, const int incY);
 
142
 
 
143
void cblas_cswap(const int N, void *X, const int incX, 
 
144
                 void *Y, const int incY);
 
145
void cblas_ccopy(const int N, const void *X, const int incX, 
 
146
                 void *Y, const int incY);
 
147
void cblas_caxpy(const int N, const void *alpha, const void *X,
 
148
                 const int incX, void *Y, const int incY);
 
149
 
 
150
void cblas_zswap(const int N, void *X, const int incX, 
 
151
                 void *Y, const int incY);
 
152
void cblas_zcopy(const int N, const void *X, const int incX, 
 
153
                 void *Y, const int incY);
 
154
void cblas_zaxpy(const int N, const void *alpha, const void *X,
 
155
                 const int incX, void *Y, const int incY);
 
156
 
 
157
 
 
158
/* 
 
159
 * Routines with S and D prefix only
 
160
 */
 
161
void cblas_srotg(float *a, float *b, float *c, float *s);
 
162
void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
 
163
void cblas_srot(const int N, float *X, const int incX,
 
164
                float *Y, const int incY, const float c, const float s);
 
165
void cblas_srotm(const int N, float *X, const int incX,
 
166
                float *Y, const int incY, const float *P);
 
167
 
 
168
void cblas_drotg(double *a, double *b, double *c, double *s);
 
169
void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
 
170
void cblas_drot(const int N, double *X, const int incX,
 
171
                double *Y, const int incY, const double c, const double  s);
 
172
void cblas_drotm(const int N, double *X, const int incX,
 
173
                double *Y, const int incY, const double *P);
 
174
 
 
175
 
 
176
/* 
 
177
 * Routines with S D C Z CS and ZD prefixes
 
178
 */
 
179
void cblas_sscal(const int N, const float alpha, float *X, const int incX);
 
180
void cblas_dscal(const int N, const double alpha, double *X, const int incX);
 
181
void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
 
182
void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
 
183
void cblas_csscal(const int N, const float alpha, void *X, const int incX);
 
184
void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
 
185
 
 
186
/*
 
187
 * ===========================================================================
 
188
 * Prototypes for level 2 BLAS
 
189
 * ===========================================================================
 
190
 */
 
191
 
 
192
/* 
 
193
 * Routines with standard 4 prefixes (S, D, C, Z)
 
194
 */
 
195
void cblas_sgemv(const enum CBLAS_ORDER order,
 
196
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
197
                 const float alpha, const float *A, const int lda,
 
198
                 const float *X, const int incX, const float beta,
 
199
                 float *Y, const int incY);
 
200
void cblas_sgbmv(const enum CBLAS_ORDER order,
 
201
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
202
                 const int KL, const int KU, const float alpha,
 
203
                 const float *A, const int lda, const float *X,
 
204
                 const int incX, const float beta, float *Y, const int incY);
 
205
void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
206
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
207
                 const int N, const float *A, const int lda, 
 
208
                 float *X, const int incX);
 
209
void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
210
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
211
                 const int N, const int K, const float *A, const int lda, 
 
212
                 float *X, const int incX);
 
213
void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
214
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
215
                 const int N, const float *Ap, float *X, const int incX);
 
216
void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
217
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
218
                 const int N, const float *A, const int lda, float *X,
 
219
                 const int incX);
 
220
void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
221
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
222
                 const int N, const int K, const float *A, const int lda,
 
223
                 float *X, const int incX);
 
224
void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
225
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
226
                 const int N, const float *Ap, float *X, const int incX);
 
227
 
 
228
void cblas_dgemv(const enum CBLAS_ORDER order,
 
229
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
230
                 const double alpha, const double *A, const int lda,
 
231
                 const double *X, const int incX, const double beta,
 
232
                 double *Y, const int incY);
 
233
void cblas_dgbmv(const enum CBLAS_ORDER order,
 
234
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
235
                 const int KL, const int KU, const double alpha,
 
236
                 const double *A, const int lda, const double *X,
 
237
                 const int incX, const double beta, double *Y, const int incY);
 
238
void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
239
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
240
                 const int N, const double *A, const int lda, 
 
241
                 double *X, const int incX);
 
242
void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
243
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
244
                 const int N, const int K, const double *A, const int lda, 
 
245
                 double *X, const int incX);
 
246
void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
247
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
248
                 const int N, const double *Ap, double *X, const int incX);
 
249
void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
250
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
251
                 const int N, const double *A, const int lda, double *X,
 
252
                 const int incX);
 
253
void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
254
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
255
                 const int N, const int K, const double *A, const int lda,
 
256
                 double *X, const int incX);
 
257
void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
258
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
259
                 const int N, const double *Ap, double *X, const int incX);
 
260
 
 
261
void cblas_cgemv(const enum CBLAS_ORDER order,
 
262
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
263
                 const void *alpha, const void *A, const int lda,
 
264
                 const void *X, const int incX, const void *beta,
 
265
                 void *Y, const int incY);
 
266
void cblas_cgbmv(const enum CBLAS_ORDER order,
 
267
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
268
                 const int KL, const int KU, const void *alpha,
 
269
                 const void *A, const int lda, const void *X,
 
270
                 const int incX, const void *beta, void *Y, const int incY);
 
271
void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
272
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
273
                 const int N, const void *A, const int lda, 
 
274
                 void *X, const int incX);
 
275
void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
276
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
277
                 const int N, const int K, const void *A, const int lda, 
 
278
                 void *X, const int incX);
 
279
void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
280
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
281
                 const int N, const void *Ap, void *X, const int incX);
 
282
void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
283
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
284
                 const int N, const void *A, const int lda, void *X,
 
285
                 const int incX);
 
286
void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
287
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
288
                 const int N, const int K, const void *A, const int lda,
 
289
                 void *X, const int incX);
 
290
void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
291
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
292
                 const int N, const void *Ap, void *X, const int incX);
 
293
 
 
294
void cblas_zgemv(const enum CBLAS_ORDER order,
 
295
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
296
                 const void *alpha, const void *A, const int lda,
 
297
                 const void *X, const int incX, const void *beta,
 
298
                 void *Y, const int incY);
 
299
void cblas_zgbmv(const enum CBLAS_ORDER order,
 
300
                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
 
301
                 const int KL, const int KU, const void *alpha,
 
302
                 const void *A, const int lda, const void *X,
 
303
                 const int incX, const void *beta, void *Y, const int incY);
 
304
void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
305
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
306
                 const int N, const void *A, const int lda, 
 
307
                 void *X, const int incX);
 
308
void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
309
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
310
                 const int N, const int K, const void *A, const int lda, 
 
311
                 void *X, const int incX);
 
312
void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
313
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
314
                 const int N, const void *Ap, void *X, const int incX);
 
315
void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
316
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
317
                 const int N, const void *A, const int lda, void *X,
 
318
                 const int incX);
 
319
void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
320
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
321
                 const int N, const int K, const void *A, const int lda,
 
322
                 void *X, const int incX);
 
323
void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
324
                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
 
325
                 const int N, const void *Ap, void *X, const int incX);
 
326
 
 
327
 
 
328
/* 
 
329
 * Routines with S and D prefixes only
 
330
 */
 
331
void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
332
                 const int N, const float alpha, const float *A,
 
333
                 const int lda, const float *X, const int incX,
 
334
                 const float beta, float *Y, const int incY);
 
335
void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
336
                 const int N, const int K, const float alpha, const float *A,
 
337
                 const int lda, const float *X, const int incX,
 
338
                 const float beta, float *Y, const int incY);
 
339
void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
340
                 const int N, const float alpha, const float *Ap,
 
341
                 const float *X, const int incX,
 
342
                 const float beta, float *Y, const int incY);
 
343
void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
 
344
                const float alpha, const float *X, const int incX,
 
345
                const float *Y, const int incY, float *A, const int lda);
 
346
void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
347
                const int N, const float alpha, const float *X,
 
348
                const int incX, float *A, const int lda);
 
349
void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
350
                const int N, const float alpha, const float *X,
 
351
                const int incX, float *Ap);
 
352
void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
353
                const int N, const float alpha, const float *X,
 
354
                const int incX, const float *Y, const int incY, float *A,
 
355
                const int lda);
 
356
void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
357
                const int N, const float alpha, const float *X,
 
358
                const int incX, const float *Y, const int incY, float *A);
 
359
 
 
360
void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
361
                 const int N, const double alpha, const double *A,
 
362
                 const int lda, const double *X, const int incX,
 
363
                 const double beta, double *Y, const int incY);
 
364
void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
365
                 const int N, const int K, const double alpha, const double *A,
 
366
                 const int lda, const double *X, const int incX,
 
367
                 const double beta, double *Y, const int incY);
 
368
void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
369
                 const int N, const double alpha, const double *Ap,
 
370
                 const double *X, const int incX,
 
371
                 const double beta, double *Y, const int incY);
 
372
void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
 
373
                const double alpha, const double *X, const int incX,
 
374
                const double *Y, const int incY, double *A, const int lda);
 
375
void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
376
                const int N, const double alpha, const double *X,
 
377
                const int incX, double *A, const int lda);
 
378
void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
379
                const int N, const double alpha, const double *X,
 
380
                const int incX, double *Ap);
 
381
void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
382
                const int N, const double alpha, const double *X,
 
383
                const int incX, const double *Y, const int incY, double *A,
 
384
                const int lda);
 
385
void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
386
                const int N, const double alpha, const double *X,
 
387
                const int incX, const double *Y, const int incY, double *A);
 
388
 
 
389
 
 
390
/* 
 
391
 * Routines with C and Z prefixes only
 
392
 */
 
393
void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
394
                 const int N, const void *alpha, const void *A,
 
395
                 const int lda, const void *X, const int incX,
 
396
                 const void *beta, void *Y, const int incY);
 
397
void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
398
                 const int N, const int K, const void *alpha, const void *A,
 
399
                 const int lda, const void *X, const int incX,
 
400
                 const void *beta, void *Y, const int incY);
 
401
void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
402
                 const int N, const void *alpha, const void *Ap,
 
403
                 const void *X, const int incX,
 
404
                 const void *beta, void *Y, const int incY);
 
405
void cblas_cgeru(const enum CBLAS_ORDER order, const int M, 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_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
 
409
                 const void *alpha, const void *X, const int incX,
 
410
                 const void *Y, const int incY, void *A, const int lda);
 
411
void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
412
                const int N, const float alpha, const void *X, const int incX,
 
413
                void *A, const int lda);
 
414
void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
415
                const int N, const float alpha, const void *X,
 
416
                const int incX, void *A);
 
417
void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
 
418
                const void *alpha, const void *X, const int incX,
 
419
                const void *Y, const int incY, void *A, const int lda);
 
420
void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
 
421
                const void *alpha, const void *X, const int incX,
 
422
                const void *Y, const int incY, void *Ap);
 
423
 
 
424
void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
425
                 const int N, const void *alpha, const void *A,
 
426
                 const int lda, const void *X, const int incX,
 
427
                 const void *beta, void *Y, const int incY);
 
428
void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
429
                 const int N, const int K, const void *alpha, const void *A,
 
430
                 const int lda, const void *X, const int incX,
 
431
                 const void *beta, void *Y, const int incY);
 
432
void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
433
                 const int N, const void *alpha, const void *Ap,
 
434
                 const void *X, const int incX,
 
435
                 const void *beta, void *Y, const int incY);
 
436
void cblas_zgeru(const enum CBLAS_ORDER order, const int M, 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_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
 
440
                 const void *alpha, const void *X, const int incX,
 
441
                 const void *Y, const int incY, void *A, const int lda);
 
442
void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
443
                const int N, const double alpha, const void *X, const int incX,
 
444
                void *A, const int lda);
 
445
void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
 
446
                const int N, const double alpha, const void *X,
 
447
                const int incX, void *A);
 
448
void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
 
449
                const void *alpha, const void *X, const int incX,
 
450
                const void *Y, const int incY, void *A, const int lda);
 
451
void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
 
452
                const void *alpha, const void *X, const int incX,
 
453
                const void *Y, const int incY, void *Ap);
 
454
 
 
455
/*
 
456
 * ===========================================================================
 
457
 * Prototypes for level 3 BLAS
 
458
 * ===========================================================================
 
459
 */
 
460
 
 
461
/* 
 
462
 * Routines with standard 4 prefixes (S, D, C, Z)
 
463
 */
 
464
void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
 
465
                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
 
466
                 const int K, const float alpha, const float *A,
 
467
                 const int lda, const float *B, const int ldb,
 
468
                 const float beta, float *C, const int ldc);
 
469
void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
470
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
471
                 const float alpha, const float *A, const int lda,
 
472
                 const float *B, const int ldb, const float beta,
 
473
                 float *C, const int ldc);
 
474
void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
475
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
476
                 const float alpha, const float *A, const int lda,
 
477
                 const float beta, float *C, const int ldc);
 
478
void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
479
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
480
                  const float alpha, const float *A, const int lda,
 
481
                  const float *B, const int ldb, const float beta,
 
482
                  float *C, const int ldc);
 
483
void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
484
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
485
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
486
                 const float alpha, const float *A, const int lda,
 
487
                 float *B, const int ldb);
 
488
void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
489
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
490
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
491
                 const float alpha, const float *A, const int lda,
 
492
                 float *B, const int ldb);
 
493
 
 
494
void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
 
495
                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
 
496
                 const int K, const double alpha, const double *A,
 
497
                 const int lda, const double *B, const int ldb,
 
498
                 const double beta, double *C, const int ldc);
 
499
void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
500
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
501
                 const double alpha, const double *A, const int lda,
 
502
                 const double *B, const int ldb, const double beta,
 
503
                 double *C, const int ldc);
 
504
void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
505
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
506
                 const double alpha, const double *A, const int lda,
 
507
                 const double beta, double *C, const int ldc);
 
508
void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
509
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
510
                  const double alpha, const double *A, const int lda,
 
511
                  const double *B, const int ldb, const double beta,
 
512
                  double *C, const int ldc);
 
513
void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
514
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
515
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
516
                 const double alpha, const double *A, const int lda,
 
517
                 double *B, const int ldb);
 
518
void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
519
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
520
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
521
                 const double alpha, const double *A, const int lda,
 
522
                 double *B, const int ldb);
 
523
 
 
524
void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
 
525
                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
 
526
                 const int K, const void *alpha, const void *A,
 
527
                 const int lda, const void *B, const int ldb,
 
528
                 const void *beta, void *C, const int ldc);
 
529
void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
530
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
531
                 const void *alpha, const void *A, const int lda,
 
532
                 const void *B, const int ldb, const void *beta,
 
533
                 void *C, const int ldc);
 
534
void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
535
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
536
                 const void *alpha, const void *A, const int lda,
 
537
                 const void *beta, void *C, const int ldc);
 
538
void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
539
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
540
                  const void *alpha, const void *A, const int lda,
 
541
                  const void *B, const int ldb, const void *beta,
 
542
                  void *C, const int ldc);
 
543
void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
544
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
545
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
546
                 const void *alpha, const void *A, const int lda,
 
547
                 void *B, const int ldb);
 
548
void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
549
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
550
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
551
                 const void *alpha, const void *A, const int lda,
 
552
                 void *B, const int ldb);
 
553
 
 
554
void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
 
555
                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
 
556
                 const int K, const void *alpha, const void *A,
 
557
                 const int lda, const void *B, const int ldb,
 
558
                 const void *beta, void *C, const int ldc);
 
559
void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
560
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
561
                 const void *alpha, const void *A, const int lda,
 
562
                 const void *B, const int ldb, const void *beta,
 
563
                 void *C, const int ldc);
 
564
void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
565
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
566
                 const void *alpha, const void *A, const int lda,
 
567
                 const void *beta, void *C, const int ldc);
 
568
void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
569
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
570
                  const void *alpha, const void *A, const int lda,
 
571
                  const void *B, const int ldb, const void *beta,
 
572
                  void *C, const int ldc);
 
573
void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
574
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
575
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
576
                 const void *alpha, const void *A, const int lda,
 
577
                 void *B, const int ldb);
 
578
void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
579
                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
 
580
                 const enum CBLAS_DIAG Diag, const int M, const int N,
 
581
                 const void *alpha, const void *A, const int lda,
 
582
                 void *B, const int ldb);
 
583
 
 
584
 
 
585
/* 
 
586
 * Routines with prefixes C and Z only
 
587
 */
 
588
void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
589
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
590
                 const void *alpha, const void *A, const int lda,
 
591
                 const void *B, const int ldb, const void *beta,
 
592
                 void *C, const int ldc);
 
593
void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
594
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
595
                 const float alpha, const void *A, const int lda,
 
596
                 const float beta, void *C, const int ldc);
 
597
void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
598
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
599
                  const void *alpha, const void *A, const int lda,
 
600
                  const void *B, const int ldb, const float beta,
 
601
                  void *C, const int ldc);
 
602
 
 
603
void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
 
604
                 const enum CBLAS_UPLO Uplo, const int M, const int N,
 
605
                 const void *alpha, const void *A, const int lda,
 
606
                 const void *B, const int ldb, const void *beta,
 
607
                 void *C, const int ldc);
 
608
void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
609
                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
610
                 const double alpha, const void *A, const int lda,
 
611
                 const double beta, void *C, const int ldc);
 
612
void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
 
613
                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
 
614
                  const void *alpha, const void *A, const int lda,
 
615
                  const void *B, const int ldb, const double beta,
 
616
                  void *C, const int ldc);
 
617
 
 
618
void cblas_xerbla(int p, const char *rout, const char *form, ...);
 
619
 
 
620
#ifdef __cplusplus
 
621
}
 
622
#endif
 
623
 
 
624
#endif