)]}'
{
  "commit": "80a53eebfd28bfc032cedbf7852d5c56eb1d5af5",
  "tree": "776f1653378b904236266857fd3612f95619c295",
  "parents": [
    "f55780063620e7a3dcfe7e018d6488bf6a5b29da"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Jan 09 12:40:54 2014 -0800"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Jan 09 13:29:35 2014 -0800"
  },
  "message": "Faster LBFGS.\n\n1. Use column major storage for the various matrices used by\nLowRankInverseHessian. Since all the operations are on columns.\n\n2. Use a circular buffer to keep track of history of the LBFGS updates\nso that an update does not require copying the entire history. This\nmakes the updates O(1) rather than O(rank).\n\nThe implementation has been checked against the denoising code\nwhere it gives numerically identical results. The overhead of the\nLBFGS code is now near negligible as compared to the gradient evaluation.\n\nOn a sample problem\n\nbefore 1050ms after: 630ms\n\nChange-Id: I537ba506ac35fc4960b304c10d923a8dea2ae031\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9aeafecfb3600026e2335ccd652db66c0fc229e0",
      "old_mode": 33188,
      "old_path": "internal/ceres/low_rank_inverse_hessian.cc",
      "new_id": "4816e3c20f0636dec32ed7df9e30a40e557dd48e",
      "new_mode": 33188,
      "new_path": "internal/ceres/low_rank_inverse_hessian.cc"
    },
    {
      "type": "modify",
      "old_id": "7d293d0942210211d778d411f4b68b56701332af",
      "old_mode": 33188,
      "old_path": "internal/ceres/low_rank_inverse_hessian.h",
      "new_id": "19ab7606aa049dea0584c3b4686e7cbbbb737f94",
      "new_mode": 33188,
      "new_path": "internal/ceres/low_rank_inverse_hessian.h"
    }
  ]
}
