mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
#149 improve accuracy of getFastAverage()
This commit is contained in:
parent
7d77ca1216
commit
6e867f06aa
@ -1,7 +1,7 @@
|
||||
|
||||
MIT License
|
||||
# MIT License
|
||||
|
||||
Copyright (c) 2010-2018 Rob Tillaart
|
||||
Copyright (c) 2010-2020 Rob Tillaart
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@ -19,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
SOFTWARE.
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// FILE: RunningAverage.cpp
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.2.15
|
||||
// VERSION: 0.2.16
|
||||
// DATE: 2015-July-10
|
||||
// PURPOSE: RunningAverage library for Arduino
|
||||
//
|
||||
@ -30,6 +30,7 @@
|
||||
// refactored a bit; marked some TODO's; all function names to camelCase
|
||||
// 0.2.14 - 2020-01-15 added getValue(n) to retrieve elements in order of addition - see issue #132
|
||||
// 0.2.15 - 2020-01-17 fix overflow in getValue - see issue #139
|
||||
// 0.2.16 2020-04-16 improve _sum - see issue #149 (bourkemcrobbo)
|
||||
//
|
||||
// Released to the public domain
|
||||
//
|
||||
@ -89,16 +90,16 @@ void RunningAverage::addValue(const float value)
|
||||
}
|
||||
|
||||
// returns the average of the data-set added sofar
|
||||
float RunningAverage::getAverage() const
|
||||
float RunningAverage::getAverage()
|
||||
{
|
||||
if (_cnt == 0) return NAN;
|
||||
|
||||
float sum = 0;
|
||||
_sum = 0;
|
||||
for (uint8_t i = 0; i < _cnt; i++)
|
||||
{
|
||||
sum += _ar[i];
|
||||
_sum += _ar[i];
|
||||
}
|
||||
return sum / _cnt;
|
||||
return _sum / _cnt;
|
||||
}
|
||||
|
||||
float RunningAverage::getFastAverage() const
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// FILE: RunningAverage.h
|
||||
// AUTHOR: Rob.Tillaart@gmail.com
|
||||
// VERSION: 0.2.15
|
||||
// VERSION: 0.2.16
|
||||
// DATE: 2016-dec-01
|
||||
// PURPOSE: RunningAverage library for Arduino
|
||||
// URL: https://github.com/RobTillaart/Arduino/tree/master/libraries/RunningAverage
|
||||
@ -17,7 +17,7 @@
|
||||
#ifndef RunningAverage_h
|
||||
#define RunningAverage_h
|
||||
|
||||
#define RUNNINGAVERAGE_LIB_VERSION "0.2.15"
|
||||
#define RUNNINGAVERAGE_LIB_VERSION "0.2.16"
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
@ -33,7 +33,7 @@ public:
|
||||
void fillValue(const float, const uint8_t);
|
||||
float getValue(const uint8_t);
|
||||
|
||||
float getAverage() const; // iterates over all elements.
|
||||
float getAverage(); // iterates over all elements.
|
||||
float getFastAverage() const; // reuses previous values.
|
||||
|
||||
// return statistical characteristics of the running average
|
||||
|
@ -1,17 +1,9 @@
|
||||
#######################################
|
||||
# Syntax Coloring Map For RunningAverage
|
||||
#######################################
|
||||
|
||||
#######################################
|
||||
# Datatypes (KEYWORD1)
|
||||
#######################################
|
||||
|
||||
RunningAverage KEYWORD1
|
||||
|
||||
#######################################
|
||||
# Methods and Functions (KEYWORD2)
|
||||
#######################################
|
||||
|
||||
clear KEYWORD2
|
||||
addValue KEYWORD2
|
||||
getAverage KEYWORD2
|
||||
@ -29,13 +21,7 @@ getMinInBuffer KEYWORD2
|
||||
getMaxInBuffer KEYWORD2
|
||||
getValue KEYWORD2
|
||||
|
||||
#######################################
|
||||
# Instances (KEYWORD2)
|
||||
#######################################
|
||||
|
||||
|
||||
#######################################
|
||||
# Constants (LITERAL1)
|
||||
#######################################
|
||||
|
||||
RUNNINGAVERAGE_LIB_VERSION LITERAL1
|
@ -15,7 +15,7 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/RobTillaart/Arduino.git"
|
||||
},
|
||||
"version": "0.2.15",
|
||||
"version": "0.2.16",
|
||||
"frameworks": "arduino",
|
||||
"platforms": "*",
|
||||
"export": {
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=RunningAverage
|
||||
version=0.2.15
|
||||
version=0.2.16
|
||||
author=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
maintainer=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
sentence=The library stores the last N individual values in a circular buffer to calculate the running average.
|
||||
@ -7,3 +7,5 @@ paragraph=Supports min max average
|
||||
category=Data Processing
|
||||
url=https://github.com/RobTillaart/Arduino/tree/master/libraries/
|
||||
architectures=*
|
||||
includes=RunningAverager.h
|
||||
depends=
|
||||
|
Loading…
Reference in New Issue
Block a user