)]}'
{
  "commit": "f973e107d233420f197a855aabd644e237055fd7",
  "tree": "7f4ac8e375477544c3bcb398c786c27e93f8cbda",
  "parents": [
    "81f413b7205eeaa30cfe72dadf3bcb8812f5a11c"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Fri Apr 06 08:39:16 2018 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Apr 10 11:01:38 2018 -0700"
  },
  "message": "Enable mixed precision solves.\n\n1. Add Solver::Options::use_mixed_precision_solves,\n   and Solver::Options::max_num_refinement_iterations.\n2. Make SparseCholesky::Create return a unique_ptr.\n3. SparseCholesky::Create now takes LinearSolver::Options\n   as an argument.\n4. IterativeRefiner\u0027s constructor does not require num_cols\n   as an argument.\n5. SparseNormalCholeskySolver now uses a separate rhs vector.\n\nThis basic implementation results in a 10% reduction in solver time\nand 30% reduction in linear solver memory usage.\n\nChange-Id: I6830f32cae2febf082d2733262eb2c9f0482b0ea\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "319e3858d9375410c69cc80407dc30ea75d269fc",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "5619c522c737da914e722ac1318b3fcb544734ae",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "592d32950e4769cd277644841cea4429f20f2498",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "9fc9ec5ff02bbdd4126069b429ace876890402f3",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "41dbdff596b9214c443fc606cd1ae6570d1e3017",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_sparse_matrix.cc",
      "new_id": "8b57956820119d29743901c8c552afc879d18251",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_sparse_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "11ff9430e57871f86bef2e9dcb1ab9d196dc2260",
      "old_mode": 33188,
      "old_path": "internal/ceres/cxsparse.cc",
      "new_id": "5a0287732061bd703e48c15747b2c1b0ba7315df",
      "new_mode": 33188,
      "new_path": "internal/ceres/cxsparse.cc"
    },
    {
      "type": "modify",
      "old_id": "1ad79f9e1b58b5ebc4b2805537ab1f0dba2ece97",
      "old_mode": 33188,
      "old_path": "internal/ceres/cxsparse.h",
      "new_id": "1789afdcd90f1264dd425ee13c040c6aa3825b08",
      "new_mode": 33188,
      "new_path": "internal/ceres/cxsparse.h"
    },
    {
      "type": "modify",
      "old_id": "8ca1d1774cdc3d29c42dc7c3c9eec80f5e4d4303",
      "old_mode": 33188,
      "old_path": "internal/ceres/eigensparse.cc",
      "new_id": "425cd8bd05420021b06acd62b7998a9b4a0ed98b",
      "new_mode": 33188,
      "new_path": "internal/ceres/eigensparse.cc"
    },
    {
      "type": "modify",
      "old_id": "ce8ef34c1a2902826341e43bb3d905b8bae11f26",
      "old_mode": 33188,
      "old_path": "internal/ceres/eigensparse.h",
      "new_id": "2e6c6f01abb1e22c57af03015595cf5fc14da1b2",
      "new_mode": 33188,
      "new_path": "internal/ceres/eigensparse.h"
    },
    {
      "type": "modify",
      "old_id": "fff343d83552aee11168dd486b967ed34fdf8a96",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_refiner.cc",
      "new_id": "b73c0b0c75a89c8289a223b95236b7c377361f3f",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_refiner.cc"
    },
    {
      "type": "modify",
      "old_id": "d1efb5c67b43f3d25606176a8e4f6381a08b8f57",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_refiner.h",
      "new_id": "9021e819e1888200a14592185a24342449d6c58c",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_refiner.h"
    },
    {
      "type": "modify",
      "old_id": "a3bcbf166a5d7370118a5ff0a788cbb8bc507388",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_refiner_test.cc",
      "new_id": "0c9ef6964951c42f5abb9f7ac26490d0807c4860",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_refiner_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a7c61bcfaf3f64c7cb7134f61b08808113a3a50d",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.h",
      "new_id": "51897fc5e9199331046428285490bb4efde5218c",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.h"
    },
    {
      "type": "modify",
      "old_id": "7934e365aad8a507e75ff2e71b6ba18ef3803c4e",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.cc",
      "new_id": "e051b98421c1e60a60d56aa706c54bee6d1e956c",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "3c4e97fbb06ed52e7fb6dc7bb2090b8253f2d9a1",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky.cc",
      "new_id": "ef6d762e4feb9d4fe363e0b50ac934c05e55c07c",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky.cc"
    },
    {
      "type": "modify",
      "old_id": "c0e3e8644d55a8dfbe2dc2a9f5f86c7638178b6f",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky.h",
      "new_id": "bbe42370505c5aece4783a4e0a514e50b691cb09",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky.h"
    },
    {
      "type": "modify",
      "old_id": "f0cd729e29f9ee18f6779bb0952673679256e9d5",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky_test.cc",
      "new_id": "1c79bc9994cc632298b4dc0c4ea334c10233fd54",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky_test.cc"
    },
    {
      "type": "modify",
      "old_id": "057287057d786b49d891920c672dc753f3eea842",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver.cc",
      "new_id": "0f2e589d041e700b5a77d7a52c4cc50d01677466",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "537a2c9362d26f439f26d3ea32654b3c3231ae75",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver.h",
      "new_id": "59c7c0b6c0cc5364dd068d7f2b0a51a39b13bc0a",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver.h"
    },
    {
      "type": "modify",
      "old_id": "c7f5ef6e461a917360658b87291183c38e5cf4c9",
      "old_mode": 33188,
      "old_path": "internal/ceres/subset_preconditioner.cc",
      "new_id": "de6e9fa08e0b9b90464f924cc03cc129769bd7d0",
      "new_mode": 33188,
      "new_path": "internal/ceres/subset_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "cc07a01f03f4f6dcd8f3a3f656eba249bb299cd5",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.cc",
      "new_id": "f10f57ea015e3f298fc17e2b77b8bf4fc9126e03",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.cc"
    },
    {
      "type": "modify",
      "old_id": "91cd24b76d0af5d00d6e60b04d964da34c8fc4c3",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.h",
      "new_id": "6fef0fda29f17104f90437b34dcbcd26fe634137",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.h"
    },
    {
      "type": "modify",
      "old_id": "96f597cda1202623fa43dc2ceb49a4816c73d527",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_preprocessor.cc",
      "new_id": "cca2cf73a4334931a9e389b257cedeaf1c9ec47e",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_preprocessor.cc"
    },
    {
      "type": "modify",
      "old_id": "36247b7084cd41b51ee0fa3ffa26ea217a197336",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "7cd9bd428fccbed94a7bbcac70c17d60894fc3cd",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    }
  ]
}
