44 double median_out = 0.0;
58 std::sort(vec_sorted.begin(), vec_sorted.end());
60 median_out = vec_sorted.at(vec_sorted.size() / 2);
74 double mean_out = 0.0;
82 mean_out = std::accumulate(
98 double std_dev_out = 0.0;
108 double sum_of_sq_diffs = 0;
113 sum_of_sq_diffs += std::pow(*it -
mean, 2);
115 std_dev_out = sqrt(sum_of_sq_diffs /
m_win_size);
133 return measurement > low_lim && measurement < upper_lim;
139 double threshold = this->
getMean();
140 return (value > threshold);
178 if (new_size < curr_size)
199 size_t sliding_win_size =
200 source.read_int(section,
"sliding_win_size", 10,
false);
210 "-----------[ %s: Sliding Window Properties ]-----------\n",
This class allows loading and storing values and vectors of different types from a configuration text...
EIGEN_STRONG_INLINE double mean() const
Computes the mean of the entire matrix.
const Scalar * const_iterator
GLuint const GLchar * name
GLsizei const GLfloat * value
GLsizei const GLchar ** string
GLsizei GLsizei GLchar * source
std::string format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
SLAM methods related to graphs of pose constraints.
bool m_is_initialized
flag is raised the first time that TSlidingWindow::addNewMeasurement is called
bool evaluateMeasurementBelow(double value)
Determine whether the incoming measurement is less or equal to the current mean value.
double getMean()
Return the current mean value.
bool evaluateMeasurementInGaussian(double measurement)
Determine whether the incoming measurement is inside the [-3sigma, +3sigma] boundaries from the curre...
double m_mean_cached
Cached mean value.
TSlidingWindow(std::string name="window")
std::string m_name
Name of the TSlidingWindow Instance at hand.
bool windowIsFull() const
Check if the window has reached its limit.
double m_median_cached
Cached median value.
bool evaluateMeasurementAbove(double value)
Determine whether the incoming measurement is over the current mean value.
void resizeWindow(size_t new_size)
Resize the window.
bool m_median_updated
Is the median up-to-date?
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion)
This method load the options from a ".ini"-like file or memory-stored string list.
void addNewMeasurement(double measurement)
Update the sliding window by appending a new measurement.
bool m_mean_updated
Is the mean up-to-date?
bool m_std_dev_updated
Is the standard deviation up-to-date?
std::vector< double > m_measurements_vec
double m_std_dev_cached
Cached version of the standard deviation.
double getMedian()
Return the current median value.
double getStdDev()
Return the Standard deviation of the current measurement vector.
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form,...
size_t getWindowSize() const
Return the size of the window.