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