Skip to content

Commit 0dbd4ee

Browse files
committed
toward expression template
1 parent 2cbda42 commit 0dbd4ee

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2895
-2937
lines changed

include/manif/Rn.h

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,32 @@
22
#define _MANIF_RN_H_
33

44
#include "manif/impl/macro.h"
5+
#include "manif/constants.h"
56
#include "manif/impl/utils.h"
6-
#include "manif/impl/lie_group_base.h"
7+
8+
#include "manif/impl/traits.h"
9+
#include "manif/impl/core/crtp.h"
10+
11+
#include "manif/impl/eigen.h"
12+
13+
#include "manif/impl/expr/expr.h"
14+
#include "manif/impl/random.h"
15+
#include "manif/impl/generator.h"
16+
#include "manif/impl/assignment_assert.h"
17+
18+
#include "lt/optional.hpp"
19+
720
#include "manif/impl/tangent_base.h"
21+
#include "manif/impl/lie_group_base.h"
822

923
#include "manif/impl/rn/Rn_properties.h"
1024
#include "manif/impl/rn/Rn_base.h"
1125
#include "manif/impl/rn/RnTangent_base.h"
1226
#include "manif/impl/rn/Rn.h"
27+
#include "manif/impl/rn/Rn_expr.h"
1328
#include "manif/impl/rn/RnTangent.h"
29+
#include "manif/impl/rn/RnTangent_expr.h"
30+
1431
#include "manif/impl/rn/Rn_map.h"
1532
#include "manif/impl/rn/RnTangent_map.h"
1633

include/manif/SE2.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,32 @@
22
#define _MANIF_SE2_H_
33

44
#include "manif/impl/macro.h"
5-
#include "manif/impl/lie_group_base.h"
6-
#include "manif/impl/tangent_base.h"
5+
#include "manif/constants.h"
6+
#include "manif/impl/utils.h"
7+
8+
#include "manif/impl/traits.h"
9+
#include "manif/impl/core/crtp.h"
10+
11+
#include "manif/impl/eigen.h"
12+
13+
#include "manif/impl/expr/expr.h"
14+
#include "manif/impl/random.h"
15+
#include "manif/impl/generator.h"
16+
#include "manif/impl/assignment_assert.h"
717

18+
#include "lt/optional.hpp"
19+
20+
#include "manif/impl/tangent_base.h"
21+
#include "manif/impl/lie_group_base.h"
822

923
#include "manif/impl/se2/SE2_properties.h"
1024
#include "manif/impl/se2/SE2_base.h"
1125
#include "manif/impl/se2/SE2Tangent_base.h"
1226
#include "manif/impl/se2/SE2.h"
27+
#include "manif/impl/se2/SE2_expr.h"
1328
#include "manif/impl/se2/SE2Tangent.h"
29+
#include "manif/impl/se2/SE2Tangent_expr.h"
30+
1431
#include "manif/impl/se2/SE2_map.h"
1532
#include "manif/impl/se2/SE2Tangent_map.h"
1633

include/manif/SE3.h

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,36 @@
11
#ifndef _MANIF_SE3_H_
22
#define _MANIF_SE3_H_
33

4-
#include "manif/impl/macro.h"
5-
#include "manif/impl/lie_group_base.h"
6-
#include "manif/impl/tangent_base.h"
4+
// #include "manif/impl/macro.h"
5+
// #include "manif/constants.h"
6+
// #include "manif/impl/utils.h"
7+
//
8+
// #include "manif/impl/traits.h"
9+
// #include "manif/impl/core/crtp.h"
10+
//
11+
// #include "manif/impl/eigen.h"
12+
//
13+
// #include "manif/impl/expr/expr.h"
14+
// #include "manif/impl/random.h"
15+
// #include "manif/impl/generator.h"
16+
// #include "manif/impl/assignment_assert.h"
17+
//
18+
// #include "lt/optional.hpp"
19+
//
20+
// #include "manif/impl/tangent_base.h"
21+
// #include "manif/impl/lie_group_base.h"
722

23+
#include "manif/SO3.h"
24+
25+
#include "manif/impl/se3/SE3_utils.h"
826
#include "manif/impl/se3/SE3_properties.h"
927
#include "manif/impl/se3/SE3_base.h"
1028
#include "manif/impl/se3/SE3Tangent_base.h"
1129
#include "manif/impl/se3/SE3.h"
30+
#include "manif/impl/se3/SE3_expr.h"
1231
#include "manif/impl/se3/SE3Tangent.h"
32+
#include "manif/impl/se3/SE3Tangent_expr.h"
33+
1334
#include "manif/impl/se3/SE3_map.h"
1435
#include "manif/impl/se3/SE3Tangent_map.h"
1536

include/manif/SO2.h

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,32 @@
22
#define _MANIF_SO2_H_
33

