diff --git a/internal/ceres/compressed_row_jacobian_writer.h b/internal/ceres/compressed_row_jacobian_writer.h
index 935e650..a722a7c 100644
--- a/internal/ceres/compressed_row_jacobian_writer.h
+++ b/internal/ceres/compressed_row_jacobian_writer.h
@@ -50,31 +50,33 @@
     : program_(program) {
   }
 
-  // `PopulateJacobianRowAndColumnBlockVectors` sets `col_blocks` and
-  // `row_blocks` for a `CompressedRowSparseMatrix`, based on the parameter
-  // block sizes and residual sizes respectively from the program. This is
-  // useful when Solver::Options::use_block_amd = true;
+  // PopulateJacobianRowAndColumnBlockVectors sets col_blocks and
+  // row_blocks for a CompressedRowSparseMatrix, based on the
+  // parameter block sizes and residual sizes respectively from the
+  // program. This is useful when Solver::Options::use_block_amd =
+  // true;
   //
   // This function is static so that it is available to other jacobian
-  // writers which use `CompressedRowSparseMatrix` (or derived types).
+  // writers which use CompressedRowSparseMatrix (or derived types).
   // (Jacobian writers do not fall under any type hierarchy; they only
   // have to provide an interface as specified in program_evaluator.h).
   static void PopulateJacobianRowAndColumnBlockVectors(
       const Program* program,
       CompressedRowSparseMatrix* jacobian);
 
-  // It is necessary to determine the order of the jacobian blocks before
-  // copying them into a `CompressedRowSparseMatrix` (or derived type).
-  // Just because a cost function uses parameter blocks 1 after 2 in its
-  // arguments does not mean that the block 1 occurs before block 2 in the
-  // column layout of the jacobian. Thus, `GetOrderedParameterBlocks`
-  // determines the order by sorting the jacobian blocks by their position in
-  // the state vector.
+  // It is necessary to determine the order of the jacobian blocks
+  // before copying them into a CompressedRowSparseMatrix (or derived
+  // type).  Just because a cost function uses parameter blocks 1
+  // after 2 in its arguments does not mean that the block 1 occurs
+  // before block 2 in the column layout of the jacobian. Thus,
+  // GetOrderedParameterBlocks determines the order by sorting the
+  // jacobian blocks by their position in the state vector.
   //
   // This function is static so that it is available to other jacobian
-  // writers which use `CompressedRowSparseMatrix` (or derived types).
+  // writers which use CompressedRowSparseMatrix (or derived types).
   // (Jacobian writers do not fall under any type hierarchy; they only
-  // have to provide an interface as specified in program_evaluator.h).
+  // have to provide an interface as specified in
+  // program_evaluator.h).
   static void GetOrderedParameterBlocks(
       const Program* program,
       int residual_id,
@@ -82,9 +84,10 @@
 
   // JacobianWriter interface.
 
-  // Since the compressed row matrix has different layout than that assumed by
-  // the cost functions, use scratch space to store the jacobians temporarily
-  // then copy them over to the larger jacobian in the Write() function.
+  // Since the compressed row matrix has different layout than that
+  // assumed by the cost functions, use scratch space to store the
+  // jacobians temporarily then copy them over to the larger jacobian
+  // in the Write() function.
   ScratchEvaluatePreparer* CreateEvaluatePreparers(int num_threads) {
     return ScratchEvaluatePreparer::Create(*program_, num_threads);
   }
