)]}'
{
  "commit": "80fce72bfdc000c175776f567c9ab517113a6af2",
  "tree": "692f95ede3e9a2399c8e15543873600672f7871b",
  "parents": [
    "8f85014dcfe59c36f589a8db8e9aefc7f1418dbd"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat Aug 24 11:18:24 2024 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat Aug 24 21:12:54 2024 -0700"
  },
  "message": "Add mixed precision solves for SUITE_SPARSE\n\nStarting with SuiteSparse version 7.4.0 CHOLMOD has support for single\nprecision matrices. This allows us to have single precision and mixed\nprecision solves when using the SUITE_SPARSE backend.\n\nThis CL also fixes sparse_cholesky_test which was completely broken for\nsingle precision testing.\n\nSample performance on my Mac.\n/usr/bin/time -l ./bin/bundle_adjuster --input\u003d../../Downloads/problem-3068-310854-pre.txt\n\u003cSNIP\u003e\n\nCost:\nInitial                          9.099334e+07\nFinal                            4.161838e+06\nChange                           8.683150e+07\n\nMinimizer iterations                        6\nSuccessful steps                            4\nUnsuccessful steps                          2\n\nTime (in seconds):\nPreprocessor                         2.528222\n\n  Residual only evaluation           0.142804 (5)\n  Jacobian \u0026 residual evaluation     0.424014 (4)\n  Linear solver                     54.083396 (5)\nMinimizer                           54.895752\n\nPostprocessor                        0.024564\nTotal                               57.448539\n\nTermination:                   NO_CONVERGENCE (Maximum number of iterations reached. Number of iterations: 5.)\n\n       59.04 real       341.24 user         5.49 sys\n          5776375808  maximum resident set size\n\u003cSNIP\u003e\n        616329634071  instructions retired\n        929475980510  cycles elapsed\n          5375034560  peak memory footprint\n\n/usr/bin/time -l ./bin/bundle_adjuster --input\u003d../../Downloads/problem-3068-310854-pre.txt  -mixed_precision_solves\n\u003cSNIP\u003e\n\nCost:\nInitial                          9.099334e+07\nFinal                            4.148930e+06\nChange                           8.684441e+07\n\nMinimizer iterations                        6\nSuccessful steps                            4\nUnsuccessful steps                          2\n\nTime (in seconds):\nPreprocessor                         2.580217\n\n  Residual only evaluation           0.144098 (5)\n  Jacobian \u0026 residual evaluation     0.396723 (4)\n  Linear solver                     23.636074 (5)\nMinimizer                           24.427163\n\nPostprocessor                        0.023790\nTotal                               27.031170\n\nTermination:                   NO_CONVERGENCE (Maximum number of iterations reached. Number of iterations: 5.)\n\n       28.58 real       128.53 user         2.37 sys\n          4818386944  maximum resident set size\n\u003cSNIP\u003e\n        395186936091  instructions retired\n        368802808856  cycles elapsed\n          4327029824  peak memory footprint\n\nChange-Id: I1f137b0dd12da8da7f9ced338dd8f20f4bbdf99d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "529c99b770bf2e2e7922ecb44c767e7d4f31e8dc",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "f266e9ca77c1ec8e863e3e3dc165790f7520c424",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "51db4a034d411786e689f790e6f808516df1a73d",
      "old_mode": 33188,
      "old_path": "cmake/config.h.in",
      "new_id": "94120aeb2e01a1b5b721437b87ca81c0111182ea",
      "new_mode": 33188,
      "new_path": "cmake/config.h.in"
    },
    {
      "type": "modify",
      "old_id": "184b94b72837e60a8b2852f7ffaad3b204adfe5c",
      "old_mode": 33188,
      "old_path": "docs/source/nnls_solving.rst",
      "new_id": "bc0e16a57bb8ee108611831c4d45696f8eeca81a",
      "new_mode": 33188,
      "new_path": "docs/source/nnls_solving.rst"
    },
    {
      "type": "modify",
      "old_id": "68438a10b334e20c34408651d3fb915df61a7705",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "b31880fc137cffb363743ec318dfc789ade81c25",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "533184309696c59dae3bd89856a6a9d08d290777",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "ed30c7d569642047c7181bd2751ffd7bde77a55b",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "cea5c4acba01322c425c10e6956cb93a78bc8ff8",
      "old_mode": 33188,
      "old_path": "internal/ceres/float_suitesparse.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b9d298ea9c22cca8afba5e864d7ba2df17c7d344",
      "old_mode": 33188,
      "old_path": "internal/ceres/float_suitesparse.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "bb82e6deb85c89fa0b93b94bf925aeaa4c7840b6",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver.cc",
      "new_id": "010ad2602eff6f97e04ce25a649a18dd7bb25c5c",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver.cc"
    },
    {
      "type": "modify",
      "old_id": "0a83a347b79d7c6ebf15e7c41e7d96a28948f620",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_test.cc",
      "new_id": "f6fd9c7acd4a4e68f7ffb20852f32352b9ab80b0",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f1b2c88540fa5ca45e07107b1fd1b4a3ea63c471",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky.cc",
      "new_id": "23396a9f607ada43d7ac11a718af9c091a1bd669",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky.cc"
    },
    {
      "type": "modify",
      "old_id": "2b8e852afbae289b2e137b63d6703611617c0641",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky_test.cc",
      "new_id": "b2499ff8ce1de7d6195fc8537ed80e7d2962dc21",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky_test.cc"
    },
    {
      "type": "modify",
      "old_id": "eeb850ccf52eda18aa110a78183bc10430def2c8",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.cc",
      "new_id": "2cc9ff38f358863c6119308255c3719f9dee53e4",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.cc"
    },
    {
      "type": "modify",
      "old_id": "57d1d78d81c03f658fe1983ab2539cd9f4f8de8a",
      "old_mode": 33188,
      "old_path": "internal/ceres/suitesparse.h",
      "new_id": "11b136dbd8719fb259885ad318e6a4f2103e3d02",
      "new_mode": 33188,
      "new_path": "internal/ceres/suitesparse.h"
    }
  ]
}
