)]}'
{
  "commit": "c036c78196c7a9f36e48e6387691e8f4979aef5d",
  "tree": "68f9c8afe4a3c734b7ce8e103ef5a78a7e6fa11a",
  "parents": [
    "51945e06194e83cfa4b32dd3cb9555855ddbd194"
  ],
  "author": {
    "name": "Alexander Karatarakis",
    "email": "alex@karatarakis.com",
    "time": "Sat Jun 12 12:20:17 2021 -0700"
  },
  "committer": {
    "name": "Alexander Karatarakis",
    "email": "alex@karatarakis.com",
    "time": "Fri Jun 18 15:04:17 2021 -0700"
  },
  "message": "Reduce copies involved in Jet operations\n\n- Avoid copies in compound assignment operators (+\u003d, -\u003d, *\u003d, /\u003d)\n- Add r-value overloads to +,-,*./ operators\n\nAddition\u003c3\u003e/1000                                  +0.0382         +0.0382          2798          2905          2798          2905\nAddition\u003c10\u003e/1000                                 -0.0009         -0.0009          4831          4827          4831          4827\nAddition\u003c15\u003e/1000                                 -0.0011         -0.0010          8005          7996          8005          7996\nAddition\u003c25\u003e/1000                                 +0.0014         +0.0014         13951         13970         13951         13970\nAddition\u003c32\u003e/1000                                 +0.0010         +0.0009         13638         13651         13638         13651\nAddition\u003c200\u003e/160                                 -0.1732         -0.1732         40301         33321         40300         33320\nAdditionScalar\u003c3\u003e/1000                            +0.0016         +0.0016          2493          2497          2493          2497\nAdditionScalar\u003c10\u003e/1000                           +0.0060         +0.0060          2701          2718          2701          2717\nAdditionScalar\u003c15\u003e/1000                           -0.0024         -0.0024          2598          2592          2598          2592\nAdditionScalar\u003c25\u003e/1000                           -0.0038         -0.0038          3730          3716          3730          3716\nAdditionScalar\u003c32\u003e/1000                           +0.0062         +0.0062          4137          4162          4137          4162\nAdditionScalar\u003c200\u003e/160                           -0.5626         -0.5626         19355          8466         19355          8466\nSubtraction\u003c3\u003e/1000                               -0.0011         -0.0012          3162          3158          3162          3158\nSubtraction\u003c10\u003e/1000                              -0.0027         -0.0026          4982          4969          4982          4969\nSubtraction\u003c15\u003e/1000                              -0.0112         -0.0112          7820          7733          7820          7733\nSubtraction\u003c25\u003e/1000                              +0.0181         +0.0181         13088         13325         13088         13325\nSubtraction\u003c32\u003e/1000                              -0.0007         -0.0007         14514         14505         14514         14504\nSubtraction\u003c200\u003e/160                              -0.1668         -0.1668         44586         37148         44586         37147\nSubtractionScalar\u003c3\u003e/1000                         -0.0028         -0.0028          2540          2533          2540          2533\nSubtractionScalar\u003c10\u003e/1000                        -0.0024         -0.0024          2682          2676          2682          2676\nSubtractionScalar\u003c15\u003e/1000                        -0.0023         -0.0023          2603          2597          2603          2597\nSubtractionScalar\u003c25\u003e/1000                        -0.0018         -0.0018          3570          3563          3570          3563\nSubtractionScalar\u003c32\u003e/1000                        -0.0012         -0.0012          4223          4218          4223          4218\nSubtractionScalar\u003c200\u003e/160                        -0.5070         -0.5070         20375         10044         20375         10044\nMultiplication\u003c3\u003e/1000                            -0.0543         -0.0544          6171          5836          6172          5836\nMultiplication\u003c10\u003e/1000                           -0.0617         -0.0617         11860         11128         11860         11128\nMultiplication\u003c15\u003e/1000                           -0.0106         -0.0106         17456         17271         17456         17271\nMultiplication\u003c25\u003e/1000                           -0.0114         -0.0114         27204         26893         27204         26893\nMultiplication\u003c32\u003e/1000                           -0.0125         -0.0125         32704         32293         32703         32293\nMultiplication\u003c200\u003e/160                           -0.3849         -0.3849         60557         37246         60557         37246\nMultiplicationLeftScalar\u003c3\u003e/1000                  +0.0005         +0.0005          3086          3088          3086          3088\nMultiplicationLeftScalar\u003c10\u003e/1000                 -0.0008         -0.0008          4486          4483          4486          4483\nMultiplicationLeftScalar\u003c15\u003e/1000                 -0.0010         -0.0010          5840          5834          5840          5834\nMultiplicationLeftScalar\u003c25\u003e/1000                 -0.0047         -0.0047         11350         11297         11350         11298\nMultiplicationLeftScalar\u003c32\u003e/1000                 -0.0014         -0.0014         13892         13873         13892         13873\nMultiplicationLeftScalar\u003c200\u003e/160                 -0.2646         -0.2646         28124         20682         28124         20682\nMultiplicationRightScalar\u003c3\u003e/1000                 +0.0024         +0.0025          3090          3098          3090          3098\nMultiplicationRightScalar\u003c10\u003e/1000                +0.0008         +0.0009          4596          4600          4596          4600\nMultiplicationRightScalar\u003c15\u003e/1000                -0.0033         -0.0033          5832          5812          5832          5812\nMultiplicationRightScalar\u003c25\u003e/1000                -0.0005         -0.0005         11353         11347         11353         11347\nMultiplicationRightScalar\u003c32\u003e/1000                +0.0043         +0.0043         14041         14102         14041         14102\nMultiplicationRightScalar\u003c200\u003e/160                -0.2600         -0.2600         28104         20796         28104         20796\nDivision\u003c3\u003e/1000                                  -0.0006         -0.0006          8977          8972          8977          8972\nDivision\u003c10\u003e/1000                                 -0.0095         -0.0095         14613         14474         14613         14473\nDivision\u003c15\u003e/1000                                 -0.0081         -0.0081         23109         22922         23108         22922\nDivision\u003c25\u003e/1000                                 -0.0081         -0.0081         37292         36992         37292         36992\nDivision\u003c32\u003e/1000                                 -0.0234         -0.0234         41693         40718         41692         40717\nDivision\u003c200\u003e/160                                 -0.1306         -0.1306         44486         38677         44486         38677\nDivisionLeftScalar\u003c3\u003e/1000                        -0.0080         -0.0080          6683          6630          6683          6630\nDivisionLeftScalar\u003c10\u003e/1000                       -0.0018         -0.0018          9255          9239          9255          9238\nDivisionLeftScalar\u003c15\u003e/1000                       -0.0011         -0.0011         12180         12166         12180         12166\nDivisionLeftScalar\u003c25\u003e/1000                       +0.0060         +0.0060         22381         22515         22381         22516\nDivisionLeftScalar\u003c32\u003e/1000                       -0.0016         -0.0016         20159         20126         20159         20126\nDivisionLeftScalar\u003c200\u003e/160                       -0.2528         -0.2528         28773         21499         28772         21499\nDivisionRightScalar\u003c3\u003e/1000                       -0.0006         -0.0006          3784          3782          3784          3782\nDivisionRightScalar\u003c10\u003e/1000                      -0.0014         -0.0014          5699          5691          5699          5691\nDivisionRightScalar\u003c15\u003e/1000                      -0.0009         -0.0009          7490          7484          7490          7484\nDivisionRightScalar\u003c25\u003e/1000                      +0.0031         +0.0031         13751         13793         13751         13793\nDivisionRightScalar\u003c32\u003e/1000                      -0.0006         -0.0006         16712         16702         16712         16702\nDivisionRightScalar\u003c200\u003e/160                      -0.2532         -0.2532         28412         21217         28411         21217\nMultiplyAndAdd\u003c3\u003e/1000                            -0.0191         -0.0191          4382          4299          4382          4299\nMultiplyAndAdd\u003c10\u003e/1000                           -0.0060         -0.0060         10238         10176         10238         10176\nMultiplyAndAdd\u003c15\u003e/1000                           -0.0053         -0.0053         11696         11634         11696         11634\nMultiplyAndAdd\u003c25\u003e/1000                           -0.0171         -0.0171         19185         18858         19185         18858\nMultiplyAndAdd\u003c32\u003e/1000                           +0.0070         +0.0070         23783         23951         23783         23951\nMultiplyAndAdd\u003c200\u003e/160                           -0.1252         -0.1252         61470         53776         61469         53776\n\nChange-Id: Ib366d5753ed4f398667766384e05389d45e0d444\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3264e2e7e2aa5cdbc34b678f48b70def9ca9a77a",
      "old_mode": 33188,
      "old_path": "include/ceres/jet.h",
      "new_id": "50aac1b25453c1d61457eff0964aea0dc56c42a2",
      "new_mode": 33188,
      "new_path": "include/ceres/jet.h"
    },
    {
      "type": "modify",
      "old_id": "36f279d37306229f4542af60e46bb08fa89632fc",
      "old_mode": 33188,
      "old_path": "internal/ceres/jet_test.cc",
      "new_id": "c65f68d72fbe6d0a53348db551247a9e3bc74310",
      "new_mode": 33188,
      "new_path": "internal/ceres/jet_test.cc"
    }
  ]
}
