src/puzzle.cpp
// filter at the start of a new cycle
filter at the start of a new cycle
filter at the start of a new cycle
int PUZZLE::Is_ed_ep_go() {  
	switch(options.o1) {
	case 0:
		return 0;       
	case 1:
		if((ermax- edmax) > options.delta) {
			ermax = 0;
			epmax = 0;
			return 1;
		}  
		return 0;
	case 2:
		if(!assigned)
			return 0;   
		if((ermax- epmax) > options.delta)	{
			ermax = 0;
			return 1;
		} 
		return 0;
	}	
	if(options.filters.On(3)){
		if(ermax >= options.miner) {
			ermax = 0;
			return 3;
		} 
		else if(cycle > options.edcycles)
			return 4;
	}
	if(edmax >= options.maxed || epmax >= options.maxep || ermax >= options.maxer) {
		ermax = 0;
		return 3;
	} 
	if(edmax <= options.mined) {
		ermax = 0;
		return 3;
	} 
	if(assigned && epmax <= options.minep) {
		ermax = 0;
		return 3;
	} 
	if(!options.os)
		return 0; 
	if((options.filters.f & 7) == 1)
		return 4; 
	if(assigned && ((options.filters.f & 6) == 2))
		return 4; 
	return 0;
}
int PUZZLE :: Is_ed_ep_go ( ) { switch ( options . o1 ) { case 0 : return 0 ; case 1 : if ( ( ermax - edmax ) > options . delta ) { ermax = 0 ; epmax = 0 ; return 1 ; } return 0 ; case 2 : if ( ! assigned ) return 0 ; if ( ( ermax - epmax ) > options . delta ) { ermax = 0 ; return 1 ; } return 0 ; } if ( options . filters . On ( 3 ) ) { if ( ermax >= options . miner ) { ermax = 0 ; return 3 ; } else if ( cycle > options . edcycles ) return 4 ; } if ( edmax >= options . maxed || epmax >= options . maxep || ermax >= options . maxer ) { ermax = 0 ; return 3 ; } if ( edmax <= options . mined ) { ermax = 0 ; return 3 ; } if ( assigned && epmax <= options . minep ) { ermax = 0 ; return 3 ; } if ( ! options . os ) return 0 ; if ( ( options . filters . f & 7 ) == 1 ) return 4 ; if ( assigned && ( ( options . filters . f & 6 ) == 2 ) ) return 4 ; return 0 ; }
filter at the start of a new cycle
filter at the start of a new cycle
// is the ed or  condition fullfilled // nothing to do // if -d command, other filters ignored   // not diamond // continue if still ed // if -p command, similar results // -p command // not pearl // continue if still ep // now, we have no -d no -p command but at least one filter is on	 // give priority to the -n() command // -n() command // finished //then all max conditions // finished // and finally min ED and min EP // finished // finished // finish with split ok // that sequence should work for any combinaison of filters. // ed ok for split   	 // ep ok for split   	