static OptimizationAlgorithm* createSolver(const std::string& solverName)
  {
    g2o::Solver* s = 0;

    if (solverName == "fix3_2_cholmod") {
      ALLOC_CHOLMOD(s, 3, 2);
    }
    else if (solverName == "fix6_3_cholmod") {
      ALLOC_CHOLMOD(s, 6, 3);
    }

    OptimizationAlgorithmGaussNewton* gaussNewton = new OptimizationAlgorithmGaussNewton(s);
    return gaussNewton;
  }
  static Solver* createSolver(SparseOptimizer* opt, const std::string& solverName)
  {
    g2o::Solver* s = 0;

    if (solverName == "fix3_2_cholmod") {
      ALLOC_CHOLMOD(s, 3, 2);
      s->setAdditionalVectorSpace(300);
    }
    else if (solverName == "fix6_3_cholmod") {
      ALLOC_CHOLMOD(s, 6, 3);
      s->setAdditionalVectorSpace(600);
    }

    return s;
  }