44
#include "manif/impl/macro.h"
5+
#include "manif/constants.h"
56
#include "manif/impl/utils.h"
6-
#include "manif/impl/lie_group_base.h"
7+
8+
#include "manif/impl/traits.h"
9+
#include "manif/impl/core/crtp.h"
10+
11+
#include "manif/impl/eigen.h"
12+
13+
#include "manif/impl/expr/expr.h"
14+
#include "manif/impl/random.h"
15+
#include "manif/impl/generator.h"
16+
#include "manif/impl/assignment_assert.h"
17+
18+
#include "lt/optional.hpp"
19+
720
#include "manif/impl/tangent_base.h"
21+
#include "manif/impl/lie_group_base.h"
822

923
#include "manif/impl/so2/SO2_properties.h"
1024
#include "manif/impl/so2/SO2_base.h"
1125
#include "manif/impl/so2/SO2Tangent_base.h"
1226
#include "manif/impl/so2/SO2.h"
27+
#include "manif/impl/so2/SO2_expr.h"
1328
#include "manif/impl/so2/SO2Tangent.h"
29+
#include "manif/impl/so2/SO2Tangent_expr.h"
30+
1431
#include "manif/impl/so2/SO2_map.h"
1532
#include "manif/impl/so2/SO2Tangent_map.h"
1633

include/manif/SO3.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,32 @@
22
#define _MANIF_SO3_H_
33

44
#include "manif/impl/macro.h"
5-
#include "manif/impl/lie_group_base.h"
5+
#include "manif/constants.h"
6+
#include "manif/impl/utils.h"
7+
8+
#include "manif/impl/traits.h"
9+
#include "manif/impl/core/crtp.h"
10+
11+
#include "manif/impl/eigen.h"
12+
13+
#include "manif/impl/expr/expr.h"
14+
#include "manif/impl/random.h"
15+
#include "manif/impl/generator.h"
16+
#include "manif/impl/assignment_assert.h"
17+
18+
#include "lt/optional.hpp"
19+
620
#include "manif/impl/tangent_base.h"
21+
#include "manif/impl/lie_group_base.h"
722

823
#include "manif/impl/so3/SO3_properties.h"
924
#include "manif/impl/so3/SO3_base.h"
1025
#include "manif/impl/so3/SO3Tangent_base.h"
1126
#include "manif/impl/so3/SO3.h"
27+
#include "manif/impl/so3/SO3_expr.h"
1228
#include "manif/impl/so3/SO3Tangent.h"
29+
#include "manif/impl/so3/SO3Tangent_expr.h"
30+
1331
#include "manif/impl/so3/SO3_map.h"
1432
#include "manif/impl/so3/SO3Tangent_map.h"
1533

include/manif/impl/expr/act.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ struct ActExpr
4747
mutable RhsOptJacobianRef J_ret_rhs_;
4848
};
4949

50+
namespace internal {
51+
52+
template <template <typename _Derived> class _LieGroupBase,
53+
typename _Derived, typename _DerivedOther>
54+
struct ReturnTypeHelper<ActExpr<_LieGroupBase<_Derived>, _DerivedOther>>
55+
{
56+
using type = typename traits<_Derived>::Vector;
57+
};
58+
59+
} // namespace internal
5060
} // namespace manif
5161

5262
#endif // _MANIF_MANIF_IMPL_EXPR_ACT_H_

include/manif/impl/lie_group_base.h

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,6 @@
11
#ifndef _MANIF_MANIF_LIE_GROUP_BASE_H_
22
#define _MANIF_MANIF_LIE_GROUP_BASE_H_
33

4-
#include "manif/impl/core/crtp.h"
5-
6-
#include "manif/impl/macro.h"
7-
#include "manif/impl/traits.h"
8-
#include "manif/impl/eigen.h"
9-
#include "manif/impl/tangent_base.h"
10-
#include "manif/impl/assignment_assert.h"
11-
12-
#include "manif/impl/expr/expr.h"
13-
14-
#include "manif/constants.h"
15-
16-
#include "lt/optional.hpp"
17-
184
namespace manif {
195

206
/**
@@ -25,11 +11,6 @@ namespace manif {
2511
template <class _Derived>
2612
struct LieGroupBase : internal::crtp<_Derived>
2713
{
28-
private:
29-
30-
// _Derived& derived() { return *static_cast< _Derived* >(this); }
31-
// const _Derived& derived() const { return *static_cast< const _Derived* >(this); }
32-
3314
public:
3415

3516
static constexpr int Dim = internal::traits<_Derived>::Dim;
@@ -368,7 +349,7 @@ struct LieGroupBase : internal::crtp<_Derived>
368349
//! Static helper to create a random object of the Lie group.
369350
static LieGroup Random();
370351

371-
protected:
352+
// protected:
372353

373354
inline _Derived& derived() & noexcept { return *static_cast< _Derived* >(this); }
374355
inline const _Derived& derived() const & noexcept { return *static_cast< const _Derived* >(this); }

0 commit comments

Comments
 (0)