Example #1
0
// called with the box without the objective
void Optimizer::firstorder_contract(  IntervalVector& box, const  IntervalVector& init_box) {
	if (m==0) {
		// for unconstrained optimization  contraction with gradient=0
		if (box.is_strict_subset(init_box)) {
			// may throw an EmptyBoxException:
			if (n==1)
				df.backward(Interval::ZERO,box);
			else
				df.backward(IntervalVector(n,Interval::ZERO),box);
		}
	}

	else {
		PdcFirstOrder p(user_sys,init_box);
		p.set_entailed(entailed);
		if (p.test(box)==NO) throw EmptyBoxException();
	}

}