ScaLAPACK 2.1
2.1
ScaLAPACK: Scalable Linear Algebra PACKage
pblas.h
Go to the documentation of this file.
1
/* ---------------------------------------------------------------------
2
*
3
* -- ScaLAPACK routine (version 1.0) --
4
* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
5
* and University of California, Berkeley.
6
* November 17, 1996
7
*
8
* ---------------------------------------------------------------------
9
*/
10
11
/*
12
* This file includes the standard C libraries, as well as system
13
* dependent include files. All PBLAS routines include this file.
14
*/
15
16
/*
17
* ========================================================================
18
* Machine Specific PBLAS macros
19
* ========================================================================
20
*/
21
22
#define _HAL_ 0
23
#define _T3D_ 1
24
25
#ifdef T3D
26
#define _MACH_ _T3D_
27
#endif
28
29
#ifndef _MACH_
30
#define _MACH_ _HAL_
31
#endif
32
33
/*
34
* ========================================================================
35
* Include files
36
* ========================================================================
37
*/
38
#include <stdio.h>
39
#include <stdlib.h>
40
41
#if( _MACH_ == _T3D_ )
42
#include <fortran.h>
43
#endif
44
45
/*
46
* ========================================================================
47
* FORTRAN <-> C interface
48
* ========================================================================
49
*
50
* These macros define how the PBLAS will be called. _F2C_ADD_ assumes
51
* that they will be called by FORTRAN, which expects C routines to have
52
* an underscore postfixed to the name (Suns, and Intel machines expect
53
* this). _F2C_NOCHANGE indicates that FORTRAN will be calling, and that
54
* it expects the name called by FORTRAN to be identical to that compiled
55
* by the C (RS6K's do this). _F2C_UPCASE says it expects C routines
56
* called by FORTRAN to be in all upcase (CRAY wants this).
57
* _F2C_F77ISF2C indicates that the fortran "compiler" in use is
58
* actually f2c, a FORTRAN to C converter.
59
*/
60
61
#define _F2C_ADD_ 0
62
#define _F2C_NOCHANGE 1
63
#define _F2C_UPCASE 2
64
#define _F2C_F77ISF2C 3
65
66
#ifdef UpCase
67
#define _F2C_CALL_ _F2C_UPCASE
68
#endif
69
70
#ifdef NoChange
71
#define _F2C_CALL_ _F2C_NOCHANGE
72
#endif
73
74
#ifdef Add_
75
#define _F2C_CALL_ _F2C_ADD_
76
#endif
77
78
#ifdef f77IsF2C
79
#define _F2C_CALL_ _F2C_F77ISF2C
80
#endif
81
82
#ifndef _F2C_CALL_
83
#define _F2C_CALL_ _F2C_ADD_
84
#endif
85
86
/*
87
* ========================================================================
88
* TYPE DEFINITIONS AND CONVERSION UTILITIES
89
* ========================================================================
90
*/
91
92
typedef
struct
{
float
re
, im; }
complex
;
93
typedef
struct
{
double
re
, im; }
complex16
;
94
95
#if( _MACH_ == _T3D_ )
96
#define float double
97
/* Type of character argument in a FORTRAN call */
98
#define F_CHAR _fcd
99
/* Character conversion utilities */
100
#define F2C_CHAR(a) ( _fcdtocp( (a) ) )
101
#define C2F_CHAR(a) ( _cptofcd( (a), 1 ) )
102
/* Type of FORTRAN functions */
103
#define F_VOID_FCT void fortran
/* Subroutine */
104
#define F_INTG_FCT int fortran
/* INTEGER function */
105
#define F_DBLE_FCT double fortran
/* DOUBLE PRECISION function */
106
107
#else
108
/* Type of character argument in a FORTRAN call */
109
typedef
char
*
F_CHAR
;
110
/* Character conversion utilities */
111
#define F2C_CHAR(a) (a)
112
#define C2F_CHAR(a) (a)
113
/* Type of FORTRAN functions */
114
#define F_VOID_FCT void
/* Subroutine */
115
#define F_INTG_FCT int
/* INTEGER function */
116
#define F_DBLE_FCT double
/* DOUBLE PRECISION function */
117
118
#endif
119
120
/*
121
* ========================================================================
122
* #DEFINE MACRO CONSTANTS
123
* ========================================================================
124
*/
125
#define DLEN_ 9
/* Length of a descriptor */
126
#define DT_ 0
/* Descriptor Type */
127
#define CTXT_ 1
/* BLACS context */
128
#define M_ 2
/* Global Number of Rows */
129
#define N_ 3
/* Global Number of Columns */
130
#define MB_ 4
/* Row Blocking Size */
131
#define NB_ 5
/* Column Blocking Size */
132
#define RSRC_ 6
/* Starting Processor Row */
133
#define CSRC_ 7
/* Starting Processor Column */
134
#define LLD_ 8
/* Local Leading Dimension */
135
136
/*
137
* Descriptor types
138
*/
139
#define BLOCK_CYCLIC_2D 1
140
#define BLOCK_CYCLIC_INB_2D 2
141
142
#define BROADCAST "B"
/* Blacs operation definitions */
143
#define COMBINE "C"
144
145
#define ALL "A"
/* Scope definitions */
146
#define COLUMN "C"
147
#define ROW "R"
148
149
#define TOPDEF " "
/* Default BLACS topology, PB-BLAS routines */
150
#define CTOPDEF ' '
151
#define TOPGET "!"
152
153
#define YES "Y"
154
#define NO "N"
155
156
#define MULLENFAC 2
157
158
#define ONE 1.0
159
#define ZERO 0.0
160
161
/*
162
* ========================================================================
163
* PREPROCESSOR MACRO FUNCTIONS USED FOR OPTIMIZATION & CONVENIENCE
164
* ========================================================================
165
*/
166
167
#define ABS(a) (((a) < 0) ? -(a) : (a))
168
169
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
170
171
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
172
173
#define CEIL(a,b) ( ((a)+(b)-1) / (b) )
174
175
#define Mlowcase(C) ( ((C) > 64 && (C) < 91) ? (C) | 32 : (C) )
176
177
#define Mupcase(C) ( ((C) > 96 && (C) < 123) ? (C) & 0xDF : (C) )
178
179
#define INDXG2L( iglob, nb, iproc, isrcproc, nprocs )\
180
( (nb) * ( ( (iglob)-1) / ( (nb) * (nprocs) ) ) +\
181
( ( (iglob) - 1 ) % (nb) ) + 1 )
182
183
#define INDXL2G( iloc, nb, iproc, isrcproc, nprocs )\
184
( (nprocs) * (nb) * ( ( (iloc) - 1 ) / (nb) ) +\
185
( ( (iloc) - 1 ) % (nb) ) +\
186
( ( (nprocs) + (iproc) - (isrcproc) ) % (nprocs) ) * (nb) + 1 )
187
188
#define INDXG2P( iglob, nb, iproc, isrcproc, nprocs ) \
189
( ( (isrcproc) + ( (iglob) - 1 ) / (nb) ) % (nprocs) )
190
191
#define MYROC0( nblocks, n, nb, nprocs )\
192
( ( (nblocks) % (nprocs) ) ? ( ( (nblocks) / (nprocs) ) * (nb) + (nb) )\
193
: ( ( (nblocks) / (nprocs) )* (nb) + ( (n) % (nb) ) ) )
194
195
#if( _F2C_CALL_ == _F2C_ADD_ )
196
/*
197
* These defines set up the naming scheme required to have a FORTRAN
198
* routine call a C routine (which is what the PBLAS are written in).
199
* No redefinition necessary to have following FORTRAN to C interface:
200
* FORTRAN CALL C DECLARATION
201
* call pdgemm(...) void pdgemm_(...)
202
*
203
* This is the default.
204
*/
205
206
#endif
207
208
#if( _F2C_CALL_ == _F2C_UPCASE )
209
/*
210
* These defines set up the naming scheme required to have a FORTRAN
211
* routine call a C routine (which is what the PBLAS are written in)
212
* following FORTRAN to C interface:
213
* FORTRAN CALL C DECLARATION
214
* call pdgemm(...) void PDGEMM(...)
215
*/
216
/* TOOLS */
217
#define ilcm_ ILCM
218
#define infog2l_ INFOG2L
219
#define numroc_ NUMROC
220
#define pstreecomb_ PSTREECOMB
221
#define pdtreecomb_ PDTREECOMB
222
#define pctreecomb_ PCTREECOMB
223
#define pztreecomb_ PZTREECOMB
224
#define scombamax_ SCOMBAMAX
225
#define dcombamax_ DCOMBAMAX
226
#define ccombamax_ CCOMBAMAX
227
#define zcombamax_ ZCOMBAMAX
228
#define scombnrm2_ SCOMBNRM2
229
#define dcombnrm2_ DCOMBNRM2
230
231
#define dlamov_ DLAMOV
232
#define slamov_ SLAMOV
233
#define clamov_ CLAMOV
234
#define zlamov_ ZLAMOV
235
#define dlacpy_ DLACPY
236
#define slacpy_ SLACPY
237
#define clacpy_ CLACPY
238
#define zlacpy_ ZLACPY
239
#define xerbla_ XERBLA
240
/* BLACS */
241
#define blacs_abort_ BLACS_ABORT
242
#define blacs_gridinfo_ BLACS_GRIDINFO
243
244
#define igesd2d_ IGESD2D
245
#define igebs2d_ IGEBS2D
246
#define itrsd2d_ ITRSD2D
247
#define itrbs2d_ ITRBS2D
248
#define igerv2d_ IGERV2D
249
#define igebr2d_ IGEBR2D
250
#define itrrv2d_ ITRRV2D
251
#define itrbr2d_ ITRBR2D
252
#define igamx2d_ IGAMX2D
253
#define igamn2d_ IGAMN2D
254
#define igsum2d_ IGSUM2D
255
256
#define sgesd2d_ SGESD2D
257
#define sgebs2d_ SGEBS2D
258
#define strsd2d_ STRSD2D
259
#define strbs2d_ STRBS2D
260
#define sgerv2d_ SGERV2D
261
#define sgebr2d_ SGEBR2D
262
#define strrv2d_ STRRV2D
263
#define strbr2d_ STRBR2D
264
#define sgamx2d_ SGAMX2D
265
#define sgamn2d_ SGAMN2D
266
#define sgsum2d_ SGSUM2D
267
268
#define dgesd2d_ DGESD2D
269
#define dgebs2d_ DGEBS2D
270
#define dtrsd2d_ DTRSD2D
271
#define dtrbs2d_ DTRBS2D
272
#define dgerv2d_ DGERV2D
273
#define dgebr2d_ DGEBR2D
274
#define dtrrv2d_ DTRRV2D
275
#define dtrbr2d_ DTRBR2D
276
#define dgamx2d_ DGAMX2D
277
#define dgamn2d_ DGAMN2D
278
#define dgsum2d_ DGSUM2D
279
280
#define cgesd2d_ CGESD2D
281
#define cgebs2d_ CGEBS2D
282
#define ctrsd2d_ CTRSD2D
283
#define ctrbs2d_ CTRBS2D
284
#define cgerv2d_ CGERV2D
285
#define cgebr2d_ CGEBR2D
286
#define ctrrv2d_ CTRRV2D
287
#define ctrbr2d_ CTRBR2D
288
#define cgamx2d_ CGAMX2D
289
#define cgamn2d_ CGAMN2D
290
#define cgsum2d_ CGSUM2D
291
292
#define zgesd2d_ ZGESD2D
293
#define zgebs2d_ ZGEBS2D
294
#define ztrsd2d_ ZTRSD2D
295
#define ztrbs2d_ ZTRBS2D
296
#define zgerv2d_ ZGERV2D
297
#define zgebr2d_ ZGEBR2D
298
#define ztrrv2d_ ZTRRV2D
299
#define ztrbr2d_ ZTRBR2D
300
#define zgamx2d_ ZGAMX2D
301
#define zgamn2d_ ZGAMN2D
302
#define zgsum2d_ ZGSUM2D
303
/* Level-1 BLAS */
304
#define srotg_ SROTG
305
#define srotmg_ SROTMG
306
#define srot_ SROT
307
#define srotm_ SROTM
308
#define sswap_ SSWAP
309
#define sscal_ SSCAL
310
#define scopy_ SCOPY
311
#define saxpy_ SAXPY
312
#define ssdot_ SSDOT
313
#define isamax_ ISAMAX
314
315
#define drotg_ DROTG
316
#define drotmg_ DROTMG
317
#define drot_ DROT
318
#define drotm_ DROTM
319
#define dswap_ DSWAP
320
#define dscal_ DSCAL
321
#define dcopy_ DCOPY
322
#define daxpy_ DAXPY
323
#define dddot_ DDDOT
324
#define dnrm2_ DNRM2
325
#define dsnrm2_ DSNRM2
326
#define dasum_ DASUM
327
#define dsasum_ DSASUM
328
#define idamax_ IDAMAX
329
330
#define cswap_ CSWAP
331
#define cscal_ CSCAL
332
#define csscal_ CSSCAL
333
#define ccopy_ CCOPY
334
#define caxpy_ CAXPY
335
#define ccdotu_ CCDOTU
336
#define ccdotc_ CCDOTC
337
#define icamax_ ICAMAX
338
339
#define zswap_ ZSWAP
340
#define zscal_ ZSCAL
341
#define zdscal_ ZDSCAL
342
#define zcopy_ ZCOPY
343
#define zaxpy_ ZAXPY
344
#define zzdotu_ ZZDOTU
345
#define zzdotc_ ZZDOTC
346
#define dscnrm2_ DSCNRM2
347
#define dznrm2_ DZNRM2
348
#define dscasum_ DSCASUM
349
#define dzasum_ DZASUM
350
#define izamax_ IZAMAX
351
/* Level-2 BLAS */
352
#define sgemv_ SGEMV
353
#define ssymv_ SSYMV
354
#define strmv_ STRMV
355
#define strsv_ STRSV
356
#define sger_ SGER
357
#define ssyr_ SSYR
358
#define ssyr2_ SSYR2
359
360
#define dgemv_ DGEMV
361
#define dsymv_ DSYMV
362
#define dtrmv_ DTRMV
363
#define dtrsv_ DTRSV
364
#define dger_ DGER
365
#define dsyr_ DSYR
366
#define dsyr2_ DSYR2
367
368
#define cgemv_ CGEMV
369
#define chemv_ CHEMV
370
#define ctrmv_ CTRMV
371
#define ctrsv_ CTRSV
372
#define cgeru_ CGERU
373
#define cgerc_ CGERC
374
#define cher_ CHER
375
#define cher2_ CHER2
376
377
#define zgemv_ ZGEMV
378
#define zhemv_ ZHEMV
379
#define ztrmv_ ZTRMV
380
#define ztrsv_ ZTRSV
381
#define zgeru_ ZGERU
382
#define zgerc_ ZGERC
383
#define zher_ ZHER
384
#define zher2_ ZHER2
385
/* Level-3 BLAS */
386
#define sgemm_ SGEMM
387
#define ssymm_ SSYMM
388
#define ssyrk_ SSYRK
389
#define ssyr2k_ SSYR2K
390
#define strmm_ STRMM
391
#define strsm_ STRSM
392
393
#define dgemm_ DGEMM
394
#define dsymm_ DSYMM
395
#define dsyrk_ DSYRK
396
#define dsyr2k_ DSYR2K
397
#define dtrmm_ DTRMM
398
#define dtrsm_ DTRSM
399
400
#define cgemm_ CGEMM
401
#define chemm_ CHEMM
402
#define csymm_ CSYMM
403
#define csyrk_ CSYRK
404
#define cherk_ CHERK
405
#define csyr2k_ CSYR2K
406
#define cher2k_ CHER2K
407
#define ctrmm_ CTRMM
408
#define ctrsm_ CTRSM
409
410
#define zgemm_ ZGEMM
411
#define zhemm_ ZHEMM
412
#define zsymm_ ZSYMM
413
#define zsyrk_ ZSYRK
414
#define zherk_ ZHERK
415
#define zsyr2k_ ZSYR2K
416
#define zher2k_ ZHER2K
417
#define ztrmm_ ZTRMM
418
#define ztrsm_ ZTRSM
419
/* absolute value auxiliary PBLAS */
420
#define psatrmv_ PSATRMV
421
#define pdatrmv_ PDATRMV
422
#define pcatrmv_ PCATRMV
423
#define pzatrmv_ PZATRMV
424
#define psagemv_ PSAGEMV
425
#define pdagemv_ PDAGEMV
426
#define pcagemv_ PCAGEMV
427
#define pzagemv_ PZAGEMV
428
#define psasymv_ PSASYMV
429
#define pdasymv_ PDASYMV
430
#define pcahemv_ PCAHEMV
431
#define pzahemv_ PZAHEMV
432
/* Auxiliary PB-BLAS */
433
#define pbcmatadd_ PBCMATADD
434
#define pbdmatadd_ PBDMATADD
435
#define pbsmatadd_ PBSMATADD
436
#define pbzmatadd_ PBZMATADD
437
/* Level-2 PBBLAS */
438
#define pbcgemv_ PBCGEMV
439
#define pbcgeru_ PBCGERU
440
#define pbcgerc_ PBCGERC
441
#define pbchemv_ PBCHEMV
442
#define pbcher_ PBCHER
443
#define pbcher2_ PBCHER2
444
#define pbctrmv_ PBCTRMV
445
#define pbctrnv_ PBCTRNV
446
#define pbctrsv_ PBCTRSV
447
448
#define pbdgemv_ PBDGEMV
449
#define pbdger_ PBDGER
450
#define pbdsymv_ PBDSYMV
451
#define pbdsyr_ PBDSYR
452
#define pbdsyr2_ PBDSYR2
453
#define pbdtrmv_ PBDTRMV
454
#define pbdtrnv_ PBDTRNV
455
#define pbdtrsv_ PBDTRSV
456
457
#define pbsgemv_ PBSGEMV
458
#define pbsger_ PBSGER
459
#define pbssymv_ PBSSYMV
460
#define pbssyr_ PBSSYR
461
#define pbssyr2_ PBSSYR2
462
#define pbstrmv_ PBSTRMV
463
#define pbstrnv_ PBSTRNV
464
#define pbstrsv_ PBSTRSV
465
466
#define pbzgemv_ PBZGEMV
467
#define pbzgeru_ PBZGERU
468
#define pbzgerc_ PBZGERC
469
#define pbzhemv_ PBZHEMV
470
#define pbzher_ PBZHER
471
#define pbzher2_ PBZHER2
472
#define pbztrmv_ PBZTRMV
473
#define pbztrnv_ PBZTRNV
474
#define pbztrsv_ PBZTRSV
475
/* Level-3 PBBLAS */
476
#define pbcgemm_ PBCGEMM
477
#define pbchemm_ PBCHEMM
478
#define pbcher2k_ PBCHER2K
479
#define pbcherk_ PBCHERK
480
#define pbcsymm_ PBCSYMM
481
#define pbcsyr2k_ PBCSYR2K
482
#define pbcsyrk_ PBCSYRK
483
#define pbctrmm_ PBCTRMM
484
#define pbctrsm_ PBCTRSM
485
#define pbctran_ PBCTRAN
486
487
#define pbdgemm_ PBDGEMM
488
#define pbdsymm_ PBDSYMM
489
#define pbdsyr2k_ PBDSYR2K
490
#define pbdsyrk_ PBDSYRK
491
#define pbdtrmm_ PBDTRMM
492
#define pbdtrsm_ PBDTRSM
493
#define pbdtran_ PBDTRAN
494
495
#define pbsgemm_ PBSGEMM
496
#define pbssymm_ PBSSYMM
497
#define pbssyr2k_ PBSSYR2K
498
#define pbssyrk_ PBSSYRK
499
#define pbstrmm_ PBSTRMM
500
#define pbstrsm_ PBSTRSM
501
#define pbstran_ PBSTRAN
502
503
#define pbzgemm_ PBZGEMM
504
#define pbzhemm_ PBZHEMM
505
#define pbzher2k_ PBZHER2K
506
#define pbzherk_ PBZHERK
507
#define pbzsymm_ PBZSYMM
508
#define pbzsyr2k_ PBZSYR2K
509
#define pbzsyrk_ PBZSYRK
510
#define pbztrmm_ PBZTRMM
511
#define pbztrsm_ PBZTRSM
512
#define pbztran_ PBZTRAN
513
/* Auxilliary PBLAS */
514
#define pberror_ PBERROR
515
#define pb_freebuf_ PB_FREEBUF
516
#define pb_topget_ PB_TOPGET
517
#define pb_topset_ PB_TOPSET
518
/* Level-1 PBLAS */
519
#define psrotg_ PSROTG
520
#define psrotmg_ PSROTMG
521
#define psrot_ PSROT
522
#define psrotm_ PSROTM
523
#define psswap_ PSSWAP
524
#define psscal_ PSSCAL
525
#define pscopy_ PSCOPY
526
#define psaxpy_ PSAXPY
527
#define psdot_ PSDOT
528
#define psnrm2_ PSNRM2
529
#define psasum_ PSASUM
530
#define psamax_ PSAMAX
531
532
#define pdrotg_ PDROTG
533
#define pdrotmg_ PDROTMG
534
#define pdrot_ PDROT
535
#define pdrotm_ PDROTM
536
#define pdswap_ PDSWAP
537
#define pdscal_ PDSCAL
538
#define pdcopy_ PDCOPY
539
#define pdaxpy_ PDAXPY
540
#define pddot_ PDDOT
541
#define pdnrm2_ PDNRM2
542
#define pdasum_ PDASUM
543
#define pdamax_ PDAMAX
544
545
#define pcswap_ PCSWAP
546
#define pcscal_ PCSCAL
547
#define pcsscal_ PCSSCAL
548
#define pccopy_ PCCOPY
549
#define pcaxpy_ PCAXPY
550
#define pcdotu_ PCDOTU
551
#define pcdotc_ PCDOTC
552
#define pscnrm2_ PSCNRM2
553
#define pscasum_ PSCASUM
554
#define pcamax_ PCAMAX
555
#define pcrot_ PCROT
556
#define crot_ CROT
557
558
#define pzswap_ PZSWAP
559
#define pzscal_ PZSCAL
560
#define pzdscal_ PZDSCAL
561
#define pzcopy_ PZCOPY
562
#define pzaxpy_ PZAXPY
563
#define pzdotu_ PZDOTU
564
#define pzdotc_ PZDOTC
565
#define pdznrm2_ PDZNRM2
566
#define pdzasum_ PDZASUM
567
#define pzamax_ PZAMAX
568
#define pzrot_ PZROT
569
#define zrot_ ZROT
570
/* Level-2 PBLAS */
571
#define pcgemv_ PCGEMV
572
#define pcgeru_ PCGERU
573
#define pcgerc_ PCGERC
574
#define pchemv_ PCHEMV
575
#define pcher_ PCHER
576
#define pcher2_ PCHER2
577
#define pctrmv_ PCTRMV
578
#define pctrsv_ PCTRSV
579
580
#define pdgemv_ PDGEMV
581
#define pdger_ PDGER
582
#define pdsymv_ PDSYMV
583
#define pdsyr_ PDSYR
584
#define pdsyr2_ PDSYR2
585
#define pdtrmv_ PDTRMV
586
#define pdtrsv_ PDTRSV
587
588
#define psgemv_ PSGEMV
589
#define psger_ PSGER
590
#define pssymv_ PSSYMV
591
#define pssyr_ PSSYR
592
#define pssyr2_ PSSYR2
593
#define pstrmv_ PSTRMV
594
#define pstrsv_ PSTRSV
595
596
#define pzgemv_ PZGEMV
597
#define pzgeru_ PZGERU
598
#define pzgerc_ PZGERC
599
#define pzhemv_ PZHEMV
600
#define pzher_ PZHER
601
#define pzher2_ PZHER2
602
#define pztrmv_ PZTRMV
603
#define pztrsv_ PZTRSV
604
/* Level-3 PBLAS */
605
#define pcgemm_ PCGEMM
606
#define pchemm_ PCHEMM
607
#define pcher2k_ PCHER2K
608
#define pcherk_ PCHERK
609
#define pcsymm_ PCSYMM
610
#define pcsyr2k_ PCSYR2K
611
#define pcsyrk_ PCSYRK
612
#define pctrmm_ PCTRMM
613
#define pctrsm_ PCTRSM
614
#define pctranu_ PCTRANU
615
#define pctranc_ PCTRANC
616
617
#define pdgemm_ PDGEMM
618
#define pdsymm_ PDSYMM
619
#define pdsyr2k_ PDSYR2K
620
#define pdsyrk_ PDSYRK
621
#define pdtrmm_ PDTRMM
622
#define pdtrsm_ PDTRSM
623
#define pdtran_ PDTRAN
624
625
#define psgemm_ PSGEMM
626
#define pssymm_ PSSYMM
627
#define pssyr2k_ PSSYR2K
628
#define pssyrk_ PSSYRK
629
#define pstrmm_ PSTRMM
630
#define pstrsm_ PSTRSM
631
#define pstran_ PSTRAN
632
633
#define pzgemm_ PZGEMM
634
#define pzhemm_ PZHEMM
635
#define pzher2k_ PZHER2K
636
#define pzherk_ PZHERK
637
#define pzsymm_ PZSYMM
638
#define pzsyr2k_ PZSYR2K
639
#define pzsyrk_ PZSYRK
640
#define pztrmm_ PZTRMM
641
#define pztrsm_ PZTRSM
642
#define pztranu_ PZTRANU
643
#define pztranc_ PZTRANC
644
645
#endif
646
647
#if( _F2C_CALL_ == _F2C_NOCHANGE )
648
/*
649
* These defines set up the naming scheme required to have a FORTRAN
650
* routine call a C routine (which is what the PBLAS are written in)
651
* for following FORTRAN to C interface:
652
* FORTRAN CALL C DECLARATION
653
* call pdgemm(...) void pdgemm(...)
654
*/
655
/* TOOLS */
656
#define ilcm_ ilcm
657
#define infog2l_ infog2l
658
#define numroc_ numroc
659
#define pstreecomb_ pstreecomb
660
#define pdtreecomb_ pdtreecomb
661
#define pctreecomb_ pctreecomb
662
#define pztreecomb_ pztreecomb
663
#define scombamax_ scombamax
664
#define dcombamax_ dcombamax
665
#define ccombamax_ ccombamax
666
#define zcombamax_ zcombamax
667
#define scombnrm2_ scombnrm2
668
#define dcombnrm2_ dcombnrm2
669
670
#define dlamov_ dlamov
671
#define slamov_ slamov
672
#define clamov_ clamov
673
#define zlamov_ zlamov
674
#define dlacpy_ dlacpy
675
#define slacpy_ slacpy
676
#define clacpy_ clacpy
677
#define zlacpy_ zlacpy
678
#define xerbla_ xerbla
679
/* BLACS */
680
#define blacs_abort_ blacs_abort
681
#define blacs_gridinfo_ blacs_gridinfo
682
683
#define igesd2d_ igesd2d
684
#define igebs2d_ igebs2d
685
#define itrsd2d_ itrsd2d
686
#define itrbs2d_ itrbs2d
687
#define igerv2d_ igerv2d
688
#define igebr2d_ igebr2d
689
#define itrrv2d_ itrrv2d
690
#define itrbr2d_ itrbr2d
691
#define igamx2d_ igamx2d
692
#define igamn2d_ igamn2d
693
#define igsum2d_ igsum2d
694
695
#define sgesd2d_ sgesd2d
696
#define sgebs2d_ sgebs2d
697
#define strsd2d_ strsd2d
698
#define strbs2d_ strbs2d
699
#define sgerv2d_ sgerv2d
700
#define sgebr2d_ sgebr2d
701
#define strrv2d_ strrv2d
702
#define strbr2d_ strbr2d
703
#define sgamx2d_ sgamx2d
704
#define sgamn2d_ sgamn2d
705
#define sgsum2d_ sgsum2d
706
707
#define dgesd2d_ dgesd2d
708
#define dgebs2d_ dgebs2d
709
#define dtrsd2d_ dtrsd2d
710
#define dtrbs2d_ dtrbs2d
711
#define dgerv2d_ dgerv2d
712
#define dgebr2d_ dgebr2d
713
#define dtrrv2d_ dtrrv2d
714
#define dtrbr2d_ dtrbr2d
715
#define dgamx2d_ dgamx2d
716
#define dgamn2d_ dgamn2d
717
#define dgsum2d_ dgsum2d
718
719
#define cgesd2d_ cgesd2d
720
#define cgebs2d_ cgebs2d
721
#define ctrsd2d_ ctrsd2d
722
#define ctrbs2d_ ctrbs2d
723
#define cgerv2d_ cgerv2d
724
#define cgebr2d_ cgebr2d
725
#define ctrrv2d_ ctrrv2d
726
#define ctrbr2d_ ctrbr2d
727
#define cgamx2d_ cgamx2d
728
#define cgamn2d_ cgamn2d
729
#define cgsum2d_ cgsum2d
730
731
#define zgesd2d_ zgesd2d
732
#define zgebs2d_ zgebs2d
733
#define ztrsd2d_ ztrsd2d
734
#define ztrbs2d_ ztrbs2d
735
#define zgerv2d_ zgerv2d
736
#define zgebr2d_ zgebr2d
737
#define ztrrv2d_ ztrrv2d
738
#define ztrbr2d_ ztrbr2d
739
#define zgamx2d_ zgamx2d
740
#define zgamn2d_ zgamn2d
741
#define zgsum2d_ zgsum2d
742
/* Level-1 BLAS */
743
#define srotg_ srotg
744
#define srotmg_ srotmg
745
#define srot_ srot
746
#define srotm_ srotm
747
#define sswap_ sswap
748
#define sscal_ sscal
749
#define scopy_ scopy
750
#define saxpy_ saxpy
751
#define ssdot_ ssdot
752
#define isamax_ isamax
753
754
#define drotg_ drotg
755
#define drotmg_ drotmg
756
#define drot_ drot
757
#define drotm_ drotm
758
#define dswap_ dswap
759
#define dscal_ dscal
760
#define dcopy_ dcopy
761
#define daxpy_ daxpy
762
#define dddot_ dddot
763
#define dnrm2_ dnrm2
764
#define dsnrm2_ dsnrm2
765
#define dasum_ dasum
766
#define dsasum_ dsasum
767
#define idamax_ idamax
768
769
#define cswap_ cswap
770
#define cscal_ cscal
771
#define csscal_ csscal
772
#define ccopy_ ccopy
773
#define caxpy_ caxpy
774
#define ccdotu_ ccdotu
775
#define ccdotc_ ccdotc
776
#define icamax_ icamax
777
778
#define zswap_ zswap
779
#define zscal_ zscal
780
#define zdscal_ zdscal
781
#define zcopy_ zcopy
782
#define zaxpy_ zaxpy
783
#define zzdotu_ zzdotu
784
#define zzdotc_ zzdotc
785
#define dscnrm2_ dscnrm2
786
#define dznrm2_ dznrm2
787
#define dscasum_ dscasum
788
#define dzasum_ dzasum
789
#define izamax_ izamax
790
/* Level-2 BLAS */
791
#define sgemv_ sgemv
792
#define ssymv_ ssymv
793
#define strmv_ strmv
794
#define strsv_ strsv
795
#define sger_ sger
796
#define ssyr_ ssyr
797
#define ssyr2_ ssyr2
798
799
#define dgemv_ dgemv
800
#define dsymv_ dsymv
801
#define dtrmv_ dtrmv
802
#define dtrsv_ dtrsv
803
#define dger_ dger
804
#define dsyr_ dsyr
805
#define dsyr2_ dsyr2
806
807
#define cgemv_ cgemv
808
#define chemv_ chemv
809
#define ctrmv_ ctrmv
810
#define ctrsv_ ctrsv
811
#define cgeru_ cgeru
812
#define cgerc_ cgerc
813
#define cher_ cher
814
#define cher2_ cher2
815
816
#define zgemv_ zgemv
817
#define zhemv_ zhemv
818
#define ztrmv_ ztrmv
819
#define ztrsv_ ztrsv
820
#define zgeru_ zgeru
821
#define zgerc_ zgerc
822
#define zher_ zher
823
#define zher2_ zher2
824
/* Level-3 BLAS */
825
#define sgemm_ sgemm
826
#define ssymm_ ssymm
827
#define ssyrk_ ssyrk
828
#define ssyr2k_ ssyr2k
829
#define strmm_ strmm
830
#define strsm_ strsm
831
832
#define dgemm_ dgemm
833
#define dsymm_ dsymm
834
#define dsyrk_ dsyrk
835
#define dsyr2k_ dsyr2k
836
#define dtrmm_ dtrmm
837
#define dtrsm_ dtrsm
838
839
#define cgemm_ cgemm
840
#define chemm_ chemm
841
#define csymm_ csymm
842
#define csyrk_ csyrk
843
#define cherk_ cherk
844
#define csyr2k_ csyr2k
845
#define cher2k_ cher2k
846
#define ctrmm_ ctrmm
847
#define ctrsm_ ctrsm
848
849
#define zgemm_ zgemm
850
#define zhemm_ zhemm
851
#define zsymm_ zsymm
852
#define zsyrk_ zsyrk
853
#define zherk_ zherk
854
#define zsyr2k_ zsyr2k
855
#define zher2k_ zher2k
856
#define ztrmm_ ztrmm
857
#define ztrsm_ ztrsm
858
/* absolute value auxiliary PBLAS */
859
#define psatrmv_ psatrmv
860
#define pdatrmv_ pdatrmv
861
#define pcatrmv_ pcatrmv
862
#define pzatrmv_ pzatrmv
863
#define psagemv_ psagemv
864
#define pdagemv_ pdagemv
865
#define pcagemv_ pcagemv
866
#define pzagemv_ pzagemv
867
#define psasymv_ psasymv
868
#define pdasymv_ pdasymv
869
#define pcahemv_ pcahemv
870
#define pzahemv_ pzahemv
871
/* Auxiliary PB-BLAS */
872
#define pbcmatadd_ pbcmatadd
873
#define pbdmatadd_ pbdmatadd
874
#define pbsmatadd_ pbsmatadd
875
#define pbzmatadd_ pbzmatadd
876
/* Level-2 PBBLAS */
877
#define pbcgemv_ pbcgemv
878
#define pbcgeru_ pbcgeru
879
#define pbcgerc_ pbcgerc
880
#define pbchemv_ pbchemv
881
#define pbcher_ pbcher
882
#define pbcher2_ pbcher2
883
#define pbctrmv_ pbctrmv
884
#define pbctrnv_ pbctrnv
885
#define pbctrsv_ pbctrsv
886
887
#define pbdgemv_ pbdgemv
888
#define pbdger_ pbdger
889
#define pbdsymv_ pbdsymv
890
#define pbdsyr_ pbdsyr
891
#define pbdsyr2_ pbdsyr2
892
#define pbdtrmv_ pbdtrmv
893
#define pbdtrnv_ pbdtrnv
894
#define pbdtrsv_ pbdtrsv
895
896
#define pbsgemv_ pbsgemv
897
#define pbsger_ pbsger
898
#define pbssymv_ pbssymv
899
#define pbssyr_ pbssyr
900
#define pbssyr2_ pbssyr2
901
#define pbstrmv_ pbstrmv
902
#define pbstrnv_ pbstrnv
903
#define pbstrsv_ pbstrsv
904
905
#define pbzgemv_ pbzgemv
906
#define pbzgeru_ pbzgeru
907
#define pbzgerc_ pbzgerc
908
#define pbzhemv_ pbzhemv
909
#define pbzher_ pbzher
910
#define pbzher2_ pbzher2
911
#define pbztrmv_ pbztrmv
912
#define pbztrnv_ pbztrnv
913
#define pbztrsv_ pbztrsv
914
/* Level-3 PBBLAS */
915
#define pbcgemm_ pbcgemm
916
#define pbchemm_ pbchemm
917
#define pbcher2k_ pbcher2k
918
#define pbcherk_ pbcherk
919
#define pbcsymm_ pbcsymm
920
#define pbcsyr2k_ pbcsyr2k
921
#define pbcsyrk_ pbcsyrk
922
#define pbctrmm_ pbctrmm
923
#define pbctrsm_ pbctrsm
924
#define pbctran_ pbctran
925
926
#define pbdgemm_ pbdgemm
927
#define pbdsymm_ pbdsymm
928
#define pbdsyr2k_ pbdsyr2k
929
#define pbdsyrk_ pbdsyrk
930
#define pbdtrmm_ pbdtrmm
931
#define pbdtrsm_ pbdtrsm
932
#define pbdtran_ pbdtran
933
934
#define pbsgemm_ pbsgemm
935
#define pbssymm_ pbssymm
936
#define pbssyr2k_ pbssyr2k
937
#define pbssyrk_ pbssyrk
938
#define pbstrmm_ pbstrmm
939
#define pbstrsm_ pbstrsm
940
#define pbstran_ pbstran
941
942
#define pbzgemm_ pbzgemm
943
#define pbzhemm_ pbzhemm
944
#define pbzher2k_ pbzher2k
945
#define pbzherk_ pbzherk
946
#define pbzsymm_ pbzsymm
947
#define pbzsyr2k_ pbzsyr2k
948
#define pbzsyrk_ pbzsyrk
949
#define pbztrmm_ pbztrmm
950
#define pbztrsm_ pbztrsm
951
#define pbztran_ pbztran
952
/* Auxilliary PBLAS */
953
#define pberror_ pberror
954
#define pb_freebuf_ pb_freebuf
955
#define pb_topget_ pb_topget
956
#define pb_topset_ pb_topset
957
/* Level-1 PBLAS */
958
#define psrotg_ psrotg
959
#define psrotmg_ psrotmg
960
#define psrot_ psrot
961
#define psrotm_ psrotm
962
#define psswap_ psswap
963
#define psscal_ psscal
964
#define pscopy_ pscopy
965
#define psaxpy_ psaxpy
966
#define psdot_ psdot
967
#define psnrm2_ psnrm2
968
#define psasum_ psasum
969
#define psamax_ psamax
970
971
#define pdrotg_ pdrotg
972
#define pdrotmg_ pdrotmg
973
#define pdrot_ pdrot
974
#define pdrotm_ pdrotm
975
#define pdswap_ pdswap
976
#define pdscal_ pdscal
977
#define pdcopy_ pdcopy
978
#define pdaxpy_ pdaxpy
979
#define pddot_ pddot
980
#define pdnrm2_ pdnrm2
981
#define pdasum_ pdasum
982
#define pdamax_ pdamax
983
984
#define pcswap_ pcswap
985
#define pcscal_ pcscal
986
#define pcsscal_ pcsscal
987
#define pccopy_ pccopy
988
#define pcaxpy_ pcaxpy
989
#define pcdotu_ pcdotu
990
#define pcdotc_ pcdotc
991
#define pscnrm2_ pscnrm2
992
#define pscasum_ pscasum
993
#define pcamax_ pcamax
994
#define pcrot_ pcrot
995
#define crot_ crot
996
997
#define pzswap_ pzswap
998
#define pzscal_ pzscal
999
#define pzdscal_ pzdscal
1000
#define pzcopy_ pzcopy
1001
#define pzaxpy_ pzaxpy
1002
#define pzdotu_ pzdotu
1003
#define pzdotc_ pzdotc
1004
#define pdznrm2_ pdznrm2
1005
#define pdzasum_ pdzasum
1006
#define pzamax_ pzamax
1007
#define pzrot_ pzrot
1008
#define zrot_ zrot
1009
/* Level-2 PBLAS */
1010
#define pcgemv_ pcgemv
1011
#define pcgeru_ pcgeru
1012
#define pcgerc_ pcgerc
1013
#define pchemv_ pchemv
1014
#define pcher_ pcher
1015
#define pcher2_ pcher2
1016
#define pctrmv_ pctrmv
1017
#define pctrsv_ pctrsv
1018
1019
#define pdgemv_ pdgemv
1020
#define pdger_ pdger
1021
#define pdsymv_ pdsymv
1022
#define pdsyr_ pdsyr
1023
#define pdsyr2_ pdsyr2
1024
#define pdtrmv_ pdtrmv
1025
#define pdtrsv_ pdtrsv
1026
1027
#define psgemv_ psgemv
1028
#define psger_ psger
1029
#define pssymv_ pssymv
1030
#define pssyr_ pssyr
1031
#define pssyr2_ pssyr2
1032
#define pstrmv_ pstrmv
1033
#define pstrsv_ pstrsv
1034
1035
#define pzgemv_ pzgemv
1036
#define pzgeru_ pzgeru
1037
#define pzgerc_ pzgerc
1038
#define pzhemv_ pzhemv
1039
#define pzher_ pzher
1040
#define pzher2_ pzher2
1041
#define pztrmv_ pztrmv
1042
#define pztrsv_ pztrsv
1043
/* Level-3 PBLAS */
1044
#define pcgemm_ pcgemm
1045
#define pchemm_ pchemm
1046
#define pcher2k_ pcher2k
1047
#define pcherk_ pcherk
1048
#define pcsymm_ pcsymm
1049
#define pcsyr2k_ pcsyr2k
1050
#define pcsyrk_ pcsyrk
1051
#define pctrmm_ pctrmm
1052
#define pctrsm_ pctrsm
1053
#define pctranu_ pctranu
1054
#define pctranc_ pctranc
1055
1056
#define pdgemm_ pdgemm
1057
#define pdsymm_ pdsymm
1058
#define pdsyr2k_ pdsyr2k
1059
#define pdsyrk_ pdsyrk
1060
#define pdtrmm_ pdtrmm
1061
#define pdtrsm_ pdtrsm
1062
#define pdtran_ pdtran
1063
1064
#define psgemm_ psgemm
1065
#define pssymm_ pssymm
1066
#define pssyr2k_ pssyr2k
1067
#define pssyrk_ pssyrk
1068
#define pstrmm_ pstrmm
1069
#define pstrsm_ pstrsm
1070
#define pstran_ pstran
1071
1072
#define pzgemm_ pzgemm
1073
#define pzhemm_ pzhemm
1074
#define pzher2k_ pzher2k
1075
#define pzherk_ pzherk
1076
#define pzsymm_ pzsymm
1077
#define pzsyr2k_ pzsyr2k
1078
#define pzsyrk_ pzsyrk
1079
#define pztrmm_ pztrmm
1080
#define pztrsm_ pztrsm
1081
#define pztranu_ pztranu
1082
#define pztranc_ pztranc
1083
1084
#endif
1085
1086
#if( _F2C_CALL_ == _F2C_F77ISF2C )
1087
/*
1088
* These defines set up the naming scheme required to have a FORTRAN
1089
* routine call a C routine (which is what the PBLAS are written in)
1090
* for systems where the fortran "compiler" is actually f2c (a Fortran
1091
* to C conversion utility).
1092
*/
1093
1094
/*
1095
* Initialization routines
1096
*/
1097
#define blacs_pinfo_ blacs_pinfo__
1098
#define blacs_setup_ blacs_setup__
1099
#define blacs_set_ blacs_set__
1100
#define blacs_get_ blacs_get__
1101
#define blacs_gridinit_ blacs_gridinit__
1102
#define blacs_gridmap_ blacs_gridmap__
1103
/*
1104
* Destruction routines
1105
*/
1106
#define blacs_freebuff_ blacs_freebuff__
1107
#define blacs_gridexit_ blacs_gridexit__
1108
#define blacs_abort_ blacs_abort__
1109
#define blacs_exit_ blacs_exit__
1110
/*
1111
* Informational & misc.
1112
*/
1113
#define blacs_gridinfo_ blacs_gridinfo__
1114
#define blacs_pnum_ blacs_pnum__
1115
#define blacs_pcoord_ blacs_pcoord__
1116
#define blacs_barrier_ blacs_barrier__
1117
#endif
complex16
Definition:
pblas.h:93
F_CHAR
char * F_CHAR
Definition:
pblas.h:109
complex16::re
double re
Definition:
pblas.h:93
complex::re
float re
Definition:
pblas.h:92
complex
Definition:
pcgemr.c:160
SRC
pblas.h
Generated by
1.8.16