)]}'
{
  "commit": "1cfec3c666fd71030f0c066fd0d2e4103ecf7cee",
  "tree": "9f64972dbb8371ae6ddd82c8ad0372d454b835f4",
  "parents": [
    "5dd76f9f00d24613210e361fed75c92a649b41ac"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Aug 18 15:46:02 2014 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Feb 23 14:52:59 2017 -0800"
  },
  "message": "Improvements to Schur template specializations\n\n1. Refactor the python code that generates the template specializations\n   to remove code duplication.\n2. Improved the logic for template specialization selection where\n   Eigen::Dynamic now serves as a wildcard.\n3. Added schur_templates.h/cc which allows querying the set of available\n   template specializations without instantiating a linear solver.\n4. Added Solver::Summary::schur_structre_given and\n   Solver::Summary::schur_structure_used and expose them in\n   Solver::Summary::FullReport for better performance debugging.\n5. Updated the templates with newer dates and some minor comments cleanup\n   which lead to the the template specializations to be re-generated.\n\nChange-Id: Iaf3c6f714353597899916c300465da01f151c3de\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac617a77a9bbea9b61081eaa6c6311b61e333523",
      "old_mode": 33188,
      "old_path": "docs/source/nnls_solving.rst",
      "new_id": "db87619dd72d5ca04646701e0907b6d9c0ea82b9",
      "new_mode": 33188,
      "new_path": "docs/source/nnls_solving.rst"
    },
    {
      "type": "modify",
      "old_id": "0d77d242dfed438aa162dd522df2255318c72bec",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "45a7c69fa7a1bfe67be0115010205af4fffafa07",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "bdcbdd1174627d2afe9e8e95565f30339e33b776",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "0f6c4be57e98b136826b884780d1c36a256df66b",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "rename",
      "old_id": "e89e7a48c983c7c14f18962fbad9ccd79ddd80e6",
      "old_mode": 33188,
      "old_path": "internal/ceres/generate_eliminator_specialization.py",
      "new_id": "cbfcb71c29777e9a41791b0578038402ed02e060",
      "new_mode": 33188,
      "new_path": "internal/ceres/generate_template_specializations.py",
      "score": 67
    },
    {
      "type": "modify",
      "old_id": "500115b989728eca076fe85b44f1db3cafc33c5c",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_2_2.cc",
      "new_id": "86ad17b4f7135bd424da6674c1e1fdc3e1a40c68",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_2_2.cc"
    },
    {
      "type": "modify",
      "old_id": "1384cb619e3c0bf7f19380c1f843f04cb06a1b83",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_2_3.cc",
      "new_id": "33018d573a408eed69f80f7e530089bf3f88b357",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_2_3.cc"
    },
    {
      "type": "modify",
      "old_id": "030035ec97bb23f36405bcb18f4db3cabe38b31d",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_2_4.cc",
      "new_id": "a429a546e3d068b3c3d50854f85efad2dda27952",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_2_4.cc"
    },
    {
      "type": "modify",
      "old_id": "c9501b5017067bcb620c257de755e516b91c9fce",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_2_d.cc",
      "new_id": "f6f03ea6dcc3b088ddeec086bdd20705e43feb81",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_2_d.cc"
    },
    {
      "type": "modify",
      "old_id": "c2639bff69e44d5730cc99d370b45835a4d02843",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_3_3.cc",
      "new_id": "0b73e1a2aa81403897fe7e9968a7f46b48283718",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_3_3.cc"
    },
    {
      "type": "modify",
      "old_id": "693e43959c1dc59569930c829ed348d14dcfc7f7",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_3_4.cc",
      "new_id": "bc4a86194eb891eb5289197b1dbeb497fa0fd811",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_3_4.cc"
    },
    {
      "type": "modify",
      "old_id": "7b9368ffefde080a0a2d3c3b5c416739dc0e8f39",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_3_6.cc",
      "new_id": "fe8f7dd37afab8d15e5a7aaf3a8738212790207b",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_3_6.cc"
    },
    {
      "type": "modify",
      "old_id": "e72c5f6937ae9e641437392484f32b8d7ac02f2f",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_3_9.cc",
      "new_id": "ac493fcd0c02fd5258a3dffec268f4028466e0c1",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_3_9.cc"
    },
    {
      "type": "modify",
      "old_id": "c1f410eb64c9d793fb5d7db5740d077162a48275",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_3_d.cc",
      "new_id": "e29efaf483289719687a112ac153097a28b2ddda",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_3_d.cc"
    },
    {
      "type": "modify",
      "old_id": "7292c333d5dd376475ab9eca0adca87910b894e4",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_4_3.cc",
      "new_id": "e61e0a31314df5ed31921925d94fe25d8b8befe1",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_4_3.cc"
    },
    {
      "type": "modify",
      "old_id": "891d65a8646aaaa7809630b6718c0e96397a4665",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_4_4.cc",
      "new_id": "2e1170da01f37572a735571d0aa9f16cec59d13c",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_4_4.cc"
    },
    {
      "type": "modify",
      "old_id": "395f6bd4c13a4a68be9c95339e08e40e0f83c950",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_4_8.cc",
      "new_id": "83015f1ecc5f404f07849a1b21c729e8d0b21e8d",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_4_8.cc"
    },
    {
      "type": "modify",
      "old_id": "88952b10e3421b8e10861f0bb00436ff45956070",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_4_9.cc",
      "new_id": "25671f913ddfeb5feef2664e9adb4903b88f727f",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_4_9.cc"
    },
    {
      "type": "modify",
      "old_id": "7733e1993ebdd15dd5e1f35fc3c6e5f018ab9423",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_4_d.cc",
      "new_id": "d259802bd5ac908fe59cbb75530467f813057fd7",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_4_d.cc"
    },
    {
      "type": "modify",
      "old_id": "117a0cdb8c1af9bb56903f28f3464bccd0f4dc6d",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_2_d_d.cc",
      "new_id": "c9567595acd3fae6ff9e9e21013cfd7d1661e60a",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_2_d_d.cc"
    },
    {
      "type": "modify",
      "old_id": "a620bb70dba1df3d599f65f4ba252a32a5cd0986",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_4_4_2.cc",
      "new_id": "f08049c965325d9834d01ea0d2a0bdada490d8cb",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_4_4_2.cc"
    },
    {
      "type": "modify",
      "old_id": "2978630832c2d744e7e9d8a543b5b1634f8b5d43",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_4_4_3.cc",
      "new_id": "9342612022f40d7dc3c5b319be5e76740879d1cf",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_4_4_3.cc"
    },
    {
      "type": "modify",
      "old_id": "bcd03b02e3aa38e5c3d74a5411edf4362648adec",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_4_4_4.cc",
      "new_id": "8b273fa0da027174c6398463809f9ceaf245dc7b",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_4_4_4.cc"
    },
    {
      "type": "modify",
      "old_id": "6b541ecf0d9a95ecf19e8d2d687f8ded639d39e6",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_4_4_d.cc",
      "new_id": "e8b45e49ecae41d14a78e0179f226254869020d9",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_4_4_d.cc"
    },
    {
      "type": "modify",
      "old_id": "85111e722c44f7cfca8668e29cc4e5403871ec10",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/partitioned_matrix_view_d_d_d.cc",
      "new_id": "434902cd0bc729fa6b6ca42f0e27d49ac075c4ee",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/partitioned_matrix_view_d_d_d.cc"
    },
    {
      "type": "modify",
      "old_id": "ac07a3f229ef0a4fc51a1e2946f2507c56c7e04a",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_2_2.cc",
      "new_id": "79fcf437981f0b4e31194b50c714f9a6950f3d0f",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_2_2.cc"
    },
    {
      "type": "modify",
      "old_id": "0ec09553f9ec73dfc960da0af7fadb372f5aa094",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_2_3.cc",
      "new_id": "edd7fb649b4e2c287b741ecbd7999cac809c83c7",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_2_3.cc"
    },
    {
      "type": "modify",
      "old_id": "74a42cc4a16ba1cb23d9332d4a343079929c5966",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_2_4.cc",
      "new_id": "692267dba4666b495156eb4ef1f04d0481084d91",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_2_4.cc"
    },
    {
      "type": "modify",
      "old_id": "5ce757fda5d6d4216a4d9f3e2363c834e9f8911a",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_2_d.cc",
      "new_id": "33d9c6de270ff489b835d4136ba22a7eb6642937",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_2_d.cc"
    },
    {
      "type": "modify",
      "old_id": "2e7ae28b4eaf42c14140c1ce10c510dc39eebb5e",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_3_3.cc",
      "new_id": "4a5e2fe30c06320ed3921947ba8d2bd5962069fa",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_3_3.cc"
    },
    {
      "type": "modify",
      "old_id": "443207070cf27f625eeb982563e11cd4fc96ac87",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_3_4.cc",
      "new_id": "7ee63d069aabe22ea51a8e2790d6c5ede58bb745",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_3_4.cc"
    },
    {
      "type": "modify",
      "old_id": "ac2f358b383b283ce7cabd7b9ba0d5a2ee0e29d7",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_3_6.cc",
      "new_id": "108760ef1f8c316ce211843fff8ec03b917b3bfc",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_3_6.cc"
    },
    {
      "type": "modify",
      "old_id": "930ab440fa5a4fbd27dc3b46688fd863024f38db",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_3_9.cc",
      "new_id": "4fea2fa441731aa0e885e04bd063a1e9b365abd1",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_3_9.cc"
    },
    {
      "type": "modify",
      "old_id": "486c53d36f404e244ab87e273a2b7714bcae7829",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_3_d.cc",
      "new_id": "0d13c99e7ca762bbb4e033def08f10f80d7fffb9",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_3_d.cc"
    },
    {
      "type": "modify",
      "old_id": "6f247a7b832b7b9296a9d739dc1cc53bf983ba86",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_4_3.cc",
      "new_id": "3827c653a63eea9e99fa1df4113f7a2fd16e0997",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_4_3.cc"
    },
    {
      "type": "modify",
      "old_id": "c44cd045263a0b65a1738f144d7839482e94e323",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_4_4.cc",
      "new_id": "47bdfab1f22a619c84de8637a46a9eb65b872d23",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_4_4.cc"
    },
    {
      "type": "modify",
      "old_id": "c9a0d5fc729b6ebbcf0f89f990f56bb20bf80292",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_4_8.cc",
      "new_id": "862c76a2a9c1a20d5c2285df07c71e3b1b09bf58",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_4_8.cc"
    },
    {
      "type": "modify",
      "old_id": "b0455b0bca0d1fbe0efad91e8af56ad743f63945",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_4_9.cc",
      "new_id": "5b5b7ccd415a8c7cd2fedb77d7364c64f499a26e",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_4_9.cc"
    },
    {
      "type": "modify",
      "old_id": "3234380f23ce0898f3c2501b56e6fadd41da33fb",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_4_d.cc",
      "new_id": "ce2d450b073bfac73c6e7b50bcb06e844471c63c",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_4_d.cc"
    },
    {
      "type": "modify",
      "old_id": "311f85569325f6df0a55433632429191a1fb5680",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_2_d_d.cc",
      "new_id": "9b02bd9db5ae620522a510825fb7e3dfd74df634",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_2_d_d.cc"
    },
    {
      "type": "modify",
      "old_id": "bc40bd55296c7ba1d3b0a768e0292257227dc460",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_4_4_2.cc",
      "new_id": "10f709d7577be1be19a54fbf3644396dee88567e",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_4_4_2.cc"
    },
    {
      "type": "modify",
      "old_id": "cca88c802b064179cfa5a9aa751e2457a1750b42",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_4_4_3.cc",
      "new_id": "bcbcc74551984176dc4733335f81e47d42a156b3",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_4_4_3.cc"
    },
    {
      "type": "modify",
      "old_id": "33c94a907b963984920a92c15bde40220b2ea7dd",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_4_4_4.cc",
      "new_id": "44ecc87debaf0a6cc371b52201b75fb175fa5d31",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_4_4_4.cc"
    },
    {
      "type": "modify",
      "old_id": "1a1866f93a80e419ca4708a11d9d3dbf28368ec9",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_4_4_d.cc",
      "new_id": "69c856304f07121c7653e28e03d788635e8018c4",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_4_4_d.cc"
    },
    {
      "type": "modify",
      "old_id": "6b18ef8c863d4451202ea83bafd3dce4778052c4",
      "old_mode": 33188,
      "old_path": "internal/ceres/generated/schur_eliminator_d_d_d.cc",
      "new_id": "4a8a9c609a97b2c7edc85a0814defcd645ddc0d5",
      "new_mode": 33188,
      "new_path": "internal/ceres/generated/schur_eliminator_d_d_d.cc"
    },
    {
      "type": "modify",
      "old_id": "8054964e039238e38821e45f09e41979eb72b25a",
      "old_mode": 33188,
      "old_path": "internal/ceres/partitioned_matrix_view.cc",
      "new_id": "210eff1ab3bf0ca445ea2e2d0c2638bb0decf24f",
      "new_mode": 33188,
      "new_path": "internal/ceres/partitioned_matrix_view.cc"
    },
    {
      "type": "rename",
      "old_id": "c4ac3cf23325461916f20447177f29160eef0c95",
      "old_mode": 33188,
      "old_path": "internal/ceres/generate_partitioned_matrix_view_specializations.py",
      "new_id": "f6108338bd0f63d983a6c92bc1bc60f48de9c3e8",
      "new_mode": 33188,
      "new_path": "internal/ceres/partitioned_matrix_view_template.py",
      "score": 67
    },
    {
      "type": "modify",
      "old_id": "ec0e2a020e5c620be6de9677efbc1cc84789e55c",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator.cc",
      "new_id": "0def9f0503522bff6c99303f5b0f4a12427e08cf",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator.cc"
    },
    {
      "type": "copy",
      "old_id": "e89e7a48c983c7c14f18962fbad9ccd79ddd80e6",
      "old_mode": 33188,
      "old_path": "internal/ceres/generate_eliminator_specialization.py",
      "new_id": "979ef254afc24c02786f05e159de6a3f5c46df1d",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_template.py",
      "score": 67
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60f4291283033076a3c891dafaeb85b0305174ec",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_templates.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "90aee0a1afc4ba9734d9cdc26f25c1e0a33c7a00",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_templates.h"
    },
    {
      "type": "modify",
      "old_id": "8411350986a0251a2ee1b81422f4f01b3e1fac58",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver.cc",
      "new_id": "8d9fc083cb427785a595075b55a9b05fee90822d",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver.cc"
    }
  ]
}
