45 #include <visp3/core/vpHinkley.h>
46 #if defined(VISP_BUILD_DEPRECATED_FUNCTIONS)
47 #include <visp3/core/vpDebug.h>
48 #include <visp3/core/vpMath.h>
92 : dmin2(delta_val / 2.), alpha(alpha_val), nsignal(0), mean(0), Sk(0), Mk(0), Tk(0), Nk(0)
185 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Sk: " << Sk <<
" Mk: " << Mk;
188 if ((Mk - Sk) > alpha)
192 if (VP_DEBUG_MODE >= 2) {
195 std::cout <<
"noJump " << std::endl;
198 std::cout <<
"downWardJump " << std::endl;
201 std::cout <<
"upwardJump " << std::endl;
210 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
245 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Tk: " << Tk <<
" Nk: " << Nk;
248 if ((Tk - Nk) > alpha)
252 if (VP_DEBUG_MODE >= 2) {
255 std::cout <<
"noJump " << std::endl;
258 std::cout <<
"downWardJump " << std::endl;
261 std::cout <<
"upWardJump " << std::endl;
269 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
306 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Sk: " << Sk <<
" Mk: " << Mk
307 <<
" Tk: " << Tk <<
" Nk: " << Nk << std::endl;
310 if ((Mk - Sk) > alpha)
312 else if ((Tk - Nk) > alpha)
316 if (VP_DEBUG_MODE >= 2) {
319 std::cout <<
"noJump " << std::endl;
322 std::cout <<
"downWardJump " << std::endl;
325 std::cout <<
"upwardJump " << std::endl;
334 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
357 void vpHinkley::computeMean(
double signal)
365 if ((std::fabs(Mk - Sk) <= std::fabs(
vpMath::maximum(Mk, Sk)) * std::numeric_limits<double>::epsilon()) &&
366 (std::fabs(Tk - Nk) <= std::fabs(
vpMath::maximum(Tk, Nk)) * std::numeric_limits<double>::epsilon()))
370 mean = (mean * (nsignal - 1) + signal) / (nsignal);
379 void vpHinkley::computeSk(
double signal)
383 Sk += signal - mean + dmin2;
390 void vpHinkley::computeMk()
401 void vpHinkley::computeTk(
double signal)
405 Tk += signal - mean - dmin2;
412 void vpHinkley::computeNk()
422 std::cout <<
" No jump detected " << std::endl;
425 std::cout <<
" Jump downward detected " << std::endl;
428 std::cout <<
" Jump upward detected " << std::endl;
431 std::cout <<
" Jump detected " << std::endl;
435 #elif !defined(VISP_BUILD_SHARED_LIBS)
437 void dummy_vpRHinkley() { };
void setDelta(double delta)
vp_deprecated vpHinkley()
vpHinkleyJumpType testDownwardJump(double signal)
void setAlpha(double alpha)
static void print(vpHinkleyJumpType jump)
vpHinkleyJumpType testUpwardJump(double signal)
vpHinkleyJumpType testDownUpwardJump(double signal)
static Type maximum(const Type &a, const Type &b)