)]}'
{
  "commit": "2f1454faf2fe4ba77fc56fe250783117c09e26c3",
  "tree": "512c5a4d0b878e72a42ba20940d0f2870ea50214",
  "parents": [
    "85b7e9d3c1f8251b2aac5e87832cb53a42e8e7ab"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Jun 13 23:34:46 2013 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Jun 13 23:49:19 2013 -0700"
  },
  "message": "Add a templated TypedPreconditioner class.\n\nThis sets the stage of preconditioners that can utilize\ndifferent kinds of matrix layouts, just like the LinearSolver\nclass hierarchy.\n\nChange-Id: I3579cf344bcd2eeeecb1ae621cab02a3c9a0f920\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5525d4cccf7c8047d46176addf4a74e9be59e5e7",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_jacobi_preconditioner.cc",
      "new_id": "749e0b65ddc5b3615a25e7e7ff8b71f55ef6a58b",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "dc291bf8bcddab9a49a4a8f3772fb61248aab3f4",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_jacobi_preconditioner.h",
      "new_id": "3505a01248b431048b204fa66d5503c804946d4f",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "19e58fc959898624f976e4185912c37834c48364",
      "old_mode": 33188,
      "old_path": "internal/ceres/preconditioner.cc",
      "new_id": "505a47d3d619c46fa027dae05a213b6bcf80f4bb",
      "new_mode": 33188,
      "new_path": "internal/ceres/preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "720653666376bffe76370b3d79bdb7ac6adc1b25",
      "old_mode": 33188,
      "old_path": "internal/ceres/preconditioner.h",
      "new_id": "cb0a381f26c6f36668925a68a7236eb32cf6f8ad",
      "new_mode": 33188,
      "new_path": "internal/ceres/preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "780795b7be1712410c9e22aeead975201acd3bc0",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.cc",
      "new_id": "aa840c572d11ec6671b3abe938e6213ec0efec2b",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "b80a249de8e43e95033289cbdeb882a5e7c622f4",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.h",
      "new_id": "f6e7b0d37ef86a14f6221508bc70098b15e3511d",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "94266e5c5c78f7556f221829fdcd3a915a277db7",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "7af133905b3893cb9aad46c28196bbea1b8eb017",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "54a03e6b0c050b340126a7458633c42d3f49cbdd",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.h",
      "new_id": "c58b1a7a90a8f0a67a00672ef7b1ad547aa7d324",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.h"
    }
  ]
}
