#include <kv/optimize.hpp>

namespace ub = boost::numeric::ublas;

struct Func {
	template <class T> T operator() (const ub::vector<T>& x){
		return 1/(pow(x(0)-2,2) + pow(x(1)-3,2)+1) - 1/(pow(x(0)-5,2)+pow(x(1)-6,2)+1);
	}
};

typedef kv::interval<double> itv;

int main()
{
	int i;
	ub::vector<itv> I;

	std::cout.precision(17);

	I.resize(2);
	for (i=0; i<I.size(); i++) I(i) = itv(0., 10.);

	std::cout << minimize_value(I, Func(), 10000) << "\n";
}
