)]}'
{
  "commit": "9026d69d1ce1e0bcd21debd54a38246d85c7c6e4",
  "tree": "86871912b851158d4340f504a53bb6f2e80eb77c",
  "parents": [
    "a36693f83da7a3fd19dce473d060231d4cc97499"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Sep 22 17:20:14 2016 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Sep 22 20:33:53 2016 -0700"
  },
  "message": "Allow SubsetParameterization to hold all parameters constant\n\n1. SubsetParameterization can now be constructed such that all\nparameters are constant. This is required for it be used as part\nof a ProductParameterization to hold a part of parameter block\nconstant. For example, a parameter block consisting of a rotation\nas a quaternion and a translation vector can now have a local\nparameterization where the translation part is constant and the\nquaternion part has a QuaternionParameterization associated with it.\n\n2. The check for the tangent space of a parameterization being\npositive dimensional. We were not doing this check up till now\nand the user could accidentally create parameterizations like this\nand create a problem for themselves. This will ensure that even\nthough one can construct a SubsetParameterization where all\nparameters are constant, you cannot actually use it as a local\nparameterization for an entire parameter block. Which is how\nit was before, but the check was inside the SubsetParameterization\nconstructor.\n\n3. Added more tests and refactored existing tests to be more\ngranular.\n\nChange-Id: Ic0184a1f30e3bd8a416b02341781a9d98e855ff7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c1e0cda07c96b7a63568999e10dce06fc680b43f",
      "old_mode": 33188,
      "old_path": "internal/ceres/local_parameterization.cc",
      "new_id": "a6bf1f6ddccddaa2068afddef5d43a12d5c581c1",
      "new_mode": 33188,
      "new_path": "internal/ceres/local_parameterization.cc"
    },
    {
      "type": "modify",
      "old_id": "d861a95715248cc41f312e5bd97bd2f02c2c8795",
      "old_mode": 33188,
      "old_path": "internal/ceres/local_parameterization_test.cc",
      "new_id": "d3c11c532f192fa53761f1a2842f941a322cd44f",
      "new_mode": 33188,
      "new_path": "internal/ceres/local_parameterization_test.cc"
    },
    {
      "type": "modify",
      "old_id": "cb7140d9582e317a3cef1b81dfdb0fba0cd5e9f3",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block.h",
      "new_id": "8e21553c6685e8b4ed3cc4eee5eb83fb1b350e20",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block.h"
    },
    {
      "type": "modify",
      "old_id": "e1d3bb364353b7ff1cdd93f30371bbeb1b87063d",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block_test.cc",
      "new_id": "164bb4c4dcc9e6ec0d5e450ef1e83f141190fbbf",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block_test.cc"
    }
  ]
}
