summaryrefslogtreecommitdiff
path: root/fix-gtsam42-vertigo-manifold-traits.patch
blob: 12af8dcc4fdb64b26c11b89a1d4c6e8dc41b7d84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
diff --git a/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h b/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
index e95e0b5..f40d4b2 100644
--- a/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
+++ b/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
@@ -110,6 +110,10 @@ namespace gtsam {
 // Define Key to be Testable by specializing gtsam::traits
 template<typename T> struct traits;
 template<> struct traits<vertigo::SwitchVariableLinear> {
+  typedef gtsam::manifold_tag structure_category;
+  enum { dimension = 1 };
+  typedef vertigo::SwitchVariableLinear ManifoldType;
+
   static void Print(const vertigo::SwitchVariableLinear& key, const std::string& str = "") {
     key.print(str);
   }
@@ -118,8 +122,8 @@ template<> struct traits<vertigo::SwitchVariableLinear> {
   }
   static int GetDimension(const vertigo::SwitchVariableLinear & key) {return key.Dim();}
 
-  typedef OptionalJacobian<3, 3> ChartJacobian;
-  typedef gtsam::Vector TangentVector;
+  typedef OptionalJacobian<1, 1> ChartJacobian;
+  typedef Eigen::Matrix<double, 1, 1> TangentVector;
   static TangentVector Local(const vertigo::SwitchVariableLinear& origin, const vertigo::SwitchVariableLinear& other,
 #if GTSAM_VERSION_NUMERIC >= 40300
       ChartJacobian Horigin = {}, ChartJacobian Hother = {}) {
diff --git a/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h b/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
index 79e1fca..237c7cd 100644
--- a/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
+++ b/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
@@ -111,6 +111,10 @@ namespace gtsam {
 // Define Key to be Testable by specializing gtsam::traits
 template<typename T> struct traits;
 template<> struct traits<vertigo::SwitchVariableSigmoid> {
+  typedef gtsam::manifold_tag structure_category;
+  enum { dimension = 1 };
+  typedef vertigo::SwitchVariableSigmoid ManifoldType;
+
   static void Print(const vertigo::SwitchVariableSigmoid& key, const std::string& str = "") {
     key.print(str);
   }
@@ -119,8 +123,8 @@ template<> struct traits<vertigo::SwitchVariableSigmoid> {
   }
   static int GetDimension(const vertigo::SwitchVariableSigmoid & key) {return key.Dim();}
 
-  typedef OptionalJacobian<3, 3> ChartJacobian;
-  typedef gtsam::Vector TangentVector;
+  typedef OptionalJacobian<1, 1> ChartJacobian;
+  typedef Eigen::Matrix<double, 1, 1> TangentVector;
   static TangentVector Local(const vertigo::SwitchVariableSigmoid& origin, const vertigo::SwitchVariableSigmoid& other,
 #if GTSAM_VERSION_NUMERIC >= 40300
 	  ChartJacobian Horigin = {}, ChartJacobian Hother = {}) {