File indexing completed on 2025-08-03 08:20:57
0001 #include "runningMean.h"
0002
0003 runningMean::runningMean()
0004 {
0005 refArray = nullptr;
0006 }
0007
0008 runningMean::~runningMean()
0009 {
0010 if (refArray) delete [] refArray;
0011 }
0012
0013 int runningMean::setRefArray(const double darr[])
0014 {
0015 int i;
0016 if (refArray ==nullptr)
0017 {
0018 refArray = new double[getNumberofChannels()];
0019 }
0020
0021 for (i=0; i< getNumberofChannels(); i++) refArray[i] = darr[i];
0022
0023 return 0;
0024 }
0025
0026 int runningMean::setRefChannel(const int channel, const double refvalue)
0027 {
0028 int i;
0029 if (refArray ==nullptr)
0030 {
0031 refArray = new double[getNumberofChannels()];
0032 for (i=0; i< getNumberofChannels(); i++) refArray[i] = 0;
0033 }
0034
0035 if (channel < 0 || channel >= getNumberofChannels() ) return -1;
0036 refArray[channel] = refvalue;
0037
0038 return 0;
0039 }
0040
0041 int runningMean::setAsReference()
0042 {
0043 int i;
0044 if (refArray ==nullptr)
0045 {
0046 refArray = new double[getNumberofChannels()];
0047 }
0048 for (i=0; i< getNumberofChannels(); i++) refArray[i] = getMean(i);
0049 return 0;
0050 }
0051
0052 double runningMean::getReference(const int channel) const
0053 {
0054 if (refArray ==nullptr) return 0;
0055
0056 if (channel < 0 || channel >= getNumberofChannels() ) return 0;
0057 return refArray[channel];
0058 }
0059
0060 double runningMean::getPercentDeviation(const int channel) const
0061 {
0062 if (refArray ==nullptr) return 0;
0063
0064 if (channel < 0 || channel >= getNumberofChannels() ) return 0;
0065
0066 if (getReference(channel) == 0.) return 0.;
0067 return ( 100.* ( getMean(channel) - getReference(channel) ) / getReference(channel) );
0068 }
0069