public void forEachArc(PairProcedure proc, GraphEventType evt) throws ContradictionException {
		if (evt == GraphEventType.REMOVE_ARC) {
			for (int i = frozenFirst[2]; i < frozenLast[2]; i++) {
				if (delta.getCause(i, GraphDelta.AR_TAIL) != propagator) {
					proc.execute(delta.get(i, GraphDelta.AR_TAIL), delta.get(i, GraphDelta.AR_HEAD));
				}
			}
		} else if (evt == GraphEventType.ADD_ARC) {
			for (int i = frozenFirst[3]; i < frozenLast[3]; i++) {
				if (delta.getCause(i, GraphDelta.AE_TAIL) != propagator) {
					proc.execute(delta.get(i, GraphDelta.AE_TAIL), delta.get(i, GraphDelta.AE_HEAD));
				}
			}
		} else {
			throw new UnsupportedOperationException();
		}
	}
public void forEachArc ( PairProcedure proc , GraphEventType evt ) throws ContradictionException { if ( evt == GraphEventType . REMOVE_ARC ) { for ( int i = frozenFirst [ 2 ] ; i < frozenLast [ 2 ] ; i ++ ) { if ( delta . getCause ( i , GraphDelta . AR_TAIL ) != propagator ) { proc . execute ( delta . get ( i , GraphDelta . AR_TAIL ) , delta . get ( i , GraphDelta . AR_HEAD ) ) ; } } } else if ( evt == GraphEventType . ADD_ARC ) { for ( int i = frozenFirst [ 3 ] ; i < frozenLast [ 3 ] ; i ++ ) { if ( delta . getCause ( i , GraphDelta . AE_TAIL ) != propagator ) { proc . execute ( delta . get ( i , GraphDelta . AE_TAIL ) , delta . get ( i , GraphDelta . AE_HEAD ) ) ; } } } else { throw new UnsupportedOperationException ( ) ; } }
Applies proc to every arc which has just been removed or enforced, depending on evt.
@param proc    an incremental procedure over arcs
@param evt    either ENFORCEARC or REMOVEARC
@throws ContradictionException if a failure occurs