diff --git a/examples/bundle_adjuster.cc b/examples/bundle_adjuster.cc index a8ae16ab3..27ea80e40 100644 --- a/examples/bundle_adjuster.cc +++ b/examples/bundle_adjuster.cc @@ -90,7 +90,7 @@ DEFINE_string(preconditioner, "jacobi", "Options are: " "cluster_tridiagonal."); DEFINE_string(visibility_clustering, "canonical_views", "single_linkage, canonical_views"); -DEFINE_bool(use_power_series_expansion_initialization, false, +DEFINE_bool(use_spse_initialization, false, "Use power series expansion to initialize the solution in ITERATIVE_SCHUR linear solver."); DEFINE_string(sparse_linear_algebra_library, "suite_sparse", @@ -111,7 +111,7 @@ DEFINE_double(eta, 1e-2, "Default value for eta. Eta determines the " DEFINE_int32(num_threads, 1, "Number of threads."); DEFINE_int32(num_iterations, 5, "Number of iterations."); -DEFINE_int32(max_linear_solve_iterations, 500, "Maximum number of iterations" +DEFINE_int32(max_linear_solver_iterations, 500, "Maximum number of iterations" " for solution of linear system."); DEFINE_double(spse_tolerance, 0.1, "Tolerance to reach during the iterations of power series expansion initialization or preconditioning."); @@ -166,9 +166,9 @@ void SetLinearSolver(Solver::Options* options) { options->max_num_refinement_iterations = CERES_GET_FLAG(FLAGS_max_num_refinement_iterations); options->max_linear_solver_iterations = - CERES_GET_FLAG(FLAGS_max_linear_solve_iterations); - options->use_power_series_expansion_initialization = - CERES_GET_FLAG(FLAGS_use_power_series_expansion_initialization); + CERES_GET_FLAG(FLAGS_max_linear_solver_iterations); + options->use_spse_initialization = + CERES_GET_FLAG(FLAGS_use_spse_initialization); options->spse_tolerance = CERES_GET_FLAG(FLAGS_spse_tolerance); options->max_num_spse_iterations = CERES_GET_FLAG(FLAGS_max_num_spse_iterations); diff --git a/include/ceres/solver.h b/include/ceres/solver.h index 27198acc1..61804aafb 100644 --- a/include/ceres/solver.h +++ b/include/ceres/solver.h @@ -700,10 +700,10 @@ class CERES_EXPORT Solver { // Use SCHUR_POWER_SERIES_EXPANSION to initialize the solution for // ITERATIVE_SCHUR. This option can be set true regardless of what // preconditioner is being used. - bool use_power_series_expansion_initialization = false; + bool use_spse_initialization = false; - // When use_power_series_expansion_initialization is true, this parameter - // along with max_num_spse_iterations controls the number of + // When use_spse_initialization is true, this parameter along with + // max_num_spse_iterations controls the number of // SCHUR_POWER_SERIES_EXPANSION iterations performed for initialization. It // is not used to control the preconditioner. double spse_tolerance = 0.1; diff --git a/internal/ceres/implicit_schur_complement.cc b/internal/ceres/implicit_schur_complement.cc index 8f7a2a077..9b7ee4740 100644 --- a/internal/ceres/implicit_schur_complement.cc +++ b/internal/ceres/implicit_schur_complement.cc @@ -57,7 +57,7 @@ void ImplicitSchurComplement::Init(const BlockSparseMatrix& A, b_ = b; compute_ftf_inverse_ = - options_.use_power_series_expansion_initialization || + options_.use_spse_initialization || options_.preconditioner_type == JACOBI || options_.preconditioner_type == SCHUR_POWER_SERIES_EXPANSION; diff --git a/internal/ceres/iterative_schur_complement_solver.cc b/internal/ceres/iterative_schur_complement_solver.cc index 8be33bc9c..607502e72 100644 --- a/internal/ceres/iterative_schur_complement_solver.cc +++ b/internal/ceres/iterative_schur_complement_solver.cc @@ -94,7 +94,7 @@ LinearSolver::Summary IterativeSchurComplementSolver::SolveImpl( // Initialize the solution to the Schur complement system. reduced_linear_system_solution_.resize(schur_complement_->num_rows()); reduced_linear_system_solution_.setZero(); - if (options_.use_power_series_expansion_initialization) { + if (options_.use_spse_initialization) { PowerSeriesExpansionPreconditioner pse_solver( schur_complement_.get(), options_.max_num_spse_iterations, diff --git a/internal/ceres/iterative_schur_complement_solver_test.cc b/internal/ceres/iterative_schur_complement_solver_test.cc index a98b2959e..46992fbd2 100644 --- a/internal/ceres/iterative_schur_complement_solver_test.cc +++ b/internal/ceres/iterative_schur_complement_solver_test.cc @@ -76,7 +76,7 @@ class IterativeSchurComplementSolverTest : public ::testing::Test { AssertionResult TestSolver(double* D, PreconditionerType preconditioner_type, - bool use_power_series_expansion_initialization) { + bool use_spse_initialization) { TripletSparseMatrix triplet_A( A_->num_rows(), A_->num_cols(), A_->num_nonzeros()); A_->ToTripletSparseMatrix(&triplet_A); @@ -98,8 +98,7 @@ class IterativeSchurComplementSolverTest : public ::testing::Test { options.elimination_groups.push_back(0); options.max_num_iterations = num_cols_; options.max_num_spse_iterations = 1; - options.use_power_series_expansion_initialization = - use_power_series_expansion_initialization; + options.use_spse_initialization = use_spse_initialization; options.preconditioner_type = preconditioner_type; IterativeSchurComplementSolver isc(options); diff --git a/internal/ceres/linear_solver.h b/internal/ceres/linear_solver.h index 69e984ff3..757d01e0f 100644 --- a/internal/ceres/linear_solver.h +++ b/internal/ceres/linear_solver.h @@ -174,10 +174,10 @@ class CERES_NO_EXPORT LinearSolver { // Use SCHUR_POWER_SERIES_EXPANSION to initialize the solution for // ITERATIVE_SCHUR. This option can be set true regardless of what // preconditioner is being used. - bool use_power_series_expansion_initialization = false; + bool use_spse_initialization = false; - // When use_power_series_expansion_initialization is true, this parameter - // along with max_num_spse_iterations controls the number of + // When use_spse_initialization is true, this parameter along with + // max_num_spse_iterations controls the number of // SCHUR_POWER_SERIES_EXPANSION iterations performed for initialization. It // is not used to control the preconditioner. double spse_tolerance = 0.1; diff --git a/internal/ceres/solver.cc b/internal/ceres/solver.cc index 71b453788..b772f3f15 100644 --- a/internal/ceres/solver.cc +++ b/internal/ceres/solver.cc @@ -266,15 +266,15 @@ bool OptionsAreValidForIterativeSchur(const Solver::Options& options, "SCHUR_JACOBI as the preconditioner."; return false; } - if (options.use_power_series_expansion_initialization) { + if (options.use_spse_initialization) { *error = "use_explicit_schur_complement does not support " - "use_power_series_expansion_initialization."; + "use_spse_initialization."; return false; } } - if (options.use_power_series_expansion_initialization || + if (options.use_spse_initialization || options.preconditioner_type == SCHUR_POWER_SERIES_EXPANSION) { OPTION_GE(max_num_spse_iterations, 1) OPTION_GE(spse_tolerance, 0.0) diff --git a/internal/ceres/trust_region_preprocessor.cc b/internal/ceres/trust_region_preprocessor.cc index e9406d107..d27a47201 100644 --- a/internal/ceres/trust_region_preprocessor.cc +++ b/internal/ceres/trust_region_preprocessor.cc @@ -199,8 +199,8 @@ bool SetupLinearSolver(PreprocessedProblem* pp) { options.max_linear_solver_iterations; pp->linear_solver_options.type = options.linear_solver_type; pp->linear_solver_options.preconditioner_type = options.preconditioner_type; - pp->linear_solver_options.use_power_series_expansion_initialization = - options.use_power_series_expansion_initialization; + pp->linear_solver_options.use_spse_initialization = + options.use_spse_initialization; pp->linear_solver_options.spse_tolerance = options.spse_tolerance; pp->linear_solver_options.max_num_spse_iterations = options.max_num_spse_iterations;