codac 2.0.0
Loading...
Searching...
No Matches
codac2_pave.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "codac2_Paving.h"
13#include "codac2_Ctc.h"
14#include "codac2_Sep.h"
16#include "codac2_BoolInterval.h"
17#include "codac2_SlicedTube.h"
18
19namespace codac2
20{
21 // eps: accuracy of the paving algorithm, the undefined boxes will have their max_diam <= eps
22
23 PavingOut pave(const IntervalVector& x0, std::shared_ptr<const CtcBase<IntervalVector>> c, double eps, bool verbose = false);
24 PavingOut pave(const IntervalVector& x0, const CtcBase<IntervalVector>& c, double eps, double& time, bool verbose = false);
25 PavingOut pave(const IntervalVector& x0, const CtcBase<IntervalVector>& c, double eps, bool verbose = false);
26
27 PavingInOut pave(const IntervalVector& x0, std::shared_ptr<const SepBase> s, double eps, bool verbose = false);
28 PavingInOut pave(const IntervalVector& x0, const SepBase& s, double eps, bool verbose = false);
29
30 PavingInOut regular_pave(const IntervalVector& x0, const std::function<BoolInterval(const IntervalVector&)>& test, double eps, bool verbose = false);
31
32 template<typename Y>
33 PavingInOut sivia(const IntervalVector& x0, const AnalyticFunction<Y>& f, const typename Y::Domain& y, double eps, bool verbose = false)
34 {
35 return regular_pave(x0,
36 [&y,&f](const IntervalVector& x)
37 {
38 auto eval = f.eval(x);
39
40 if(eval.is_subset(y))
41 return BoolInterval::TRUE;
42
43 else if(!eval.intersects(y))
44 return BoolInterval::FALSE;
45
46 else
48 },
49 eps, verbose);
50 }
51
52 PavingInOut pave_tube(const IntervalVector& x0, const SlicedTube<IntervalVector>& f, double eps, bool verbose = false);
53}
Tube represented over a sliced temporal domain.
Definition codac2_SlicedTube.h:38
Definition codac2_OctaSym.h:21
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25
BoolInterval
Enumeration representing a boolean interval.
Definition codac2_BoolInterval.h:26
@ UNKNOWN
Definition codac2_BoolInterval.h:32