use custom typedefs for GNC + GaussNewton and GNC + LM

release/4.3a0
John Lambert 2021-08-12 17:30:20 -04:00 committed by GitHub
parent 6e788faf34
commit 30d028ef74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 3 deletions

View File

@ -523,12 +523,15 @@ virtual class DoglegParams : gtsam::NonlinearOptimizerParams {
};
#include <gtsam/nonlinear/GncParams.h>
template<PARAMS = {gtsam::GaussNewtonParams, gtsam::LevenbergMarquardtParams}>
template<PARAMS>
virtual class GncParams {
GncParams(const PARAMS& baseOptimizerParams);
GncParams();
void print(const string& str) const;
};
typedef GncParams<gtsam::GaussNewtonParams> GncGaussNewtonParams;
typedef GncParams<gtsam::LevenbergMarquardtParams> GncLMParams;
#include <gtsam/nonlinear/NonlinearOptimizer.h>
virtual class NonlinearOptimizer {
@ -561,8 +564,7 @@ virtual class DoglegOptimizer : gtsam::NonlinearOptimizer {
};
#include <gtsam/nonlinear/GncOptimizer.h>
template<PARAMS = {gtsam::GncParams<gtsam::GaussNewtonParams>,
gtsam::GncParams<gtsam::LevenbergMarquardtParams>}>
template<PARAMS>
virtual class GncOptimizer {
GncOptimizer(const gtsam::NonlinearFactorGraph& graph,
const gtsam::Values& initialValues,
@ -570,6 +572,9 @@ virtual class GncOptimizer {
gtsam::Values optimize();
};
typedef gtsam::GncOptimizer<gtsam::GncParams<gtsam::GaussNewtonParams> > GncGaussNewtonOptimizer;
typedef gtsam::GncOptimizer<gtsam::GncParams<gtsam::LevenbergMarquardtParams> > GncLMOptimizer;
#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>
virtual class LevenbergMarquardtOptimizer : gtsam::NonlinearOptimizer {
LevenbergMarquardtOptimizer(const gtsam::NonlinearFactorGraph& graph,