diff --git a/examples/more_garbow_hillstrom.cc b/examples/more_garbow_hillstrom.cc
index 9f45040..b0ea78a 100644
--- a/examples/more_garbow_hillstrom.cc
+++ b/examples/more_garbow_hillstrom.cc
@@ -60,6 +60,10 @@
 #include "glog/logging.h"
 
 DEFINE_string(problem, "all", "Which problem to solve");
+DEFINE_bool(use_numeric_diff, false,
+            "Use numeric differentiation instead of automatic "
+            "differentiation.");
+
 
 namespace ceres {
 namespace examples {
@@ -75,9 +79,16 @@
     static const double constrained_optimal_cost;                       \
     static const double unconstrained_optimal_cost;                     \
     static CostFunction* Create() {                                     \
-      return new AutoDiffCostFunction<name,                             \
-                                      num_residuals,                    \
-                                      num_parameters>(new name);        \
+      if (FLAGS_use_numeric_diff) {                                     \
+        return new NumericDiffCostFunction<name,                        \
+                                           CENTRAL,                     \
+                                           num_residuals,               \
+                                           num_parameters>(new name);   \
+      } else {                                                          \
+        return new AutoDiffCostFunction<name,                           \
+                                        num_residuals,                  \
+                                        num_parameters>(new name);      \
+      }                                                                 \
     }                                                                   \
     template <typename T>                                               \
     bool operator()(const T* const x, T* residual) const {
diff --git a/examples/nist.cc b/examples/nist.cc
index 3d2e16a..81c3f2a 100644
--- a/examples/nist.cc
+++ b/examples/nist.cc
@@ -115,6 +115,9 @@
 DEFINE_bool(nonmonotonic_steps, false, "Trust region algorithm can use"
             " nonmonotic steps");
 DEFINE_double(initial_trust_region_radius, 1e4, "Initial trust region radius");
+DEFINE_bool(use_numeric_diff, false,
+            "Use numeric differentiation instead of automatic "
+            "differentiation.");
 
 namespace ceres {
 namespace examples {
@@ -431,12 +434,25 @@
 
     ceres::Problem problem;
     for (int i = 0; i < nist_problem.num_observations(); ++i) {
-      problem.AddResidualBlock(
-          new ceres::AutoDiffCostFunction<Model, num_residuals, num_parameters>(
-              new Model(predictor.data() + nist_problem.predictor_size() * i,
-                        response.data() + nist_problem.response_size() * i)),
-          NULL,
-          initial_parameters.data());
+      Model* model = new Model(predictor.data() + nist_problem.predictor_size() * i,
+                               response.data() + nist_problem.response_size() * i);
+      ceres::CostFunction* cost_function = NULL;
+      if (FLAGS_use_numeric_diff) {
+        cost_function =
+            new ceres::NumericDiffCostFunction<Model,
+                                               ceres::CENTRAL,
+                                               num_residuals,
+                                               num_parameters>(model);
+      } else {
+         cost_function =
+             new ceres::AutoDiffCostFunction<Model,
+                                             num_residuals,
+                                             num_parameters>(model);
+      }
+
+      problem.AddResidualBlock(cost_function,
+                               NULL,
+                               initial_parameters.data());
     }
 
     ceres::Solver::Summary summary;
