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 PavingOut pave(const IntervalVector& x0, const CtcBase<IntervalVector>& c, const Vector& v_eps, double& time, bool verbose = false);
27
28 PavingInOut pave(const IntervalVector& x0, std::shared_ptr<const SepBase> s, double eps, bool verbose = false);
29 PavingInOut pave(const IntervalVector& x0, const SepBase& s, double eps, bool verbose = false);
30
31 PavingInOut regular_pave(const IntervalVector& x0, const std::function<BoolInterval(const IntervalVector&)>& test, double eps, bool verbose = false);
32
33 template<typename Y>
34 PavingInOut sivia(const IntervalVector& x0, const AnalyticFunction<Y>& f, const typename Y::Domain& y, double eps, bool verbose = false)
35 {
36 return regular_pave(x0,
37 [&y,&f](const IntervalVector& x)
38 {
39 auto eval = f.eval(x);
40
41 if(eval.is_subset(y))
42 return BoolInterval::TRUE;
43
44 else if(!eval.intersects(y))
45 return BoolInterval::FALSE;
46
47 else
49 },
50 eps, verbose);
51 }
52
53 PavingInOut pave_tube(const IntervalVector& x0, const SlicedTube<IntervalVector>& f, double eps, bool verbose = false);
54}
Tube represented over a sliced temporal domain.
Definition codac2_SlicedTube.h:38
Definition codac2_OctaSym.h:21
Eigen::Matrix< double,-1, 1 > Vector
Alias for a dynamically-sized column vector of doubles.
Definition codac2_Vector.h:24
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