ScaLAPACK  2.0.2
ScaLAPACK: Scalable Linear Algebra PACKage
BI_SringBR.c File Reference
#include "Bdef.h"
Include dependency graph for BI_SringBR.c:

Go to the source code of this file.

Functions/Subroutines

void BI_SringBR (BLACSCONTEXT *ctxt, BLACBUFF *bp, SDRVPTR send, int src)

Function/Subroutine Documentation

void BI_SringBR ( BLACSCONTEXT *  ctxt,
BLACBUFF *  bp,
SDRVPTR  send,
int  src 
)

Definition at line 3 of file BI_SringBR.c.

{
   void BI_Srecv(BLACSCONTEXT *, int, int, BLACBUFF *);

   int mydist;          /* my distance from source */
   int Np, Iam, msgid, rightedge;

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

   mydist = (Np + Iam - src) % Np;
   rightedge = Np/2;
   BI_Srecv(ctxt, BANYNODE, msgid, bp);

/*
 * If I'm between source & right edge of split ring, send to right
 */
   if (mydist < rightedge)
      send(ctxt, (Iam+1)%Np, msgid, bp);
/*
 * If I'm between source and left edge of split ring, send to left
 */
   else if (mydist > rightedge+1)
      send(ctxt, (Np+Iam-1)%Np, msgid, bp);
}

Here is the call graph for this function:

Here is the caller graph for this function: