feat(jumpavg): support small values via unit param 09/38809/7
authorVratko Polak <vrpolak@cisco.com>
Fri, 2 Jun 2023 12:44:47 +0000 (14:44 +0200)
committerTibor Frank <tifrank@cisco.com>
Wed, 7 Jun 2023 05:53:55 +0000 (05:53 +0000)
commit079c390e0903a98182781ff5c2af2bba9902b4ed
tree98116eea60af0ed530548bb52dff126aef0dc9e9
parent2c9b2a4298cac5cc4d6ca60cb1da8bd72ec23c37
feat(jumpavg): support small values via unit param

Previously, Jumpavg was known to give wrong results
when the data contains values of order one or smaller.
This change introduces a new "unit" parameter,
which changes how the information content is calculated.
For example if the data values are mutiplies of 0.01,
the unit parameter should be set to 0.01 to compensate.

For callers not knowing their correct unit value,
another parameter is introduced, called "sbps"
(meaning Significant Bits Per Sample).
A binary integer number with this many ones
is how much units should the maximal sample be.
This way jumpavg computes the corresponding "unit" value to use.
If neither "unit" nor "sbps" are given,
the "sbps" value of 12 is applied.

+ Rename files to conform to snake_style naming.
+ Fix normalization for the "opposite triangle" distribution.
+ Simplify logic, all groups now start as "normal", not "unknown".
+ Minor style improvements as suggested by pylint.
+ From user perspective, this change should be backward compatible.
- The normalization fix is a behavior change,
  but it is a bugfix and the new behavior should be better.

Change-Id: I5a5ca11757f087fff13faf1d0b8e34a741400258
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
resources/libraries/python/jumpavg/__init__.py
resources/libraries/python/jumpavg/avg_stdev_stats.py [moved from resources/libraries/python/jumpavg/AvgStdevStats.py with 98% similarity]
resources/libraries/python/jumpavg/bit_counting_group.py [moved from resources/libraries/python/jumpavg/BitCountingGroup.py with 90% similarity]
resources/libraries/python/jumpavg/bit_counting_group_list.py [moved from resources/libraries/python/jumpavg/BitCountingGroupList.py with 93% similarity]
resources/libraries/python/jumpavg/bit_counting_stats.py [moved from resources/libraries/python/jumpavg/BitCountingStats.py with 85% similarity]
resources/libraries/python/jumpavg/classify.py
resources/libraries/python/model/ExportJson.py