diff --git a/examples/bundle_adjuster.cc b/examples/bundle_adjuster.cc
index a8ae16a..27ea80e 100644
--- a/examples/bundle_adjuster.cc
+++ b/examples/bundle_adjuster.cc
@@ -90,7 +90,7 @@
               "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_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 @@
   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 27198ac..61804aa 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -700,10 +700,10 @@
     // 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 8f7a2a0..9b7ee47 100644
--- a/internal/ceres/implicit_schur_complement.cc
+++ b/internal/ceres/implicit_schur_complement.cc
@@ -57,7 +57,7 @@
   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 8be33bc..607502e 100644
--- a/internal/ceres/iterative_schur_complement_solver.cc
+++ b/internal/ceres/iterative_schur_complement_solver.cc
@@ -94,7 +94,7 @@
   // 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 a98b295..46992fb 100644
--- a/internal/ceres/iterative_schur_complement_solver_test.cc
+++ b/internal/ceres/iterative_schur_complement_solver_test.cc
@@ -76,7 +76,7 @@
 
   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 @@
     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 69e984f..757d01e 100644
--- a/internal/ceres/linear_solver.h
+++ b/internal/ceres/linear_solver.h
@@ -174,10 +174,10 @@
     // 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 71b4537..b772f3f 100644
--- a/internal/ceres/solver.cc
+++ b/internal/ceres/solver.cc
@@ -266,15 +266,15 @@
           "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 e9406d1..d27a472 100644
--- a/internal/ceres/trust_region_preprocessor.cc
+++ b/internal/ceres/trust_region_preprocessor.cc
@@ -199,8 +199,8 @@
       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;
