int NNIRetestEdge( heap p, heap q, edge e, double[][] avgDistArray, 
		double[] weights, direction[] location, int possibleSwaps )
	{
		direction tloc = location[e.head.index+1];
		location[e.head.index+1] = 
			NNIEdgeTest( 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;
	}