diff --git a/internal/ceres/callbacks.cc b/internal/ceres/callbacks.cc
index 0e0df9d..a2692cc 100644
--- a/internal/ceres/callbacks.cc
+++ b/internal/ceres/callbacks.cc
@@ -86,38 +86,36 @@
     const IterationSummary& summary) {
   string output;
   if (minimizer_type == LINE_SEARCH) {
-    const char* kReportRowFormat =
-        "% 4d: f:% 8e d:% 3.2e g:% 3.2e h:% 3.2e "
-        "s:% 3.2e e:% 3d it:% 3.2e tt:% 3.2e";
-    output = StringPrintf(kReportRowFormat,
-                          summary.iteration,
-                          summary.cost,
-                          summary.cost_change,
-                          summary.gradient_max_norm,
-                          summary.step_norm,
-                          summary.step_size,
-                          summary.line_search_function_evaluations,
-                          summary.iteration_time_in_seconds,
-                          summary.cumulative_time_in_seconds);
+    output = StringPrintf(
+        "% 4d: f:% 8e d:% 3.2e g:% 3.2e h:% 3.2e s:% 3.2e e:% 3d it:% 3.2e "
+        "tt:% 3.2e",
+        summary.iteration,
+        summary.cost,
+        summary.cost_change,
+        summary.gradient_max_norm,
+        summary.step_norm,
+        summary.step_size,
+        summary.line_search_function_evaluations,
+        summary.iteration_time_in_seconds,
+        summary.cumulative_time_in_seconds);
   } else if (minimizer_type == TRUST_REGION) {
     // clang-format off
     if (summary.iteration == 0) {
       output = "iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time\n";  // NOLINT
     }
-    const char* kReportRowFormat =
-        "% 4d % 8e   % 3.2e   % 3.2e  % 3.2e  % 3.2e % 3.2e     % 4d   % 3.2e   % 3.2e";  // NOLINT
-    // clang-format on
-    output += StringPrintf(kReportRowFormat,
-                           summary.iteration,
-                           summary.cost,
-                           summary.cost_change,
-                           summary.gradient_max_norm,
-                           summary.step_norm,
-                           summary.relative_decrease,
-                           summary.trust_region_radius,
-                           summary.linear_solver_iterations,
-                           summary.iteration_time_in_seconds,
-                           summary.cumulative_time_in_seconds);
+    output += StringPrintf(
+        "% 4d % 8e   % 3.2e   % 3.2e  % 3.2e  % 3.2e % 3.2e     % 4d   % 3.2e   % 3.2e",  // NOLINT
+        // clang-format on
+        summary.iteration,
+        summary.cost,
+        summary.cost_change,
+        summary.gradient_max_norm,
+        summary.step_norm,
+        summary.relative_decrease,
+        summary.trust_region_radius,
+        summary.linear_solver_iterations,
+        summary.iteration_time_in_seconds,
+        summary.cumulative_time_in_seconds);
   } else {
     LOG(FATAL) << "Unknown minimizer type.";
   }
