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 
1057  int *, int *, char *,
1058  char *, char *, int * );
1060  int *, int *, char *,
1061  char *, char *, int * );
1063  int *, int *, char *,
1064  char *, char *, int * );
1066  int *, int *, char *,
1067  char *, char *, int * );
1068 
1070  int *, int *, char *,
1071  int *, char *, int * );
1073  int *, int *, char *,
1074  int *, char *, int * );
1076  int *, int *, char *,
1077  int *, char *, 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 
1152  int *, char *, char *,
1153  int *, char *, int *,
1154  char *, char *, int * );
1156  int *, char *, char *,
1157  int *, char *, int *,
1158  char *, char *, int * );
1160  int *, char *, char *,
1161  int *, char *, int *,
1162  char *, char *, int * );
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 
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 
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 
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()