#include "gtl_math_offset.h" namespace gtl { namespace math { offset::offset(gtl::analog_data *data) : analog_value(data) , _sum(0) { _name = "offset"; } void offset::before_copying_data(std::vector::iterator begin, std::vector::iterator end) { _sum -= std::accumulate(begin, end, 0.0); } void offset::after_copying_data(std::vector::iterator begin, std::vector::iterator end) { _sum += std::accumulate(begin, end, 0.0); } void offset::data_changed() { analog_value::data_changed(); _value = _sum/_data.size(); emit value_changed(); } } }