/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/blas.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
/* (C)Copyright 2007,2008,                                         */
 
3
/* International Business Machines Corporation                     */
 
4
/* All Rights Reserved.                                            */
 
5
/*                                                                 */
 
6
/* Redistribution and use in source and binary forms, with or      */
 
7
/* without modification, are permitted provided that the           */
 
8
/* following conditions are met:                                   */
 
9
/*                                                                 */
 
10
/* - Redistributions of source code must retain the above copyright*/
 
11
/*   notice, this list of conditions and the following disclaimer. */
 
12
/*                                                                 */
 
13
/* - Redistributions in binary form must reproduce the above       */
 
14
/*   copyright notice, this list of conditions and the following   */
 
15
/*   disclaimer in the documentation and/or other materials        */
 
16
/*   provided with the distribution.                               */
 
17
/*                                                                 */
 
18
/* - Neither the name of IBM Corporation nor the names of its      */
 
19
/*   contributors may be used to endorse or promote products       */
 
20
/*   derived from this software without specific prior written     */
 
21
/*   permission.                                                   */
 
22
/*                                                                 */
 
23
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND          */
 
24
/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,     */
 
25
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF        */
 
26
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        */
 
27
/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR            */
 
28
/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,    */
 
29
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT    */
 
30
/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;    */
 
31
/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)        */
 
32
/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN       */
 
33
/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR    */
 
34
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  */
 
35
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.              */
 
36
/* --------------------------------------------------------------  */
 
37
/* PROLOG END TAG zYx                                              */
 
38
 
 
39
/* *****************************************************************************
 
40
 * Purpose : Prototypes for BLAS functions   
 
41
 *     
 
42
 **************************************************************************** */
 
43
 
 
44
#ifndef __BLAS_H__
 
45
#define __BLAS_H__
 
46
 
 
47
#ifdef __cplusplus
 
48
extern "C"
 
