)]}'
{
  "commit": "5d53d1ee3839d74cbc759785eceef9e225107dfb",
  "tree": "e57a4fe518e5f18c45640019c32f20ee66a8a6e4",
  "parents": [
    "9aa52c6ff74358d1b91542221e0545bb61bdedcc"
  ],
  "author": {
    "name": "Dmitriy Korchemkin",
    "email": "dmitriy.korchemkin@gmail.com",
    "time": "Wed Nov 02 16:06:48 2022 +0300"
  },
  "committer": {
    "name": "Dmitriy Korchemkin",
    "email": "dmitriy.korchemkin@gmail.com",
    "time": "Sat Nov 12 18:58:06 2022 +0300"
  },
  "message": "Parallel for with iteration costs and left product\n\nParallel for with user-supplied [cumulative] iteration costs allows to\nget performance improvements on problems with significantly different\ntime requirements per parallel loop iteration.\n\nOne of those problems is left multiplication with block-sparse matrix.\nUsing number of non-zero values per column block, we partition column\nblocks into contiguous sets with approximately equal number of\noperations to be performed.\n\nChange-Id: I4a862a10a586cdfbec22e8168a3423537039abc2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "053b3c081cae8d7945eb615d3ce5b2dfa364ad40",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_sparse_matrix.cc",
      "new_id": "f0dc11af45e8f3f38795fb37c163b29a6fd7f516",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_sparse_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "b4abdc7d6a4a07cbc2eb02283acdd2baf3962715",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_sparse_matrix.h",
      "new_id": "72b1d689de48b117144640493a7474e4b1f05268",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_sparse_matrix.h"
    },
    {
      "type": "modify",
      "old_id": "cfed0419926b4bcf6f16f8b749b8f89ac6e081ad",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_sparse_matrix_test.cc",
      "new_id": "6533a803b4dba66a20cad309f49bbac0a90441a6",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_sparse_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e1c571d683d58d7cdc2bb9d5d54b6616c9967590",
      "old_mode": 33188,
      "old_path": "internal/ceres/cgnr_solver.cc",
      "new_id": "524356af7b8033a90738d8bf72083606f4106854",
      "new_mode": 33188,
      "new_path": "internal/ceres/cgnr_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "b18f563d213052c2e2aed44fd1a9a843aecac6fb",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluation_benchmark.cc",
      "new_id": "56b4f19abcc87584625354635a3ad136ca3e5580",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluation_benchmark.cc"
    },
    {
      "type": "modify",
      "old_id": "234c7db1f832f235c57d3024810733c93546b9c0",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for.h",
      "new_id": "107d19ccca64169807dccd1d57527b0d11e0a3de",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for.h"
    },
    {
      "type": "modify",
      "old_id": "451d80e5346793118006cfce57f6c046eecd5d06",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for_test.cc",
      "new_id": "b74165edf83de2ea4934fe8f89ac195c44a61b40",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for_test.cc"
    }
  ]
}
