)]}'
{
  "commit": "02706c190699c90740ef3cf1afe50070d5fa2a56",
  "tree": "53e5fe621a4f0df87a765f0d67c840565b32f777",
  "parents": [
    "f956615ef1a593415977dcf51254d04e33f5f104"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun May 12 22:07:55 2013 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat May 18 23:33:02 2013 -0700"
  },
  "message": "Sparse covariance estimation.\n\nAdd a Covariance object to the API.\n\nGiven a Problem object and a set of parameter block pairs the\nCovariance object computes a sparse covariance matrix corresponding\nto those block pairs and provides random access to them.\n\nConstant parameter blocks and parameter blocks with local parameterizations\nare correctly handled.\n\nSparse and dense implementations are provided. With the dense implementation\nrank deficient Jacobians can also be handled.\n\nParts of the code are threaded using OpenMP if available.\n\nChange-Id: I5b49583b3d79579df3e0f334c22567acb23ed4ad\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e9bb9fdb3b9c6166120797ebae6b4cff2f26888",
      "new_mode": 33188,
      "new_path": "include/ceres/covariance.h"
    },
    {
      "type": "modify",
      "old_id": "33394ce0e17688df89860fdc64a33f63eca7ee51",
      "old_mode": 33188,
      "old_path": "include/ceres/problem.h",
      "new_id": "663616ddb3b8ac00a92bb8fb6e8ebfdc40f4b317",
      "new_mode": 33188,
      "new_path": "include/ceres/problem.h"
    },
    {
      "type": "modify",
      "old_id": "392d0586e9c89cf47e031edb57ca28ef20de3cd9",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "df67f6873dd8e52c16845753ab5740bb0d5f2c4d",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cb52eed938c7a641e9592ce5b180211969837ea",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f73ffd8e0c2a899fad3ab596de517dec23ed720",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "596c73fad4244753f61dceac13567f6ffc038bdc",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_impl.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b74efdaec606599137120b7fbfc2197e614129df",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b483932b2c1951a1bb0fba96dfcdf0f6bded9106",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem.cc",
      "new_id": "403e96a3ade8b48e51a5b923f9b37675bdacd6fd",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem.cc"
    },
    {
      "type": "modify",
      "old_id": "34c378575388afe7f8a33d7112473773d92f7be5",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.cc",
      "new_id": "89e939faaf27f8a60c7b98b9c88bdd73ebd1b7ea",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "2609389645ae3c14b8beb16b0ff2b1741834141d",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.h",
      "new_id": "ace27f56bb140697c3087fb73220615ba97aa5d5",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.h"
    }
  ]
}
