)]}'
{
  "commit": "7a3c43b847a63a2c45d3c58c84081b0a6867f582",
  "tree": "ef2e427daf88c697171e4e580b31b8b77b02a36b",
  "parents": [
    "d28b3c86d36088aabc2331b8bab8dc15fb4f0eaa"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Jun 05 23:10:59 2012 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Wed Jun 06 22:02:17 2012 -0700"
  },
  "message": "Block oriented fill reducing orderings.\n\nBy virtue of the modeling layer in Ceres being block oriented,\nall the matrices used by Ceres are also block oriented.\nWhen doing sparse direct factorization of these matrices, the\nfill-reducing ordering algorithms can either be run on the\nblock or the scalar form of these matrices. Running it on the\nblock form exposes more of the super-nodal structure of the\nmatrix to the Cholesky factorization routines. This leads to\nsubstantial gains in factorization performance.\n\nThis changelist adds support for approximate minimium degree\norderings to be computed on the block structure of the\nSchur complement matrix. This affects, SchurComplementSolver\nand VisibilityBasedPreconditioner and SparseNormalCholesky\n when using SuiteSparse.\n\nA bool, use_block_amd has been added to Solver::Options and\nbundle_adjuster.cc has been updated to allow testing with it.\n\nWhen combined with a multithreaded Schur elimination, speed ups\ncan be seen quite uniformly across the board. For some problems\nthis can be dramatic, reducing the factorization time from 70\nseconds down to 17 seconds.\n\nChange-Id: I15ebb0afcbc85ada032ec8d179ee3a2f7c8d3e46\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "718fde9aa5a2213a8509308f5deac96c3db7e2ad",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "1216a82e57c8d104cb39054490970da276774ce8",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "ed4c9b85c6537a1f1429332f13bf15bb082d62fb",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "12351ab78cf270fd42157cbbf82b46a886204c6a",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "2a0a6af138f5857dc6c3d4bd0e7720d14f8e3573",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "432346fced9c61665380ca6d25dac60c2e289068",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "aa883b7d3538ef053ec22beb40f19c80dc4006f7",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_jacobian_writer.cc",
      "new_id": "912c484544175301b8eea019e1733489d469ceb6",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_jacobian_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "c44f1db8d612ef5dfbbeba89967192a4acca7d5f",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_sparse_matrix.h",
      "new_id": "7fb460a0e62b3178fbc4dad826941f9a7d9a6ed8",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_sparse_matrix.h"
    },
    {
      "type": "modify",
      "old_id": "853abcbf287ff4ac7539f798da0516d3744eacde",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.h",
      "new_id": "31f88740b9fe0b4b18aa0912d2ab2592d07ffc5e",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.h"
    },
    {
      "type": "modify",
      "old_id": "b30d6ed166a0c02c7dfb2907c56717b6bea07a3d",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.cc",
      "new_id": "5679a099c41976f3d3e36632c2477cfdab437b19",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "0a25ce1fabeba6dd005d6a7372a44ec6391400c2",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.h",
      "new_id": "a8f0852b76d230f8bdd0b9d9ee9ed6d5b5c1825a",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.h"
    },
    {
      "type": "modify",
      "old_id": "4eb3d1f72923f2a68d6af145ab22c261f12cdc77",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl.cc",
      "new_id": "fde58117f5dd432641131a5975ee940e281ee0ec",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "5a082de1932ef8c687d26a0c11f2afc72de9e71f",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver.cc",
      "new_id": "4191f3c8c5e7a31e5f3dddff20427bb29e01dc8f",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "e38f39b7fdbaafcadfdafcfd779844511926924b",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver.h",
      "new_id": "6366f8671c472daae8b6ffa6ef122d53817f6a75",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver.h"
    },
    {
      "type": "modify",
      "old_id": "1cf6a7496a784d4f268ea2a58a73defed3cb504e",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.cc",
      "new_id": "c02d30567abd2f9bd6afd5efeb58b3a500da9779",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.cc"
    },
    {
      "type": "modify",
      "old_id": "091e67a69a9b2b185f4e9bbc0e32e4c584938230",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.h",
      "new_id": "eb691c0c0ed338b74b7c5cd265031713e186d88d",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9211788c20b93209a89ef51aa4fadcc4381b37d3",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a7ee23e042f7fb2621814a6acc6a87fdf1d32cde",
      "old_mode": 33188,
      "old_path": "internal/ceres/unsymmetric_linear_solver_test.cc",
      "new_id": "35cec80a14241cf36981676226f42a97662e3b28",
      "new_mode": 33188,
      "new_path": "internal/ceres/unsymmetric_linear_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a930595440dad9925e29486e8802f22f1e731e0a",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "5a01006218d26b5e8e62d833e1bc5cf412e1d1b9",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    }
  ]
}
