codac 2.0.0
Loading...
Searching...
No Matches
codac2_Wrapper.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "codac2_Interval.h"
13#include "codac2_Vector.h"
14#include "codac2_Matrix.h"
17
18namespace codac2
19{
20 template<typename T, typename Enable=void>
21 struct Wrapper
22 { };
23
24 template<typename T>
25 requires (std::is_arithmetic_v<T>)
26 struct Wrapper<T> {
27 using Domain = Interval;
28 };
29
30 template<>
31 struct Wrapper<Index> {
32 using Domain = Interval;
33 };
34
35 template<typename T,typename D>
36 struct AnalyticType;
37
38 template<typename T,typename D>
39 struct Wrapper<AnalyticType<T,D>> {
40 using Domain = D;
41 };
42
43 template<typename OtherDerived>
44 struct Wrapper<OtherDerived,
45 typename std::enable_if<std::is_base_of_v<Eigen::MatrixBase<OtherDerived>,OtherDerived>>::type>
46 {
47 using Domain = Eigen::Matrix<Interval,OtherDerived::RowsAtCompileTime,OtherDerived::ColsAtCompileTime>;
48 // Automatically sets:
49 // Wrapper<Vector>::Domain = IntervalVector
50 // Wrapper<IntervalVector>::Domain = IntervalVector
51 // Wrapper<Matrix>::Domain = IntervalMatrix
52 // Wrapper<IntervalMatrix>::Domain = IntervalMatrix
53 // + related possible expression templates
54 };
55}
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:49
Definition codac2_OctaSym.h:21