36 lines
891 B
C++
36 lines
891 B
C++
#include "gtl_math_rms.h"
|
|
#include "gtl_math.h"
|
|
|
|
namespace gtl
|
|
{
|
|
namespace math
|
|
{
|
|
|
|
rms::rms(gtl::analog_data *data)
|
|
: analog_value(data)
|
|
, _squared_sum_value(0.)
|
|
{
|
|
_name = "rms";
|
|
}
|
|
|
|
void rms::before_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end)
|
|
{
|
|
_squared_sum_value -= mathFunctions::squared_sum(begin, end);
|
|
}
|
|
|
|
void rms::after_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end)
|
|
{
|
|
_squared_sum_value += mathFunctions::squared_sum(begin, end);
|
|
}
|
|
|
|
void rms::data_changed()
|
|
{
|
|
analog_value::data_changed();
|
|
if(_data.size() != 0)
|
|
_value = qSqrt(_squared_sum_value/_data.size());
|
|
|
|
emit value_changed();
|
|
}
|
|
}
|
|
}
|