)]}'
{
  "commit": "a1458f334843d5e193c8f9b017f963e3c9f9b26f",
  "tree": "8880a67817048491a8091c5cf7e97f1cf21218ba",
  "parents": [
    "ffae101c755d283919d6c15f1336cbc8fb724ac3"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Mar 29 22:01:29 2018 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Fri Mar 30 12:03:28 2018 -0700"
  },
  "message": "More C++11ification.\n\n1. Replace HashMap and HashSet with std::unordered_map and\n   std::unordered_set respectively.\n2. Extract the pair hasher into a struct pair_hash.\n3. Delete collections_port.h\n4. Convert explicit iterator based loops to auto based\n   loops where sensible.\n\nChange-Id: Ib88bcd13a7463d18435639d3b771abaa52080efb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c78dc41e46d828e524b3ae57a22785d97bc510a6",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "54e5e3a980d0cbbf9a44239d6e0a4a4aa1299a43",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "76b853c58820738d750b231de21cd8818f643e98",
      "old_mode": 33188,
      "old_path": "cmake/config.h.in",
      "new_id": "d0316515946b18ac3c0282f535da18ebac8dd4c2",
      "new_mode": 33188,
      "new_path": "cmake/config.h.in"
    },
    {
      "type": "modify",
      "old_id": "07ffc9d4a0d0818f0a0cb851aca45157a87a097d",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix.h",
      "new_id": "2a8340b14d6175d56b234ab17f4d581d4478f8b0",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix.h"
    },
    {
      "type": "modify",
      "old_id": "5432ec1064a17fe4dd56852881d7c7202fc33546",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_sparse_matrix.cc",
      "new_id": "540a8b913bc1080ca022a94ae89fd05b75e5c4ce",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_sparse_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "2b3c7fdabae6266acfbb359f4db609dd0eea3a55",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_sparse_matrix.h",
      "new_id": "e79667b621d845fd7ab1d13226fe7280c5db80cd",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_sparse_matrix.h"
    },
    {
      "type": "modify",
      "old_id": "e4d82d0171f2ec8619cf09fced8006fcd271e192",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_sparse_matrix_test.cc",
      "new_id": "688b09dc1d5e7b6f4107a56d57be121e14b3a0d0",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_sparse_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b3e9c2211b53b5920cee5f62724f3fbb70b58727",
      "old_mode": 33188,
      "old_path": "internal/ceres/canonical_views_clustering.cc",
      "new_id": "ca8dff5896773ed6f937c8e69bff6c83a7fb23c8",
      "new_mode": 33188,
      "new_path": "internal/ceres/canonical_views_clustering.cc"
    },
    {
      "type": "modify",
      "old_id": "0847f484403a879a22fe85670e1603904a5166dd",
      "old_mode": 33188,
      "old_path": "internal/ceres/canonical_views_clustering.h",
      "new_id": "651482746c5de0cb24db24ebdee813754df58981",
      "new_mode": 33188,
      "new_path": "internal/ceres/canonical_views_clustering.h"
    },
    {
      "type": "modify",
      "old_id": "0c15fc797eb0f3231438b087ce481b56f57fc920",
      "old_mode": 33188,
      "old_path": "internal/ceres/canonical_views_clustering_test.cc",
      "new_id": "a8db293528b92fb7dfb9862ac01a1054415078cb",
      "new_mode": 33188,
      "new_path": "internal/ceres/canonical_views_clustering_test.cc"
    },
    {
      "type": "delete",
      "old_id": "e699a661b8bced4667faaa5e1f7f8979352e7b97",
      "old_mode": 33188,
      "old_path": "internal/ceres/collections_port.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "a334ddeaf508206e6a0293c312b444672678f1d5",
      "old_mode": 33188,
      "old_path": "internal/ceres/coordinate_descent_minimizer.cc",
      "new_id": "e5569d496ebef1b9ce0afe2520a458a1dfb9d184",
      "new_mode": 33188,
      "new_path": "internal/ceres/coordinate_descent_minimizer.cc"
    },
    {
      "type": "modify",
      "old_id": "c52866bc1c140e1866f3453b490a42adac078969",
      "old_mode": 33188,
      "old_path": "internal/ceres/covariance_impl.cc",
      "new_id": "484c94ffaf79ed96279dc5b1b10eeca885995db0",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "92a7626619b4d32d0c2f3ea84cb2fa2f16605b73",
      "old_mode": 33188,
      "old_path": "internal/ceres/covariance_test.cc",
      "new_id": "96c962a03a8a9820233b289d7554c0804f0f464e",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b96b67265cb08da5ffdef439272828a1b27ce50e",
      "old_mode": 33188,
      "old_path": "internal/ceres/graph.h",
      "new_id": "25bb141952baf4379ce54afc2565e652c4011308",
      "new_mode": 33188,
      "new_path": "internal/ceres/graph.h"
    },
    {
      "type": "modify",
      "old_id": "d1d3f52cd22ded0c5b6dc0319127932caf7ab924",
      "old_mode": 33188,
      "old_path": "internal/ceres/graph_algorithms.h",
      "new_id": "08837cf91d0f5d87d23926e1847aee161dcf8be9",
      "new_mode": 33188,
      "new_path": "internal/ceres/graph_algorithms.h"
    },
    {
      "type": "modify",
      "old_id": "10714881193e425a72c84ee2132abb07a5dd44a7",
      "old_mode": 33188,
      "old_path": "internal/ceres/graph_algorithms_test.cc",
      "new_id": "160ece153b7f0a437a9e8b66d076f8197ba233ce",
      "new_mode": 33188,
      "new_path": "internal/ceres/graph_algorithms_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e9d4e1cf536b103ce86f5b1f094863ab8d5f23de",
      "old_mode": 33188,
      "old_path": "internal/ceres/graph_test.cc",
      "new_id": "0907f8694bdf23ad0c70295f665d41da1c897899",
      "new_mode": 33188,
      "new_path": "internal/ceres/graph_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1c6c9925f1c45b12799fbe15b03cf4feafe75123",
      "old_mode": 33188,
      "old_path": "internal/ceres/low_rank_inverse_hessian.cc",
      "new_id": "f3953c46006bfb981bbc8b5d392f751749833ff5",
      "new_mode": 33188,
      "new_path": "internal/ceres/low_rank_inverse_hessian.cc"
    },
    {
      "type": "modify",
      "old_id": "4510686a3835422e514eda7e60fc94f7f15bf153",
      "old_mode": 33188,
      "old_path": "internal/ceres/ordered_groups_test.cc",
      "new_id": "8cf43246117c775c566665c6071980eb3001b372",
      "new_mode": 33188,
      "new_path": "internal/ceres/ordered_groups_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7fb32cfd9498f884777a9ef884316a6e3d0c4455",
      "new_mode": 33188,
      "new_path": "internal/ceres/pair_hash.h"
    },
    {
      "type": "modify",
      "old_id": "8e21553c6685e8b4ed3cc4eee5eb83fb1b350e20",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block.h",
      "new_id": "a41d9d18864d7637e6c1b3cd2b749c39adcdffa0",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block.h"
    },
    {
      "type": "modify",
      "old_id": "efba339977c0f19637ce7311f52de7809fb004c2",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block_ordering.cc",
      "new_id": "649ce14279b84c3083a224c22f3900b2ac1daada",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block_ordering.cc"
    },
    {
      "type": "modify",
      "old_id": "c98cdb51050ebba6f12ff735698c69acbe36499d",
      "old_mode": 33188,
      "old_path": "internal/ceres/parameter_block_ordering_test.cc",
      "new_id": "41babffdfc7f9b16339e1d80a0772bfb299c6d42",
      "new_mode": 33188,
      "new_path": "internal/ceres/parameter_block_ordering_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3ed0efda8e9776e0b38a9e6e7a10d2a9d9b29028",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.cc",
      "new_id": "1f3c55ba017de2edd69802c59bcdfd879d836d96",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "03e61d2a7cbfe4330494fff0f55ba4d927c0d0ed",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.h",
      "new_id": "4c24e3b487b65ed4328d47d172883ebb7a6e719e",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.h"
    },
    {
      "type": "modify",
      "old_id": "8e97f0721131345c327babb621992d81bdade873",
      "old_mode": 33188,
      "old_path": "internal/ceres/program.cc",
      "new_id": "f6cd138888d1e0e7a490a804a09a06d80ac54c27",
      "new_mode": 33188,
      "new_path": "internal/ceres/program.cc"
    },
    {
      "type": "modify",
      "old_id": "a7c37107591e9d3eb4ddb9d0902738d2620126c6",
      "old_mode": 33188,
      "old_path": "internal/ceres/reorder_program.cc",
      "new_id": "94a35bdab0f72e4ce40a5f30f9bdf2ad11bf6c84",
      "new_mode": 33188,
      "new_path": "internal/ceres/reorder_program.cc"
    },
    {
      "type": "modify",
      "old_id": "d7f6fe9714269f9a6c26e9d304059316af758f46",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.cc",
      "new_id": "13e6463fef748ddb56078f55d47d12475e6607da",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "5398f3ff35d8f764036ce9c64e2e9c203c9adb6f",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.h",
      "new_id": "fb7753bdacbbc42540aa21775dcbac543ccfa24e",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "9e9342a6ea8321db788a50847e5512c412000a12",
      "old_mode": 33188,
      "old_path": "internal/ceres/single_linkage_clustering.cc",
      "new_id": "2d3213a034808f4edc61e7e62ee4459f6f3a93fe",
      "new_mode": 33188,
      "new_path": "internal/ceres/single_linkage_clustering.cc"
    },
    {
      "type": "modify",
      "old_id": "8d1f02bcd461d21b2c2fd34d47c2e04c44f6a37e",
      "old_mode": 33188,
      "old_path": "internal/ceres/single_linkage_clustering.h",
      "new_id": "374125be83ae49b1c6c566c6d2488ae124ea3445",
      "new_mode": 33188,
      "new_path": "internal/ceres/single_linkage_clustering.h"
    },
    {
      "type": "modify",
      "old_id": "ca1a661fad0983dd5833726d20f2624e1a7331e5",
      "old_mode": 33188,
      "old_path": "internal/ceres/single_linkage_clustering_test.cc",
      "new_id": "281c281a2776fa6c6d34d30240b6d253086f789e",
      "new_mode": 33188,
      "new_path": "internal/ceres/single_linkage_clustering_test.cc"
    },
    {
      "type": "modify",
      "old_id": "cb962a6fb03e2353aa9ae734666ca16d4d0766c0",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility.cc",
      "new_id": "a446b6b89d60137f1f1197c99c5cfe25e72289ab",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility.cc"
    },
    {
      "type": "modify",
      "old_id": "24563aef0b3bbc36e73cb9605cdb683e602a1f32",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "31d2cc31b4aa084191590c429128ad4bc1cd14f4",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "40ce2c719e5dd56a1ac5f9efe9cb637c254469e9",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.h",
      "new_id": "1c831d0a699c820161ba6b4eb4bc5a2c2ce1c5db",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "d2f13bce3e5ecf3476534d9dbb04a2574e26939c",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner_test.cc",
      "new_id": "2227116c1853aca09cd826aec3ba50b03932d61e",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner_test.cc"
    }
  ]
}
