)]}'
{
  "commit": "f408f89e8b024ed97b33c7226b0ce48efd42408f",
  "tree": "3fff1e7fc6c63777d7821c26feec5ee48e873b51",
  "parents": [
    "f217ccfb6946d8b8f1a9aff1061213f153f65f78"
  ],
  "author": {
    "name": "Mike Vitus",
    "email": "vitus@google.com",
    "time": "Thu Feb 22 10:28:39 2018 -0800"
  },
  "committer": {
    "name": "Mike Vitus",
    "email": "vitus@google.com",
    "time": "Mon Feb 26 10:37:53 2018 -0800"
  },
  "message": "Adds a Ceres Context structure.\n\nA Ceres Context holds common global state that can be re-used within\nCeres.  The Context current contains a thread pool if compiling with\nC++11 threading support.  Threads are expensive to create and destroy so\nit is good to maintain across multiple Ceres solves.\n\nTested by compiling with and without TBB support and ran unit tests. Ran\nbazel as well.\n\nChange-Id: I82f598dfae642aa0e81a6039dc174608a5e8dbfb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef5969aa1755af9d0b5fa7734e701ebfe099ba82",
      "old_mode": 33188,
      "old_path": "bazel/ceres.bzl",
      "new_id": "f0660f167c9fdb0d383d2d29326be416fb49eeb8",
      "new_mode": 33188,
      "new_path": "bazel/ceres.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63c0a16d173953a6f0c626dba4e9af4b3011ee72",
      "new_mode": 33188,
      "new_path": "include/ceres/context.h"
    },
    {
      "type": "modify",
      "old_id": "0538522a961c9fd49414956593bb719adeef36c3",
      "old_mode": 33188,
      "old_path": "include/ceres/covariance.h",
      "new_id": "685e9f09567e32a16435a718430e161a10dfa80e",
      "new_mode": 33188,
      "new_path": "include/ceres/covariance.h"
    },
    {
      "type": "modify",
      "old_id": "27ed4ef15dacf4a13f0ab254b2a74f564ee590cf",
      "old_mode": 33188,
      "old_path": "include/ceres/problem.h",
      "new_id": "e941fff8ea0d8fb3e67f13340e9d2a057c88b9a6",
      "new_mode": 33188,
      "new_path": "include/ceres/problem.h"
    },
    {
      "type": "modify",
      "old_id": "2ed3fc125a75bb27b010fc7018c1824cfbc6c079",
      "old_mode": 33188,
      "old_path": "include/ceres/solver.h",
      "new_id": "13f520b0c22d20c143bd78d324d4283c14a10da2",
      "new_mode": 33188,
      "new_path": "include/ceres/solver.h"
    },
    {
      "type": "modify",
      "old_id": "bc15bc121a99e17820823152b7ed8b04041083e0",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "c13e041c441aee544c4b652d9e14336660543e3c",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e2232013b4b2077c3b90b1f73b03738bd606742b",
      "new_mode": 33188,
      "new_path": "internal/ceres/context.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b9662f22b312936a9feae7d954f06aab9331420",
      "new_mode": 33188,
      "new_path": "internal/ceres/context_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8219ec26cc1cdc2cf7d378ee24f921d34ed0de4f",
      "new_mode": 33188,
      "new_path": "internal/ceres/context_impl.h"
    },
    {
      "type": "modify",
      "old_id": "884fbd2fff4b14803f73ac0b73478f673bfab2e9",
      "old_mode": 33188,
      "old_path": "internal/ceres/coordinate_descent_minimizer.cc",
      "new_id": "a334ddeaf508206e6a0293c312b444672678f1d5",
      "new_mode": 33188,
      "new_path": "internal/ceres/coordinate_descent_minimizer.cc"
    },
    {
      "type": "modify",
      "old_id": "25ea04ce622935cd7db18a880722c35e0f8c2199",
      "old_mode": 33188,
      "old_path": "internal/ceres/coordinate_descent_minimizer.h",
      "new_id": "0ee193f03d2a7287f67e197c0b1a893825d77d97",
      "new_mode": 33188,
      "new_path": "internal/ceres/coordinate_descent_minimizer.h"
    },
    {
      "type": "modify",
      "old_id": "f8c510c3d5d37681b99e19dd15a1a0262e01f150",
      "old_mode": 33188,
      "old_path": "internal/ceres/covariance_impl.cc",
      "new_id": "f7c7126d4bb7ed1944850844706d2634efdf833e",
      "new_mode": 33188,
      "new_path": "internal/ceres/covariance_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "48da2bd36a0366360255a8e73f5bf9a72c1d7a22",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_linear_solver_test.cc",
      "new_id": "f8b64f8221ad48778df839d969c0191e2469a22d",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_linear_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3fdf6a123b3640930c85c72ca68180832b7bc3ae",
      "old_mode": 33188,
      "old_path": "internal/ceres/dynamic_sparse_normal_cholesky_solver_test.cc",
      "new_id": "1e5d179cf0421052693e860f46ebabc83b734ee3",
      "new_mode": 33188,
      "new_path": "internal/ceres/dynamic_sparse_normal_cholesky_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6193ae8c9d9ae7fbaa32b1ffea311d8e4cac2d68",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator.cc",
      "new_id": "8387983553d80ff6b47db65ae5ff60ba7429788b",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator.cc"
    },
    {
      "type": "modify",
      "old_id": "2c79b5f2896c22617b61a548fd8c17b0b65d559c",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator.h",
      "new_id": "cbb7aa23c34574d09840308578a98f98c3d1199a",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator.h"
    },
    {
      "type": "modify",
      "old_id": "48dc78af63eaf5592db2af914de355e84a018ba7",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator_test.cc",
      "new_id": "7cec00a7f1d6e16f546972afa43c98c41cd2728e",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f2c733678911478cbc36e63ddcdefa9f43baca23",
      "old_mode": 33188,
      "old_path": "internal/ceres/gradient_checking_cost_function.cc",
      "new_id": "4632c1def68b72ba995b9325b7be3de7741fb05c",
      "new_mode": 33188,
      "new_path": "internal/ceres/gradient_checking_cost_function.cc"
    },
    {
      "type": "modify",
      "old_id": "21401f70dfe1f87ae0195a2474e7f5e0cc366cd6",
      "old_mode": 33188,
      "old_path": "internal/ceres/implicit_schur_complement_test.cc",
      "new_id": "4f54a1e8fdb5076a003e3275b668f0788352817d",
      "new_mode": 33188,
      "new_path": "internal/ceres/implicit_schur_complement_test.cc"
    },
    {
      "type": "modify",
      "old_id": "900e6693d967ba90c900b60b6835435b90d95bfd",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_schur_complement_solver.cc",
      "new_id": "7a1e7a63c8d35d00f321028c2f7dd776a44fa4c7",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "41cce4d8ecc92ed3d64af708274bf620d816977f",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_schur_complement_solver_test.cc",
      "new_id": "f5a545c5dde32ba72d7fc7d3d7d1bdccdfa03a1e",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_schur_complement_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "831f5e8d079d16f58cbf90e32e554e67d5fc8c61",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search_preprocessor.cc",
      "new_id": "7ddb280daa5f606b97e0493cfddb3d4416553ea3",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search_preprocessor.cc"
    },
    {
      "type": "modify",
      "old_id": "0d69021b2538f03332b783cbfaccc956dc1b4e6d",
      "old_mode": 33188,
      "old_path": "internal/ceres/line_search_preprocessor_test.cc",
      "new_id": "d0a866b8be9a7644c2d06e22361ed26e972180b0",
      "new_mode": 33188,
      "new_path": "internal/ceres/line_search_preprocessor_test.cc"
    },
    {
      "type": "modify",
      "old_id": "81acc386cc6e4d902a57024c90eab8be0c56ec5b",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.cc",
      "new_id": "da14d3da56789bc3fe7105709ff754fb477d5461",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "65cb2424c83291a80a439b63a1a54a8a5014bf2d",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.h",
      "new_id": "3f58cfbd9dd6db950c52c4492a8ae56a256bdc4d",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.h"
    },
    {
      "type": "modify",
      "old_id": "9222884bc7df88a4ac4c9360f0865d1428628900",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for.h",
      "new_id": "603c609bf8d1ed0e8ec2059cde2f6a1054ef96cb",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for.h"
    },
    {
      "type": "modify",
      "old_id": "38a744f82e6b745043d871f1e8c1567b938b16f2",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for_tbb.cc",
      "new_id": "82fbf100f6cfd49bcbc25965e7f4352f6e9ef76e",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for_tbb.cc"
    },
    {
      "type": "modify",
      "old_id": "eb10a3ba8b96d3181b98e1dac9406619c90e57b6",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for_test.cc",
      "new_id": "2f444606c09b0dee5c9f65f5f9f47b3267d555f9",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d0b7a472ab0f6ed3578a9902f42c6e520fd71027",
      "old_mode": 33188,
      "old_path": "internal/ceres/preconditioner.h",
      "new_id": "37b221e288a6b1fbb4cb8381321793fbb53eba04",
      "new_mode": 33188,
      "new_path": "internal/ceres/preconditioner.h"
    },
    {
      "type": "modify",
      "old_id": "ae77c0bb879e6df18c75e59196f928f808f3ed19",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.cc",
      "new_id": "3ed0efda8e9776e0b38a9e6e7a10d2a9d9b29028",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "67d6f11ce11287c386be107926b7a4bd10bed2e5",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.h",
      "new_id": "03e61d2a7cbfe4330494fff0f55ba4d927c0d0ed",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.h"
    },
    {
      "type": "modify",
      "old_id": "36700b9f7ef90fd7108d09852210745eae51ab88",
      "old_mode": 33188,
      "old_path": "internal/ceres/program_evaluator.h",
      "new_id": "ca6090298346bdad9c4b5f9665289b660ac7a986",
      "new_mode": 33188,
      "new_path": "internal/ceres/program_evaluator.h"
    },
    {
      "type": "modify",
      "old_id": "74665f087a42c4da9b7bfc70fc382c5a2d695c1c",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.h",
      "new_id": "e83a715d9a9413a84743a8ebfa8fe657e8080e49",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.h"
    },
    {
      "type": "modify",
      "old_id": "8228efb0836cb2b64c450cc34ec997ee41836445",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver_test.cc",
      "new_id": "3f70300b5df83b56ea351425a1e79a6811006b60",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "667f384b2fff2445207c3ac31753870bd87e318a",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator.h",
      "new_id": "07a7f0ca3802a30716d0318af272a30384f188f9",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator.h"
    },
    {
      "type": "modify",
      "old_id": "17769872c0a40ddb6a1093bb313b5fa5e1008b87",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "ca8f30e9f3a43878573ba887ebb14f3bad7190e8",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "f07d102e5bad44e7e0623c5bbab53cbb343fe4e9",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_test.cc",
      "new_id": "9826d876e56602a47d680b1c7d2b17d3dfc35d12",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c3f43a9e792972c26a01a4b730b99bd2cd74b435",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_jacobi_preconditioner.cc",
      "new_id": "d7f6fe9714269f9a6c26e9d304059316af758f46",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "fcf8175227f65b298e1ece7bb60810e7e1344940",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver.cc",
      "new_id": "5f047cb84f64ce7c6dfd4542a6656be2cb2afd46",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver.cc"
    },
    {
      "type": "modify",
      "old_id": "ec598974a31e8f513a06e9250cb9942c821caec7",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver_test.cc",
      "new_id": "f991298350a4b5df5f7c2f0e145806a6e48691f7",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d3f912cddd4230b6401ee85d052273d252194a53",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_preprocessor.cc",
      "new_id": "803baefb5b2dd621a304d752778ff05297926a45",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_preprocessor.cc"
    },
    {
      "type": "modify",
      "old_id": "90550b2bf9773f22cf7108eb2e346f006ed11139",
      "old_mode": 33188,
      "old_path": "internal/ceres/visibility_based_preconditioner.cc",
      "new_id": "24563aef0b3bbc36e73cb9605cdb683e602a1f32",
      "new_mode": 33188,
      "new_path": "internal/ceres/visibility_based_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "f959ea83a06d880503438b15a030f65f049bf318",
      "old_mode": 33188,
      "old_path": "jni/Android.mk",
      "new_id": "e8ea065eb805cefd5dd3b596a847e728b2a67674",
      "new_mode": 33188,
      "new_path": "jni/Android.mk"
    }
  ]
}
