iSAM
OptimizationInterface.h
Go to the documentation of this file.
00001 
00029 #pragma once
00030 
00031 #include <Eigen/Dense>
00032 
00033 #include "SparseSystem.h"
00034 #include "Node.h"
00035 
00036 
00037 namespace isam {
00038 
00044 class OptimizationInterface {
00045 
00046 protected:
00047 
00049   SparseSystem _R;
00050 
00051 public:
00052   virtual SparseSystem jacobian() = 0;
00053   virtual void apply_exmap(const Eigen::VectorXd& delta) = 0;
00054   virtual void self_exmap(const Eigen::VectorXd& delta) = 0;
00055   virtual void estimate_to_linpoint() = 0;
00056   virtual void linpoint_to_estimate() = 0;
00057   virtual void swap_estimates() = 0;
00058   virtual Eigen::VectorXd weighted_errors(Selector s = ESTIMATE) = 0;
00059 
00060   OptimizationInterface(): _R(1,1) {}
00061 
00062   virtual ~OptimizationInterface() {}
00063 
00064   friend class Optimizer;
00065 };
00066 
00067 }
 All Classes Files Functions Variables