mirror of https://github.com/davisking/dlib.git
Added a min() and max() to the running_stats object.
--HG-- extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402348
This commit is contained in:
parent
4129ef3ca5
commit
a0db2a60d0
|
@ -37,6 +37,8 @@ namespace dlib
|
||||||
sum_sqr = 0;
|
sum_sqr = 0;
|
||||||
n = 0;
|
n = 0;
|
||||||
maximum_n = std::numeric_limits<T>::max();
|
maximum_n = std::numeric_limits<T>::max();
|
||||||
|
min_value = std::numeric_limits<T>::max();
|
||||||
|
max_value = std::numeric_limits<T>::min();
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_max_n (
|
void set_max_n (
|
||||||
|
@ -56,6 +58,11 @@ namespace dlib
|
||||||
sum = n_div_n*sum + val*div_n;
|
sum = n_div_n*sum + val*div_n;
|
||||||
sum_sqr = n_div_n*sum_sqr + val*div_n*val;
|
sum_sqr = n_div_n*sum_sqr + val*div_n*val;
|
||||||
|
|
||||||
|
if (val < min_value)
|
||||||
|
min_value = val;
|
||||||
|
if (val > max_value)
|
||||||
|
max_value = val;
|
||||||
|
|
||||||
if (n < maximum_n)
|
if (n < maximum_n)
|
||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
|
@ -78,13 +85,39 @@ namespace dlib
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
T max (
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
// make sure requires clause is not broken
|
||||||
|
DLIB_ASSERT(current_n() > 1,
|
||||||
|
"\tT running_stats::max"
|
||||||
|
<< "\n\tyou have to add some numbers to this object first"
|
||||||
|
<< "\n\tthis: " << this
|
||||||
|
);
|
||||||
|
|
||||||
|
return max_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
T min (
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
// make sure requires clause is not broken
|
||||||
|
DLIB_ASSERT(current_n() > 1,
|
||||||
|
"\tT running_stats::min"
|
||||||
|
<< "\n\tyou have to add some numbers to this object first"
|
||||||
|
<< "\n\tthis: " << this
|
||||||
|
);
|
||||||
|
|
||||||
|
return min_value;
|
||||||
|
}
|
||||||
|
|
||||||
T variance (
|
T variance (
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
// make sure requires clause is not broken
|
// make sure requires clause is not broken
|
||||||
DLIB_ASSERT(current_n() > 1,
|
DLIB_ASSERT(current_n() > 1,
|
||||||
"\tT running_stats::variance"
|
"\tT running_stats::variance"
|
||||||
<< "\n\tsize of queue should not be zero"
|
<< "\n\tyou have to add some numbers to this object first"
|
||||||
<< "\n\tthis: " << this
|
<< "\n\tthis: " << this
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -99,7 +132,7 @@ namespace dlib
|
||||||
// make sure requires clause is not broken
|
// make sure requires clause is not broken
|
||||||
DLIB_ASSERT(current_n() > 1,
|
DLIB_ASSERT(current_n() > 1,
|
||||||
"\tT running_stats::variance"
|
"\tT running_stats::variance"
|
||||||
<< "\n\tsize of queue should not be zero"
|
<< "\n\tyou have to add some numbers to this object first"
|
||||||
<< "\n\tthis: " << this
|
<< "\n\tthis: " << this
|
||||||
);
|
);
|
||||||
return (val-mean())/std::sqrt(variance());
|
return (val-mean())/std::sqrt(variance());
|
||||||
|
@ -110,6 +143,8 @@ namespace dlib
|
||||||
T sum_sqr;
|
T sum_sqr;
|
||||||
T n;
|
T n;
|
||||||
T maximum_n;
|
T maximum_n;
|
||||||
|
T min_value;
|
||||||
|
T max_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -115,6 +115,24 @@ namespace dlib
|
||||||
object so far.
|
object so far.
|
||||||
!*/
|
!*/
|
||||||
|
|
||||||
|
T max (
|
||||||
|
) const;
|
||||||
|
/*!
|
||||||
|
requires
|
||||||
|
- current_n() > 1
|
||||||
|
ensures
|
||||||
|
- returns the largest value presented to this object so far.
|
||||||
|
!*/
|
||||||
|
|
||||||
|
T min (
|
||||||
|
) const;
|
||||||
|
/*!
|
||||||
|
requires
|
||||||
|
- current_n() > 1
|
||||||
|
ensures
|
||||||
|
- returns the smallest value presented to this object so far.
|
||||||
|
!*/
|
||||||
|
|
||||||
T scale (
|
T scale (
|
||||||
const T& val
|
const T& val
|
||||||
) const;
|
) const;
|
||||||
|
|
Loading…
Reference in New Issue