Add ParameterBlock::ToString() to aid debugging.

Change-Id: Id3f5cb27b855c536dd65a986f345bd8eb2799dfa
diff --git a/internal/ceres/parameter_block.h b/internal/ceres/parameter_block.h
index cedb30c..f20805c 100644
--- a/internal/ceres/parameter_block.h
+++ b/internal/ceres/parameter_block.h
@@ -32,13 +32,15 @@
 #define CERES_INTERNAL_PARAMETER_BLOCK_H_
 
 #include <cstdlib>
-#include <glog/logging.h>
+#include <string>
 #include "ceres/array_utils.h"
 #include "ceres/integral_types.h"
 #include "ceres/internal/eigen.h"
 #include "ceres/internal/port.h"
 #include "ceres/internal/scoped_ptr.h"
 #include "ceres/local_parameterization.h"
+#include "ceres/stringprintf.h"
+#include "glog/logging.h"
 
 namespace ceres {
 namespace internal {
@@ -172,6 +174,19 @@
     return local_parameterization_->Plus(x, delta, x_plus_delta);
   }
 
+  string ToString() const {
+    return StringPrintf("{ user_state=%p, state=%p, size=%d, "
+                        "constant=%d, index=%d, state_offset=%d, "
+                        "delta_offset=%d }",
+                        user_state_,
+                        state_,
+                        size_,
+                        is_constant_,
+                        index_,
+                        state_offset_,
+                        delta_offset_);
+  }
+
  private:
   void Init(double* user_state,
             int size,