)]}'
{
  "commit": "81219fff785bc37abaab6d8642c0f2940798af8f",
  "tree": "6b8d4effae4bcd44cd708e6b234da79f625e992b",
  "parents": [
    "857c18ace09ab8becaf3406b917f9cd13921d2bf"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Apr 05 14:21:12 2015 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Apr 05 22:50:41 2015 -0700"
  },
  "message": "Allow using Eigen\u0027s LDLT factorization instead of LLT factorization\n\nIt seems that Eigen\u0027s LLT factorization is broken on ARM.\nThis patch enables the use of LDLT factorization instead of LLT\nfactorization. The switch is controlled at compile time using a\npreprocessor define - CERES_USE_EIGEN_LDLT.\n\nBy default we continue to use LLT factorization though.\n\nTo make the switching easier without introducing the Cholesky factorization\nbased inversion and linear system solve routines have been abstracted into\ntwo new functions.\n\nAndroid.mk has been updated to enable the LDLT factorization, but\nthe cmake file has not been updated as I will leave it to Alex\u0027s\ncapable hands to do proper detection of ARM as a target platform.\n\nChange-Id: Iffe3abd2ce894de2a388b454df3da909b482d5e5\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aea79216ff42838bd01f714ef70d38c9ca0e0b20",
      "old_mode": 33188,
      "old_path": "cmake/config.h.in",
      "new_id": "41d629ee475aec7234c06bab955a670098a9a592",
      "new_mode": 33188,
      "new_path": "cmake/config.h.in"
    },
    {
      "type": "modify",
      "old_id": "f7543818ab668c8674b856148a511a1a8e9469c9",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "962d231bb504dd8bed9a30af74ba3f62f1718c04",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "052690d18be71de71b66f706df68ed157d4ef6b2",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix.cc",
      "new_id": "afa10def4d4632822a3ddf8cd7ce1873f5d305ac",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "8fa3798c3abccdf7ac8c46011ea1a9642ab51ff7",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_random_access_diagonal_matrix_test.cc",
      "new_id": "0bf9b79573bab5ed469a3b9bbeaa933ee580b13e",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_random_access_diagonal_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b13cf3fc9f61f5c5cddae3d728862101cacd2b9a",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_normal_cholesky_solver.cc",
      "new_id": "8682ae778113c3d10aaaa0ab3e65e21a30e7f2a3",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_normal_cholesky_solver.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b7f87f93fb194a0b23276f817b97e55fb320bda",
      "new_mode": 33188,
      "new_path": "internal/ceres/eigen_dense_cholesky.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79a091e23fbe37b2f102b4f73c5f6971982ad77b",
      "new_mode": 33188,
      "new_path": "internal/ceres/eigen_dense_cholesky.h"
    },
    {
      "type": "modify",
      "old_id": "d05f03817b7b714a2423f301e22c13b9799e9470",
      "old_mode": 33188,
      "old_path": "internal/ceres/implicit_schur_complement.cc",
      "new_id": "b943510cfd8062245e64d40fc7f47f2fec14c482",
      "new_mode": 33188,
      "new_path": "internal/ceres/implicit_schur_complement.cc"
    },
    {
      "type": "modify",
      "old_id": "e586ea14e7d7fbbe1ba0a23163e067b101c15fe8",
      "old_mode": 33188,
      "old_path": "internal/ceres/implicit_schur_complement_test.cc",
      "new_id": "9bec91f3e2304e331b81bc8b1d202e73b5ed470d",
      "new_mode": 33188,
      "new_path": "internal/ceres/implicit_schur_complement_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2491060dcdc542e41803ae9414b928e753838e1c",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.cc",
      "new_id": "6b1a4588969439be77a20da1562a1970a5be6baf",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "7e06806a59ba5ebc238755a1ceb41517d1091c4f",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "e736e4eb502cbf8bc922678039a583a84977d9dc",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "40bc904baa96706e1d1ce0127448a17a7f8be5e3",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_test.cc",
      "new_id": "8217e8c058ccc30942c3b2e4fb1cae5b8715b0c9",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d49ab4a2cf50f86e87e928618c7257b963631ca6",
      "old_mode": 33188,
      "old_path": "jni/Android.mk",
      "new_id": "2a9d3374be4be61f4e82b3815ede65ce0f4e90eb",
      "new_mode": 33188,
      "new_path": "jni/Android.mk"
    }
  ]
}
