Remove bounds checks from Array1D and Array2D.

This has a measurable impact on interpolation performance.

Also remove an accidentally named enum with an anonymous enum.

Change-Id: Ied6a4b2b06bb27a7f004bd0e01353742e1f84034
diff --git a/include/ceres/cubic_interpolation.h b/include/ceres/cubic_interpolation.h
index 8b91f96..79f9c9b 100644
--- a/include/ceres/cubic_interpolation.h
+++ b/include/ceres/cubic_interpolation.h
@@ -462,10 +462,8 @@
   }
 
   void GetValue(const int n, double* f) const {
-    if (n < 0 || n > num_values_ - 1) {
-      LOG(FATAL) << "n =  " << n
-                 << " is not in the interval [0, " << num_values_ - 1 << "].";
-    }
+    DCHECK_GE(n, 0);
+    DCHECK_LT(n, num_values_);
 
     for (int i = 0; i < kDataDimension; ++i) {
       if (kInterleaved) {
@@ -507,7 +505,7 @@
           bool kRowMajor = true,
           bool kInterleaved = true>
 struct Array2D {
-  enum Foo { DATA_DIMENSION = kDataDimension };
+  enum { DATA_DIMENSION = kDataDimension };
 
   Array2D(const T* data, const int num_rows, const int num_cols)
       : data_(data), num_rows_(num_rows), num_cols_(num_cols) {
@@ -515,11 +513,10 @@
   }
 
   void GetValue(const int r, const int c, double* f) const {
-    if (r < 0 || r > num_rows_ - 1 || c < 0 || c > num_cols_ - 1) {
-      LOG(FATAL) << "(r, c) =  (" << r << ", " << c << ")"
-                 << " is not in the square defined by [0, 0] "
-                 << " and [" << num_rows_ - 1 << ", " << num_cols_ - 1 << "]";
-    }
+    DCHECK_GE(r, 0);
+    DCHECK_LT(r, num_rows_);
+    DCHECK_GE(c, 0);
+    DCHECK_LT(c, num_cols_);
 
     const int n = (kRowMajor) ? num_cols_ * r + c : num_rows_ * c + r;
     for (int i = 0; i < kDataDimension; ++i) {