/* This software was developed by Bruce Hendrickson and Robert Leland *
* at Sandia National Laboratories under US Department of Energy *
* contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
#include <stdio.h>
#include "defs.h"
#include "refine_map.h"
struct refine_edata *find_edge_cube(node, dim, edata, nsets_tot)
int node; /* processor node */
int dim; /* direction of edge from node */
struct refine_edata *edata; /* data structure for edge preferences */
int nsets_tot; /* total number of processors */
{
struct refine_edata *eguy; /* returned pointer to edge info */
int index; /* computed index into edata */
/* Squeeze out bit dim from node number. */
index = node ^ ((node >> dim) << dim);
index ^= ((node >> (dim+1)) << dim);
index += dim* nsets_tot/2;
eguy = &(edata[index]);
return(eguy);
}
syntax highlighted by Code2HTML, v. 0.9.1