)]}'
{
  "commit": "0859fe8a57620b6dcc592741127963de1d463bbc",
  "tree": "dc563544452820faf7afa396d60c920f2cb8bc56",
  "parents": [
    "aaae5c5f62d112a5eb37610d9aa92cf426ae6890"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Apr 09 00:45:12 2017 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Apr 25 10:08:45 2017 -0700"
  },
  "message": "Integrate InvertPSDMatrix into the SchurEliminator.\n\nSchurEliminator::Init now takes a bool that tells it whether\nit can assume that the diagonal blocks it is inverting can\nbe assumed to be full rank or not.\n\nThis information is then passed onto InvertPSDMatrix.\n\nChange-Id: I26037b6233f2aad5584fed245f631c3959928afe\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e586ea14e7d7fbbe1ba0a23163e067b101c15fe8",
      "old_mode": 33188,
      "old_path": "internal/ceres/implicit_schur_complement_test.cc",
      "new_id": "21401f70dfe1f87ae0195a2474e7f5e0cc366cd6",
      "new_mode": 33188,
      "new_path": "internal/ceres/implicit_schur_complement_test.cc"
    },
    {
      "type": "modify",
      "old_id": "65449832c4c9462d27a1b755038df2a12e30377c",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.cc",
      "new_id": "81e0d46c1894cfd4d4b71a175402a6219450c343",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "761b58adc7f71c072dbe7a2b521a782220843508",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator.h",
      "new_id": "a5462288dd33808779cf0582a224fdff52767632",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator.h"
    },
    {
      "type": "modify",
      "old_id": "f2535880f15bec0899c36870999d0de2337e6a6b",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "7ee419e72acd06588de68c13138f974a6be3dd9b",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "85ecd8f4c1803a6188e8fab71e8e58657acc7ffb",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_test.cc",
      "new_id": "f07d102e5bad44e7e0623c5bbab53cbb343fe4e9",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3e6cc90f63c38985c8f64f984b8062d97c209b61",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.cc",
      "new_id": "c3f43a9e792972c26a01a4b730b99bd2cd74b435",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "b0000cdb1fdf0e3f062e46014075da9c53df7886",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "429626af3d0a2eed663ef9a409b30515feb6db7a",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    }
  ]
}