49
{
 
50
#endif
 
51
 
 
52
typedef struct { float r, i; } blas_complex;
 
53
typedef struct { double r, i; } blas_doublecomplex;
 
54
 
 
55
#define complex blas_complex
 
56
#define doublecomplex blas_doublecomplex
 
57
 
 
58
 
 
59
    // SP level 1 //
 
60
    extern double snrm2_(int *, float *, int *);
 
61
    extern double sasum_(int *, float *, int *);
 
62
    extern int sswap_(int *, float *, int *, float *, int *);
 
63
    extern int srot_(int *, float *, int *, float *, int *, float *, float *);
 
64
    extern int srotg_(float *, float *, float *, float *);
 
65
    extern int sscal_(int *, float *, float *, int *);
 
66
    extern int isamax_(int *, float *, int *);
 
67
    extern double sdot_(int *, float *, int *, float *, int *);
 
68
    extern int scopy_(int *, float *, int *, float *, int *);
 
69
    extern int saxpy_(int *, float *, float *, int *, float *, int *) ;
 
70
 
 
71
    // DP level 1 //
 
72
    extern int drotg_(double *, double *, double *, double *);
 
73
    extern double dnrm2_(int *, double *, int *);
 
74
    extern double dasum_(int *, double *, int *);
 
75
    extern int dswap_(int *, double *, int *, double *, int *);
 
76
    extern int drot_(int *, double *, int *, double *, int *, double *, double *);
 
77
    extern int idamax_(int *, double *, int *);
 
78
    extern int dscal_(int *, double *, double *, int *);
 
79
    extern double ddot_(int *, double *, int *, double *, int *);
 
80
    extern int dcopy_(int *, double *, int *, double *, int *);
 
81
    extern int daxpy_(int *, double *, double *, int *, double *, int *); 
 
82
 
 
83
 
 
84
    // SP level 2 //
 
85
    extern int sgbmv_(char *, int *, int *, int * , int *, float *, float *, int *, float *, int *, float *, float *, int *);
 
86
    extern int sspmv_(char *, int *, float *, float *, float *, int *, float *, float *, int *);
 
87
    extern int ssymv_(char *, int *, float *, float *, int *, float *, int *, float *, float *, int *);
 
88
    extern int sgemv_(char *, int *, int * , float *, float *, int *, float *, int *, float *, float *, int *);
 
89
    extern int ssbmv_(char *, int *, int *, float *, float *, int *, float *, int *, float *, float *, int *);
 
90
    extern int stpmv_(char *, char *, char *, int *, float *, float *, int *);
 
91
    extern int strmv_(char *, char *, char *, int *, float *, int *, float *, int *);
 
92
    extern int stpsv_(char *, char *, char *, int *, float *, float *, int *);
 
93
    extern int strsv_(char *, char *, char *, int *, float *, int *, float *, int *);
 
94
    extern int stbmv_(char *, char *, char *, int *, int *, float *, int *, float *, int *);
 
95
    extern int stbsv_(char *, char *, char *, int *, int *, float *, int *, float *, int *);
 
96
    extern int sger_(int *, int *, float *, float *, int *, float *, int *, float *, int *);
 
97
    extern int sspr_(char *, int *, float *, float *, int *, float *);
 
98
    extern int ssyr_(char *, int *, float *, float *, int *, float *, int *);
 
99
    extern int ssyr2_(char *, int *, float *, float *, int *, float *, int *, float *, int *);
 
100
    extern int sspr2_(char *, int *, float *, float *, int *, float *, int *, float *);
 
101
 
 
102
    // DP level 2 //
 
103
    extern int dgbmv_(char *, int *, int *, int * , int *, double *, double *, int *, double *, int *, double *, double *, int *);
 
104
    extern int dgemv_(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
 
105
    extern int dsymv_(char *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
 
106
    extern int dsbmv_(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
 
107
    extern int dspmv_(char *, int *, double *, double *, double *, int *, double *, double *, int *);
 
108
    extern int dtpmv_(char *, char *, char *, int *, double *, double *, int *);
 
109
    extern int dtrmv_(char *, char *, char *, int *, double *, int *, double *, int *);
 
110
    extern int dtpsv_(char *, char *, char *, int *, double *, double *, int *);
 
111
    extern int dtbmv_(char *, char *, char *, int *, int *, double *, int *, double *, int *);
 
112
    extern int dtrsv_(char *, char *, char *, int *, double *, int *, double *, int *);
 
113
    extern int dtbsv_(char *, char *, char *, int *, int *, double *, int *, double *, int *);
 
114
    extern int dger_(int *, int *, double *, double *, int *, double *, int *, double *, int *);
 
115
    extern int dsyr_(char *, int *, double *, double *, int *, double *, int *);
 
116
    extern int dspr_(char *, int *, double *, double *, int *, double *);
 
117
    extern int dspr2_(char *, int *, double *, double *, int *, double *, int *, double *);
 
118
    extern int dsyr2_(char *, int *, double *, double *, int *, double *, int *, double *, int *);
 
119
 
 
120
    // SP level 3 //
 
121
    extern int sgemm_(char *, char *, int *, int *, int *, float *, float *, 
 
122
                      int *, float *, int *, float *, float *, int *);
 
123
    extern int ssyrk_(char *, char *, int *, int *, float *, float *, int *, 
 
124
                      float *, float *, int *);
 
125
    extern int strsm_(char *, char *, char *, char *, int *, int *, float *, 
 
126
                      float *, int *, float *, int *);
 
127
    extern int strmm_(char *, char *, char *, char *, int *, int *, float *, 
 
128
                      float *, int *, float *, int *);
 
129
    extern int ssymm_(char *, char *, int *, int *, float *, float *, int *, 
 
130
                      float *, int *, float *, float *, int *);
 
131
    extern int ssyr2k_(char *, char *, int *, int *, float *, float *, int *,
 
132
                       float *, int *, float *, float *, int *);
 
133
 
 
134
    //DP level 3 //
 
135
    extern int dgemm_(char *, char *, int *, int *, int *, double *, double *, 
 
136
                      int *, double *, int *, double *, double *, int *); 
 
137
    extern int dsyrk_(char *, char *, int *, int *,
 
138
                      double *, double *, int *, double *, double *, int *);
 
139
    extern int dtrsm_(char *, char *, char *, char *, int *, int *,
 
140
                      double *, double *, int *, double *, int *);
 
141
    extern int dtrmm_(char *, char *, char *, char *, int *, int *,
 
142
                      double *, double *, int *, double *, int *);
 
143
    extern int dsyr2k_(char *, char *, int *, int *, double *, double *, 
 
144
                       int *, double *, int *, double *, double *, int *);
 
145
    extern int dsymm_(char *, char *, int *, int *, double *, double *, int *, double *, int *,
 
146
                      double *, double *, int *);
 
147
                      
 
148
    /*Complex Routines*/
 
149
    extern void 
 
150
    cdotu_(complex* retval,
 
151
           int* N, 
 
152
           complex* X, int* incX, 
 
153
           complex* Y, int* incY);
 
154
    
 
155
    extern void
 
156
    cdotc_(complex* retval,
 
157
           int* N, 
 
158
           complex* X, int* incX, 
 
159
           complex* Y, int* incY);
 
160
    
 
161
    extern int
 
162
    icamax_(int* N,
 
163
            complex* X, int* incX);
 
164
    
 
165
    extern int
 
166
    cswap_(int* N,
 
167
           complex* X, int* incX,
 
168
           complex* Y, int* incY);
 
169
    
 
170
    extern int
 
171
    ccopy_(int* N,
 
172
           complex* X, int* incX,
 
173
           complex* Y, int* incY);
 
174
    
 
175
    extern int
 
176
    caxpy_(int* N,
 
177
          complex* alpha,
 
178
          complex* X, int* incX,
 
179
          complex* Y, int* incY);
 
180
    
 
181
    extern int 
 
182
    csrot_(int* N, 
 
183
           complex* X, 
 
184
           int* incX,
 
185
            complex* Y,
 
186
            int* incY,
 
187
             float* c,
 
188
             float* s);
 
189
    extern int
 
190
    cscal_(int* N,
 
191
           complex* alpha,
 
192
           complex* X, int* incX);
 
193
    extern int
 
194
    csscal_(int* N,
 
195
            float* alpha,
 
196
            complex* X, int* incX);
 
197
    extern int
 
198
    cgemv_(char* trans, int* M, int* N,
 
199
           complex* alpha,
 
200
           complex* A, int* lda,
 
201
           complex* X, int* incX,
 
202
           complex* beta,
 
203
           complex* Y, int* incY);
 
204
    
 
205
    extern int 
 
206
    cgbmv_(char *trans, int *M, int *N, int *KL, int *KU, 
 
207
           complex *alpha, 
 
208
           complex *A, int *lda, 
 
209
           complex *X, int *incX, 
 
210
           complex *beta, 
 
211
           complex *Y, int *incY);
 
212
    
 
213
    extern int 
 
214
    ctrmv_(char* uplo, char *trans, char* diag, int *N,  
 
215
           complex *A, int *lda, 
 
216
           complex *X, int *incX);
 
217
    
 
218
    extern int
 
219
    ctbmv_(char* uplo, char* trans, char* diag, int* N, int* K,
 
220
           complex* A, int* lda,
 
221
           complex* X, int* incX);
 
222
    
 
223
    extern int
 
224
    ctpmv_(char* uplo, char* trans, char* diag, int* N, 
 
225
           complex* Ap, 
 
226
           complex* X, int* incX);
 
227
    
 
228
    extern int
 
229
    ctrsv_(char* uplo, char* trans, char* diag, int* N,
 
230
           complex* A, int* lda,
 
231
           complex* X, int* incX);
 
232
    
 
233
    extern int
 
234
    ctbsv_(char* uplo, char* trans, char* diag, int* N, int* K,
 
235
           complex* A, int* lda, 
 
236
           complex* X, int* incX);
 
237
    
 
238
    extern int
 
239
    ctpsv_(char* uplo, char* trans, char* diag, int* N, 
 
240
           complex* Ap, 
 
241
           complex* X, int* incX);
 
242
    extern int
 
243
    chemv_(char* uplo, int* N,
 
244
           complex* alpha,
 
245
           complex* A, int* lda,
 
246
           complex* X, int* incX,
 
247
           complex* beta,
 
248
           complex* Y, int* incY);
 
249
    
 
250
    extern int
 
251
    chbmv_(char* uplo, int* N, int* K,
 
252
           complex* alpha,
 
253
           complex* A, int* lda,
 
254
           complex* X, int* incX,
 
255
           complex* beta,
 
256
           complex* Y, int* incY);
 
257
    
 
258
    extern int
 
259
    chpmv_(char* uplo, int* N, 
 
260
           complex* alpha,
 
261
           complex* Ap, 
 
262
           complex* X, int* incX,
 
263
           complex* beta,
 
264
           complex* Y, int* incY);
 
265
    
 
266
    extern int
 
267
    cgeru_(int* M, int* N,
 
268
           complex* alpha,
 
269
           complex* X, int* incX,
 
270
           complex* Y, int* incY,
 
271
           complex* A, int* lda);
 
272
    
 
273
    extern int
 
274
    cgerc_(int* M, int* N,
 
275
           complex* alpha,
 
276
           complex* X, int* incX,
 
277
           complex* Y, int* incY,
 
278
           complex* A, int* lda);
 
279
    
 
280
    extern int
 
281
    cher_(char* uplo, int* N,
 
282
          float* alpha,
 
283
          complex* X, int* incX,
 
284
          complex* A, int* lda);
 
285
    
 
286
    extern int
 
287
    chpr_(char* uplo, int* N,
 
288
          float* alpha,
 
289
          complex* X, int* incX,
 
290
          complex* Ap);
 
291
    
 
292
    extern int
 
293
    cher2_(char* uplo, int* N,
 
294
           complex* alpha,
 
295
           complex* X, int* incX,
 
296
           complex* Y, int* incY,
 
297
           complex* A, int* lda);
 
298
    
 
299
    extern int
 
300
    chpr2_(char* uplo, int* N,
 
301
           complex* alpha,
 
302
           complex* X, int* incX,
 
303
           complex* Y, int* incY,
 
304
           complex* Ap);
 
305
    extern int
 
306
    cgemm_(char* transA, char* transB, int* M, int* N, int* K,
 
307
           complex* alpha,
 
308
           complex* A, int* lda,
 
309
           complex* B, int* ldb,
 
310
           complex* beta,
 
311
           complex* C, int* ldc);
 
312
    
 
313
    extern int
 
314
    csymm_(char* side, char* uplo, int* M, int* N,
 
315
           complex* alpha,
 
316
           complex* A, int* lda,
 
317
           complex* B, int* ldb,
 
318
           complex* beta,
 
319
           complex* C, int* ldc);
 
320
    
 
321
    extern int
 
322
    csyrk_(char* uplo, char* trans, int* N, int* K,
 
323
           complex* alpha,
 
324
           complex* A, int* lda,
 
325
           complex* beta,
 
326
           complex* C, int* ldc);
 
327
    
 
328
    extern int
 
329
    csyr2k_(char* uplo, char* trans, int* N, int* K,
 
330
            complex* alpha,
 
331
            complex* A, int* lda,
 
332
            complex* B, int* ldb,
 
333
            complex* beta,
 
334
            complex* C, int* ldc);
 
335
    
 
336
    extern int
 
337
    ctrmm_(char* side, char* uplo, char* trans, char* diag, 
 
338
           int* M, int* N,
 
339
           complex* alpha,
 
340
           complex* A, int* lda,
 
341
           complex* B, int* ldb);
 
342
    
 
343
    extern int 
 
344
    ctrsm_(char* side, char* uplo, char* trans, char* diag,
 
345
           int* M, int* N,
 
346
           complex* alpha,
 
347
           complex* A, int* lda,
 
348
           complex* B, int* ldb);
 
349
    extern int
 
350
    chemm_(char* side, char* uplo, int* M, int* N,
 
351
           complex* alpha,
 
352
           complex* A, int* lda,
 
353
           complex* B, int* ldb,
 
354
           complex* beta,
 
355
           complex* C, int* ldc);
 
356
    
 
357
    extern int
 
358
    cherk_(char* uplo, char* trans, int* N, int* K,
 
359
           float* alpha,
 
360
           complex* A, int* lda,
 
361
           float* beta,
 
362
           complex* C, int* ldc);
 
363
    
 
364
    extern int
 
365
    cher2k_(char* uplo, char* trans, int* N, int* K,
 
366
            complex* alpha,
 
367
            complex* A, int* lda,
 
368
            complex* B, int* ldb,
 
369
            float* beta,
 
370
            complex* C, int* ldc);
 
371
    
 
372
    /* Double Complex Routines */
 
373
    
 
374
    extern void
 
375
    zdotu_(doublecomplex* retval,
 
376
           int* N, 
 
377
           doublecomplex* X, int* incX, 
 
378
           doublecomplex* Y, int* incY);
 
379
    
 
380
    extern void
 
381
    zdotc_(doublecomplex* retval,
 
382
           int* N, 
 
383
           doublecomplex* X, int* incX, 
 
384
           doublecomplex* Y, int* incY);
 
385
    extern double 
 
386
    dznrm2_(int* N, 
 
387
            doublecomplex* X, int* incX);
 
388
    
 
389
    extern double
 
390
    dzasum_(int* N, 
 
391
            doublecomplex* X, int* incX);
 
392
    extern int
 
393
    izamax_(int* N,
 
394
            doublecomplex* X, int* incX);
 
395
    
 
396
    extern int
 
397
    zswap_(int* N,
 
398
           doublecomplex* X, int* incX,
 
399
           doublecomplex* Y, int* incY);
 
400
    
 
401
    extern int
 
402
    zcopy_(int* N,
 
403
           doublecomplex* X, int* incX,
 
404
           doublecomplex* Y, int* incY);
 
405
    
 
406
    extern int
 
407
    zaxpy_(int* N,
 
408
           doublecomplex* alpha,
 
409
           doublecomplex* X, int* incX,
 
410
           doublecomplex* Y, int* incY);
 
411
    
 
412
    extern int  
 
413
    zdrot_(int* N, 
 
414
           doublecomplex* X, 
 
415
           int* incX,
 
416
           doublecomplex* Y,
 
417
           int* incY,
 
418
           double* c,
 
419
           double* s);
 
420
    
 
421
    extern int
 
422
    zscal_(int* N,
 
423
           doublecomplex* alpha,
 
424
           doublecomplex* X, int* incX);
 
425
    
 
426
    extern int
 
427
    zdscal_(int* N,
 
428
            double* alpha,
 
429
            doublecomplex* X, int* incX);
 
430
    
 
431
    extern int
 
432
    zgemv_(char* trans, int* M, int* N,
 
433
           doublecomplex* alpha,
 
434
           doublecomplex* A, int* lda,
 
435
           doublecomplex* X, int* incX,
 
436
           doublecomplex* beta,
 
437
           doublecomplex* Y, int* incY);
 
438
    
 
439
    extern int 
 
440
    zgbmv_(char *trans, int *M, int *N, int *KL, int *KU, 
 
441
           doublecomplex *alpha, 
 
442
           doublecomplex *A, int *lda, 
 
443
           doublecomplex *X, int *incX, 
 
444
           doublecomplex *beta, 
 
445
           doublecomplex *Y, int *incY);
 
446
    
 
447
    extern int 
 
448
    ztrmv_(char* uplo, char *trans, char* diag, int *N,  
 
449
           doublecomplex *A, int *lda, 
 
450
           doublecomplex *X, int *incX);
 
451
    
 
452
    extern int
 
453
    ztbmv_(char* uplo, char* trans, char* diag, int* N, int* K,
 
454
           doublecomplex* A, int* lda,
 
455
           doublecomplex* X, int* incX);
 
456
    
 
457
    extern void  
 
458
    ztpmv_(char* uplo, char* trans, char* diag, int* N, 
 
459
          doublecomplex* Ap, 
 
460
          doublecomplex* X, int* incX);
 
461
    
 
462
    extern int
 
463
    ztrsv_(char* uplo, char* trans, char* diag, int* N,
 
464
           doublecomplex* A, int* lda,
 
465
           doublecomplex* X, int* incX);
 
466
    
 
467
    extern int
 
468
    ztbsv_(char* uplo, char* trans, char* diag, int* N, int* K,
 
469
           doublecomplex* A, int* lda, 
 
470
           doublecomplex* X, int* incX);
 
471
    
 
472
    extern int
 
473
    ztpsv_(char* uplo, char* trans, char* diag, int* N, 
 
474
           doublecomplex* Ap, 
 
475
           doublecomplex* X, int* incX);
 
476
    
 
477
    extern int
 
478
    zhemv_(char* uplo, int* N,
 
479
           doublecomplex* alpha,
 
480
           doublecomplex* A, int* lda,
 
481
           doublecomplex* X, int* incX,
 
482
           doublecomplex* beta,
 
483
           doublecomplex* Y, int* incY);
 
484
    
 
485
    extern int
 
486
    zhbmv_(char* uplo, int* N, int* K,
 
487
           doublecomplex* alpha,
 
488
           doublecomplex* A, int* lda,
 
489
           doublecomplex* X, int* incX,
 
490
           doublecomplex* beta,
 
491
           doublecomplex* Y, int* incY);
 
492
    
 
493
    extern int
 
494
    zhpmv_(char* uplo, int* N, 
 
495
           doublecomplex* alpha,
 
496
           doublecomplex* Ap, 
 
497
           doublecomplex* X, int* incX,
 
498
           doublecomplex* beta,
 
499
           doublecomplex* Y, int* incY);
 
500
    
 
501
    extern int
 
502
    zgeru_(int* M, int* N,
 
503
           doublecomplex* alpha,
 
504
           doublecomplex* X, int* incX,
 
505
           doublecomplex* Y, int* incY,
 
506
           doublecomplex* A, int* lda);
 
507
    
 
508
    extern int
 
509
    zgerc_(int* M, int* N,
 
510
           doublecomplex* alpha,
 
511
           doublecomplex* X, int* incX,
 
512
           doublecomplex* Y, int* incY,
 
513
           doublecomplex* A, int* lda);
 
514
    
 
515
    extern int
 
516
    zher_(char* uplo, int* N,
 
517
          double* alpha,
 
518
          doublecomplex* X, int* incX,
 
519
          doublecomplex* A, int* lda);
 
520
    
 
521
    extern int
 
522
    zhpr_(char* uplo, int* N,
 
523
          double* alpha,
 
524
          doublecomplex* X, int* incX,
 
525
          doublecomplex* Ap);
 
526
    
 
527
    extern int
 
528
    zher2_(char* uplo, int* N,
 
529
           doublecomplex* alpha,
 
530
           doublecomplex* X, int* incX,
 
531
           doublecomplex* Y, int* incY,
 
532
           doublecomplex* A, int* lda);
 
533
    
 
534
    extern int
 
535
    zhpr2_(char* uplo, int* N,
 
536
           doublecomplex* alpha,
 
537
           doublecomplex* X, int* incX,
 
538
           doublecomplex* Y, int* incY,
 
539
           doublecomplex* Ap);
 
540
    
 
541
    extern int
 
542
    zgemm_(char* transA, char* transB, int* M, int* N, int* K,
 
543
           doublecomplex* alpha,
 
544
           doublecomplex* A, int* lda,
 
545
           doublecomplex* B, int* ldb,
 
546
           doublecomplex* beta,
 
547
           doublecomplex* C, int* ldc);
 
548
    
 
549
    extern int
 
550
    zsymm_(char* side, char* uplo, int* M, int* N,
 
551
           doublecomplex* alpha,
 
552
           doublecomplex* A, int* lda,
 
553
           doublecomplex* B, int* ldb,
 
554
           doublecomplex* beta,
 
555
           doublecomplex* C, int* ldc);
 
556
    
 
557
    extern int
 
558
    zsyrk_(char* uplo, char* trans, int* N, int* K,
 
559
           doublecomplex* alpha,
 
560
           doublecomplex* A, int* lda,
 
561
           doublecomplex* beta,
 
562
           doublecomplex* C, int* ldc);
 
563
    
 
564
    extern int
 
565
    zsyr2k_(char* uplo, char* trans, int* N, int* K,
 
566
            doublecomplex* alpha,
 
567
            doublecomplex* A, int* lda,
 
568
            doublecomplex* B, int* ldb,
 
569
            doublecomplex* beta,
 
570
            doublecomplex* C, int* ldc);
 
571
    
 
572
    extern int
 
573
    ztrmm_(char* side, char* uplo, char* trans, char* diag, 
 
574
           int* M, int* N,
 
575
           doublecomplex* alpha,
 
576
           doublecomplex* A, int* lda,
 
577
           doublecomplex* B, int* ldb);
 
578
    
 
579
    extern int 
 
580
    ztrsm_(char* side, char* uplo, char* trans, char* diag,
 
581
           int* M, int* N,
 
582
           doublecomplex* alpha,
 
583
           doublecomplex* A, int* lda,
 
584
           doublecomplex* B, int* ldb);
 
585
    
 
586
    extern int
 
587
    zhemm_(char* side, char* uplo, int* M, int* N,
 
588
           doublecomplex* alpha,
 
589
           doublecomplex* A, int* lda,
 
590
           doublecomplex* B, int* ldb,
 
591
           doublecomplex* beta,
 
592
           doublecomplex* C, int* ldc);
 
593
    
 
594
    extern int
 
595
    zherk_(char* uplo, char* trans, int* N, int* K,
 
596
           double* alpha,
 
597
           doublecomplex* A, int* lda,
 
598
           double* beta,
 
599
           doublecomplex* C, int* ldc);
 
600
    
 
601
    extern int
 
602
    zher2k_(char* uplo, char* trans, int* N, int* K,
 
603
            doublecomplex* alpha,
 
604
            doublecomplex* A, int* lda,
 
605
            doublecomplex* B, int* ldb,
 
606
            double* beta,
 
607
            doublecomplex* C, int* ldc);
 
608
     
 
609
#ifdef __cplusplus
 
610
}
 
611
#endif                                
 
612
 
 
613
#endif