summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorLines
2021-02-15debug outputDaniel Friesel-8/+15
2021-02-15Limit PELT via --with-substates=name_filter=state_or_transition_nameDaniel Friesel-12/+13
2021-02-15needs_refinement: short traces cannot be reliably refinedDaniel Friesel-1/+3
2021-02-12PELT: use variable penalty for benchmark repetationsDaniel Friesel-40/+64
Previously, the first measurement of each by_param entry determined its penalty, and all subsequenc measurements in it were analyzed with this penalty. This lead to some of them coming up with a different number of sub-states and being ignored. Now, all by_param entries are passed to the kneedle / plateau algorithm, and each gets its own penalty. In most cases, this leads to all entries rporting the same number of sub-states, so far less need to be ignored.
2021-02-12Add support data (e.g. power traces) for transitions too. Fixes plots and PELT.Daniel Friesel-1/+1
2021-01-20greedy drift compensation: Handle left corner case as well. Oops.Daniel Friesel-2/+11
2021-01-19additional debugging outputDaniel Friesel-1/+16
2021-01-19fix off-by-one in graph-based drift compensationDaniel Friesel-1/+1
the bug manifested whenever a "transition end" node was chosen
2021-01-19sort keys before bisectDaniel Friesel-1/+1
2021-01-19greedy drift compensation: handle edge casesDaniel Friesel-2/+8
2021-01-19drift compensation: use PILT min_dist=1Daniel Friesel-1/+1
2021-01-19greedy drift compensation: consider transition start vs end when syncingDaniel Friesel-46/+38
2021-01-18re-add greedy drift compensation heuristicDaniel Friesel-3/+86
2021-01-18drift compensation: a candidate may refer to transition start or endDaniel Friesel-39/+69
There's still a major bug somewhere, right now results are sub-par
2021-01-18energytrace drift compensation: allow arbitrarily long skipsDaniel Friesel-29/+33
2021-01-18energytrace drift compensation: stretch datapointsDaniel Friesel-1/+3
2021-01-18drift_compensation_grpah: handle node skips at the tailDaniel Friesel-0/+9
2021-01-18refactor graph-based drift compensation into a separate functionDaniel Friesel-1/+12
2021-01-18Fix a typoDaniel Friesel-1/+1
2021-01-18EnergyTrace loader: show offline_index in debug and error outputDaniel Friesel-8/+23
2021-01-15pelt: add stretch parameterDaniel Friesel-0/+20
2021-01-15pelt: Fix Dynp supportDaniel Friesel-1/+5
2021-01-14add anoter todo entryDaniel Friesel-0/+3
2021-01-14energytrace drift compensation: handle arbitrarily long detection failuresDaniel Friesel-19/+6
2021-01-14energytrace drift compensation: partially handle lack of candidatesDaniel Friesel-2/+4
2021-01-14energytrace drift compensation: Handle undetected transitionsDaniel Friesel-5/+76
2021-01-14EnergyTrace drift compensation: optimize via shortest pathsDaniel Friesel-72/+88
Right now performance is worse than the previous greedy approach as the dijkstra variant does not take into account that a transition may be missing from the set of detected changepoints (i.e., it assumes that the set of detected changepoints contains the transition timestamp, which is not always the case). This will be fixed in the next commit by adding nodes for the expected transition timestamp (with a slightly higher weight to ensure there are no proper nodes in the vicinity) -- or something similar.
2021-01-13pelt: Allow overrides via environment variablesDaniel Friesel-4/+23
2021-01-13EnergyTrace loader: remove bogus tail sync data as wellDaniel Friesel-7/+14
2021-01-12add a TODO entrDaniel Friesel-1/+4
2021-01-12add z-score based outlier detection and optional removalDaniel Friesel-1/+41
Note that outliers are removed from both training and evaluation data
2021-01-12plotter: print notice when exporting plotsDaniel Friesel-0/+3
2021-01-11evaluate E = P*t model. Seems slightly better in some casesDaniel Friesel-0/+19
TODO: Fix send duration model generation for cc1200, should improve eval
2021-01-08work around missing W_mean_delta_prev in first energytrace+barcode transitionDaniel Friesel-0/+5
2021-01-08model transition power, not energyDaniel Friesel-21/+54
in contrast to duration/energy, duration/power are independent
2021-01-08gracefully handle zbar unavailabilityDaniel Friesel-1/+8
2020-12-16loader: fix off-by-one in energytrace++ state changesDaniel Friesel-1/+2
2020-12-15add proof of concept for EnergyTrace++ based drift compensationDaniel Friesel-4/+61
2020-12-15support benchmarks with EnergyTrace++Daniel Friesel-3/+9
2020-12-15dataprocessor: export drift compensation dataDaniel Friesel-0/+14
2020-12-14energytrace: add pelt-based drift compensation experiment.Daniel Friesel-6/+140
Enable with DFATOOL_COMPENSATE_DRIFT=1 so far it's pretty unreliable.
2020-12-14runner: energytrace: wait for benchmark end synchronization pulsesDaniel Friesel-0/+2
2020-12-11generate-dfa-benchmark: include gpio.hDaniel Friesel-0/+8
2020-12-03use common energytrace loader codeDaniel Friesel-102/+73
this also fixes a nasty off-by-one in the barcode loader (now _load_energytrace): wrong: interval_start_timestamp = data[:-1, 0] * 1e-6 correct: interval_start_timestamp = data[1:, 0] * 1e-6
2020-12-03loader: energytrace: add support for legacy file formatDaniel Friesel-0/+3
2020-12-01loader: gracefully handle exceptions in energytrace sub-loaderDaniel Friesel-3/+7
2020-12-01runner, harness: add logging support and debug outputDaniel Friesel-2/+14
2020-12-01loader: fix typoDaniel Friesel-1/+1
2020-11-30pelt: allow disabling multiprocessingDaniel Friesel-2/+6
2020-11-27clean up energytrace drift compensation and raw model generation codeDaniel Friesel-147/+133