25 #include "LogBinProfiler.h"
27 namespace ace_routine {
30 void rollupExteriorBins(
37 endBin = (endBin > numBins) ? numBins : endBin;
38 if (endBin <= startBin)
return;
41 uint32_t leftRollup = 0;
42 for (uint8_t i = 0; i <= startBin; i++) {
45 if (leftRollup > UINT16_MAX) leftRollup = UINT16_MAX;
46 dst[startBin] = leftRollup;
49 for (uint8_t i = startBin + 1; i < endBin - 1; i++) {
54 uint32_t rightRollup = (endBin - 1 == startBin) ? leftRollup : 0;
55 for (uint8_t i = endBin - 1; i < numBins; i++) {
56 rightRollup += src[i];
58 if (rightRollup > UINT16_MAX) rightRollup = UINT16_MAX;
59 dst[endBin - 1] = rightRollup;