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