)]}'
{
  "commit": "fdeb5772cc5eeebca4d776d220d80cc91b6d0f74",
  "tree": "ab712e1ceee0e3c0c35a1c4b5cd9fa4ceb9d2de7",
  "parents": [
    "da3e0563cc12e08e7b3e0fbf11d9cc8cfe9658aa"
  ],
  "author": {
    "name": "Keir Mierle",
    "email": "mierle@gmail.com",
    "time": "Wed May 09 07:38:07 2012 -0700"
  },
  "committer": {
    "name": "Keir Mierle",
    "email": "mierle@gmail.com",
    "time": "Wed May 09 12:53:00 2012 -0700"
  },
  "message": "Support varying numbers of residuals in autodiff.\n\nThis commit modifies the only function in autodiff that takes a\ntemplated number of outputs (i.e. residuals) and makes that\ntemplate parameter a normal parameter. With that change, it\nis a trivial matter to support a dynamic number of residuals.\n\nThe API for dynamic residuals is to pass a fake number of\nresiduals as the second template argument to\nAutoDiffCostFunction, and to pass the real number of\nparameters as a second constructor argument.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e51115fc6ec7a5e45a6160769be66b7b474d832",
      "old_mode": 33188,
      "old_path": "include/ceres/autodiff_cost_function.h",
      "new_id": "da9ee2c7993e7b5b4816838d0aca32368ec3fdd1",
      "new_mode": 33188,
      "new_path": "include/ceres/autodiff_cost_function.h"
    },
    {
      "type": "modify",
      "old_id": "0dc0d4fb1da719dec93d9b94c0c3cc4967420fe8",
      "old_mode": 33188,
      "old_path": "include/ceres/internal/autodiff.h",
      "new_id": "4f5081f8f66327318289155a8179d1ac657291d5",
      "new_mode": 33188,
      "new_path": "include/ceres/internal/autodiff.h"
    },
    {
      "type": "modify",
      "old_id": "968285b8f1e05ad45b2b8eff025425f2e6ea5913",
      "old_mode": 33188,
      "old_path": "include/ceres/sized_cost_function.h",
      "new_id": "2894a9fba5c0607a279eb89416640635333e1f1f",
      "new_mode": 33188,
      "new_path": "include/ceres/sized_cost_function.h"
    },
    {
      "type": "modify",
      "old_id": "433baa89e7e440a8e1295c7d8cb18d1449f04559",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "a30c79029ace88033244c0516632db9aec183db7",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "e9f0c5e32307857d27c8f0afd7ecc379dcce0188",
      "old_mode": 33188,
      "old_path": "internal/ceres/autodiff_test.cc",
      "new_id": "86861eebd25aa63e5bddf002afa42a10a835f8fa",
      "new_mode": 33188,
      "new_path": "internal/ceres/autodiff_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1533884b9b26fdba4344789e1284e0335e600178",
      "old_mode": 33188,
      "old_path": "internal/ceres/local_parameterization_test.cc",
      "new_id": "26a57c16890658f1c89ae2a052c59b9bd5074611",
      "new_mode": 33188,
      "new_path": "internal/ceres/local_parameterization_test.cc"
    }
  ]
}
