)]}'
{
  "commit": "1fdc520f7b17ee834ae0199c54ba75091021ac97",
  "tree": "95ff5bfe7dc4f3b13a63f6eccdd3f43b23f783a7",
  "parents": [
    "2d2c90a4900c7e0f0b9a28abdc57ec9d673d3d01"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat May 12 07:29:10 2012 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat May 12 07:29:10 2012 -0700"
  },
  "message": "Refactor the array validation routines into their own file, as they are used by\nmore than just the residual block evaluation routines now.\nCheck the step computed by the linear solver for finiteness, and terminate early\nif it is not. This will prevent bugs where the solver continues to run after\nencountering an nan.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e6dcbd929b9a7883fb80654f11e920159aff2f19",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "f7caa6c7c0916e7021ba6f43f3633b2dc4b5fa35",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aab0c21edf1158fb279db56acf8861d7beacaa8a",
      "new_mode": 33188,
      "new_path": "internal/ceres/array_utils.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99cc8d8ebbf2aa49f0fa3011857e35458976ad0c",
      "new_mode": 33188,
      "new_path": "internal/ceres/array_utils.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c19a44ab0e1410492b93d59ae72ba4b2bbec9956",
      "new_mode": 33188,
      "new_path": "internal/ceres/array_utils_test.cc"
    },
    {
      "type": "modify",
      "old_id": "4ada7944f88fe2020cab7e88de74421b7f8d21a2",
      "old_mode": 33188,
      "old_path": "internal/ceres/levenberg_marquardt.cc",
      "new_id": "8b3d9dae7c6d2779911b3f97b6de701f92607eee",
      "new_mode": 33188,
      "new_path": "internal/ceres/levenberg_marquardt.cc"
    },
    {
      "type": "modify",
      "old_id": "4bac1a85828e69beff56615cb0a102324f315a17",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block.h",
      "new_id": "cedb30c2d701d17f96e2b980725e6601df6947cb",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block.h"
    },
    {
      "type": "modify",
      "old_id": "ed3499b175af6c448064b3f877a4757cf58c8e14",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block_utils.cc",
      "new_id": "395f46911401ad359d38662a36099ef94eb3aded",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "228867cc60c733199f4b681829d6f20d08cc789a",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block_utils.h",
      "new_id": "7051c2112fd2123713ba04bec683c3a470b1332b",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block_utils.h"
    },
    {
      "type": "modify",
      "old_id": "33a017e87a679c75bf033fa00e43abc7e0274d48",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block_utils_test.cc",
      "new_id": "db9ad6d06b58c13fa54229f2cfbaa0c74b67c5a8",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block_utils_test.cc"
    }
  ]
}
