)]}'
{
  "commit": "2b9a2d77c3112204a85c6ebd05239dc36e187af8",
  "tree": "7a8ea5f15a53353ceaa68c501c8243bca1bae6c3",
  "parents": [
    "ea4de24c2e30c5c2e48dac438866f10bd907979d"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Mar 23 11:24:32 2026 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat Mar 28 08:23:01 2026 -0700"
  },
  "message": "Modernize include/ceres headers to C++17 and Abseil conventions\n\n- include/ceres/autodiff_manifold.h: Replace manual zero-initialization loops with value-initialization ({}) in PlusJacobian and MinusJacobian.\n- include/ceres/dynamic_numeric_diff_cost_function.h: Replace std::vector with absl::FixedArray for temporary evaluation buffers and use std::copy_n instead of memcpy in Evaluate.\n- include/ceres/numeric_diff_cost_function.h: Replace memcpy with std::copy_n in Evaluate.\n\nChange-Id: I13b546458185d9fdd22b086094ca1072c57c40ed\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c3169f756ede7ddaac55410ae600f070e4f78be9",
      "old_mode": 33188,
      "old_path": "include/ceres/autodiff_manifold.h",
      "new_id": "9e049289929e7c3f14f8fe88a7feb1f8ad58208d",
      "new_mode": 33188,
      "new_path": "include/ceres/autodiff_manifold.h"
    },
    {
      "type": "modify",
      "old_id": "55b79136ab4e7ad8794f38dd0c92407f117f6509",
      "old_mode": 33188,
      "old_path": "include/ceres/dynamic_numeric_diff_cost_function.h",
      "new_id": "a25bd8fbfc5595eaebdd7ce069676de90a7e57da",
      "new_mode": 33188,
      "new_path": "include/ceres/dynamic_numeric_diff_cost_function.h"
    },
    {
      "type": "modify",
      "old_id": "89ddda7e59628aac4b49c73c64de8ac5dc59a6f9",
      "old_mode": 33188,
      "old_path": "include/ceres/numeric_diff_cost_function.h",
      "new_id": "5889b70db4d8236f05b807b85d45b0c1f46a5a55",
      "new_mode": 33188,
      "new_path": "include/ceres/numeric_diff_cost_function.h"
    }
  ]
}
