No gtsam CONJUGATE_GRADIENT in nonLinearOptimizer

Issue #188 new
Zhaoyang Lv created an issue

@stan84

I'm fixing matlab example. The Pose2SLAMwSPCG.m cannot work because there is no CONJUGATE_GRADIENT type in NonlinearOptimizerParams.cpp.

In Pose2SLAMwSPCG.m

params = gtsam.LevenbergMarquardtParams;
subgraphParams = gtsam.SubgraphSolverParameters;
params.setLinearSolverType('CONJUGATE_GRADIENT');

In NonlinearOptimizerParams.h

 void setLinearSolverType(const std::string& solver) {
    linearSolverType = linearSolverTranslator(solver);
 }

In NonlinearOptimizerParams.cpp

NonlinearOptimizerParams::LinearSolverType NonlinearOptimizerParams::linearSolverTranslator(
    const std::string& linearSolverType) const {
  if (linearSolverType == "MULTIFRONTAL_CHOLESKY")
    return MULTIFRONTAL_CHOLESKY;
  if (linearSolverType == "MULTIFRONTAL_QR")
    return MULTIFRONTAL_QR;
  if (linearSolverType == "SEQUENTIAL_CHOLESKY")
    return SEQUENTIAL_CHOLESKY;
  if (linearSolverType == "SEQUENTIAL_QR")
    return SEQUENTIAL_QR;
  if (linearSolverType == "ITERATIVE")
    return Iterative;
  if (linearSolverType == "CHOLMOD")
    return CHOLMOD;
  throw std::invalid_argument(
      "Unknown linear solver type in SuccessiveLinearizationOptimizer");
}

Is it some bug during merging or has been deprecated?

Comments (0)

  1. Log in to comment