void WFext( double[][] A) 
	{
		edge f, g;
		if ( head.leaf() && tail.leaf() )
			distance = A[head.index][head.index];
		else if ( head.leaf() )
		{
			f = tail.parentEdge;
			g = siblingEdge();
			distance = 0.5*(A[head.index][g.head.index]
			   + A[head.index][f.head.index]
			   - A[g.head.index][f.head.index]);
		}
		else
		{
			f = head.leftEdge;
			g = head.rightEdge;
			distance = 0.5*(A[g.head.index][head.index]
			     + A[f.head.index][head.index]
			     - A[f.head.index][g.head.index]);
		}
	}