int bNNIRetestEdge( heap p, heap q, edge e, double[][] avgDistArray, 
		double[] weights, direction[] location, int possibleSwaps )
	{
		direction tloc;
		tloc = location[e.head.index+1];
		location[e.head.index+1] = 
	    	bNNIEdgeTest( e,avgDistArray,weights, e.head.index+1 );
		if ( direction.NONE == location[e.head.index+1])
	    {
			if ( direction.NONE != tloc )
				p.popHeap(q,weights,possibleSwaps--,q.p[e.head.index+1]);	  
	    }
		else
	    {
			if ( direction.NONE == tloc )
				p.pushHeap( q,weights,possibleSwaps++,q.p[e.head.index+1] );
	      	else
	      		p.reHeapElement( q, weights, possibleSwaps, q.p[e.head.index+1] );
	    }
		return possibleSwaps;
	}