)]}'
{
  "commit": "fa01519c474ace99017c444a73424f9fc7c83cc2",
  "tree": "1fa7ba7909909a9f1d618175e5602706d210fd48",
  "parents": [
    "d432f78389e08baa5f2717f225097f38d611e082"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Jun 11 14:21:42 2012 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Jun 11 22:16:02 2012 -0700"
  },
  "message": "Dogleg strategy and timing cleanups.\n\n1. A new dogleg trust region strategy.\n2. Consistent naming of all variables taking and reporting\n   time. Also all are doubles now.\n3. Enum to stringification routines.\n4. bundle_adjuster.cc accepts max solver time and trust_region_strategy.\n5. Time accounting is pushed into solver_impl.cc and there is now\n   postprocessing time accounted for explicitly.\n6. IterationCallback now has cumulative time.\n7. LoggingCallback logs per iteration and cumulative time.\n8. TrustRegionStrategy now allows for Invalid steps to be indicated\n   explicitly.\n9. Trust region minimizer actually terminates on max_solver_time.\n\nChange-Id: I7e3b82c8beebc17b6b355ea46ddd280754a2d8b2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1216a82e57c8d104cb39054490970da276774ce8",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "5e1b3a696f6f2467a4ad313a78fdd939836ea456",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "6d7720c8aadc538f00a6936e59780e0c834e7f55",
      "old_mode": 33188,
      "old_path": "include/ceres/iteration_callback.h",
      "new_id": "29157d380f25feccdbef536a636f1e5fe31c8b27",
      "new_mode": 33188,
      "new_path": "include/ceres/iteration_callback.h"
    },
    {
      "type": "modify",
      "old_id": "12351ab78cf270fd42157cbbf82b46a886204c6a",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "5ca15e982c3dbaac64199f8a9936d50f26cd4c48",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "705097f2bef42ecdfbb510e95a0bc443cb9f9a19",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "0dcb354e5b2f9461b64842d310f1a41819274b17",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "432346fced9c61665380ca6d25dac60c2e289068",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "076805fa816b9a0b5631bfa8c73cc111f9807558",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0950c0e24e2fd158f899c7772c553c90c02d9776",
      "new_mode": 33188,
      "new_path": "internal/ceres/dogleg_strategy.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "17eb0759f9dd4cff582d25182cad89afe1a00b0f",
      "new_mode": 33188,
      "new_path": "internal/ceres/dogleg_strategy.h"
    },
    {
      "type": "modify",
      "old_id": "54ff783350472808166ae624d18bff31123d32f5",
      "old_mode": 33188,
      "old_path": "internal/ceres/levenberg_marquardt_strategy.cc",
      "new_id": "81070e80b85616d4c98fedd597a67d8af828cd1f",
      "new_mode": 33188,
      "new_path": "internal/ceres/levenberg_marquardt_strategy.cc"
    },
    {
      "type": "modify",
      "old_id": "eeda2989846ddc70f3cacdad1d50873a1bb15f23",
      "old_mode": 33188,
      "old_path": "internal/ceres/minimizer.h",
      "new_id": "e15b165038fbf4e8cc5f011b7183e8943946b90f",
      "new_mode": 33188,
      "new_path": "internal/ceres/minimizer.h"
    },
    {
      "type": "modify",
      "old_id": "f5f5d91e6d5282fcd40c6fdf5e6c4b734647d712",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver.cc",
      "new_id": "901e5439717c392663b2afc55b5bf4af1171ad19",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver.cc"
    },
    {
      "type": "modify",
      "old_id": "fde58117f5dd432641131a5975ee940e281ee0ec",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl.cc",
      "new_id": "41b6d752d8e3242cc291f73ac747a00c8dca721b",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "6030f955311ef42d995d2fbd2ac94280299b664a",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_minimizer.cc",
      "new_id": "dd4a8a7e5e250a28278f3455c1bf78fedc0ad12d",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_minimizer.cc"
    },
    {
      "type": "modify",
      "old_id": "5c69bd4355a52ed428f36e8042a8fff6a70005ea",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_strategy.cc",
      "new_id": "2e058b27a85c1ba613a891de63e9bee4479b8741",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_strategy.cc"
    },
    {
      "type": "modify",
      "old_id": "2463d6463dc7d2295a4a262f0ace4059c178393e",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_strategy.h",
      "new_id": "b15a89560907e2fc6740475e56e88bcdb85cc120",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_strategy.h"
    },
    {
      "type": "modify",
      "old_id": "c6c4dea0de501312f5548ca0d7065308221a2823",
      "old_mode": 33188,
      "old_path": "internal/ceres/types.cc",
      "new_id": "18fefad2a4ce675de0d6a55a26e5d8480e1d94c7",
      "new_mode": 33188,
      "new_path": "internal/ceres/types.cc"
    }
  ]
}
