)]}'
{
  "commit": "4bf3868beca9c17615f72ec03730cddb3676acaa",
  "tree": "a784decda9f5195ac60a8d21017c0efc8073adc1",
  "parents": [
    "1635ce726078f00264b89d7fb6e76fd1c2796e59"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Aug 09 15:24:45 2015 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Aug 20 23:34:26 2015 -0700"
  },
  "message": "Fix a bug in the Schur eliminator\n\nThe schur eliminator treats rows with e blocks and row with\nno e blocks separately. The template specialization logic only\napplies to the rows with e blocks.\n\nSo, in cases where the rows with e-blocks have a fixed size f-block\nbut the rows without e-blocks have f-blocks of varying sizes,\nDetectStructure will return a static f-block size, but we need to be\ncareful that we do not blindly use that static f-block size everywhere.\n\nThis patch fixes a bug where such care was not being taken, where\nit was assumed that the static f-block size could be assumed for all\nf-block sizes.\n\nA new test is added, which triggers an exception in debug mode. In\nrelease mode this error does not present itself, due to a peculiarity\nof the way Eigen works.\n\nThanks to Werner Trobin for reporting this bug.\n\nChange-Id: I8ae7aabf8eed8c3f9cf74b6c74d632ba44f82581\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6bb7bb4025095c5082e235ad85412e56aef80aed",
      "old_mode": 33188,
      "old_path": "internal/ceres/detect_structure.cc",
      "new_id": "a87f6ba681d017ea89c2438460b6c57fd01a6ef4",
      "new_mode": 33188,
      "new_path": "internal/ceres/detect_structure.cc"
    },
    {
      "type": "modify",
      "old_id": "fb8bbb426f1bdb2ffc351f24f79ee537e551d60f",
      "old_mode": 33188,
      "old_path": "internal/ceres/detect_structure.h",
      "new_id": "602581c846e101dba0b2018f25490626de694694",
      "new_mode": 33188,
      "new_path": "internal/ceres/detect_structure.h"
    },
    {
      "type": "modify",
      "old_id": "15da333c4606f594f0bf93beccc58ca9203c9a3b",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_least_squares_problems.cc",
      "new_id": "0a69375f7b5ca2434a255279394ff735358e9123",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_least_squares_problems.cc"
    },
    {
      "type": "modify",
      "old_id": "1dccc905289128c36d5b08ceb25638f154d9b50d",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_least_squares_problems.h",
      "new_id": "384efb59a2b00e52b4ddfbe9ca19a1f3202ac2f4",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_least_squares_problems.h"
    },
    {
      "type": "modify",
      "old_id": "44736130b5eafb7b31cbceb4ca11b8b336ef23b1",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver_test.cc",
      "new_id": "cf9b09b2de31f0a1d69216e2d55c84be8381fd51",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7e06806a59ba5ebc238755a1ceb41517d1091c4f",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "f2535880f15bec0899c36870999d0de2337e6a6b",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "40bc904baa96706e1d1ce0127448a17a7f8be5e3",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_test.cc",
      "new_id": "85ecd8f4c1803a6188e8fab71e8e58657acc7ffb",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_test.cc"
    }
  ]
}
