)]}'
{
  "commit": "1e13ccd477067cf984e4659c444497706935cda7",
  "tree": "fdb2f15bc96c85a32e000412e48cd64ead7a67c8",
  "parents": [
    "258951beeb81ad4d3dee1e09cfdcb0b8335db1bc"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat Oct 10 09:55:50 2026 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu Oct 22 15:32:59 2026 -0700"
  },
  "message": "Inline Jet operators and implement compound assignments in-place\n\n- Implement Jet compound assignment operators (+\u003d, -\u003d, *\u003d, /\u003d) in-place\n  instead of constructing temporary Jets (*this \u003d *this + y). Scalar +\u003d\n  and -\u003d now only update the scalar part .a without touching .v.\n- Initialize .a via the member initializer list in Jet constructors.\n- Add EIGEN_STRONG_INLINE across Jet constructors, compound assignments,\n  arithmetic operators, and mathematical functions.\n\nBenchmark (Apple M1 Pro, kAutoDiff, kResidualsAndJacobians):\n----------------------------------------------------------------------\nBenchmark                                     Before    After   Change\n----------------------------------------------------------------------\nSnavelyReprojectionError                     78.4 ns  73.2 ns    -6.6%\nColmapFullOpenCVReprojectionError            86.2 ns  78.5 ns    -8.9%\nColmapSampsonError                           86.2 ns  79.6 ns    -7.7%\nPoseGraph3dError                              139 ns   132 ns    -5.0%\n----------------------------------------------------------------------\n\nChange-Id: I184ceebad76cbb0eddc42be6368872a9e5543b6f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "180e5abe693e601b3987d69671785d93d6dacd2e",
      "old_mode": 33188,
      "old_path": "include/ceres/jet.h",
      "new_id": "c5261485e4b50053460aa420cbe391c9f4b3699f",
      "new_mode": 33188,
      "new_path": "include/ceres/jet.h"
    }
  ]
}
