)]}'
{
  "commit": "c8202e6926e47f3696b83c2ae11bbd863f48d1a8",
  "tree": "ff1256caf75f43159be3c44b31448b4404b446bd",
  "parents": [
    "621b79b972ddf88a6ecc23788953c5151f00a5c5"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Wed Jun 28 21:16:39 2017 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Wed Jul 05 15:40:58 2017 -0700"
  },
  "message": "Get rid of redundant function evaluations in LineSearchMinimizer\n\n1. Replace LineSearch::Summary::optimal_step_size with\n   LineSearch:Summary::optimal_point which is a FunctionSample.\n2. Add the actual vector position and vector gradient of the\n   point in the FunctionSample\n3. Use the above two to get rid of an extraneous function evalation\n   in LineSearchMinimizer.\n\nRuntime performance is almost 2x improved as a result.\n\nThanks to @svenpilz for reporting this.\n\nhttps://github.com/ceres-solver/ceres-solver/issues/296\n\nChange-Id: Iebf2db7acecb2c95c9b1683b73cdc5faab78b02e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "01f3136776b40e82e5113d74922a99ae0df05e5b",
      "old_mode": 33188,
      "old_path": "internal/ceres/function_sample.cc",
      "new_id": "2fd3dbdf7c51955dbfc52f4ff85827c43fca9084",
      "new_mode": 33188,
      "new_path": "internal/ceres/function_sample.cc"
    },
    {
      "type": "modify",
      "old_id": "e4356c68dd56ce2059989d06f77df8c281109434",
      "old_mode": 33188,
      "old_path": "internal/ceres/function_sample.h",
      "new_id": "df79aef944f515fa08f3a1858fc3ca6b741868e6",
      "new_mode": 33188,
      "new_path": "internal/ceres/function_sample.h"
    },
    {
      "type": "modify",
      "old_id": "3d946dc782e2142f038f8232cf6b9244ec6b8cb7",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search.cc",
      "new_id": "bf7c3d4347c0ece4eb91ff74ea7ca8255b13441d",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search.cc"
    },
    {
      "type": "modify",
      "old_id": "b3f03b4877cf4aa13b263e571349e0d4d72b6bee",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search.h",
      "new_id": "6e39a65e8827400ca2a7fa2dab84d5d56d058240",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search.h"
    },
    {
      "type": "modify",
      "old_id": "9516ba28cc219a215732d6857a0305c02beeca78",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search_minimizer.cc",
      "new_id": "cc2e3c378be9c5c4557d7524afdbc08c9318dacb",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search_minimizer.cc"
    },
    {
      "type": "modify",
      "old_id": "d809906ab544930087df1aa6018e3b24ef1d7b67",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_minimizer.cc",
      "new_id": "3a779c63b26489bbebb5a64290c10c4eae08d0f4",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_minimizer.cc"
    }
  ]
}
