)]}'
{
  "commit": "4ad91490827f2ebebcc70d17e63ef653bf06fd0d",
  "tree": "936da43227402467cbee54455ab41edbc76b5cd0",
  "parents": [
    "8f7be1036b853addc33224d97b92412b5a1281b6"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Wed Sep 24 23:54:18 2014 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Sep 29 08:40:03 2014 -0700"
  },
  "message": "Simplify the Block Jacobi and Schur Jacobi preconditioners.\n\n1. Extend the implementation of BlockRandomAccessDiagonalMatrix\nby adding Invert and RightMultiply methods.\n\n2. Simplify the implementation of the Schur Jacobi preconditioner\nusing these new methods.\n\n3. Replace the custom storage used inside Block Jacobi preconditioner\nwith BlockRandomAccessDiagonalMatrix and simplify its implementation\ntoo.\n\nChange-Id: I9d4888b35f0f228c08244abbdda5298b3ce9c466\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e4747ea543e624143b37bb2d0d8d8eeec63d1d0e",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "97d097ca1efbd969014d79137d0b86fd44695afa",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "19b749bfc39b9e5802318c2718b46fd8a5e2a66a",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_jacobi_preconditioner.cc",
      "new_id": "ea49f077e37b706367520446dd287ed0b2fe54d5",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "3505a01248b431048b204fa66d5503c804946d4f",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_jacobi_preconditioner.h",
      "new_id": "857929709250c447503fd78b57115a2a74d43717",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57c0909bb261808795074c89e1ca29339be02c89",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d8bf4ef0cb51b4df9cfba74bca8100e462b994bd",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix.cc",
      "new_id": "b7ff33184cb61213b6c5acabfa990ffe9dd57221",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "6b3cff2338f26e6a56fb80282167431af006830f",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix.h",
      "new_id": "ea9967817db0e89735a1e9f426779759201abfc7",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix.h"
    },
    {
      "type": "modify",
      "old_id": "e19268bef2141240803fe95f241547df3c863937",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix_test.cc",
      "new_id": "aa2d664e688199531ea351cc11726742f76f7b9e",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6dc9e89d3ccd91d010e0742b8a10c30c6d626b05",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.cc",
      "new_id": "cbdb7086102560c084f8b21c4f47bfe95d7f37c3",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "aecb015108370874926de22906b49c2d8efdfa06",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.h",
      "new_id": "8b528e250752b9e2b0359f614a9826cf07114498",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.h"
    }
  ]
}
