Add Program::ToString() to aid debugging.

Change-Id: I0ab37ed2fe0947ca87a152919d4e7dc9b56dedc6
diff --git a/internal/ceres/program.h b/internal/ceres/program.h
index 7ae7db9..5002b7e 100644
--- a/internal/ceres/program.h
+++ b/internal/ceres/program.h
@@ -31,6 +31,7 @@
 #ifndef CERES_INTERNAL_PROGRAM_H_
 #define CERES_INTERNAL_PROGRAM_H_
 
+#include <string>
 #include <vector>
 #include "ceres/internal/port.h"
 
@@ -110,6 +111,10 @@
   int MaxParametersPerResidualBlock() const;
   int MaxResidualsPerResidualBlock() const;
 
+  // A human-readable dump of the parameter blocks for debugging.
+  // TODO(keir): If necessary, also dump the residual blocks.
+  string ToString() const;
+
  private:
   // The Program does not own the ParameterBlock or ResidualBlock objects.
   vector<ParameterBlock*> parameter_blocks_;