)]}'
{
  "commit": "b9f15a59361c609ffc4a328aea9be3d265b5da81",
  "tree": "881d1e7e545e1a9c3bf3701b8034169f73ce0135",
  "parents": [
    "b3fa009435acf476cd373052e62988f6437970b1"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat Aug 18 13:06:19 2012 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Aug 19 14:47:38 2012 -0700"
  },
  "message": "Add a dense Cholesky factorization based linear solver.\n\nFor problems with a small number of variables, but a large\nnumber of residuals, it is sometimes beneficial to use the\nCholesky factorization on the normal equations, instead of\nthe dense QR factorization of the Jacobian, even though it\nis numerically the better thing to do.\n\nChange-Id: I3506b006195754018deec964e6e190b7e8c9ac8f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cc8c6a28be5a1f43a55bb88b771655dc758793aa",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "5173e7926bc1ef8e6c7c92d79403add4193b4ee5",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "0dcb354e5b2f9461b64842d310f1a41819274b17",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "d6474cc5f6dbb0b6758fa61f54df3732917f36c9",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "ef0bd6847ec3f917f5e16b4a5fb7c29e33cf4647",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "a9140051faa9ce3e7ef35df724f75fd14404f68a",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f6bb99abf638d17ea8021cc1bf2cbe8f5775b234",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_normal_cholesky_solver.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "de47740583d09f01cfba374fbe4a4a10b3fa40d1",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_normal_cholesky_solver.h"
    },
    {
      "type": "modify",
      "old_id": "21c5fb595a658d503d99902bad368fd2eed61de0",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr_solver.cc",
      "new_id": "2b329ee0e9cf6f3af0d54afcd81cee72da8be279",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "2e0b2837e31b38ba7e34dfe6975b14edb0d146ae",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr_solver.h",
      "new_id": "dd683a8c4ea3af41584dffc7100e340c7269d4a1",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr_solver.h"
    },
    {
      "type": "modify",
      "old_id": "204198c315de7fb4af1154715c9034b8a81420be",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator.cc",
      "new_id": "a3ce6f04bd41ec2895ed24521174e044a2d70952",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator.cc"
    },
    {
      "type": "modify",
      "old_id": "97dbba450e89e42d697bac12d34174939dad8df4",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.cc",
      "new_id": "08c3ba110d058d340a6f8315092fd5e06eed2463",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "a6d6aacfbb2cc874a4cd45dcc54ab42613d97a76",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl_test.cc",
      "new_id": "76ece8dc799cf062e955206bc6fdcee85172ab11",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7cdff21841251b04a77fd3041a1fd641d8b7947b",
      "old_mode": 33188,
      "old_path": "internal/ceres/system_test.cc",
      "new_id": "3dfbc00744d3e72933cb22b3691f4152a8b25399",
      "new_mode": 33188,
      "new_path": "internal/ceres/system_test.cc"
    },
    {
      "type": "modify",
      "old_id": "18fefad2a4ce675de0d6a55a26e5d8480e1d94c7",
      "old_mode": 33188,
      "old_path": "internal/ceres/types.cc",
      "new_id": "2e950c51de776433b976d8bf7f57f9a3f62284a7",
      "new_mode": 33188,
      "new_path": "internal/ceres/types.cc"
    },
    {
      "type": "modify",
      "old_id": "f13c5a47f56d46f3a12be207ecad1fecb76a9bd8",
      "old_mode": 33188,
      "old_path": "internal/ceres/unsymmetric_linear_solver_test.cc",
      "new_id": "0b0d593cf0cb64ae8ebeb158d386ae7858941aa2",
      "new_mode": 33188,
      "new_path": "internal/ceres/unsymmetric_linear_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d107ec4dc0aa051c2dfd92b4f6c70b30a869ee02",
      "old_mode": 33188,
      "old_path": "jni/Android.mk",
      "new_id": "dcd247e661a85f95b5a419e7fba71fa9cff6af8a",
      "new_mode": 33188,
      "new_path": "jni/Android.mk"
    }
  ]
}
