41 double median_out = 0.0;
52 std::sort(vec_sorted.begin(), vec_sorted.end());
54 median_out = vec_sorted.at(vec_sorted.size()/2);
67 double mean_out = 0.0;
87 double std_dev_out = 0.0;
95 double sum_of_sq_diffs = 0;
98 sum_of_sq_diffs += std::pow(*it -
mean, 2);
100 std_dev_out = sqrt(sum_of_sq_diffs /
m_win_size);
116 return measurement > low_lim && measurement < upper_lim;
122 double threshold = this->
getMean();
123 return (value > threshold);
134 double measurement ) {
160 if ( new_size < curr_size ) {
179 size_t sliding_win_size =
source.read_int(
191 out.
printf(
"-----------[ %s: Sliding Window Properties ]-----------\n",
193 out.
printf(
"Measurements Vector: \n");
196 out.
printf(
"\t%.2f\n", *it);
This class allows loading and storing values and vectors of different types from a configuration text...
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
virtual int printf(const char *fmt,...) MRPT_printf_format_check(2
Writes a string to the stream in a textual form.
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
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.
void dumpToTextStream(mrpt::utils::CStream &out) const
This method should clearly display all the contents of the structure in textual form,...
bool windowIsFull() const
Check if the window has reached its limit.
double m_median_cached
Cached median value.
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion)
This method load the options from a ".ini"-like file or memory-stored string list.
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 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.
size_t getWindowSize() const
Return the size of the window.