aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
leastSquareTestPolicy.h
Go to the documentation of this file.
1/****************************************************************************
2 * This file is part of the aGrUM/pyAgrum library. *
3 * *
4 * Copyright (c) 2005-2026 by *
5 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
6 * - Christophe GONZALES(_at_AMU) *
7 * *
8 * The aGrUM/pyAgrum library is free software; you can redistribute it *
9 * and/or modify it under the terms of either : *
10 * *
11 * - the GNU Lesser General Public License as published by *
12 * the Free Software Foundation, either version 3 of the License, *
13 * or (at your option) any later version, *
14 * - the MIT license (MIT), *
15 * - or both in dual license, as here. *
16 * *
17 * (see https://agrum.gitlab.io/articles/dual-licenses-lgplv3mit.html) *
18 * *
19 * This aGrUM/pyAgrum library is distributed in the hope that it will be *
20 * useful, but WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
21 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES MERCHANTABILITY or FITNESS *
22 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
25 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR *
26 * OTHER DEALINGS IN THE SOFTWARE. *
27 * *
28 * See LICENCES for more details. *
29 * *
30 * SPDX-FileCopyrightText: Copyright 2005-2026 *
31 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
32 * - Christophe GONZALES(_at_AMU) *
33 * SPDX-License-Identifier: LGPL-3.0-or-later OR MIT *
34 * *
35 * Contact : info_at_agrum_dot_org *
36 * homepage : http://agrum.gitlab.io *
37 * gitlab : https://gitlab.com/agrumery/agrum *
38 * *
39 ****************************************************************************/
40
41
50#ifndef GUM_MULTI_DIM_FUNCTION_GRAPH_LEAST_SQUARE_TEST_POLICY_H
51#define GUM_MULTI_DIM_FUNCTION_GRAPH_LEAST_SQUARE_TEST_POLICY_H
52
53// ============================================================================
56// ============================================================================
58
59// ============================================================================
60
61namespace gum {
62
72 template < typename GUM_ELEMENT >
73 class LeastSquareTestPolicy: public ITestPolicy< GUM_ELEMENT > {
74 public:
75 // ############################################################################
77 // ############################################################################
79
80 // ============================================================================
82 // ============================================================================
84
85 // ============================================================================
87 // ============================================================================
88 void* operator new(size_t s);
89
90 void operator delete(void* p);
91
92 // ============================================================================
94 // ============================================================================
95 virtual ~LeastSquareTestPolicy();
96
97 // ############################################################################
99 // ############################################################################
101
102 // ============================================================================
104 // ============================================================================
105 void addObservation(Idx attr, GUM_ELEMENT value);
106
108
109
110 // ############################################################################
112 // ############################################################################
114
115 // ============================================================================
118 // ============================================================================
119 bool isTestRelevant() const;
120
122
123
124 // ############################################################################
126 // ############################################################################
128
129 // ============================================================================
131 // ============================================================================
132 void computeScore();
133
134 // ============================================================================
136 // ============================================================================
137 double score();
138
139 // ============================================================================
141 // ============================================================================
142 double secondaryscore() const;
143
145
146
147 // ############################################################################
149 // ############################################################################
151
152 // ============================================================================
155 // ============================================================================
157
158 // ============================================================================
160 // ============================================================================
161 double sumValue() const;
162
163 // ============================================================================
165 // ============================================================================
166 const HashTable< Idx, Idx >& nbObsTable() const;
167
168 // ============================================================================
170 // ============================================================================
172
173 // ============================================================================
175 // ============================================================================
177
178 private:
180 double _sumO_;
181
184
187
190
192 double _score_;
193 };
194
195} // End of namespace gum
196
198
199#endif /* GUM_MULTI_DIM_FUNCTION_GRAPH_LEAST_SQUARE_TEST_POLICY_H */
Headers of the ITestPolicy.
ITestPolicy()
Allocators and Deallocators redefinition.
void addObservation(Idx attr, GUM_ELEMENT value)
Comptabilizes the new observation.
double _score_
Keeping computed score.
void add(const LeastSquareTestPolicy< GUM_ELEMENT > &src)
Performs the merging of current LeastSquareTestPolicy instance with given instance.
double sumValue() const
Returns global sum (needed for the merging).
virtual ~LeastSquareTestPolicy()
Destructor.
double secondaryscore() const
Returns a second criterion to severe ties.
HashTable< Idx, Idx > _nbObsTable_
Nb Observation for each modality assumed by variable.
void computeScore()
Returns the performance of current variable according to the test.
const HashTable< Idx, LinkedList< double > * > & obsTable() const
Returns global sum (needed for the merging).
const HashTable< Idx, double > & sumAttrTable() const
Returns sum per modality table (needed for the merging).
HashTable< Idx, double > _sumAttrTable_
Sum for each modality assumed by variable.
bool isTestRelevant() const
Returns true if enough observation were made so that the test can be relevant.
double score()
Returns the performance of current variable according to the test.
const HashTable< Idx, Idx > & nbObsTable() const
Returns nbobs per modality table (needed for the merging).
HashTable< Idx, LinkedList< double > * > _obsTable_
Not sure if needed.
Headers of the ContingencyTable class.
Size Idx
Type for indexes.
Definition types.h:79
Template implementations for the LeastSquareTestPolicy class.
gum is the global namespace for all aGrUM entities
Definition agrum.h:46