MSCEqF 1.0
Multi State Constraint Equivariant Filter for visual inertial navigation
Loading...
Searching...
No Matches
fptypes.hpp
1// Copyright (C) 2023 Alessandro Fornasier.
2// Control of Networked Systems, University of Klagenfurt, Austria.
3//
4// All rights reserved.
5//
6// This software is licensed under the terms of the BSD-2-Clause-License with
7// no commercial use allowed, the full terms of which are made available
8// in the LICENSE file. No license in patents is granted.
9//
10// You can contact the authors at <alessandro.fornasier@ieee.org>
11
12#ifndef FPTYPES_HPP
13#define FPTYPES_HPP
14
15#include <groups/In.hpp>
16#include <groups/SDB.hpp>
17#include <groups/TG.hpp>
18#include <groups/SOT3.hpp>
19
20namespace msceqf
21{
22#ifdef SINGLE_PRECISION
23
24using fp = float;
25
26#else
27
28using fp = double;
29
30#endif
31
32using SO3 = group::SO3<fp>;
33
34using SE3 = group::SEn3<fp, 1>;
35
36using SE23 = group::SEn3<fp, 2>;
37
38using SOT3 = group::SOT3<fp>;
39
40using In = group::In<fp>;
41
42using SDB = group::SemiDirectBias<fp>;
43
44using TG = group::Tangent<fp>;
45
46using Vector2 = Eigen::Matrix<fp, 2, 1>;
47
48using Vector3 = Eigen::Matrix<fp, 3, 1>;
49
50using Vector4 = Eigen::Matrix<fp, 4, 1>;
51
52using Vector6 = Eigen::Matrix<fp, 6, 1>;
53
54using Vector9 = Eigen::Matrix<fp, 9, 1>;
55
56using Vector15 = Eigen::Matrix<fp, 15, 1>;
57
58using Vector18 = Eigen::Matrix<fp, 18, 1>;
59
60using Vector21 = Eigen::Matrix<fp, 21, 1>;
61
62using Vector24 = Eigen::Matrix<fp, 24, 1>;
63
64using Vector25 = Eigen::Matrix<fp, 25, 1>;
65
66using Vector29 = Eigen::Matrix<fp, 29, 1>;
67
68using VectorX = Eigen::Matrix<fp, Eigen::Dynamic, 1>;
69
70using Matrix2 = Eigen::Matrix<fp, 2, 2>;
71
72using Matrix3 = Eigen::Matrix<fp, 3, 3>;
73
74using Matrix4 = Eigen::Matrix<fp, 4, 4>;
75
76using Matrix5 = Eigen::Matrix<fp, 5, 5>;
77
78using Matrix6 = Eigen::Matrix<fp, 6, 6>;
79
80using Matrix7 = Eigen::Matrix<fp, 7, 7>;
81
82using Matrix9 = Eigen::Matrix<fp, 9, 9>;
83
84using Matrix12 = Eigen::Matrix<fp, 12, 12>;
85
86using Matrix15 = Eigen::Matrix<fp, 15, 15>;
87
88using Matrix18 = Eigen::Matrix<fp, 18, 18>;
89
90using Matrix21 = Eigen::Matrix<fp, 21, 21>;
91
92using Matrix24 = Eigen::Matrix<fp, 24, 24>;
93
94using Matrix25 = Eigen::Matrix<fp, 25, 25>;
95
96using Matrix29 = Eigen::Matrix<fp, 24, 24>;
97
98using MatrixX = Eigen::MatrixXd;
99
100using Quaternion = Eigen::Quaternion<fp>;
101
102template <int R, int C, int T = Eigen::ColMajor>
103using Matrix = Eigen::Matrix<fp, R, C, T>;
104
105template <typename T>
106using Ref = Eigen::Ref<T>;
107
108template <typename T>
109using Map = Eigen::Map<T>;
110
111} // namespace msceqf
112
113#endif // FPTYPES_HPP