File: BI_HypBR.c

package info (click to toggle)
scalapack 2.2.2-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,724 kB
  • sloc: fortran: 339,123; ansic: 74,530; makefile: 1,494; sh: 33
file content (21 lines) | stat: -rw-r--r-- 526 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Bdef.h"

Int BI_HypBR(BLACSCONTEXT *ctxt, BLACBUFF *bp, SDRVPTR send, Int src)
{
   void BI_Srecv(BLACSCONTEXT *, Int, Int, BLACBUFF *);
   Int relnode, bit, Np, Iam, msgid;

   Np = ctxt->scp->Np;
   Iam = ctxt->scp->Iam;
   msgid = Mscopeid(ctxt);

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

   BI_Srecv(ctxt, BANYNODE, msgid, bp);
   for(bit=1; (bit^Np); bit <<= 1)
      if (bit > relnode) send(ctxt, Iam^bit, msgid, bp);

   return(0);
}