ScaLAPACK 2.1
2.1
ScaLAPACK: Scalable Linear Algebra PACKage
PBtools.h
Go to the documentation of this file.
1
/* ---------------------------------------------------------------------
2
*
3
* -- PBLAS routine (version 2.0) --
4
* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
5
* and University of California, Berkeley.
6
* March 12, 2002
7
*
8
* ---------------------------------------------------------------------
9
*/
10
/*
11
* This file includes PBLAS tools definitions. All PBLAS routines include
12
* this file.
13
*
14
* ----------------------------------------------------------------------
15
* #define macro constants
16
* ---------------------------------------------------------------------
17
*
18
* Descriptor entries for type 1
19
*/
20
#define BLOCK_CYCLIC_2D 1
21
22
#define DTYPE1_ 0
/* Descriptor Type */
23
#define CTXT1_ 1
/* BLACS context */
24
#define M1_ 2
/* Global Number of Rows */
25
#define N1_ 3
/* Global Number of Columns */
26
#define MB1_ 4
/* Row Blocking Size */
27
#define NB1_ 5
/* Column Blocking Size */
28
#define RSRC1_ 6
/* Starting Processor Row */
29
#define CSRC1_ 7
/* Starting Processor Column */
30
#define LLD1_ 8
/* Local Leading Dimension */
31
#define DLEN1_ 9
/* Descriptor Length */
32
/*
33
* Descriptor entries for type 2
34
*/
35
#define BLOCK_CYCLIC_2D_INB 2
36
37
#define DTYPE_ 0
/* Descriptor Type */
38
#define CTXT_ 1
/* BLACS context */
39
#define M_ 2
/* Global Number of Rows */
40
#define N_ 3
/* Global Number of Columns */
41
#define IMB_ 4
/* Initial Row Blocking Size */
42
#define INB_ 5
/* Initial Column Blocking Size */
43
#define MB_ 6
/* Row Blocking Size */
44
#define NB_ 7
/* Column Blocking Size */
45
#define RSRC_ 8
/* Starting Process Row */
46
#define CSRC_ 9
/* Starting Process Column */
47
#define LLD_ 10
/* Local Leading Dimension */
48
#define DLEN_ 11
/* Descriptor Length */
49
50
#define CPACKING 'P'
51
#define CUNPACKING 'U'
52
53
#define PACKING "P"
54
#define UNPACKING "U"
55
56
#define CGENERAL 'G'
57
/* #define CSYMM 'S' */
58
#define CHERM 'H'
59
60
#define GENERAL "G"
61
#define SYMM "S"
62
#define HERM "H"
63
64
#define ONE 1.0
65
#define TWO 2.0
66
#define ZERO 0.0
67
/* Input error checking related constants */
68
#define DESCMULT 100
69
#define BIGNUM 10000
70
/*
71
* ---------------------------------------------------------------------
72
* #define macro functions
73
* ---------------------------------------------------------------------
74
*/
75
#define ABS( a_ ) ( ( (a_) < 0 ) ? -(a_) : (a_) )
76
#define MIN( a_, b_ ) ( ( (a_) < (b_) ) ? (a_) : (b_) )
77
#define MAX( a_, b_ ) ( ( (a_) > (b_) ) ? (a_) : (b_) )
78
79
#define FLOOR(a,b) (((a)>0) ? (((a)/(b))) : (-(((-(a))+(b)-1)/(b))))
80
#define CEIL(a,b) ( ( (a)+(b)-1 ) / (b) )
81
#define ICEIL(a,b) (((a)>0) ? ((((a)+(b)-1)/(b))) : (-((-(a))/(b))))
82
83
#define Mupcase(C) (((C)>96 && (C)<123) ? (C) & 0xDF : (C))
84
#define Mlowcase(C) (((C)>64 && (C)< 91) ? (C) | 32 : (C))
85
/*
86
* The following macros perform common modulo operations; All functions
87
* except MPosMod assume arguments are < d (i.e., arguments are themsel-
88
* ves within modulo range).
89
*/
90
/* increment with mod */
91
#define MModInc(I, d) if(++(I) == (d)) (I) = 0
92
/* decrement with mod */
93
#define MModDec(I, d) if(--(I) == -1) (I) = (d)-1
94
/* positive modulo */
95
#define MPosMod(I, d) ( (I) - ((I)/(d))*(d) )
96
/* add two numbers */
97
#define MModAdd(I1, I2, d) \
98
( ( (I1) + (I2) < (d) ) ? (I1) + (I2) : (I1) + (I2) - (d) )
99
/* add 1 to # */
100
#define MModAdd1(I, d) ( ((I) != (d)-1) ? (I) + 1 : 0 )
101
/* subtract two numbers */
102
#define MModSub(I1, I2, d) \
103
( ( (I1) < (I2) ) ? (d) + (I1) - (I2) : (I1) - (I2) )
104
/* sub 1 from # */
105
#define MModSub1(I, d) ( ((I)!=0) ? (I)-1 : (d)-1 )
106
/*
107
* DNROC computes maximum number of local rows or columns. This macro is
108
* only used to compute the time estimates in the Level 3 PBLAS routines.
109
*/
110
111
#define DNROC( n_, nb_, p_ ) \
112
((double)(((((n_)+(nb_)-1)/(nb_))+(p_)-1)/(p_))*(double)((nb_)))
113
/*
114
* Mptr returns a pointer to a_( i_, j_ ) for readability reasons and
115
* also less silly errors ...
116
*
117
* There was some problems with the previous code which read:
118
*
119
* #define Mptr( a_, i_, j_, lda_, siz_ ) \
120
* ( (a_) + ( ( (i_)+(j_)*(lda_) )*(siz_) ) )
121
*
122
* since it can overflow the 32-bit integer "easily".
123
* The following code should fix the problem.
124
* It uses the "off_t" command.
125
*
126
* Change made by Julien Langou on Sat. September 12, 2009.
127
* Fix provided by John Moyard from CNES.
128
*
129
* JL :April 2011: Change off_t by long long
130
* off_t is not supported under Windows
131
*/
132
#define Mptr( a_, i_, j_, lda_, siz_ ) \
133
( (a_) + ( (long long) ( (long long)(i_)+ \
134
(long long)(j_)*(long long)(lda_))*(long long)(siz_) ) )
135
/*
136
* Mfirstnb and Mlastnb compute the global size of the first and last
137
* block corresponding to the interval i_:i_+n_-1 of global indexes.
138
*/
139
#define Mfirstnb( inbt_, n_, i_, inb_, nb_ ) \
140
inbt_ = (inb_) - (i_); \
141
if( inbt_ <= 0 ) \
142
inbt_ = ( (-inbt_) / (nb_) + 1 ) * (nb_) + inbt_; \
143
inbt_ = MIN( inbt_, (n_) );
144
145
#define Mlastnb( inbt_, n_, i_, inb_, nb_ ) \
146
inbt_ = (i_) + (n_) - (inb_); \
147
if( inbt_ > 0 ) \
148
{ \
149
inbt_ = -( ( (nb_)+inbt_-1 )/(nb_)-1 )*(nb_) + inbt_; \
150
inbt_ = MIN( inbt_, (n_) ); \
151
} \
152
else { inbt_ = (n_); };
153
/*
154
* Does the index interval i_:i_+n_-1 spans more than one process rows
155
* or columns ?
156
*
157
* Mspan returns 0 (false) when the data is replicated (srcproc_ < 0) or
158
* when there is only one process row or column in the process grid.
159
*/
160
#define Mspan( n_, i_, inb_, nb_, srcproc_, nprocs_ ) \
161
( ( (srcproc_) >= 0 ) && ( ( (nprocs_) > 1 ) && \
162
( ( (i_) < (inb_) ) ? \
163
( (i_) + (n_) > (inb_) ) : \
164
( (i_) + (n_) > (inb_) + \
165
( ( (i_) - (inb_) ) / (nb_) + 1 ) * (nb_) ) ) ) )
166
/*
167
* Mindxl2g computes the global index ig_ corresponding to the local
168
* index il_ in process proc_.
169
*/
170
#define Mindxl2g( ig_, il_, inb_, nb_, proc_, srcproc_, nprocs_ ) \
171
{ \
172
if( ( (srcproc_) >= 0 ) && ( (nprocs_) > 1 ) ) \
173
{ \
174
if( (proc_) == (srcproc_) ) \
175
{ \
176
if( (il_) < (inb_) ) ig_ = (il_); \
177
else ig_ = (il_) + \
178
(nb_)*((nprocs_)-1)*( ((il_)-(inb_)) / (nb_) + 1 ); \
179
} \
180
else if( (proc_) < (srcproc_) ) \
181
{ \
182
ig_ = (il_) + (inb_) + \
183
(nb_)*( ((nprocs_)-1)*((il_)/(nb_)) + \
184
(proc_)-(srcproc_)-1+(nprocs_) ); \
185
} \
186
else \
187
{ \
188
ig_ = (il_) + (inb_) + \
189
(nb_)*( ((nprocs_)-1)*((il_)/(nb_)) + \
190
(proc_)-(srcproc_)-1 ); \
191
} \
192
} \
193
else \
194
{ \
195
ig_ = (il_); \
196
} \
197
}
198
/*
199
* Mindxg2p returns the process coodinate owning the entry globally
200
* indexed by ig_.
201
*/
202
#define Mindxg2p( ig_, inb_, nb_, proc_, srcproc_, nprocs_ ) \
203
{ \
204
if( ( (ig_) >= (inb_) ) && ( (srcproc_) >= 0 ) && \
205
( (nprocs_) > 1 ) ) \
206
{ \
207
proc_ = (srcproc_) + 1 + ( (ig_)-(inb_) ) / (nb_); \
208
proc_ -= ( proc_ / (nprocs_) ) * (nprocs_); \
209
} \
210
else \
211
{ \
212
proc_ = (srcproc_); \
213
} \
214
}
215
/*
216
* Mnumroc computes the # of local indexes np_ residing in the process
217
* of coordinate proc_ corresponding to the interval of global indexes
218
* i_:i_+n_-1 assuming that the global index 0 resides in the process
219
* srcproc_, and that the indexes are distributed from srcproc_ using
220
* the parameters inb_, nb_ and nprocs_.
221
*/
222
#define Mnumroc( np_, n_, i_, inb_, nb_, proc_, srcproc_, nprocs_ ) \
223
{ \
224
if( ( (srcproc_) >= 0 ) && ( (nprocs_) > 1 ) ) \
225
{ \
226
int inb__, mydist__, n__, nblk__, quot__, src__; \
227
if( ( inb__ = (inb_) - (i_) ) <= 0 ) \
228
{ \
229
src__ = (srcproc_) + ( nblk__ = (-inb__) / (nb_) + 1 ); \
230
src__ -= ( src__ / (nprocs_) ) * (nprocs_); \
231
inb__ += nblk__*(nb_); \
232
if( ( n__ = (n_) - inb__ ) <= 0 ) \
233
{ if( (proc_) == src__ ) np_ = (n_); else np_ = 0; } \
234
else \
235
{ \
236
if( ( mydist__ = (proc_) - src__ ) < 0 ) \
237
mydist__ += (nprocs_); \
238
nblk__ = n__ / (nb_) + 1; \
239
mydist__ -= nblk__ - \
240
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
241
if( mydist__ < 0 ) \
242
{ \
243
if( (proc_) != src__ ) \
244
np_ = (nb_) + (nb_) * quot__; \
245
else \
246
np_ = inb__ + (nb_) * quot__; \
247
} \
248
else if( mydist__ > 0 ) \
249
{ \
250
np_ = (nb_) * quot__; \
251
} \
252
else \
253
{ \
254
if( (proc_) != src__ ) \
255
np_ = n__ + (nb_) + (nb_) * ( quot__ - nblk__ ); \
256
else \
257
np_ = (n_) + (nb_) * ( quot__ - nblk__ ); \
258
} \
259
} \
260
} \
261
else \
262
{ \
263
if( ( n__ = (n_) - inb__ ) <= 0 ) \
264
{ if( (proc_) == (srcproc_) ) np_ = (n_); else np_ = 0; } \
265
else \
266
{ \
267
if( ( mydist__ = (proc_) - (srcproc_) ) < 0 ) \
268
mydist__ += (nprocs_); \
269
nblk__ = n__ / (nb_) + 1; \
270
mydist__ -= nblk__ - \
271
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
272
if( mydist__ < 0 ) \
273
{ \
274
if( (proc_) != (srcproc_) ) \
275
np_ = (nb_) + (nb_) * quot__; \
276
else \
277
np_ = inb__ + (nb_) * quot__; \
278
} \
279
else if( mydist__ > 0 ) \
280
{ \
281
np_ = (nb_) * quot__; \
282
} \
283
else \
284
{ \
285
if( (proc_) != (srcproc_) ) \
286
np_ = n__ + (nb_) + (nb_) * ( quot__ - nblk__ ); \
287
else \
288
np_ = (n_) + (nb_) * ( quot__ - nblk__ ); \
289
} \
290
} \
291
} \
292
} \
293
else \
294
{ \
295
np_ = (n_); \
296
} \
297
}
298
299
#define Mnpreroc( np_, n_, i_, inb_, nb_, proc_, srcproc_, nprocs_ ) \
300
{ \
301
if( ( (srcproc_) >= 0 ) && ( (nprocs_) > 1 ) ) \
302
{ \
303
int inb__, mydist__, n__, nblk__, quot__, rem__, src__; \
304
if( ( inb__ = (inb_) - (i_) ) <= 0 ) \
305
{ \
306
src__ = (srcproc_) + ( nblk__ = (-inb__) / (nb_) + 1 ); \
307
src__ -= ( src__ / (nprocs_) ) * (nprocs_); \
308
if( (proc_) != src__ ) \
309
{ \
310
inb__ += nblk__*(nb_); \
311
if( ( n__ = (n_) - inb__ ) <= 0 ) { np_ = (n_); } \
312
else \
313
{ \
314
if( ( mydist__ = (proc_) - src__ ) < 0 ) \
315
mydist__ += (nprocs_); \
316
nblk__ = n__ / (nb_) + 1; \
317
rem__ = nblk__ - \
318
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
319
if( mydist__ <= rem__ ) \
320
{ \
321
np_ = inb__ - (nb_) + \
322
( quot__ + 1 ) * mydist__ * (nb_); \
323
} \
324
else \
325
{ \
326
np_ = (n_) + \
327
( mydist__ - (nprocs_) ) * quot__ * (nb_); \
328
} \
329
} \
330
} \
331
else \
332
{ \
333
np_ = 0; \
334
} \
335
} \
336
else \
337
{ \
338
if( (proc_) != (srcproc_) ) \
339
{ \
340
if( ( n__ = (n_) - inb__ ) <= 0 ) { np_ = (n_); } \
341
else \
342
{ \
343
if( ( mydist__ = (proc_) - (srcproc_) ) < 0 ) \
344
mydist__ += (nprocs_); \
345
nblk__ = n__ / (nb_) + 1; \
346
rem__ = nblk__ - \
347
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
348
if( mydist__ <= rem__ ) \
349
{ \
350
np_ = inb__ - (nb_) + \
351
( quot__ + 1 ) * mydist__ * (nb_); \
352
} \
353
else \
354
{ \
355
np_ = (n_) + \
356
( mydist__ - (nprocs_) ) * quot__ * (nb_); \
357
} \
358
} \
359
} \
360
else \
361
{ \
362
np_ = 0; \
363
} \
364
} \
365
} \
366
else \
367
{ \
368
np_ = 0; \
369
} \
370
}
371
372
#define Mnnxtroc( np_, n_, i_, inb_, nb_, proc_, srcproc_, nprocs_ ) \
373
{ \
374
if( ( (srcproc_) >= 0 ) && ( (nprocs_) > 1 ) ) \
375
{ \
376
int inb__, mydist__, n__, nblk__, quot__, rem__, src__; \
377
if( ( inb__ = (inb_) - (i_) ) <= 0 ) \
378
{ \
379
src__ = (srcproc_) + ( nblk__ = (-inb__) / (nb_) + 1 ); \
380
src__ -= ( src__ / (nprocs_) ) * (nprocs_); \
381
inb__ += nblk__*(nb_); \
382
if( ( n__ = (n_) - inb__ ) <= 0 ) { np_ = 0; } \
383
else \
384
{ \
385
if( ( mydist__ = (proc_) - src__ ) < 0 ) \
386
mydist__ += (nprocs_); \
387
nblk__ = n__ / (nb_) + 1; \
388
rem__ = nblk__ - \
389
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
390
if( mydist__ < rem__ ) \
391
{ \
392
np_ = n__ - ( quot__ * mydist__ + \
393
quot__ + mydist__ ) * (nb_); \
394
} \
395
else \
396
{ \
397
np_ = ( (nprocs_) - 1 - mydist__ ) * quot__ * (nb_); \
398
} \
399
} \
400
} \
401
else \
402
{ \
403
if( ( n__ = (n_) - inb__ ) <= 0 ) { np_ = 0; } \
404
else \
405
{ \
406
if( ( mydist__ = (proc_) - (srcproc_) ) < 0 ) \
407
mydist__ += (nprocs_); \
408
nblk__ = n__ / (nb_) + 1; \
409
rem__ = nblk__ - \
410
( quot__ = ( nblk__ / (nprocs_) ) ) * (nprocs_); \
411
if( mydist__ < rem__ ) \
412
{ \
413
np_ = n__ - ( quot__ * mydist__ + \
414
quot__ + mydist__ ) * (nb_); \
415
} \
416
else \
417
{ \
418
np_ = ( (nprocs_) - 1 - mydist__ ) * quot__ * (nb_); \
419
} \
420
} \
421
} \
422
} \
423
else \
424
{ np_ = 0; } \
425
}
426
427
428
#define Minfog2l( i_, j_, desc_, nr_, nc_, r_, c_, ii_, jj_, pr_, pc_ ) \
429
{ \
430
int quot__, i__, imb__, inb__, j__, mb__, mydist__, \
431
nb__, nblk__, src__; \
432
imb__ = desc_[IMB_]; mb__ = desc_[MB_]; pr_ = desc_[RSRC_]; \
433
if( ( pr_ >= 0 ) && ( nr_ > 1 ) ) \
434
{ \
435
if( ( i__ = (i_) - imb__ ) < 0 ) \
436
{ ii_ = ( r_ == pr_ ? (i_) : 0 ); } \
437
else \
438
{ \
439
src__ = pr_; \
440
pr_ += ( nblk__ = i__ / mb__ + 1 ); \
441
pr_ -= ( pr_ / nr_ ) * nr_; \
442
if( ( mydist__ = r_ - src__ ) < 0 ) mydist__ += nr_; \
443
if( mydist__ >= nblk__ - ( quot__ = nblk__ / nr_ ) * nr_ ) \
444
{ \
445
if( r_ != src__ ) ii_ = mb__; \
446
else ii_ = imb__; \
447
if( r_ != pr_ ) \
448
ii_ += ( quot__ - 1 ) * mb__; \
449
else \
450
ii_ += i__ + ( quot__ - nblk__ ) * mb__; \
451
} \
452
else \
453
{ \
454
if( r_ != src__ ) ii_ = mb__ + quot__ * mb__; \
455
else ii_ = imb__ + quot__ * mb__; \
456
} \
457
} \
458
} \
459
else \
460
{ \
461
ii_ = (i_); \
462
} \
463
inb__ = desc_[INB_]; nb__ = desc_[NB_]; pc_ = desc_[CSRC_]; \
464
if( ( pc_ >= 0 ) && ( nc_ > 1 ) ) \
465
{ \
466
if( ( j__ = (j_) - inb__ ) < 0 ) \
467
{ jj_ = ( c_ == pc_ ? (j_) : 0 ); } \
468
else \
469
{ \
470
src__ = pc_; \
471
pc_ += ( nblk__ = j__ / nb__ + 1 ); \
472
pc_ -= ( pc_ / nc_ ) * nc_; \
473
if( ( mydist__ = c_ - src__ ) < 0 ) mydist__ += nc_; \
474
if( mydist__ >= nblk__ - ( quot__ = nblk__ / nc_ ) * nc_ ) \
475
{ \
476
if( c_ != src__ ) jj_ = nb__; \
477
else jj_ = inb__; \
478
if( c_ != pc_ ) \
479
jj_ += ( quot__ - 1 ) * nb__; \
480
else \
481
jj_ += j__ + ( quot__ - nblk__ ) * nb__; \
482
} \
483
else \
484
{ \
485
if( c_ != src__ ) jj_ = nb__ + quot__ * nb__; \
486
else jj_ = inb__ + quot__ * nb__; \
487
} \
488
} \
489
} \
490
else \
491
{ \
492
jj_ = (j_); \
493
} \
494
}
495
496
/*
497
* The following macros initialize or translate descriptors.
498
*/
499
#define MDescSet( desc, m, n, imb, inb, mb, nb, rsrc, csrc, ictxt, lld ) \
500
{ \
501
(desc)[DTYPE_] = BLOCK_CYCLIC_2D_INB; \
502
(desc)[CTXT_ ] = (ictxt); \
503
(desc)[M_ ] = (m); \
504
(desc)[N_ ] = (n); \
505
(desc)[IMB_ ] = (imb); \
506
(desc)[INB_ ] = (inb); \
507
(desc)[MB_ ] = (mb); \
508
(desc)[NB_ ] = (nb); \
509
(desc)[RSRC_ ] = (rsrc); \
510
(desc)[CSRC_ ] = (csrc); \
511
(desc)[LLD_ ] = (lld); \
512
}
513
514
#define MDescCopy(DescIn, DescOut) \
515
{ \
516
(DescOut)[DTYPE_] = (DescIn)[DTYPE_]; \
517
(DescOut)[M_ ] = (DescIn)[M_ ]; \
518
(DescOut)[N_ ] = (DescIn)[N_ ]; \
519
(DescOut)[IMB_ ] = (DescIn)[IMB_ ]; \
520
(DescOut)[INB_ ] = (DescIn)[INB_ ]; \
521
(DescOut)[MB_ ] = (DescIn)[MB_ ]; \
522
(DescOut)[NB_ ] = (DescIn)[NB_ ]; \
523
(DescOut)[RSRC_ ] = (DescIn)[RSRC_ ]; \
524
(DescOut)[CSRC_ ] = (DescIn)[CSRC_ ]; \
525
(DescOut)[CTXT_ ] = (DescIn)[CTXT_ ]; \
526
(DescOut)[LLD_ ] = (DescIn)[LLD_ ]; \
527
}
528
529
#define MDescTrans(DescIn, DescOut) \
530
{ \
531
if ( (DescIn)[DTYPE_] == BLOCK_CYCLIC_2D ) \
532
{ \
533
(DescOut)[DTYPE_] = BLOCK_CYCLIC_2D_INB; \
534
(DescOut)[M_ ] = (DescIn)[M1_ ]; \
535
(DescOut)[N_ ] = (DescIn)[N1_ ]; \
536
(DescOut)[IMB_ ] = (DescIn)[MB1_ ]; \
537
(DescOut)[INB_ ] = (DescIn)[NB1_ ]; \
538
(DescOut)[MB_ ] = (DescIn)[MB1_ ]; \
539
(DescOut)[NB_ ] = (DescIn)[NB1_ ]; \
540
(DescOut)[RSRC_ ] = (DescIn)[RSRC1_ ]; \
541
(DescOut)[CSRC_ ] = (DescIn)[CSRC1_ ]; \
542
(DescOut)[CTXT_ ] = (DescIn)[CTXT1_ ]; \
543
(DescOut)[LLD_ ] = (DescIn)[LLD1_ ]; \
544
} \
545
else if ( (DescIn)[DTYPE_] == BLOCK_CYCLIC_2D_INB ) \
546
{ \
547
(DescOut)[DTYPE_] = BLOCK_CYCLIC_2D_INB; \
548
(DescOut)[M_ ] = (DescIn)[M_ ]; \
549
(DescOut)[N_ ] = (DescIn)[N_ ]; \
550
(DescOut)[IMB_ ] = (DescIn)[IMB_ ]; \
551
(DescOut)[INB_ ] = (DescIn)[INB_ ]; \
552
(DescOut)[MB_ ] = (DescIn)[MB_ ]; \
553
(DescOut)[NB_ ] = (DescIn)[NB_ ]; \
554
(DescOut)[RSRC_ ] = (DescIn)[RSRC_ ]; \
555
(DescOut)[CSRC_ ] = (DescIn)[CSRC_ ]; \
556
(DescOut)[CTXT_ ] = (DescIn)[CTXT_ ]; \
557
(DescOut)[LLD_ ] = (DescIn)[LLD_ ]; \
558
} \
559
else \
560
{ \
561
(DescOut)[DTYPE_] = (DescIn)[0]; \
562
(DescOut)[CTXT_ ] = (DescIn)[1]; \
563
(DescOut)[M_ ] = 0; \
564
(DescOut)[N_ ] = 0; \
565
(DescOut)[IMB_ ] = 1; \
566
(DescOut)[INB_ ] = 1; \
567
(DescOut)[MB_ ] = 1; \
568
(DescOut)[NB_ ] = 1; \
569
(DescOut)[RSRC_ ] = 0; \
570
(DescOut)[CSRC_ ] = 0; \
571
(DescOut)[LLD_ ] = 1; \
572
} \
573
}
574
575
#define MIndxTrans( I, J, i, j ) \
576
{ \
577
i = *I - 1; \
578
j = *J - 1; \
579
}
580
581
#if( _F2C_CALL_ == _F2C_ADD_ )
582
/*
583
* These defines set up the naming scheme required to have a FORTRAN
584
* routine called by a C routine. No redefinition is necessary to have
585
* the following FORTRAN to C interface:
586
*
587
* FORTRAN DECLARATION C CALL
588
* SUBROUTINE PDFOO(...) pdfoo_(...)
589
*
590
* This is the PBLAS default.
591
*/
592
593
#endif
594
595
#if( _F2C_CALL_ == _F2C_F77ISF2C )
596
/*
597
* These defines set up the naming scheme required to have a FORTRAN
598
* routine called by a C routine for systems where the FORTRAN compiler
599
* is actually f2c (a FORTRAN to C conversion utility).
600
*
601
* FORTRAN DECLARATION C CALL
602
* SUBROUTINE PDFOO(...) pdfoo__(...)
603
*/
604
605
#endif
606
607
#if( _F2C_CALL_ == _F2C_UPCASE )
608
/*
609
* These defines set up the naming scheme required to have a FORTRAN
610
* routine called by a C routine with the following FORTRAN to C inter-
611
* face:
612
*
613
* FORTRAN DECLARATION C CALL
614
* SUBROUTINE PDFOO(...) PDFOO(...)
615
*/
616
#define immadd_ IMMADD
617
#define smmadd_ SMMADD
618
#define dmmadd_ DMMADD
619
#define cmmadd_ CMMADD
620
#define zmmadd_ ZMMADD
621
622
#define immtadd_ IMMTADD
623
#define smmtadd_ SMMTADD
624
#define dmmtadd_ DMMTADD
625
#define cmmtadd_ CMMTADD
626
#define zmmtadd_ ZMMTADD
627
628
#define smmcadd_ SMMCADD
629
#define dmmcadd_ DMMCADD
630
#define cmmcadd_ CMMCADD
631
#define zmmcadd_ ZMMCADD
632
633
#define smmtcadd_ SMMTCADD
634
#define dmmtcadd_ DMMTCADD
635
#define cmmtcadd_ CMMTCADD
636
#define zmmtcadd_ ZMMTCADD
637
638
#define immdda_ IMMDDA
639
#define smmdda_ SMMDDA
640
#define dmmdda_ DMMDDA
641
#define cmmdda_ CMMDDA
642
#define zmmdda_ ZMMDDA
643
644
#define smmddac_ SMMDDAC
645
#define dmmddac_ DMMDDAC
646
#define cmmddac_ CMMDDAC
647
#define zmmddac_ ZMMDDAC
648
649
#define immddat_ IMMDDAT
650
#define smmddat_ SMMDDAT
651
#define dmmddat_ DMMDDAT
652
#define cmmddat_ CMMDDAT
653
#define zmmddat_ ZMMDDAT
654
655
#define smmddact_ SMMDDACT
656
#define dmmddact_ DMMDDACT
657
#define cmmddact_ CMMDDACT
658
#define zmmddact_ ZMMDDACT
659
660
#define sasqrtb_ SASQRTB
661
#define dasqrtb_ DASQRTB
662
663
#define sset_ SSET
664
#define dset_ DSET
665
#define cset_ CSET
666
#define zset_ ZSET
667
668
#define svasum_ SVASUM
669
#define dvasum_ DVASUM
670
#define scvasum_ SCVASUM
671
#define dzvasum_ DZVASUM
672
673
#define sascal_ SASCAL
674
#define dascal_ DASCAL
675
676
#define scshft_ SCSHFT
677
#define dcshft_ DCSHFT
678
#define ccshft_ CCSHFT
679
#define zcshft_ ZCSHFT
680
681
#define srshft_ SRSHFT
682
#define drshft_ DRSHFT
683
#define crshft_ CRSHFT
684
#define zrshft_ ZRSHFT
685
686
#define svvdot_ SVVDOT
687
#define dvvdot_ DVVDOT
688
#define cvvdotc_ CVVDOTC
689
#define cvvdotu_ CVVDOTU
690
#define zvvdotc_ ZVVDOTC
691
#define zvvdotu_ ZVVDOTU
692
693
#define stzpad_ STZPAD
694
#define dtzpad_ DTZPAD
695
#define ctzpad_ CTZPAD
696
#define ztzpad_ ZTZPAD
697
698
#define stzpadcpy_ STZPADCPY
699
#define dtzpadcpy_ DTZPADCPY
700
#define ctzpadcpy_ CTZPADCPY
701
#define ztzpadcpy_ ZTZPADCPY
702
703
#define stzscal_ STZSCAL
704
#define dtzscal_ DTZSCAL
705
#define ctzscal_ CTZSCAL
706
#define ztzscal_ ZTZSCAL
707
708
#define chescal_ CHESCAL
709
#define zhescal_ ZHESCAL
710
711
#define ctzcnjg_ CTZCNJG
712
#define ztzcnjg_ ZTZCNJG
713
714
#define sagemv_ SAGEMV
715
#define dagemv_ DAGEMV
716
#define cagemv_ CAGEMV
717
#define zagemv_ ZAGEMV
718
719
#define sasymv_ SASYMV
720
#define dasymv_ DASYMV
721
#define casymv_ CASYMV
722
#define zasymv_ ZASYMV
723
#define cahemv_ CAHEMV
724
#define zahemv_ ZAHEMV
725
726
#define satrmv_ SATRMV
727
#define datrmv_ DATRMV
728
#define catrmv_ CATRMV
729
#define zatrmv_ ZATRMV
730
731
#define csymv_ CSYMV
732
#define zsymv_ ZSYMV
733
734
#define csyr_ CSYR
735
#define zsyr_ ZSYR
736
737
#define csyr2_ CSYR2
738
#define zsyr2_ ZSYR2
739
740
#endif
741
742
#if( _F2C_CALL_ == _F2C_NOCHANGE )
743
/*
744
* These defines set up the naming scheme required to have a FORTRAN
745
* routine called by a C routine with the following FORTRAN to C inter-
746
* face:
747
*
748
* FORTRAN DECLARATION C CALL
749
* SUBROUTINE PDFOO(...) pdfoo(...)
750
*/
751
#define immadd_ immadd
752
#define smmadd_ smmadd
753
#define dmmadd_ dmmadd
754
#define cmmadd_ cmmadd
755
#define zmmadd_ zmmadd
756
757
#define immtadd_ immtadd
758
#define smmtadd_ smmtadd
759
#define dmmtadd_ dmmtadd
760
#define cmmtadd_ cmmtadd
761
#define zmmtadd_ zmmtadd
762
763
#define smmcadd_ smmcadd
764
#define dmmcadd_ dmmcadd
765
#define cmmcadd_ cmmcadd
766
#define zmmcadd_ zmmcadd
767
768
#define smmtcadd_ smmtcadd
769
#define dmmtcadd_ dmmtcadd
770
#define cmmtcadd_ cmmtcadd
771
#define zmmtcadd_ zmmtcadd
772
773
#define immdda_ immdda
774
#define smmdda_ smmdda
775
#define dmmdda_ dmmdda
776
#define cmmdda_ cmmdda
777
#define zmmdda_ zmmdda
778
779
#define smmddac_ smmddac
780
#define dmmddac_ dmmddac
781
#define cmmddac_ cmmddac
782
#define zmmddac_ zmmddac
783
784
#define immddat_ immddat
785
#define smmddat_ smmddat
786
#define dmmddat_ dmmddat
787
#define cmmddat_ cmmddat
788
#define zmmddat_ zmmddat
789
790
#define smmddact_ smmddact
791
#define dmmddact_ dmmddact
792
#define cmmddact_ cmmddact
793
#define zmmddact_ zmmddact
794
795
#define sasqrtb_ sasqrtb
796
#define dasqrtb_ dasqrtb
797
798
#define sset_ sset
799
#define dset_ dset
800
#define cset_ cset
801
#define zset_ zset
802
803
#define svasum_ svasum
804
#define dvasum_ dvasum
805
#define scvasum_ scvasum
806
#define dzvasum_ dzvasum
807
808
#define sascal_ sascal
809
#define dascal_ dascal
810
811
#define scshft_ scshft
812
#define dcshft_ dcshft
813
#define ccshft_ ccshft
814
#define zcshft_ zcshft
815
816
#define srshft_ srshft
817
#define drshft_ drshft
818
#define crshft_ crshft
819
#define zrshft_ zrshft
820
821
#define svvdot_ svvdot
822
#define dvvdot_ dvvdot
823
#define cvvdotc_ cvvdotc
824
#define cvvdotu_ cvvdotu
825
#define zvvdotc_ zvvdotc
826
#define zvvdotu_ zvvdotu
827
828
#define stzpad_ stzpad
829
#define dtzpad_ dtzpad
830
#define ctzpad_ ctzpad
831
#define ztzpad_ ztzpad
832
833
#define stzpadcpy_ stzpadcpy
834
#define dtzpadcpy_ dtzpadcpy
835
#define ctzpadcpy_ ctzpadcpy
836
#define ztzpadcpy_ ztzpadcpy
837
838
#define stzscal_ stzscal
839
#define dtzscal_ dtzscal
840
#define ctzscal_ ctzscal
841
#define ztzscal_ ztzscal
842
843
#define chescal_ chescal
844
#define zhescal_ zhescal
845
846
#define ctzcnjg_ ctzcnjg
847
#define ztzcnjg_ ztzcnjg
848
849
#define sagemv_ sagemv
850
#define dagemv_ dagemv
851
#define cagemv_ cagemv
852
#define zagemv_ zagemv
853
854
#define sasymv_ sasymv
855
#define dasymv_ dasymv
856
#define casymv_ casymv
857
#define zasymv_ zasymv
858
#define cahemv_ cahemv
859
#define zahemv_ zahemv
860
861
#define satrmv_ satrmv
862
#define datrmv_ datrmv
863
#define catrmv_ catrmv
864
#define zatrmv_ zatrmv
865
866
#define csymv_ csymv
867
#define zsymv_ zsymv
868
869
#define csyr_ csyr
870
#define zsyr_ zsyr
871
872
#define csyr2_ csyr2
873
#define zsyr2_ zsyr2
874
875
#endif
876
/*
877
* ---------------------------------------------------------------------
878
* Function prototypes
879
* ---------------------------------------------------------------------
880
*/
881
#ifdef __STDC__
882
883
F_VOID_FCT
immadd_
(
int
*,
int
*,
char
*,
884
char
*,
int
*,
char
*,
885
char
*,
int
* );
886
F_VOID_FCT
smmadd_
(
int
*,
int
*,
char
*,
887
char
*,
int
*,
char
*,
888
char
*,
int
* );
889
F_VOID_FCT
dmmadd_
(
int
*,
int
*,
char
*,
890
char
*,
int
*,
char
*,
891
char
*,
int
* );
892
F_VOID_FCT
cmmadd_
(
int
*,
int
*,
char
*,
893
char
*,
int
*,
char
*,
894
char
*,
int
* );
895
F_VOID_FCT
zmmadd_
(
int
*,
int
*,
char
*,
896
char
*,
int
*,
char
*,
897
char
*,
int
* );
898
899
F_VOID_FCT
smmcadd_
(
int
*,
int
*,
char
*,
900
char
*,
int
*,
char
*,
901
char
*,
int
* );
902
F_VOID_FCT
dmmcadd_
(
int
*,
int
*,
char
*,
903
char
*,
int
*,
char
*,
904
char
*,
int
* );
905
F_VOID_FCT
cmmcadd_
(
int
*,
int
*,
char
*,
906
char
*,
int
*,
char
*,
907
char
*,
int
* );
908
F_VOID_FCT
zmmcadd_
(
int
*,
int
*,
char
*,
909
char
*,
int
*,
char
*,
910
char
*,
int
* );
911
912
F_VOID_FCT
immtadd_
(
int
*,
int
*,
char
*,
913
char
*,
int
*,
char
*,
914
char
*,
int
* );
915
F_VOID_FCT
smmtadd_
(
int
*,
int
*,
char
*,
916
char
*,
int
*,
char
*,
917
char
*,
int
* );
918
F_VOID_FCT
dmmtadd_
(
int
*,
int
*,
char
*,
919
char
*,
int
*,
char
*,
920
char
*,
int
* );
921
F_VOID_FCT
cmmtadd_
(
int
*,
int
*,
char
*,
922
char
*,
int
*,
char
*,
923
char
*,
int
* );
924
F_VOID_FCT
zmmtadd_
(
int
*,
int
*,
char
*,
925
char
*,
int
*,
char
*,
926
char
*,
int
* );
927
928
F_VOID_FCT
smmtcadd_
(
int
*,
int
*,
char
*,
929
char
*,
int
*,
char
*,
930
char
*,
int
* );
931
F_VOID_FCT
dmmtcadd_
(
int
*,
int
*,
char
*,
932
char
*,
int
*,
char
*,
933
char
*,
int
* );
934
F_VOID_FCT
cmmtcadd_
(
int
*,
int
*,
char
*,
935
char
*,
int
*,
char
*,
936
char
*,
int
* );
937
F_VOID_FCT
zmmtcadd_
(
int
*,
int
*,
char
*,
938
char
*,
int
*,
char
*,
939
char
*,
int
* );
940
941
F_VOID_FCT
immdda_
(
int
*,
int
*,
char
*,
942
char
*,
int
*,
char
*,
943
char
*,
int
* );
944
F_VOID_FCT
smmdda_
(
int
*,
int
*,
char
*,
945
char
*,
int
*,
char
*,
946
char
*,
int
* );
947
F_VOID_FCT
dmmdda_
(
int
*,
int
*,
char
*,
948
char
*,
int
*,
char
*,
949
char
*,
int
* );
950
F_VOID_FCT
cmmdda_
(
int
*,
int
*,
char
*,
951
char
*,
int
*,
char
*,
952
char
*,
int
* );
953
F_VOID_FCT
zmmdda_
(
int
*,
int
*,
char
*,
954
char
*,
int
*,
char
*,
955
char
*,
int
* );
956
957
F_VOID_FCT
smmddac_
(
int
*,
int
*,
char
*,
958
char
*,
int
*,
char
*,
959
char
*,
int
* );
960
F_VOID_FCT
dmmddac_
(
int
*,
int
*,
char
*,
961
char
*,
int
*,
char
*,
962
char
*,
int
* );
963
F_VOID_FCT
cmmddac_
(
int
*,
int
*,
char
*,
964
char
*,
int
*,
char
*,
965
char
*,
int
* );
966
F_VOID_FCT
zmmddac_
(
int
*,
int
*,
char
*,
967
char
*,
int
*,
char
*,
968
char
*,
int
* );
969
970
F_VOID_FCT
immddat_
(
int
*,
int
*,
char
*,
971
char
*,
int
*,
char
*,
972
char
*,
int
* );
973
F_VOID_FCT
smmddat_
(
int
*,
int
*,
char
*,
974
char
*,
int
*,
char
*,
975
char
*,
int
* );
976
F_VOID_FCT
dmmddat_
(
int
*,
int
*,
char
*,
977
char
*,
int
*,
char
*,
978
char
*,
int
* );
979
F_VOID_FCT
cmmddat_
(
int
*,
int
*,
char
*,
980
char
*,
int
*,
char
*,
981
char
*,
int
* );
982
F_VOID_FCT
zmmddat_
(
int
*,
int
*,
char
*,
983
char
*,
int
*,
char
*,
984
char
*,
int
* );
985
986
F_VOID_FCT
smmddact_
(
int
*,
int
*,
char
*,
987
char
*,
int
*,
char
*,
988
char
*,
int
* );
989
F_VOID_FCT
dmmddact_
(
int
*,
int
*,
char
*,
990
char
*,
int
*,
char
*,
991
char
*,
int
* );
992
F_VOID_FCT
cmmddact_
(
int
*,
int
*,
char
*,
993
char
*,
int
*,
char
*,
994
char
*,
int
* );
995
F_VOID_FCT
zmmddact_
(
int
*,
int
*,
char
*,
996
char
*,
int
*,
char
*,
997
char
*,
int
* );
998
999
F_VOID_FCT
sasqrtb_
(
float
*,
float
*,
float
* );
1000
F_VOID_FCT
dasqrtb_
(
double
*,
double
*,
double
* );
1001
1002
F_VOID_FCT
sset_
(
int
*,
char
*,
char
*,
1003
int
* );
1004
F_VOID_FCT
dset_
(
int
*,
char
*,
char
*,
1005
int
* );
1006
F_VOID_FCT
cset_
(
int
*,
char
*,
char
*,
1007
int
* );
1008
F_VOID_FCT
zset_
(
int
*,
char
*,
char
*,
1009
int
* );
1010
1011
F_VOID_FCT
svasum_
(
int
*,
char
*,
char
*,
1012
int
* );
1013
F_VOID_FCT
dvasum_
(
int
*,
char
*,
char
*,
1014
int
* );
1015
F_VOID_FCT
scvasum_
(
int
*,
char
*,
char
*,
1016
int
* );
1017
F_VOID_FCT
dzvasum_
(
int
*,
char
*,
char
*,
1018
int
* );
1019
1020
F_VOID_FCT
sascal_
(
int
*,
char
*,
char
*,
1021
int
* );
1022
F_VOID_FCT
dascal_
(
int
*,
char
*,
char
*,
1023
int
* );
1024
1025
F_VOID_FCT
scshft_
(
int
*,
int
*,
int
*,
1026
char
*,
int
* );
1027
F_VOID_FCT
dcshft_
(
int
*,
int
*,
int
*,
1028
char
*,
int
* );
1029
F_VOID_FCT
ccshft_
(
int
*,
int
*,
int
*,
1030
char
*,
int
* );
1031
F_VOID_FCT
zcshft_
(
int
*,
int
*,
int
*,
1032
char
*,
int
* );
1033
1034
F_VOID_FCT
srshft_
(
int
*,
int
*,
int
*,
1035
char
*,
int
* );
1036
F_VOID_FCT
drshft_
(
int
*,
int
*,
int
*,
1037
char
*,
int
* );
1038
F_VOID_FCT
crshft_
(
int
*,
int
*,
int
*,
1039
char
*,
int
* );
1040
F_VOID_FCT
zrshft_
(
int
*,
int
*,
int
*,
1041
char
*,
int
* );
1042
1043
F_VOID_FCT
svvdot_
(
int
*,
char
*,
char
*,
1044
int
*,
char
*,
int
* );
1045
F_VOID_FCT
dvvdot_
(
int
*,
char
*,
char
*,
1046
int
*,
char
*,
int
* );
1047
F_VOID_FCT
cvvdotu_
(
int
*,
char
*,
char
*,
1048
int
*,
char
*,
int
* );
1049
F_VOID_FCT
cvvdotc_
(
int
*,
char
*,
char
*,
1050
int
*,
char
*,
int
* );
1051
F_VOID_FCT
zvvdotu_
(
int
*,
char
*,
char
*,
1052
int
*,
char
*,
int
* );
1053
F_VOID_FCT
zvvdotc_
(
int
*,
char
*,
char
*,
1054
int
*,
char
*,
int
* );
1055
1056
F_VOID_FCT
stzpad_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1057
int
*,
int
*,
char
*,
1058
char
*,
char
*,
int
* );
1059
F_VOID_FCT
dtzpad_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1060
int
*,
int
*,
char
*,
1061
char
*,
char
*,
int
* );
1062
F_VOID_FCT
ctzpad_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1063
int
*,
int
*,
char
*,
1064
char
*,
char
*,
int
* );
1065
F_VOID_FCT
ztzpad_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1066
int
*,
int
*,
char
*,
1067
char
*,
char
*,
int
* );
1068
1069
F_VOID_FCT
stzpadcpy_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1070
int
*,
int
*,
char
*,
1071
int
*,
char
*,
int
* );
1072
F_VOID_FCT
dtzpadcpy_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1073
int
*,
int
*,
char
*,
1074
int
*,
char
*,
int
* );
1075
F_VOID_FCT
ctzpadcpy_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1076
int
*,
int
*,
char
*,
1077
int
*,
char
*,
int
* );
1078
F_VOID_FCT
ztzpadcpy_
(
F_CHAR_T
,
F_CHAR_T
,
int
*,
1079
int
*,
int
*,
char
*,
1080
int
*,
char
*,
int
* );
1081
1082
F_VOID_FCT
stzscal_
(
F_CHAR_T
,
int
*,
int
*,
1083
int
*,
char
*,
char
*,
1084
int
* );
1085
F_VOID_FCT
dtzscal_
(
F_CHAR_T
,
int
*,
int
*,
1086
int
*,
char
*,
char
*,
1087
int
* );
1088
F_VOID_FCT
ctzscal_
(
F_CHAR_T
,
int
*,
int
*,
1089
int
*,
char
*,
char
*,
1090
int
* );
1091
F_VOID_FCT
ztzscal_
(
F_CHAR_T
,
int
*,
int
*,
1092
int
*,
char
*,
char
*,
1093
int
* );
1094
1095
F_VOID_FCT
chescal_
(
F_CHAR_T
,
int
*,
int
*,
1096
int
*,
char
*,
char
*,
1097
int
* );
1098
F_VOID_FCT
zhescal_
(
F_CHAR_T
,
int
*,
int
*,
1099
int
*,
char
*,
char
*,
1100
int
* );
1101
1102
F_VOID_FCT
ctzcnjg_
(
F_CHAR_T
,
int
*,
int
*,
1103
int
*,
char
*,
char
*,
1104
int
* );
1105
F_VOID_FCT
ztzcnjg_
(
F_CHAR_T
,
int
*,
int
*,
1106
int
*,
char
*,
char
*,
1107
int
* );
1108
1109
F_VOID_FCT
sagemv_
(
F_CHAR_T
,
int
*,
int
*,
1110
char
*,
char
*,
int
*,
1111
char
*,
int
*,
char
*,
1112
char
*,
int
* );
1113
F_VOID_FCT
dagemv_
(
F_CHAR_T
,
int
*,
int
*,
1114
char
*,
char
*,
int
*,
1115
char
*,
int
*,
char
*,
1116
char
*,
int
* );
1117
F_VOID_FCT
cagemv_
(
F_CHAR_T
,
int
*,
int
*,
1118
char
*,
char
*,
int
*,
1119
char
*,
int
*,
char
*,
1120
char
*,
int
* );
1121
F_VOID_FCT
zagemv_
(
F_CHAR_T
,
int
*,
int
*,
1122
char
*,
char
*,
int
*,
1123
char
*,
int
*,
char
*,
1124
char
*,
int
* );
1125
1126
F_VOID_FCT
sasymv_
(
F_CHAR_T
,
int
*,
char
*,
1127
char
*,
int
*,
char
*,
1128
int
*,
char
*,
char
*,
1129
int
* );
1130
F_VOID_FCT
dasymv_
(
F_CHAR_T
,
int
*,
char
*,
1131
char
*,
int
*,
char
*,
1132
int
*,
char
*,
char
*,
1133
int
* );
1134
F_VOID_FCT
casymv_
(
F_CHAR_T
,
int
*,
char
*,
1135
char
*,
int
*,
char
*,
1136
int
*,
char
*,
char
*,
1137
int
* );
1138
F_VOID_FCT
zasymv_
(
F_CHAR_T
,
int
*,
char
*,
1139
char
*,
int
*,
char
*,
1140
int
*,
char
*,
char
*,
1141
int
* );
1142
F_VOID_FCT
cahemv_
(
F_CHAR_T
,
int
*,
char
*,
1143
char
*,
int
*,
char
*,
1144
int
*,
char
*,
char
*,
1145
int
* );
1146
F_VOID_FCT
zahemv_
(
F_CHAR_T
,
int
*,
char
*,
1147
char
*,
int
*,
char
*,
1148
int
*,
char
*,
char
*,
1149
int
* );
1150
1151
F_VOID_FCT
satrmv_
(
F_CHAR_T
,
F_CHAR_T
,
F_CHAR_T
,
1152
int
*,
char
*,
char
*,
1153
int
*,
char
*,
int
*,
1154
char
*,
char
*,
int
* );
1155
F_VOID_FCT
datrmv_
(
F_CHAR_T
,
F_CHAR_T
,
F_CHAR_T
,
1156
int
*,
char
*,
char
*,
1157
int
*,
char
*,
int
*,
1158
char
*,
char
*,
int
* );
1159
F_VOID_FCT
catrmv_
(
F_CHAR_T
,
F_CHAR_T
,
F_CHAR_T
,
1160
int
*,
char
*,
char
*,
1161
int
*,
char
*,
int
*,
1162
char
*,
char
*,
int
* );
1163
F_VOID_FCT
zatrmv_
(
F_CHAR_T
,
F_CHAR_T
,
F_CHAR_T
,
1164
int
*,
char
*,
char
*,
1165
int
*,
char
*,
int
*,
1166
char
*,
char
*,
int
* );
1167
1168
F_VOID_FCT
csymv_
(
F_CHAR_T
,
int
*,
char
*,
1169
char
*,
int
*,
char
*,
1170
int
*,
char
*,
char
*,
1171
int
* );
1172
F_VOID_FCT
zsymv_
(
F_CHAR_T
,
int
*,
char
*,
1173
char
*,
int
*,
char
*,
1174
int
*,
char
*,
char
*,
1175
int
* );
1176
1177
F_VOID_FCT
csyr_
(
F_CHAR_T
,
int
*,
char
*,
1178
char
*,
int
*,
char
*,
1179
int
* );
1180
F_VOID_FCT
zsyr_
(
F_CHAR_T
,
int
*,
char
*,
1181
char
*,
int
*,
char
*,
1182
int
* );
1183
1184
F_VOID_FCT
csyr2_
(
F_CHAR_T
,
int
*,
char
*,
1185
char
*,
int
*,
char
*,
1186
int
*,
char
*,
int
* );
1187
F_VOID_FCT
zsyr2_
(
F_CHAR_T
,
int
*,
char
*,
1188
char
*,
int
*,
char
*,
1189
int
*,
char
*,
int
* );
1190
1191
void
PB_Ctzsyr
(
PBTYP_T
*,
char
*,
int
,
1192
int
,
int
,
int
,
1193
char
*,
char
*,
int
,
1194
char
*,
int
,
char
*,
1195
int
);
1196
void
PB_Ctzher
(
PBTYP_T
*,
char
*,
int
,
1197
int
,
int
,
int
,
1198
char
*,
char
*,
int
,
1199
char
*,
int
,
char
*,
1200
int
);
1201
void
PB_Ctzsyr2
(
PBTYP_T
*,
char
*,
int
,
1202
int
,
int
,
int
,
1203
char
*,
char
*,
int
,
1204
char
*,
int
,
char
*,
1205
int
,
char
*,
int
,
1206
char
*,
int
);
1207
void
PB_Ctzher2
(
PBTYP_T
*,
char
*,
int
,
1208
int
,
int
,
int
,
1209
char
*,
char
*,
int
,
1210
char
*,
int
,
char
*,
1211
int
,
char
*,
int
,
1212
char
*,
int
);
1213
void
PB_Ctztrmv
(
PBTYP_T
*,
char
*,
char
*,
1214
char
*,
char
*,
int
,
1215
int
,
int
,
int
,
1216
char
*,
char
*,
int
,
1217
char
*,
int
,
char
*,
1218
int
);
1219
void
PB_Ctzatrmv
(
PBTYP_T
*,
char
*,
char
*,
1220
char
*,
char
*,
int
,
1221
int
,
int
,
int
,
1222
char
*,
char
*,
int
,
1223
char
*,
int
,
char
*,
1224
int
);
1225
void
PB_Ctzsymv
(
PBTYP_T
*,
char
*,
char
*,
1226
int
,
int
,
int
,
1227
int
,
char
*,
char
*,
1228
int
,
char
*,
int
,
1229
char
*,
int
,
char
*,
1230
int
,
char
*,
int
);
1231
void
PB_Ctzhemv
(
PBTYP_T
*,
char
*,
char
*,
1232
int
,
int
,
int
,
1233
int
,
char
*,
char
*,
1234
int
,
char
*,
int
,
1235
char
*,
int
,
char
*,
1236
int
,
char
*,
int
);
1237
void
PB_Ctzasymv
(
PBTYP_T
*,
char
*,
char
*,
1238
int
,
int
,
int
,
1239
int
,
char
*,
char
*,
1240
int
,
char
*,
int
,
1241
char
*,
int
,
char
*,
1242
int
,
char
*,
int
);
1243
void
PB_Ctzahemv
(
PBTYP_T
*,
char
*,
char
*,
1244
int
,
int
,
int
,
1245
int
,
char
*,
char
*,
1246
int
,
char
*,
int
,
1247
char
*,
int
,
char
*,
1248
int
,
char
*,
int
);
1249
1250
void
PB_Ctzsyrk
(
PBTYP_T
*,
char
*,
int
,
1251
int
,
int
,
int
,
1252
char
*,
char
*,
int
,
1253
char
*,
int
,
char
*,
1254
int
);
1255
void
PB_Ctzherk
(
PBTYP_T
*,
char
*,
int
,
1256
int
,
int
,
int
,
1257
char
*,
char
*,
int
,
1258
char
*,
int
,
char
*,
1259
int
);
1260
void
PB_Ctzsyr2k
(
PBTYP_T
*,
char
*,
int
,
1261
int
,
int
,
int
,
1262
char
*,
char
*,
int
,
1263
char
*,
int
,
char
*,
1264
int
,
char
*,
int
,
1265
char
*,
int
);
1266
void
PB_Ctzher2k
(
PBTYP_T
*,
char
*,
int
,
1267
int
,
int
,
int
,
1268
char
*,
char
*,
int
,
1269
char
*,
int
,
char
*,
1270
int
,
char
*,
int
,
1271
char
*,
int
);
1272
void
PB_Ctztrmm
(
PBTYP_T
*,
char
*,
char
*,
1273
char
*,
char
*,
int
,
1274
int
,
int
,
int
,
1275
char
*,
char
*,
int
,
1276
char
*,
int
,
char
*,
1277
int
);
1278
void
PB_Ctzsymm
(
PBTYP_T
*,
char
*,
char
*,
1279
int
,
int
,
int
,
1280
int
,
char
*,
char
*,
1281
int
,
char
*,
int
,
1282
char
*,
int
,
char
*,
1283
int
,
char
*,
int
);
1284
void
PB_Ctzhemm
(
PBTYP_T
*,
char
*,
char
*,
1285
int
,
int
,
int
,
1286
int
,
char
*,
char
*,
1287
int
,
char
*,
int
,
1288
char
*,
int
,
char
*,
1289
int
,
char
*,
int
);
1290
1291
void
PB_CpswapNN
(
PBTYP_T
*,
int
,
char
*,
1292
int
,
int
,
int
*,
1293
int
,
char
*,
int
,
1294
int
,
int
*,
int
);
1295
void
PB_CpswapND
(
PBTYP_T
*,
int
,
char
*,
1296
int
,
int
,
int
*,
1297
int
,
char
*,
int
,
1298
int
,
int
*,
int
);
1299
void
PB_Cpdot11
(
PBTYP_T
*,
int
,
char
*,
1300
char
*,
int
,
int
,
1301
int
*,
int
,
char
*,
1302
int
,
int
,
int
*,
1303
int
,
VVDOT_T
);
1304
void
PB_CpdotNN
(
PBTYP_T
*,
int
,
char
*,
1305
char
*,
int
,
int
,
1306
int
*,
int
,
char
*,
1307
int
,
int
,
int
*,
1308
int
,
VVDOT_T
);
1309
void
PB_CpdotND
(
PBTYP_T
*,
int
,
char
*,
1310
char
*,
int
,
int
,
1311
int
*,
int
,
char
*,
1312
int
,
int
,
int
*,
1313
int
,
VVDOT_T
);
1314
void
PB_CpaxpbyNN
(
PBTYP_T
*,
char
*,
int
,
1315
int
,
char
*,
char
*,
1316
int
,
int
,
int
*,
1317
char
*,
char
*,
char
*,
1318
int
,
int
,
int
*,
1319
char
* );
1320
void
PB_CpaxpbyND
(
PBTYP_T
*,
char
*,
int
,
1321
int
,
char
*,
char
*,
1322
int
,
int
,
int
*,
1323
char
*,
char
*,
char
*,
1324
int
,
int
,
int
*,
1325
char
* );
1326
void
PB_CpaxpbyDN
(
PBTYP_T
*,
char
*,
int
,
1327
int
,
char
*,
char
*,
1328
int
,
int
,
int
*,
1329
char
*,
char
*,
char
*,
1330
int
,
int
,
int
*,
1331
char
* );
1332
void
PB_Cpaxpby
(
PBTYP_T
*,
char
*,
int
,
1333
int
,
char
*,
char
*,
1334
int
,
int
,
int
*,
1335
char
*,
char
*,
char
*,
1336
int
,
int
,
int
*,
1337
char
* );
1338
1339
void
PB_Cpsyr
(
PBTYP_T
*,
char
*,
int
,
1340
int
,
char
*,
char
*,
1341
int
,
char
*,
int
,
1342
char
*,
int
,
int
,
1343
int
*,
TZSYR_T
);
1344
void
PB_Cpsyr2
(
PBTYP_T
*,
char
*,
int
,
1345
int
,
char
*,
char
*,
1346
int
,
char
*,
int
,
1347
char
*,
int
,
char
*,
1348
int
,
char
*,
int
,
1349
int
,
int
*,
TZSYR2_T
);
1350
void
PB_Cptrm
(
PBTYP_T
*,
PBTYP_T
*,
char
*,
1351
char
*,
char
*,
char
*,
1352
int
,
int
,
char
*,
1353
char
*,
int
,
int
,
1354
int
*,
char
*,
int
,
1355
char
*,
int
,
TZTRM_T
);
1356
void
PB_Cpsym
(
PBTYP_T
*,
PBTYP_T
*,
char
*,
1357
char
*,
int
,
int
,
1358
char
*,
char
*,
int
,
1359
int
,
int
*,
char
*,
1360
int
,
char
*,
int
,
1361
char
*,
int
,
char
*,
1362
int
,
TZSYM_T
);
1363
void
PB_Cpgeadd
(
PBTYP_T
*,
char
*,
char
*,
1364
char
*,
int
,
int
,
1365
char
*,
char
*,
int
,
1366
int
,
int
*,
char
*,
1367
char
*,
int
,
int
,
1368
int
* );
1369
void
PB_Cptradd
(
PBTYP_T
*,
char
*,
char
*,
1370
char
*,
int
,
int
,
1371
char
*,
char
*,
int
,
1372
int
,
int
*,
char
*,
1373
char
*,
int
,
int
,
1374
int
* );
1375
void
PB_Cptran
(
PBTYP_T
*,
char
*,
int
,
1376
int
,
char
*,
char
*,
1377
int
,
int
,
int
*,
1378
char
*,
char
*,
int
,
1379
int
,
int
* );
1380
void
PB_Cptrsv
(
PBTYP_T
*,
int
,
char
*,
1381
char
*,
char
*,
int
,
1382
char
*,
int
,
int
,
1383
int
*,
char
*,
int
,
1384
char
*,
int
);
1385
void
PB_Cptrsm
(
PBTYP_T
*,
int
,
char
*,
1386
char
*,
char
*,
char
*,
1387
int
,
int
,
char
*,
1388
char
*,
int
,
int
,
1389
int
*,
char
*,
int
,
1390
char
*,
int
);
1391
1392
void
PB_CpgemmAB
(
PBTYP_T
*,
char
*,
char
*,
1393
char
*,
char
*,
int
,
1394
int
,
int
,
char
*,
1395
char
*,
int
,
int
,
1396
int
*,
char
*,
int
,
1397
int
,
int
*,
char
*,
1398
char
*,
int
,
int
,
1399
int
* );
1400
void
PB_CpgemmAC
(
PBTYP_T
*,
char
*,
char
*,
1401
char
*,
char
*,
int
,
1402
int
,
int
,
char
*,
1403
char
*,
int
,
int
,
1404
int
*,
char
*,
int
,
1405
int
,
int
*,
char
*,
1406
char
*,
int
,
int
,
1407
int
* );
1408
void
PB_CpgemmBC
(
PBTYP_T
*,
char
*,
char
*,
1409
char
*,
char
*,
int
,
1410
int
,
int
,
char
*,
1411
char
*,
int
,
int
,
1412
int
*,
char
*,
int
,
1413
int
,
int
*,
char
*,
1414
char
*,
int
,
int
,
1415
int
* );
1416
void
PB_CpsymmAB
(
PBTYP_T
*,
char
*,
char
*,
1417
char
*,
char
*,
int
,
1418
int
,
char
*,
char
*,
1419
int
,
int
,
int
*,
1420
char
*,
int
,
int
,
1421
int
*,
char
*,
char
*,
1422
int
,
int
,
int
* );
1423
void
PB_CpsymmBC
(
PBTYP_T
*,
char
*,
char
*,
1424
char
*,
char
*,
int
,
1425
int
,
char
*,
char
*,
1426
int
,
int
,
int
*,
1427
char
*,
int
,
int
,
1428
int
*,
char
*,
char
*,
1429
int
,
int
,
int
* );
1430
void
PB_CpsyrkA
(
PBTYP_T
*,
char
*,
char
*,
1431
char
*,
char
*,
int
,
1432
int
,
char
*,
char
*,
1433
int
,
int
,
int
*,
1434
char
*,
char
*,
int
,
1435
int
,
int
* );
1436
void
PB_CpsyrkAC
(
PBTYP_T
*,
char
*,
char
*,
1437
char
*,
char
*,
int
,
1438
int
,
char
*,
char
*,
1439
int
,
int
,
int
*,
1440
char
*,
char
*,
int
,
1441
int
,
int
* );
1442
void
PB_Cpsyr2kA
(
PBTYP_T
*,
char
*,
char
*,
1443
char
*,
char
*,
int
,
1444
int
,
char
*,
char
*,
1445
int
,
int
,
int
*,
1446
char
*,
int
,
int
,
1447
int
*,
char
*,
char
*,
1448
int
,
int
,
int
* );
1449
void
PB_Cpsyr2kAC
(
PBTYP_T
*,
char
*,
char
*,
1450
char
*,
char
*,
int
,
1451
int
,
char
*,
char
*,
1452
int
,
int
,
int
*,
1453
char
*,
int
,
int
,
1454
int
*,
char
*,
char
*,
1455
int
,
int
,
int
* );
1456
void
PB_CptrmmAB
(
PBTYP_T
*,
char
*,
char
*,
1457
char
*,
char
*,
char
*,
1458
int
,
int
,
char
*,
1459
char
*,
int
,
int
,
1460
int
*,
char
*,
int
,
1461
int
,
int
* );
1462
void
PB_CptrmmB
(
PBTYP_T
*,
char
*,
char
*,
1463
char
*,
char
*,
char
*,
1464
int
,
int
,
char
*,
1465
char
*,
int
,
int
,
1466
int
*,
char
*,
int
,
1467
int
,
int
* );
1468
void
PB_CptrsmAB
(
PBTYP_T
*,
char
*,
char
*,
1469
char
*,
char
*,
char
*,
1470
int
,
int
,
char
*,
1471
char
*,
int
,
int
,
1472
int
*,
char
*,
int
,
1473
int
,
int
* );
1474
void
PB_CptrsmAB0
(
PBTYP_T
*,
char
*,
char
*,
1475
char
*,
int
,
int
,
1476
char
*,
char
*,
int
,
1477
int
,
int
*,
char
*,
1478
int
,
int
,
int
*,
1479
char
* *,
int
*,
int
* );
1480
void
PB_CptrsmAB1
(
PBTYP_T
*,
char
*,
char
*,
1481
char
*,
char
*,
int
,
1482
int
,
char
*,
char
*,
1483
int
,
int
,
int
*,
1484
char
*,
int
,
int
,
1485
int
*,
char
*,
int
* );
1486
void
PB_CptrsmB
(
PBTYP_T
*,
char
*,
char
*,
1487
char
*,
char
*,
char
*,
1488
int
,
int
,
char
*,
1489
char
*,
int
,
int
,
1490
int
*,
char
*,
int
,
1491
int
,
int
* );
1492
#else
1493
1494
F_VOID_FCT
immadd_
();
1495
F_VOID_FCT
smmadd_
();
1496
F_VOID_FCT
dmmadd_
();
1497
F_VOID_FCT
cmmadd_
();
1498
F_VOID_FCT
zmmadd_
();
1499
1500
F_VOID_FCT
smmcadd_
();
1501
F_VOID_FCT
dmmcadd_
();
1502
F_VOID_FCT
cmmcadd_
();
1503
F_VOID_FCT
zmmcadd_
();
1504
1505
F_VOID_FCT
immtadd_
();
1506
F_VOID_FCT
smmtadd_
();
1507
F_VOID_FCT
dmmtadd_
();
1508
F_VOID_FCT
cmmtadd_
();
1509
F_VOID_FCT
zmmtadd_
();
1510
1511
F_VOID_FCT
smmtcadd_
();
1512
F_VOID_FCT
dmmtcadd_
();
1513
F_VOID_FCT
cmmtcadd_
();
1514
F_VOID_FCT
zmmtcadd_
();
1515
1516
F_VOID_FCT
immdda_
();
1517
F_VOID_FCT
smmdda_
();
1518
F_VOID_FCT
dmmdda_
();
1519
F_VOID_FCT
cmmdda_
();
1520
F_VOID_FCT
zmmdda_
();
1521
1522
F_VOID_FCT
smmddac_
();
1523
F_VOID_FCT
dmmddac_
();
1524
F_VOID_FCT
cmmddac_
();
1525
F_VOID_FCT
zmmddac_
();
1526
1527
F_VOID_FCT
immddat_
();
1528
F_VOID_FCT
smmddat_
();
1529
F_VOID_FCT
dmmddat_
();
1530
F_VOID_FCT
cmmddat_
();
1531
F_VOID_FCT
zmmddat_
();
1532
1533
F_VOID_FCT
smmddact_
();
1534
F_VOID_FCT
dmmddact_
();
1535
F_VOID_FCT
cmmddact_
();
1536
F_VOID_FCT
zmmddact_
();
1537
1538
F_VOID_FCT
sasqrtb_
();
1539
F_VOID_FCT
dasqrtb_
();
1540
1541
F_VOID_FCT
sset_
();
1542
F_VOID_FCT
dset_
();
1543
F_VOID_FCT
cset_
();
1544
F_VOID_FCT
zset_
();
1545
1546
F_VOID_FCT
svasum_
();
1547
F_VOID_FCT
dvasum_
();
1548
F_VOID_FCT
scvasum_
();
1549
F_VOID_FCT
dzvasum_
();
1550
1551
F_VOID_FCT
sascal_
();
1552
F_VOID_FCT
dascal_
();
1553
1554
F_VOID_FCT
scshft_
();
1555
F_VOID_FCT
dcshft_
();
1556
F_VOID_FCT
ccshft_
();
1557
F_VOID_FCT
zcshft_
();
1558
1559
F_VOID_FCT
srshft_
();
1560
F_VOID_FCT
drshft_
();
1561
F_VOID_FCT
crshft_
();
1562
F_VOID_FCT
zrshft_
();
1563
1564
F_VOID_FCT
svvdot_
();
1565
F_VOID_FCT
dvvdot_
();
1566
F_VOID_FCT
cvvdotc_
();
1567
F_VOID_FCT
cvvdotu_
();
1568
F_VOID_FCT
zvvdotc_
();
1569
F_VOID_FCT
zvvdotu_
();
1570
1571
F_VOID_FCT
stzpad_
();
1572
F_VOID_FCT
dtzpad_
();
1573
F_VOID_FCT
ctzpad_
();
1574
F_VOID_FCT
ztzpad_
();
1575
1576
F_VOID_FCT
stzpadcpy_
();
1577
F_VOID_FCT
dtzpadcpy_
();
1578
F_VOID_FCT
ctzpadcpy_
();
1579
F_VOID_FCT
ztzpadcpy_
();
1580
1581
F_VOID_FCT
stzscal_
();
1582
F_VOID_FCT
dtzscal_
();
1583
F_VOID_FCT
ctzscal_
();
1584
F_VOID_FCT
ztzscal_
();
1585
1586
F_VOID_FCT
chescal_
();
1587
F_VOID_FCT
zhescal_
();
1588
1589
F_VOID_FCT
ctzcnjg_
();
1590
F_VOID_FCT
ztzcnjg_
();
1591
1592
F_VOID_FCT
sagemv_
();
1593
F_VOID_FCT
dagemv_
();
1594
F_VOID_FCT
cagemv_
();
1595
F_VOID_FCT
zagemv_
();
1596
1597
F_VOID_FCT
sasymv_
();
1598
F_VOID_FCT
dasymv_
();
1599
F_VOID_FCT
casymv_
();
1600
F_VOID_FCT
zasymv_
();
1601
F_VOID_FCT
cahemv_
();
1602
F_VOID_FCT
zahemv_
();
1603
1604
F_VOID_FCT
satrmv_
();
1605
F_VOID_FCT
datrmv_
();
1606
F_VOID_FCT
catrmv_
();
1607
F_VOID_FCT
zatrmv_
();
1608
1609
F_VOID_FCT
csymv_
();
1610
F_VOID_FCT
zsymv_
();
1611
1612
F_VOID_FCT
csyr_
();
1613
F_VOID_FCT
zsyr_
();
1614
1615
F_VOID_FCT
csyr2_
();
1616
F_VOID_FCT
zsyr2_
();
1617
1618
void
PB_Ctzsyr
();
1619
void
PB_Ctzher
();
1620
void
PB_Ctzsyr2
();
1621
void
PB_Ctzher2
();
1622
void
PB_Ctztrmv
();
1623
void
PB_Ctzatrmv
();
1624
void
PB_Ctzsymv
();
1625
void
PB_Ctzhemv
();
1626
void
PB_Ctzasymv
();
1627
void
PB_Ctzahemv
();
1628
void
PB_Ctzsyrk
();
1629
void
PB_Ctzherk
();
1630
void
PB_Ctzsyr2k
();
1631
void
PB_Ctzher2k
();
1632
void
PB_Ctztrmm
();
1633
void
PB_Ctzsymm
();
1634
void
PB_Ctzhemm
();
1635
1636
void
PB_CpswapNN
();
1637
void
PB_CpswapND
();
1638
void
PB_Cpdot11
();
1639
void
PB_CpdotNN
();
1640
void
PB_CpdotND
();
1641
void
PB_CpaxpbyNN
();
1642
void
PB_CpaxpbyND
();
1643
void
PB_CpaxpbyDN
();
1644
void
PB_Cpaxpby
();
1645
1646
void
PB_Cpsyr
();
1647
void
PB_Cpsyr2
();
1648
void
PB_Cptrm
();
1649
void
PB_Cpsym
();
1650
void
PB_Cpgeadd
();
1651
void
PB_Cptradd
();
1652
void
PB_Cptran
();
1653
void
PB_Cptrsv
();
1654
void
PB_Cptrsm
();
1655
1656
void
PB_CpgemmAB
();
1657
void
PB_CpgemmAC
();
1658
void
PB_CpgemmBC
();
1659
void
PB_CpsymmAB
();
1660
void
PB_CpsymmBC
();
1661
void
PB_CpsyrkA
();
1662
void
PB_CpsyrkAC
();
1663
void
PB_Cpsyr2kA
();
1664
void
PB_Cpsyr2kAC
();
1665
void
PB_CptrmmAB
();
1666
void
PB_CptrmmB
();
1667
void
PB_CptrsmAB
();
1668
void
PB_CptrsmAB0
();
1669
void
PB_CptrsmAB1
();
1670
void
PB_CptrsmB
();
1671
1672
#endif
1673
/* TOOLS */
1674
#ifdef __STDC__
1675
1676
int
PB_Cgcd
(
int
,
int
);
1677
int
PB_Clcm
(
int
,
int
);
1678
1679
void
PB_Cdescset
(
int
*,
int
,
int
,
1680
int
,
int
,
int
,
1681
int
,
int
,
int
,
1682
int
,
int
);
1683
void
PB_Cdescribe
(
int
,
int
,
int
,
1684
int
,
int
*,
int
,
1685
int
,
int
,
int
,
1686
int
*,
int
*,
int
*,
1687
int
*,
int
*,
int
*,
1688
int
*,
int
*,
int
*,
1689
int
* );
1690
void
PB_CargFtoC
(
int
,
int
,
int
*,
1691
int
*,
int
*,
int
* );
1692
int
PB_Cfirstnb
(
int
,
int
,
int
,
1693
int
);
1694
int
PB_Clastnb
(
int
,
int
,
int
,
1695
int
);
1696
int
PB_Cspan
(
int
,
int
,
int
,
1697
int
,
int
,
int
);
1698
1699
void
PB_Cainfog2l
(
int
,
int
,
int
,
1700
int
,
int
*,
int
,
1701
int
,
int
,
int
,
1702
int
*,
int
*,
int
*,
1703
int
*,
int
*,
int
*,
1704
int
*,
int
*,
int
*,
1705
int
* );
1706
void
PB_Cinfog2l
(
int
,
int
,
int
*,
1707
int
,
int
,
int
,
1708
int
,
int
*,
int
*,
1709
int
*,
int
* );
1710
int
PB_Cg2lrem
(
int
,
int
,
int
,
1711
int
,
int
,
int
);
1712
int
PB_Cindxg2p
(
int
,
int
,
int
,
1713
int
,
int
,
int
);
1714
int
PB_Cnumroc
(
int
,
int
,
int
,
1715
int
,
int
,
int
,
1716
int
);
1717
int
PB_Cnpreroc
(
int
,
int
,
int
,
1718
int
,
int
,
int
,
1719
int
);
1720
int
PB_Cnnxtroc
(
int
,
int
,
int
,
1721
int
,
int
,
int
,
1722
int
);
1723
1724
void
PB_Cconjg
(
PBTYP_T
*,
char
*,
char
* );
1725
1726
1727
void
PB_Cwarn
(
int
,
int
,
char
*,
1728
char
*, ... );
1729
void
PB_Cabort
(
int
,
char
*,
int
);
1730
void
PB_Cchkmat
(
int
,
char
*,
char
*,
1731
int
,
int
,
int
,
1732
int
,
int
,
int
,
1733
int
*,
int
,
int
* );
1734
void
PB_Cchkvec
(
int
,
char
*,
char
*,
1735
int
,
int
,
int
,
1736
int
,
int
*,
int
,
1737
int
,
int
* );
1738
1739
char
*
PB_Cmalloc
(
int
);
1740
char
*
PB_Cgetbuf
(
char
*,
int
);
1741
1742
PBTYP_T
*
PB_Citypeset
(
void
);
1743
PBTYP_T
*
PB_Cstypeset
(
void
);
1744
PBTYP_T
*
PB_Cdtypeset
(
void
);
1745
PBTYP_T
*
PB_Cctypeset
(
void
);
1746
PBTYP_T
*
PB_Cztypeset
(
void
);
1747
1748
int
pilaenv_
(
int
*,
F_CHAR_T
);
1749
char
*
PB_Ctop
(
int
*,
char
*,
char
*,
1750
char
* );
1751
1752
void
PB_CVMinit
(
PB_VM_T
*,
int
,
int
,
1753
int
,
int
,
int
,
1754
int
,
int
,
int
,
1755
int
,
int
,
int
,
1756
int
);
1757
int
PB_CVMnpq
(
PB_VM_T
* );
1758
void
PB_CVMcontig
(
PB_VM_T
*,
int
*,
int
*,
1759
int
*,
int
* );
1760
int
PB_CVMloc
(
PBTYP_T
*,
PB_VM_T
*,
char
*,
1761
char
*,
char
*,
char
*,
1762
int
,
int
,
char
*,
1763
char
*,
int
,
char
*,
1764
char
*,
int
);
1765
int
PB_CVMswp
(
PBTYP_T
*,
PB_VM_T
*,
char
*,
1766
char
*,
char
*,
int
,
1767
char
*,
int
,
char
*,
1768
int
);
1769
int
PB_CVMpack
(
PBTYP_T
*,
PB_VM_T
*,
char
*,
1770
char
*,
char
*,
char
*,
1771
int
,
int
,
char
*,
1772
char
*,
int
,
char
*,
1773
char
*,
int
);
1774
void
PB_CVMupdate
(
PB_VM_T
*,
int
,
int
*,
1775
int
* );
1776
1777
void
PB_Cbinfo
(
int
,
int
,
int
,
1778
int
,
int
,
int
,
1779
int
,
int
,
int
,
1780
int
*,
int
*,
int
*,
1781
int
*,
int
*,
int
*,
1782
int
*,
int
*,
int
*,
1783
int
*,
int
* );
1784
1785
void
PB_Cplaprnt
(
PBTYP_T
*,
int
,
int
,
1786
char
*,
int
,
int
,
1787
int
*,
int
,
int
,
1788
char
* );
1789
void
PB_Cplaprn2
(
PBTYP_T
*,
int
,
int
,
1790
char
*,
int
,
int
,
1791
int
*,
int
,
int
,
1792
char
*,
int
,
int
);
1793
void
PB_Cprnt
(
char
,
int
,
int
,
1794
int
,
char
*,
int
,
1795
int
,
char
* );
1796
1797
void
PB_Cplapad
(
PBTYP_T
*,
char
*,
char
*,
1798
int
,
int
,
char
*,
1799
char
*,
char
*,
int
,
1800
int
,
int
* );
1801
void
PB_Cplapd2
(
PBTYP_T
*,
char
*,
char
*,
1802
int
,
int
,
char
*,
1803
char
*,
char
*,
int
,
1804
int
,
int
* );
1805
void
PB_Cplascal
(
PBTYP_T
*,
char
*,
char
*,
1806
int
,
int
,
char
*,
1807
char
*,
int
,
int
,
1808
int
* );
1809
void
PB_Cplasca2
(
PBTYP_T
*,
char
*,
char
*,
1810
int
,
int
,
char
*,
1811
char
*,
int
,
int
,
1812
int
* );
1813
void
PB_Cplacnjg
(
PBTYP_T
*,
int
,
int
,
1814
char
*,
char
*,
int
,
1815
int
,
int
* );
1816
1817
void
PB_CInV
(
PBTYP_T
*,
char
*,
char
*,
1818
int
,
int
,
int
*,
1819
int
,
char
*,
int
,
1820
int
,
int
*,
char
*,
1821
char
* *,
int
*,
int
* );
1822
void
PB_CInV2
(
PBTYP_T
*,
char
*,
char
*,
1823
int
,
int
,
int
*,
1824
int
,
char
*,
int
,
1825
int
,
int
*,
char
*,
1826
char
*,
int
,
int
* );
1827
void
PB_CInOutV
(
PBTYP_T
*,
char
*,
int
,
1828
int
,
int
*,
int
,
1829
char
*,
char
*,
int
,
1830
int
,
int
*,
char
*,
1831
char
* *,
char
* *,
int
*,
1832
int
*,
int
*,
int
* );
1833
void
PB_CInOutV2
(
PBTYP_T
*,
char
*,
char
*,
1834
int
,
int
,
int
,
1835
int
*,
int
,
char
*,
1836
int
,
int
,
int
*,
1837
char
*,
char
* *,
int
*,
1838
int
*,
int
*,
int
* );
1839
void
PB_COutV
(
PBTYP_T
*,
char
*,
char
*,
1840
int
,
int
,
int
*,
1841
int
,
char
* *,
int
*,
1842
int
*,
int
* );
1843
void
PB_CGatherV
(
PBTYP_T
*,
char
*,
char
*,
1844
int
,
int
,
char
*,
1845
int
,
int
,
int
*,
1846
char
*,
char
* *,
int
*,
1847
int
* );
1848
void
PB_CScatterV
(
PBTYP_T
*,
char
*,
int
,
1849
int
,
char
*,
int
,
1850
int
,
int
*,
char
*,
1851
char
*,
char
*,
int
,
1852
int
,
int
*,
char
* );
1853
#else
1854
1855
int
PB_Cgcd
();
1856
int
PB_Clcm
();
1857
1858
void
PB_Cdescset
();
1859
void
PB_Cdescribe
();
1860
void
PB_CargFtoC
();
1861
int
PB_Cfirstnb
();
1862
int
PB_Clastnb
();
1863
int
PB_Cspan
();
1864
1865
void
PB_Cainfog2l
();
1866
void
PB_Cinfog2l
();
1867
int
PB_Cg2lrem
();
1868
int
PB_Cindxg2p
();
1869
int
PB_Cnumroc
();
1870
int
PB_Cnpreroc
();
1871
int
PB_Cnnxtroc
();
1872
1873
void
PB_Cconjg
();
1874
1875
void
PB_Cwarn
();
1876
void
PB_Cabort
();
1877
void
PB_Cchkmat
();
1878
void
PB_Cchkvec
();
1879
1880
char
*
PB_Cmalloc
();
1881
char
*
PB_Cgetbuf
();
1882
1883
PBTYP_T
*
PB_Citypeset
();
1884
PBTYP_T
*
PB_Cstypeset
();
1885
PBTYP_T
*
PB_Cdtypeset
();
1886
PBTYP_T
*
PB_Cctypeset
();
1887
PBTYP_T
*
PB_Cztypeset
();
1888
1889
int
pilaenv_
();
1890
char
*
PB_Ctop
();
1891
1892
void
PB_CVMinit
();
1893
int
PB_CVMnpq
();
1894
void
PB_CVMcontig
();
1895
int
PB_CVMloc
();
1896
int
PB_CVMswp
();
1897
int
PB_CVMpack
();
1898
void
PB_CVMupdate
();
1899
1900
void
PB_Cbinfo
();
1901
1902
void
PB_Cplaprnt
();
1903
void
PB_Cplaprn2
();
1904
void
PB_Cprnt
();
1905
1906
void
PB_Cplapad
();
1907
void
PB_Cplapd2
();
1908
void
PB_Cplascal
();
1909
void
PB_Cplasca2
();
1910
void
PB_Cplacnjg
();
1911
1912
void
PB_CInV
();
1913
void
PB_CInV2
();
1914
void
PB_CInOutV
();
1915
void
PB_CInOutV2
();
1916
void
PB_COutV
();
1917
void
PB_CGatherV
();
1918
void
PB_CScatterV
();
1919
1920
#endif
chescal_
#define chescal_
Definition:
PBtools.h:843
csymv_
#define csymv_
Definition:
PBtools.h:866
dascal_
#define dascal_
Definition:
PBtools.h:809
PB_CpgemmBC
void PB_CpgemmBC()
PB_Ctzsyrk
void PB_Ctzsyrk()
dzvasum_
#define dzvasum_
Definition:
PBtools.h:806
dmmtcadd_
#define dmmtcadd_
Definition:
PBtools.h:769
sasqrtb_
#define sasqrtb_
Definition:
PBtools.h:795
PB_Cpaxpby
void PB_Cpaxpby()
smmcadd_
#define smmcadd_
Definition:
PBtools.h:763
dtzpad_
#define dtzpad_
Definition:
PBtools.h:829
catrmv_
#define catrmv_
Definition:
PBtools.h:863
PB_CVMcontig
void PB_CVMcontig()
dasymv_
#define dasymv_
Definition:
PBtools.h:855
smmddat_
#define smmddat_
Definition:
PBtools.h:785
PB_Cwarn
void PB_Cwarn()
PB_CpsymmAB
void PB_CpsymmAB()
datrmv_
#define datrmv_
Definition:
PBtools.h:862
dmmddat_
#define dmmddat_
Definition:
PBtools.h:786
PB_CVMloc
int PB_CVMloc()
smmddact_
#define smmddact_
Definition:
PBtools.h:790
PB_Cpgeadd
void PB_Cpgeadd()
PB_Cplapd2
void PB_Cplapd2()
PB_CpdotND
void PB_CpdotND()
PB_Ctzhemm
void PB_Ctzhemm()
zmmddac_
#define zmmddac_
Definition:
PBtools.h:782
PB_Cpsym
void PB_Cpsym()
cmmddat_
#define cmmddat_
Definition:
PBtools.h:787
stzpadcpy_
#define stzpadcpy_
Definition:
PBtools.h:833
cmmtadd_
#define cmmtadd_
Definition:
PBtools.h:760
PB_Cg2lrem
int PB_Cg2lrem()
dmmadd_
#define dmmadd_
Definition:
PBtools.h:753
PB_CScatterV
void PB_CScatterV()
ztzscal_
#define ztzscal_
Definition:
PBtools.h:841
PB_Ctztrmv
void PB_Ctztrmv()
zmmadd_
#define zmmadd_
Definition:
PBtools.h:755
PB_Cpsyr
void PB_Cpsyr()
PB_CptrmmAB
void PB_CptrmmAB()
cvvdotu_
#define cvvdotu_
Definition:
PBtools.h:824
cset_
#define cset_
Definition:
PBtools.h:800
PB_Cconjg
void PB_Cconjg()
ctzpadcpy_
#define ctzpadcpy_
Definition:
PBtools.h:835
zatrmv_
#define zatrmv_
Definition:
PBtools.h:864
PB_Ctzherk
void PB_Ctzherk()
dasqrtb_
#define dasqrtb_
Definition:
PBtools.h:796
scvasum_
#define scvasum_
Definition:
PBtools.h:805
stzpad_
#define stzpad_
Definition:
PBtools.h:828
scshft_
#define scshft_
Definition:
PBtools.h:811
PB_CpswapND
void PB_CpswapND()
ztzpadcpy_
#define ztzpadcpy_
Definition:
PBtools.h:836
PB_Cnpreroc
int PB_Cnpreroc()
zsymv_
#define zsymv_
Definition:
PBtools.h:867
PB_Ctzher
void PB_Ctzher()
drshft_
#define drshft_
Definition:
PBtools.h:817
zvvdotc_
#define zvvdotc_
Definition:
PBtools.h:825
zmmtadd_
#define zmmtadd_
Definition:
PBtools.h:761
PB_Ctzsyr2
void PB_Ctzsyr2()
PB_Cpsyr2kA
void PB_Cpsyr2kA()
PB_Ctzher2
void PB_Ctzher2()
dmmddac_
#define dmmddac_
Definition:
PBtools.h:780
PB_Ctzasymv
void PB_Ctzasymv()
PB_CpaxpbyDN
void PB_CpaxpbyDN()
dvvdot_
#define dvvdot_
Definition:
PBtools.h:822
PB_Cztypeset
PBTYP_T * PB_Cztypeset()
Definition:
PB_Cztypeset.c:19
PB_Cfirstnb
int PB_Cfirstnb()
PB_Clastnb
int PB_Clastnb()
PB_Cainfog2l
void PB_Cainfog2l()
zhescal_
#define zhescal_
Definition:
PBtools.h:844
PB_CpsyrkA
void PB_CpsyrkA()
PB_CpswapNN
void PB_CpswapNN()
F_VOID_FCT
#define F_VOID_FCT
Definition:
pblas.h:123
PB_Ctzhemv
void PB_Ctzhemv()
sascal_
#define sascal_
Definition:
PBtools.h:808
TZSYM_T
void(* TZSYM_T)()
Definition:
pblas.h:428
PB_Ctztrmm
void PB_Ctztrmm()
ctzpad_
#define ctzpad_
Definition:
PBtools.h:830
PB_CptrsmAB1
void PB_CptrsmAB1()
zagemv_
#define zagemv_
Definition:
PBtools.h:852
PB_CpgemmAB
void PB_CpgemmAB()
cmmadd_
#define cmmadd_
Definition:
PBtools.h:754
PB_Citypeset
PBTYP_T * PB_Citypeset()
Definition:
PB_Citypeset.c:19
PB_Cpsyr2
void PB_Cpsyr2()
PB_Cdescribe
void PB_Cdescribe()
sset_
#define sset_
Definition:
PBtools.h:798
csyr2_
#define csyr2_
Definition:
PBtools.h:872
smmddac_
#define smmddac_
Definition:
PBtools.h:779
PB_CptrsmAB
void PB_CptrsmAB()
PB_CVMinit
void PB_CVMinit()
srshft_
#define srshft_
Definition:
PBtools.h:816
zmmddat_
#define zmmddat_
Definition:
PBtools.h:788
PB_Cnnxtroc
int PB_Cnnxtroc()
PB_Cptrsv
void PB_Cptrsv()
zmmcadd_
#define zmmcadd_
Definition:
PBtools.h:766
PB_CVMpack
int PB_CVMpack()
PB_Cdtypeset
PBTYP_T * PB_Cdtypeset()
Definition:
PB_Cdtypeset.c:19
PB_CpsyrkAC
void PB_CpsyrkAC()
F_CHAR_T
char * F_CHAR_T
Definition:
pblas.h:118
PB_CptrsmAB0
void PB_CptrsmAB0()
dmmcadd_
#define dmmcadd_
Definition:
PBtools.h:764
ztzpad_
#define ztzpad_
Definition:
PBtools.h:831
zmmddact_
#define zmmddact_
Definition:
PBtools.h:793
PB_Cbinfo
void PB_Cbinfo()
PB_Cchkvec
void PB_Cchkvec()
PB_Cprnt
void PB_Cprnt()
cmmdda_
#define cmmdda_
Definition:
PBtools.h:776
cahemv_
#define cahemv_
Definition:
PBtools.h:858
PB_CpgemmAC
void PB_CpgemmAC()
cvvdotc_
#define cvvdotc_
Definition:
PBtools.h:823
PB_CpsymmBC
void PB_CpsymmBC()
pilaenv_
int pilaenv_()
PB_Cplascal
void PB_Cplascal()
PB_Cpsyr2kAC
void PB_Cpsyr2kAC()
PB_CGatherV
void PB_CGatherV()
zmmtcadd_
#define zmmtcadd_
Definition:
PBtools.h:771
crshft_
#define crshft_
Definition:
PBtools.h:818
cmmddac_
#define cmmddac_
Definition:
PBtools.h:781
svasum_
#define svasum_
Definition:
PBtools.h:803
PB_Cdescset
void PB_Cdescset()
PB_CVMupdate
void PB_CVMupdate()
satrmv_
#define satrmv_
Definition:
PBtools.h:861
PB_Cabort
void PB_Cabort()
zasymv_
#define zasymv_
Definition:
PBtools.h:857
PB_Cplaprn2
void PB_Cplaprn2()
cagemv_
#define cagemv_
Definition:
PBtools.h:851
zahemv_
#define zahemv_
Definition:
PBtools.h:859
PB_Cgcd
int PB_Cgcd()
PB_CpdotNN
void PB_CpdotNN()
PB_Cplapad
void PB_Cplapad()
PB_CptrsmB
void PB_CptrsmB()
ccshft_
#define ccshft_
Definition:
PBtools.h:813
PB_Cptrsm
void PB_Cptrsm()
PB_Ctzher2k
void PB_Ctzher2k()
dmmddact_
#define dmmddact_
Definition:
PBtools.h:791
PB_Cindxg2p
int PB_Cindxg2p()
PB_Ctzatrmv
void PB_Ctzatrmv()
TZTRM_T
void(* TZTRM_T)()
Definition:
pblas.h:427
PB_Ctop
char * PB_Ctop()
zsyr_
#define zsyr_
Definition:
PBtools.h:870
smmdda_
#define smmdda_
Definition:
PBtools.h:774
smmtcadd_
#define smmtcadd_
Definition:
PBtools.h:768
zmmdda_
#define zmmdda_
Definition:
PBtools.h:777
smmadd_
#define smmadd_
Definition:
PBtools.h:752
PB_Cpdot11
void PB_Cpdot11()
PB_CargFtoC
void PB_CargFtoC()
PB_CpaxpbyNN
void PB_CpaxpbyNN()
PB_Cplasca2
void PB_Cplasca2()
VVDOT_T
F_VOID_FCT(* VVDOT_T)()
Definition:
pblas.h:286
zset_
#define zset_
Definition:
PBtools.h:801
immtadd_
#define immtadd_
Definition:
PBtools.h:757
PB_Ctzsyr2k
void PB_Ctzsyr2k()
PB_Cinfog2l
void PB_Cinfog2l()
ctzscal_
#define ctzscal_
Definition:
PBtools.h:840
stzscal_
#define stzscal_
Definition:
PBtools.h:838
PB_Cchkmat
void PB_Cchkmat()
PB_Cnumroc
int PB_Cnumroc()
PB_Cmalloc
char * PB_Cmalloc()
PB_Cstypeset
PBTYP_T * PB_Cstypeset()
Definition:
PB_Cstypeset.c:19
immddat_
#define immddat_
Definition:
PBtools.h:784
PB_CInV
void PB_CInV()
PB_VM_T
Definition:
pblas.h:432
zvvdotu_
#define zvvdotu_
Definition:
PBtools.h:826
PB_CVMnpq
int PB_CVMnpq()
PB_CInOutV
void PB_CInOutV()
PB_Cptrm
void PB_Cptrm()
sagemv_
#define sagemv_
Definition:
PBtools.h:849
dcshft_
#define dcshft_
Definition:
PBtools.h:812
dvasum_
#define dvasum_
Definition:
PBtools.h:804
PB_COutV
void PB_COutV()
TZSYR2_T
void(* TZSYR2_T)()
Definition:
pblas.h:426
dagemv_
#define dagemv_
Definition:
PBtools.h:850
PB_Ctzsymm
void PB_Ctzsymm()
PB_CInOutV2
void PB_CInOutV2()
PB_Cplacnjg
void PB_Cplacnjg()
PB_Cplaprnt
void PB_Cplaprnt()
PB_Cspan
int PB_Cspan()
PBTYP_T
Definition:
pblas.h:325
dtzscal_
#define dtzscal_
Definition:
PBtools.h:839
dmmdda_
#define dmmdda_
Definition:
PBtools.h:775
PB_Cptradd
void PB_Cptradd()
ztzcnjg_
#define ztzcnjg_
Definition:
PBtools.h:847
ctzcnjg_
#define ctzcnjg_
Definition:
PBtools.h:846
dset_
#define dset_
Definition:
PBtools.h:799
PB_Ctzsyr
void PB_Ctzsyr()
immdda_
#define immdda_
Definition:
PBtools.h:773
PB_CptrmmB
void PB_CptrmmB()
smmtadd_
#define smmtadd_
Definition:
PBtools.h:758
PB_CInV2
void PB_CInV2()
cmmtcadd_
#define cmmtcadd_
Definition:
PBtools.h:770
zrshft_
#define zrshft_
Definition:
PBtools.h:819
cmmddact_
#define cmmddact_
Definition:
PBtools.h:792
PB_CVMswp
int PB_CVMswp()
dtzpadcpy_
#define dtzpadcpy_
Definition:
PBtools.h:834
csyr_
#define csyr_
Definition:
PBtools.h:869
PB_Ctzahemv
void PB_Ctzahemv()
PB_Cctypeset
PBTYP_T * PB_Cctypeset()
Definition:
PB_Cctypeset.c:19
sasymv_
#define sasymv_
Definition:
PBtools.h:854
PB_CpaxpbyND
void PB_CpaxpbyND()
svvdot_
#define svvdot_
Definition:
PBtools.h:821
zcshft_
#define zcshft_
Definition:
PBtools.h:814
cmmcadd_
#define cmmcadd_
Definition:
PBtools.h:765
PB_Cgetbuf
char * PB_Cgetbuf()
casymv_
#define casymv_
Definition:
PBtools.h:856
TZSYR_T
void(* TZSYR_T)()
Definition:
pblas.h:425
dmmtadd_
#define dmmtadd_
Definition:
PBtools.h:759
immadd_
#define immadd_
Definition:
PBtools.h:751
PB_Ctzsymv
void PB_Ctzsymv()
PB_Cptran
void PB_Cptran()
zsyr2_
#define zsyr2_
Definition:
PBtools.h:873
PB_Clcm
int PB_Clcm()
PBLAS
SRC
PBtools.h
Generated by
1.8.16