Generalization of the inner iterations algorithm.
Add automatic recursive independent set decomposition.
Clean up the naming and the API for inner iterations.
Change-Id: I3d7d6babb9756842d7367e14b7279d2df98fb724
diff --git a/internal/ceres/solver_impl.h b/internal/ceres/solver_impl.h
index 140de95..dd40e41 100644
--- a/internal/ceres/solver_impl.h
+++ b/internal/ceres/solver_impl.h
@@ -35,15 +35,15 @@
#include <vector>
#include "ceres/internal/port.h"
#include "ceres/ordered_groups.h"
-#include "ceres/solver.h"
#include "ceres/problem_impl.h"
+#include "ceres/solver.h"
namespace ceres {
namespace internal {
+class CoordinateDescentMinimizer;
class Evaluator;
class LinearSolver;
-class InnerIterationMinimizer;
class Program;
class SolverImpl {
@@ -86,7 +86,7 @@
// Reorder the residuals for program, if necessary, so that the
// residuals involving e block (i.e., the first num_eliminate_block
// parameter blocks) occur together. This is a necessary condition
- // for the Schur eliminator as well as the InnerIterationMinimizer.
+ // for the Schur eliminator.
static bool LexicographicallyOrderResidualBlocks(
const int num_eliminate_blocks,
Program* program,
@@ -102,7 +102,7 @@
// Run the minimization for the given evaluator and configuration.
static void Minimize(const Solver::Options &options,
Program* program,
- InnerIterationMinimizer* inner_iteration_minimizer,
+ CoordinateDescentMinimizer* inner_iteration_minimizer,
Evaluator* evaluator,
LinearSolver* linear_solver,
double* parameters,
@@ -124,8 +124,8 @@
string* error);
static bool IsParameterBlockSetIndependent(
- const set<double*> parameter_block_ptrs,
- const vector<ResidualBlock*> residual_blocks);
+ const set<double*>& parameter_block_ptrs,
+ const vector<ResidualBlock*>& residual_blocks);
};
} // namespace internal