File: BI_HypBS.c

package info (click to toggle)
blacs-mpi 1.1-28.2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 2,320 kB
  • ctags: 2,031
  • sloc: fortran: 14,968; ansic: 12,353; makefile: 531; sh: 1
file content (18 lines) | stat: -rw-r--r-- 424 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Bdef.h"
int BI_HypBS(BLACSCONTEXT *ctxt, BLACBUFF *bp, SDRVPTR send)
{
   int bit, Np, Iam, msgid;

   Np = ctxt->scp->Np;
   if (Np < 2) return(NORV);
   Iam = ctxt->scp->Iam;
   msgid = Mscopeid(ctxt);

   for (bit=2; bit < Np; bit <<= 1);
   if (bit^Np) return(NPOW2);  /* not a power of 2 */

   for(bit=1; (bit^Np); bit <<= 1)
      send(ctxt, (Iam^bit), msgid, bp);

   return(0);  /* error-free return */
}