@@ -35,33 +35,34 @@ make it faster when sparsity isn't a concern.
3535*/
3636namespace form {
3737
38- // / Extension of LM that uses dense optimization instead of sparse bayes tree solver.
38+ // / @brief Extension of LM that uses dense optimization instead of sparse bayes tree
39+ // / solver.
3940class DenseLMOptimizer : public gtsam ::LevenbergMarquardtOptimizer {
4041public:
41- // / Constructor
42+ // / @brief Constructor
4243 DenseLMOptimizer (const gtsam::NonlinearFactorGraph &graph,
4344 const gtsam::Values &initialValues,
4445 const gtsam::LevenbergMarquardtParams ¶ms)
4546 : LevenbergMarquardtOptimizer(graph, initialValues, params) {}
4647
47- // / Solve densely instead of using the sparse solver
48+ // / @brief Solve densely instead of using the sparse solver
4849 gtsam::VectorValues
4950 solve (const gtsam::GaussianFactorGraph &gfg,
5051 const gtsam::NonlinearOptimizerParams ¶ms) const override {
5152 return gfg.optimizeDensely ();
5253 }
5354};
5455
55- // / Factor that forces gtsam factors to use Hessian linearization instead of Jacobian
56- // / linearization. This is more efficient when residual sizes are large and the
57- // / problem is dense.
56+ // / @brief Factor that forces gtsam factors to use Hessian linearization instead of
57+ // / Jacobian linearization. This is more efficient when residual sizes are large and
58+ // / the problem is dense.
5859class DenseFactor : public gtsam ::NoiseModelFactor2<gtsam::Pose3, gtsam::Pose3> {
5960public:
6061 DenseFactor (const gtsam::noiseModel::Base::shared_ptr &noiseModel,
6162 const gtsam::Key i, const gtsam::Key j)
6263 : gtsam::NoiseModelFactor2<gtsam::Pose3, gtsam::Pose3>(noiseModel, i, j) {}
6364
64- // Blatantly stolen from here,
65+ // Blatantly stolen from here, just with last line changed:
6566 // https://github.com/borglab/gtsam/blob/develop/gtsam/nonlinear/NonlinearFactor.cpp#L152
6667 boost::shared_ptr<gtsam::GaussianFactor>
6768 linearize (const gtsam::Values &x) const override {
@@ -85,8 +86,8 @@ class DenseFactor : public gtsam::NoiseModelFactor2<gtsam::Pose3, gtsam::Pose3>
8586 }
8687};
8788
88- // / A fast isotropic noise model that uses a single sigma value for all dimensions.
89- // / The gtsam version allocates a vector of sigmas, which is unnecessary
89+ // / @brief A fast isotropic noise model that uses a single sigma value for all
90+ // / dimensions. The gtsam version allocates a vector of sigmas, which is unnecessary
9091class FastIsotropic : public gtsam ::noiseModel::Gaussian {
9192 typedef boost::shared_ptr<FastIsotropic> shared_ptr;
9293
@@ -138,7 +139,8 @@ class FastIsotropic : public gtsam::noiseModel::Gaussian {
138139 }
139140};
140141
141- // Wrapper around a gtsam::NoiseModelFactor2 to allow for a fixed FIRST variable
142+ // / @brief Wrapper around a gtsam::NoiseModelFactor2 to allow for a fixed FIRST
143+ // / variable
142144class BinaryFactorWrapper : public gtsam ::NoiseModelFactor1<gtsam::Pose3> {
143145 using Base = gtsam::NoiseModelFactor1<gtsam::Pose3>;
144146 using Wrapped = gtsam::NoiseModelFactor2<gtsam::Pose3, gtsam::Pose3>;
0 commit comments