1 /* ---------------------------------------------------------------------
2 *
3 *  -- PBLAS routine (version 2.0) --
4 *     University of Tennessee, Knoxville, Oak Ridge National Laboratory,
5 *     and University of California, Berkeley.
6 *     April 1, 1998
7 *
8 *  ---------------------------------------------------------------------
9 */
10 /*
11 *  This file includes  BLACS  function type definitions,  define macros,
12 *  and function prototypes. All PBLAS routines include this file.
13 *
14 * ----------------------------------------------------------------------
15 *  #define macro constants
16 *  ---------------------------------------------------------------------
17 */
18                                        /* BLACS scopes and topologies */
19 /* #define    CALL                'A'               (already defined) */
20 #define    CCOLUMN             'C'
21 #define    CROW                'R'
22 
23 #define    CBCAST              'B'
24 #define    CCOMBINE            'C'
25 #define    CTOP_GET            '!'
26 #define    CTOP_DEFAULT        ' '
27 #define    CTOP_IRING          'I'
28 #define    CTOP_DRING          'D'
29 #define    CTOP_SRING          'S'
30 #define    CTOP_HYPER          'H'
31 #define    CTOP_FULL           'F'
32 #define    CTOP_MRING          'M'
33 #define    CTOP_TTREE          'T'
34 #define    CTOP_TREE1          '1'
35 #define    CTOP_TREE2          '2'
36 #define    CTOP_TREE3          '3'
37 #define    CTOP_TREE4          '4'
38 #define    CTOP_TREE5          '5'
39 #define    CTOP_TREE6          '6'
40 #define    CTOP_TREE7          '7'
41 #define    CTOP_TREE8          '8'
42 #define    CTOP_TREE9          '9'
43 
44 /* #define    ALL                 "A"               (already defined) */
45 #define    COLUMN              "C"
46 #define    ROW                 "R"
47 
48 #define    BCAST               "B"
49 #define    COMBINE             "C"
50 #define    TOP_GET             "!"
51 #define    TOP_DEFAULT         " "
52 #define    TOP_IRING           "I"
53 #define    TOP_DRING           "D"
54 #define    TOP_SRING           "S"
55 #define    TOP_HYPER           "H"
56 #define    TOP_FULL            "F"
57 #define    TOP_MRING           "M"
58 #define    TOP_TTREE           "T"
59 #define    TOP_TREE1           "1"
60 #define    TOP_TREE2           "2"
61 #define    TOP_TREE3           "3"
62 #define    TOP_TREE4           "4"
63 #define    TOP_TREE5           "5"
64 #define    TOP_TREE6           "6"
65 #define    TOP_TREE7           "7"
66 #define    TOP_TREE8           "8"
67 #define    TOP_TREE9           "9"
68 
69 /*
70 *  ---------------------------------------------------------------------
71 *  Function prototypes
72 *  ---------------------------------------------------------------------
73 */
74 #ifdef __STDC__
75                                               /* BLACS Initialization */
76 void           Cblacs_pinfo    ( int *,     int * );
77 void           Cblacs_setup    ( int *,     int * );
78 void           Cblacs_get      ( int,       int,       int * );
79 void           Cblacs_set      ( int,       int,       int * );
80 void           Cblacs_gridinit ( int *,     char *,    int,
81                                  int );
82 void           Cblacs_gridmap  ( int *,     int *,     int,
83                                  int,       int );
84 
85                                                  /* BLACS Destruction */
86 void           Cblacs_freebuff ( int,       int );
87 void           Cblacs_gridexit ( int );
88 void           Cblacs_abort    ( int,       int );
89 void           Cblacs_exit     ( int );
90 
91                              /* BLACS Informational and Miscellaneous */
92 void           Cblacs_gridinfo ( int,       int *,     int *,
93                                  int *,     int * );
94 int            Cblacs_pnum     ( int,       int,       int );
95 void           Cblacs_pcoord   ( int,       int,       int *,
96                                  int * );
97 void           Cblacs_barrier  ( int,       char * );
98 
99                                                      /* BLACS Sending */
100 void           Cigesd2d        ( int,       int,       int,
101                                  char *,    int,       int,
102                                  int );
103 void           Csgesd2d        ( int,       int,       int,
104                                  char *,    int,       int,
105                                  int );
106 void           Cdgesd2d        ( int,       int,       int,
107                                  char *,    int,       int,
108                                  int );
109 void           Ccgesd2d        ( int,       int,       int,
110                                  char *,    int,       int,
111                                  int );
112 void           Czgesd2d        ( int,       int,       int,
113                                  char *,    int,       int,
114                                  int );
115 
116 void           Citrsd2d        ( int,       char *,    char *,
117                                  int,       int,       char *,
118                                  int,       int,       int );
119 void           Cstrsd2d        ( int,       char *,    char *,
120                                  int,       int,       char *,
121                                  int,       int,       int );
122 void           Cdtrsd2d        ( int,       char *,    char *,
123                                  int,       int,       char *,
124                                  int,       int,       int );
125 void           Cctrsd2d        ( int,       char *,    char *,
126                                  int,       int,       char *,
127                                  int,       int,       int );
128 void           Cztrsd2d        ( int,       char *,    char *,
129                                  int,       int,       char *,
130                                  int,       int,       int );
131 
132 void           Cigebs2d        ( int,       char *,    char *,
133                                  int,       int,       char *,
134                                  int );
135 void           Csgebs2d        ( int,       char *,    char *,
136                                  int,       int,       char *,
137                                  int );
138 void           Cdgebs2d        ( int,       char *,    char *,
139                                  int,       int,       char *,
140                                  int );
141 void           Ccgebs2d        ( int,       char *,    char *,
142                                  int,       int,       char *,
143                                  int );
144 void           Czgebs2d        ( int,       char *,    char *,
145                                  int,       int,       char *,
146                                  int );
147 
148 void           Citrbs2d        ( int,       char *,    char *,
149                                  char *,    char *,    int,
150                                  int,       char *,    int );
151 void           Cstrbs2d        ( int,       char *,    char *,
152                                  char *,    char *,    int,
153                                  int,       char *,    int );
154 void           Cdtrbs2d        ( int,       char *,    char *,
155                                  char *,    char *,    int,
156                                  int,       char *,    int );
157 void           Cctrbs2d        ( int,       char *,    char *,
158                                  char *,    char *,    int,
159                                  int,       char *,    int );
160 void           Cztrbs2d        ( int,       char *,    char *,
161                                  char *,    char *,    int,
162                                  int,       char *,    int );
163 
164                                                    /* BLACS Receiving */
165 void           Cigerv2d        ( int,       int,       int,
166                                  char *,    int,       int,
167                                  int );
168 void           Csgerv2d        ( int,       int,       int,
169                                  char *,    int,       int,
170                                  int );
171 void           Cdgerv2d        ( int,       int,       int,
172                                  char *,    int,       int,
173                                  int );
174 void           Ccgerv2d        ( int,       int,       int,
175                                  char *,    int,       int,
176                                  int );
177 void           Czgerv2d        ( int,       int,       int,
178                                  char *,    int,       int,
179                                  int );
180 
181 void           Citrrv2d        ( int,       char *,    char *,
182                                  int,       int,       char *,
183                                  int,       int,       int );
184 void           Cstrrv2d        ( int,       char *,    char *,
185                                  int,       int,       char *,
186                                  int,       int,       int );
187 void           Cdtrrv2d        ( int,       char *,    char *,
188                                  int,       int,       char *,
189                                  int,       int,       int );
190 void           Cctrrv2d        ( int,       char *,    char *,
191                                  int,       int,       char *,
192                                  int,       int,       int );
193 void           Cztrrv2d        ( int,       char *,    char *,
194                                  int,       int,       char *,
195                                  int,       int,       int );
196 
197 void           Cigebr2d        ( int,       char *,    char *,
198                                  int,       int,       char *,
199                                  int,       int,       int );
200 void           Csgebr2d        ( int,       char *,    char *,
201                                  int,       int,       char *,
202                                  int,       int,       int );
203 void           Cdgebr2d        ( int,       char *,    char *,
204                                  int,       int,       char *,
205                                  int,       int,       int );
206 void           Ccgebr2d        ( int,       char *,    char *,
207                                  int,       int,       char *,
208                                  int,       int,       int );
209 void           Czgebr2d        ( int,       char *,    char *,
210                                  int,       int,       char *,
211                                  int,       int,       int );
212 
213 void           Citrbr2d        ( int,       char *,    char *,
214                                  char *,    char *,    int,
215                                  int,       char *,    int,
216                                  int,       int );
217 void           Cstrbr2d        ( int,       char *,    char *,
218                                  char *,    char *,    int,
219                                  int,       char *,    int,
220                                  int,       int );
221 void           Cdtrbr2d        ( int,       char *,    char *,
222                                  char *,    char *,    int,
223                                  int,       char *,    int,
224                                  int,       int );
225 void           Cctrbr2d        ( int,       char *,    char *,
226                                  char *,    char *,    int,
227                                  int,       char *,    int,
228                                  int,       int );
229 void           Cztrbr2d        ( int,       char *,    char *,
230                                  char *,    char *,    int,
231                                  int,       char *,    int,
232                                  int,       int );
233 
234                                           /* BLACS Combine Operations */
235 void           Cigamx2d        ( int,       char *,    char *,
236                                  int,       int,       char *,
237                                  int,       int *,     int *,
238                                  int,       int,       int );
239 void           Csgamx2d        ( int,       char *,    char *,
240                                  int,       int,       char *,
241                                  int,       int *,     int *,
242                                  int,       int,       int );
243 void           Cdgamx2d        ( int,       char *,    char *,
244                                  int,       int,       char *,
245                                  int,       int *,     int *,
246                                  int,       int,       int );
247 void           Ccgamx2d        ( int,       char *,    char *,
248                                  int,       int,       char *,
249                                  int,       int *,     int *,
250                                  int,       int,       int );
251 void           Czgamx2d        ( int,       char *,    char *,
252                                  int,       int,       char *,
253                                  int,       int *,     int *,
254                                  int,       int,       int );
255 
256 void           Cigamn2d        ( int,       char *,    char *,
257                                  int,       int,       char *,
258                                  int,       int *,     int *,
259                                  int,       int,       int );
260 void           Csgamn2d        ( int,       char *,    char *,
261                                  int,       int,       char *,
262                                  int,       int *,     int *,
263                                  int,       int,       int );
264 void           Cdgamn2d        ( int,       char *,    char *,
265                                  int,       int,       char *,
266                                  int,       int *,     int *,
267                                  int,       int,       int );
268 void           Ccgamn2d        ( int,       char *,    char *,
269                                  int,       int,       char *,
270                                  int,       int *,     int *,
271                                  int,       int,       int );
272 void           Czgamn2d        ( int,       char *,    char *,
273                                  int,       int,       char *,
274                                  int,       int *,     int *,
275                                  int,       int,       int );
276 
277 void           Cigsum2d        ( int,       char *,    char *,
278                                  int,       int,       char *,
279                                  int,       int,       int );
280 void           Csgsum2d        ( int,       char *,    char *,
281                                  int,       int,       char *,
282                                  int,       int,       int );
283 void           Cdgsum2d        ( int,       char *,    char *,
284                                  int,       int,       char *,
285                                  int,       int,       int );
286 void           Ccgsum2d        ( int,       char *,    char *,
287                                  int,       int,       char *,
288                                  int,       int,       int );
289 void           Czgsum2d        ( int,       char *,    char *,
290                                  int,       int,       char *,
291                                  int,       int,       int );
292 
293 #else
294                                               /* BLACS Initialization */
295 void           Cblacs_pinfo    ();
296 void           Cblacs_setup    ();
297 void           Cblacs_get      ();
298 void           Cblacs_set      ();
299 void           Cblacs_gridinit ();
300 void           Cblacs_gridmap  ();
301 
302                                                  /* BLACS Destruction */
303 void           Cblacs_freebuff ();
304 void           Cblacs_gridexit ();
305 void           Cblacs_abort    ();
306 void           Cblacs_exit     ();
307 
308                              /* BLACS Informational and Miscellaneous */
309 void           Cblacs_gridinfo ();
310 int            Cblacs_pnum     ();
311 void           Cblacs_pcoord   ();
312 void           Cblacs_barrier  ();
313 
314                                                      /* BLACS Sending */
315 void           Cigesd2d        ();
316 void           Csgesd2d        ();
317 void           Cdgesd2d        ();
318 void           Ccgesd2d        ();
319 void           Czgesd2d        ();
320 
321 void           Citrsd2d        ();
322 void           Cstrsd2d        ();
323 void           Cdtrsd2d        ();
324 void           Cctrsd2d        ();
325 void           Cztrsd2d        ();
326 
327 void           Cigebs2d        ();
328 void           Csgebs2d        ();
329 void           Cdgebs2d        ();
330 void           Ccgebs2d        ();
331 void           Czgebs2d        ();
332 
333 void           Citrbs2d        ();
334 void           Cstrbs2d        ();
335 void           Cdtrbs2d        ();
336 void           Cctrbs2d        ();
337 void           Cztrbs2d        ();
338 
339                                                    /* BLACS Receiving */
340 void           Cigerv2d        ();
341 void           Csgerv2d        ();
342 void           Cdgerv2d        ();
343 void           Ccgerv2d        ();
344 void           Czgerv2d        ();
345 
346 void           Citrrv2d        ();
347 void           Cstrrv2d        ();
348 void           Cdtrrv2d        ();
349 void           Cctrrv2d        ();
350 void           Cztrrv2d        ();
351 
352 void           Cigebr2d        ();
353 void           Csgebr2d        ();
354 void           Cdgebr2d        ();
355 void           Ccgebr2d        ();
356 void           Czgebr2d        ();
357 
358 void           Citrbr2d        ();
359 void           Cstrbr2d        ();
360 void           Cdtrbr2d        ();
361 void           Cctrbr2d        ();
362 void           Cztrbr2d        ();
363 
364                                           /* BLACS Combine Operations */
365 void           Cigamx2d        ();
366 void           Csgamx2d        ();
367 void           Cdgamx2d        ();
368 void           Ccgamx2d        ();
369 void           Czgamx2d        ();
370 
371 void           Cigamn2d        ();
372 void           Csgamn2d        ();
373 void           Cdgamn2d        ();
374 void           Ccgamn2d        ();
375 void           Czgamn2d        ();
376 
377 void           Cigsum2d        ();
378 void           Csgsum2d        ();
379 void           Cdgsum2d        ();
380 void           Ccgsum2d        ();
381 void           Czgsum2d        ();
382 
383 #endif
384