Minor corrections based on Jim Roseborough's comments

Change-Id: I4a8c7a454ddf038a3ed2567c101f9aee582044bf
diff --git a/include/ceres/types.h b/include/ceres/types.h
index 9798314..edf404a 100644
--- a/include/ceres/types.h
+++ b/include/ceres/types.h
@@ -165,7 +165,7 @@
   // functions. The generalization can be performed in a number of
   // different ways, resulting in a variety of search directions. The
   // precise choice of the non-linear conjugate gradient algorithm
-  // used is determined by NonlineConjuateGradientType.
+  // used is determined by NonlinerConjuateGradientType.
   NONLINEAR_CONJUGATE_GRADIENT,
 
   // A limited memory approximation to the inverse Hessian is
diff --git a/internal/ceres/line_search_minimizer.cc b/internal/ceres/line_search_minimizer.cc
index 3392194..636289f 100644
--- a/internal/ceres/line_search_minimizer.cc
+++ b/internal/ceres/line_search_minimizer.cc
@@ -63,7 +63,10 @@
 namespace internal {
 namespace {
 // Small constant for various floating point issues.
+// TODO(sameeragarwal): Change to a better name if this has only one
+// use.
 const double kEpsilon = 1e-12;
+
 bool Evaluate(Evaluator* evaluator,
               const Vector& x,
               LineSearchMinimizer::State* state) {
diff --git a/internal/ceres/polynomial.cc b/internal/ceres/polynomial.cc
index 2134d6e..3238b89 100644
--- a/internal/ceres/polynomial.cc
+++ b/internal/ceres/polynomial.cc
@@ -185,6 +185,14 @@
 Vector DifferentiatePolynomial(const Vector& polynomial) {
   const int degree = polynomial.rows() - 1;
   CHECK_GE(degree, 0);
+
+  // Degree zero polynomials are constants, and their derivative does
+  // not result in a smaller degree polynomial, just a degree zero
+  // polynomial with value zero.
+  if (degree == 0) {
+    return Eigen::VectorXd::Zero(1);
+  }
+
   Vector derivative(degree);
   for (int i = 0; i < degree; ++i) {
     derivative(i) = (degree - i) * polynomial(i);
diff --git a/internal/ceres/polynomial_test.cc b/internal/ceres/polynomial_test.cc
index f56352f..7c992fa 100644
--- a/internal/ceres/polynomial_test.cc
+++ b/internal/ceres/polynomial_test.cc
@@ -225,7 +225,8 @@
   Vector polynomial(1);
   polynomial(0) = 1.0;
   const Vector derivative = DifferentiatePolynomial(polynomial);
-  EXPECT_EQ(derivative.rows(), 0);
+  EXPECT_EQ(derivative.rows(), 1);
+  EXPECT_EQ(derivative(0), 0);
 }
 
 TEST(Polynomial, DifferentiateQuadraticPolynomial) {