)]}'
{
  "commit": "cf12474a8b7c121f7ca95e28f8ee3f8d9405cd41",
  "tree": "0967dbdf8c8fe89ca1c698a54168c9b7f8a91d52",
  "parents": [
    "c29935b323ffb0b903f640111f0a0b0440e94a2e"
  ],
  "author": {
    "name": "Rasmus Munk Larsen",
    "email": "rmlarsen@google.com",
    "time": "Thu Nov 12 18:02:37 2020 +0000"
  },
  "committer": {
    "name": "Rasmus Munk Larsen",
    "email": "rmlarsen@google.com",
    "time": "Thu Nov 12 18:02:37 2020 +0000"
  },
  "message": "Optimize matrix*matrix and matrix*vector products when they correspond to inner products at runtime.\n\nThis speeds up inner products where the one or or both arguments is dynamic for small and medium-sized vectors (up to 32k).\n\nname                           old time/op             new time/op   delta\nBM_VecVecStatStat\u003cfloat\u003e/1     1.64ns ± 0%             1.64ns ± 0%     ~\nBM_VecVecStatStat\u003cfloat\u003e/8     2.99ns ± 0%             2.99ns ± 0%     ~\nBM_VecVecStatStat\u003cfloat\u003e/64    7.00ns ± 1%             7.04ns ± 0%   +0.66%\nBM_VecVecStatStat\u003cfloat\u003e/512   61.6ns ± 0%             61.6ns ± 0%     ~\nBM_VecVecStatStat\u003cfloat\u003e/4k     551ns ± 0%              553ns ± 1%   +0.26%\nBM_VecVecStatStat\u003cfloat\u003e/32k   4.45µs ± 0%             4.45µs ± 0%     ~\nBM_VecVecStatStat\u003cfloat\u003e/256k  77.9µs ± 0%             78.1µs ± 1%     ~\nBM_VecVecStatStat\u003cfloat\u003e/1M     312µs ± 0%              312µs ± 1%     ~\nBM_VecVecDynStat\u003cfloat\u003e/1      13.3ns ± 1%              4.6ns ± 0%  -65.35%\nBM_VecVecDynStat\u003cfloat\u003e/8      14.4ns ± 0%              6.2ns ± 0%  -57.00%\nBM_VecVecDynStat\u003cfloat\u003e/64     24.0ns ± 0%             10.2ns ± 3%  -57.57%\nBM_VecVecDynStat\u003cfloat\u003e/512     138ns ± 0%               68ns ± 0%  -50.52%\nBM_VecVecDynStat\u003cfloat\u003e/4k     1.11µs ± 0%             0.56µs ± 0%  -49.72%\nBM_VecVecDynStat\u003cfloat\u003e/32k    8.89µs ± 0%             4.46µs ± 0%  -49.89%\nBM_VecVecDynStat\u003cfloat\u003e/256k   78.2µs ± 0%             78.1µs ± 1%     ~\nBM_VecVecDynStat\u003cfloat\u003e/1M      313µs ± 0%              312µs ± 1%     ~\nBM_VecVecDynDyn\u003cfloat\u003e/1       10.4ns ± 0%             10.5ns ± 0%   +0.91%\nBM_VecVecDynDyn\u003cfloat\u003e/8       12.0ns ± 3%             11.9ns ± 0%     ~\nBM_VecVecDynDyn\u003cfloat\u003e/64      37.4ns ± 0%             19.6ns ± 1%  -47.57%\nBM_VecVecDynDyn\u003cfloat\u003e/512      159ns ± 0%               81ns ± 0%  -49.07%\nBM_VecVecDynDyn\u003cfloat\u003e/4k      1.13µs ± 0%             0.58µs ± 1%  -49.11%\nBM_VecVecDynDyn\u003cfloat\u003e/32k     8.91µs ± 0%             5.06µs ±12%  -43.23%\nBM_VecVecDynDyn\u003cfloat\u003e/256k    78.2µs ± 0%             78.2µs ± 1%     ~\nBM_VecVecDynDyn\u003cfloat\u003e/1M       313µs ± 0%              312µs ± 1%     ~\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "792b1811c6c77c3ace74add559f86ba8edd8fa21",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/ProductEvaluators.h",
      "new_id": "6b32c508bf313dda1c2e5d0c70325aa2b03a1af2",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/ProductEvaluators.h"
    },
    {
      "type": "modify",
      "old_id": "508c05c97e630ba40fb4822f11778ca0070bfff3",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/products/GeneralMatrixMatrix.h",
      "new_id": "8cdf14702c74b235ad8f3641d9625ba8b62ac1b2",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/products/GeneralMatrixMatrix.h"
    }
  ]
}
