41#include <visp3/core/vpHinkley.h>
42#if defined(VISP_BUILD_DEPRECATED_FUNCTIONS)
43#include <visp3/core/vpDebug.h>
44#include <visp3/core/vpMath.h>
89 : dmin2(delta_val / 2.), alpha(alpha_val), nsignal(0), mean(0), Sk(0), Mk(0), Tk(0), Nk(0)
175 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Sk: " << Sk <<
" Mk: " << Mk;
178 if ((Mk - Sk) > alpha)
182 if (VP_DEBUG_MODE >= 2) {
185 std::cout <<
"noJump " << std::endl;
188 std::cout <<
"downWardJump " << std::endl;
191 std::cout <<
"upwardJump " << std::endl;
200 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
235 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Tk: " << Tk <<
" Nk: " << Nk;
238 if ((Tk - Nk) > alpha)
242 if (VP_DEBUG_MODE >= 2) {
245 std::cout <<
"noJump " << std::endl;
248 std::cout <<
"downWardJump " << std::endl;
251 std::cout <<
"upWardJump " << std::endl;
259 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
296 vpCDEBUG(2) <<
"alpha: " << alpha <<
" dmin2: " << dmin2 <<
" signal: " << signal <<
" Sk: " << Sk <<
" Mk: " << Mk
297 <<
" Tk: " << Tk <<
" Nk: " << Nk << std::endl;
300 if ((Mk - Sk) > alpha)
302 else if ((Tk - Nk) > alpha)
306 if (VP_DEBUG_MODE >= 2) {
309 std::cout <<
"noJump " << std::endl;
312 std::cout <<
"downWardJump " << std::endl;
315 std::cout <<
"upwardJump " << std::endl;
324 vpCDEBUG(2) <<
"\n*** Reset the Hinkley test ***\n";
347void vpHinkley::computeMean(
double signal)
355 if ((std::fabs(Mk - Sk) <= std::fabs(
vpMath::maximum(Mk, Sk)) * std::numeric_limits<double>::epsilon()) &&
356 (std::fabs(Tk - Nk) <= std::fabs(
vpMath::maximum(Tk, Nk)) * std::numeric_limits<double>::epsilon()))
360 mean = (mean * (nsignal - 1) + signal) / (nsignal);
369void vpHinkley::computeSk(
double signal)
373 Sk += signal - mean + dmin2;
380void vpHinkley::computeMk()
391void vpHinkley::computeTk(
double signal)
395 Tk += signal - mean - dmin2;
402void vpHinkley::computeNk()
412 std::cout <<
" No jump detected " << std::endl;
415 std::cout <<
" Jump downward detected " << std::endl;
418 std::cout <<
" Jump upward detected " << std::endl;
426#elif !defined(VISP_BUILD_SHARED_LIBS)
428void dummy_vpRHinkley() { }
error that can be emitted by ViSP classes.
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)