21 PavingOut pave(
const IntervalVector& x, std::shared_ptr<
const CtcBase<IntervalVector>> c,
double eps,
bool verbose =
false);
22 PavingOut pave(
const IntervalVector& x,
const CtcBase<IntervalVector>& c,
double eps,
bool verbose =
false);
23 PavingInOut pave(
const IntervalVector& x, std::shared_ptr<const SepBase> s,
double eps,
bool verbose =
false);
24 PavingInOut pave(
const IntervalVector& x,
const SepBase& s,
double eps,
bool verbose =
false);
27 PavingInOut sivia(
const IntervalVector& x,
const AnalyticFunction<Y>& f,
const typename Y::Domain& y,
double eps,
bool verbose =
false)
29 clock_t t_start = clock();
32 std::list<std::shared_ptr<PavingInOut_Node>> l { p.tree() };
40 auto eval = f.eval(std::get<1>(n->boxes()));
43 std::get<1>(n->boxes()).set_empty();
45 else if(!eval.intersects(y))
46 std::get<0>(n->boxes()).set_empty();
48 else if(n->unknown().max_diam() > eps)
51 l.push_back(n->left());
52 l.push_back(n->right());
57 printf(
"Computation time: %.4fs\n", (
double)(clock()-t_start)/CLOCKS_PER_SEC);