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