)]}'
{
  "commit": "f4d0164607d7bcacf02627e7eaa2e6c2f82affdb",
  "tree": "fa7bbecb527f6da586b0f5581b0c55f98f34cc1f",
  "parents": [
    "0b5df70e33e7c9d64b3d9b90e21d1d1edd96e4a8"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Nov 26 12:55:58 2012 -0800"
  },
  "committer": {
    "name": "Gerrit Code Review",
    "email": "noreply-gerritcodereview@google.com",
    "time": "Wed Nov 28 16:18:01 2012 -0800"
  },
  "message": "Add a line search based minimizer.\n\n1. Add a line search based minimization loop.\n2. Currently this loop supports steepest descent and three\n   kinds of non-linear conjugate gradient algorithms.\n3. Update SolverImpl to talk to LineSearchMinimizer.\n4. Update IterationCallback to carry information about\n   line search.\n5. Update LineSearch to take the initial point as input,\n   saving on one function evaluation.\n6. Updates to the external API.\n\nChange-Id: I901a0e89fc948451ab34c743e70f3dec57c9405e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "57cf0a6440188576ce3e2c5464859eef2123b1ef",
      "old_mode": 33188,
      "old_path": "include/ceres/iteration_callback.h",
      "new_id": "0dc4c96b4419ccc81ab46f840f57cfbb053b6dc3",
      "new_mode": 33188,
      "new_path": "include/ceres/iteration_callback.h"
    },
    {
      "type": "modify",
      "old_id": "62fb0876070f758f2875e2300d621b2c8bbef610",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "8aa91ee8ff5474424f9c1e70741311afca8e0c49",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "888e9b085fc285c0e10c22cddc458849451e8def",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "60e076a123e35f5fbde5709dd0131a6fa1eba42f",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "f48189f99482e03944b117f7cc3f0a372e68f110",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "9f5767c5e99ce53978e2d2d10ab5aa1201c08b2e",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "fbb75a0673b17bda88399f6267e7c18478b6135b",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search.cc",
      "new_id": "0ab9a8299b20ddce19ae04604edf8a1bcc8fbd09",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search.cc"
    },
    {
      "type": "modify",
      "old_id": "bc433291554fcc51e64d0fa085a09b0a8a85df9f",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search.h",
      "new_id": "fccf63b598aefee94759d55ef50142f06970e62c",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a36edbfc10b5f470c7bb9bf64536f6ffa3f212d",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search_minimizer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a9556fd67998fc917fae796a0d1dfd6733a44d99",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search_minimizer.h"
    },
    {
      "type": "modify",
      "old_id": "22c10f0117148e18b10e33779e6b9d79ef5b0dc2",
      "old_mode": 33188,
      "old_path": "internal/ceres/minimizer.h",
      "new_id": "3d2bdeec1e46abf4792d5db811ca078293c75b2e",
      "new_mode": 33188,
      "new_path": "internal/ceres/minimizer.h"
    },
    {
      "type": "modify",
      "old_id": "3b88471f6ef022d1d53c12b8abe223c2c5e3136e",
      "old_mode": 33188,
      "old_path": "internal/ceres/polynomial.cc",
      "new_id": "2134d6e06faba8a5efec590d1f75eff53091721e",
      "new_mode": 33188,
      "new_path": "internal/ceres/polynomial.cc"
    },
    {
      "type": "modify",
      "old_id": "64e0f8e40dbfc1c4f8581ef17ddcceb5da996eb5",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl.cc",
      "new_id": "4e0f1330b9d0ef4165d13db32ba569febff74e5f",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "09141aedc530e39408b7feec638bf4d0cda21472",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl.h",
      "new_id": "92c37fb107291760e82a03085c4ae5d4ebeac211",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl.h"
    },
    {
      "type": "modify",
      "old_id": "0e1e6b97713a0797cde30ebd390a899dfc90e270",
      "old_mode": 33188,
      "old_path": "jni/Android.mk",
      "new_id": "349a9c11715c4ad364c3a448dcf4ca08d7499521",
      "new_mode": 33188,
      "new_path": "jni/Android.mk"
    }
  ]
}
