Visual Servoing Platform version 3.5.0
vpHinkley.h
1/****************************************************************************
2 *
3 * ViSP, open source Visual Servoing Platform software.
4 * Copyright (C) 2005 - 2019 by Inria. All rights reserved.
5 *
6 * This software is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 * See the file LICENSE.txt at the root directory of this source
11 * distribution for additional information about the GNU GPL.
12 *
13 * For using ViSP with software that can not be combined with the GNU
14 * GPL, please contact Inria about acquiring a ViSP Professional
15 * Edition License.
16 *
17 * See http://visp.inria.fr for more information.
18 *
19 * This software was developed at:
20 * Inria Rennes - Bretagne Atlantique
21 * Campus Universitaire de Beaulieu
22 * 35042 Rennes Cedex
23 * France
24 *
25 * If you have questions regarding the use of this file, please contact
26 * Inria at visp@inria.fr
27 *
28 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30 *
31 * Description:
32 * Hinkley's cumulative sum test implementation.
33 *
34 * Authors:
35 * Fabien Spindler
36 *
37 *****************************************************************************/
38
39#ifndef vpHinkley_H
40#define vpHinkley_H
41
46#include <visp3/core/vpConfig.h>
47
96class VISP_EXPORT vpHinkley
97{
98public:
102 typedef enum {
105 upwardJump
106 } vpHinkleyJumpType;
107
108public:
109 vpHinkley();
110 virtual ~vpHinkley();
111 vpHinkley(double alpha, double delta);
112
113 void init();
114 void init(double alpha, double delta);
115
116 void setDelta(double delta);
117 void setAlpha(double alpha);
118 vpHinkleyJumpType testDownwardJump(double signal);
119 vpHinkleyJumpType testUpwardJump(double signal);
120 vpHinkleyJumpType testDownUpwardJump(double signal);
121
122 static void print(vpHinkleyJumpType jump);
123
128 inline double getMean() { return mean; }
134 inline double getSk() { return Sk; }
139 inline double getMk() { return Mk; }
146 inline double getTk() { return Tk; }
151 inline double getNk() { return Nk; }
152
153private:
154 void computeMean(double signal);
155 void computeSk(double signal);
156 void computeMk();
157 void computeTk(double signal);
158 void computeNk();
159
160private:
161 double dmin2;
162 double alpha;
163 int nsignal; // Signal length
164 double mean; // Signal mean value
165 double Sk;
166 double Mk;
167 double Tk;
168 double Nk;
169};
170
171#endif
This class implements the Hinkley's cumulative sum test.
Definition: vpHinkley.h:97
double getSk()
Definition: vpHinkley.h:134
double getTk()
Definition: vpHinkley.h:146
double getNk()
Definition: vpHinkley.h:151
double getMk()
Definition: vpHinkley.h:139
@ downwardJump
Definition: vpHinkley.h:104
double getMean()
Definition: vpHinkley.h:128