aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
DBTranslator4IntegerVariable.h
Go to the documentation of this file.
1/****************************************************************************
2 * This file is part of the aGrUM/pyAgrum library. *
3 * *
4 * Copyright (c) 2005-2025 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-2025 *
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
47#ifndef GUM_LEARNING_DB_TRANSLATOR_4_INTEGER_VARIABLE_H
48#define GUM_LEARNING_DB_TRANSLATOR_4_INTEGER_VARIABLE_H
49
50#include <sstream>
51#include <utility>
52#include <vector>
53
54#include <agrum/agrum.h>
55
59
60namespace gum {
61
62 namespace learning {
63
64
143 public:
144 // ##########################################################################
146 // ##########################################################################
147
149
151
161 const std::vector< std::string >& missing_symbols,
162 std::size_t max_dico_entries
163 = std::numeric_limits< std::size_t >::max());
164
176 std::size_t max_dico_entries
177 = std::numeric_limits< std::size_t >::max());
178
181
184
187
190
192
193
194 // ##########################################################################
196 // ##########################################################################
197
199
202
205
207
208
209 // ##########################################################################
211 // ##########################################################################
212
214
216
233 virtual DBTranslatedValue translate(const std::string& str) final;
234
236
239 virtual std::string translateBack(const DBTranslatedValue translated_val) const final;
240
242
245 virtual std::size_t domainSize() const final;
246
248 virtual bool hasEditableDictionary() const final;
249
251 virtual void setEditableDictionaryMode(bool new_mode) final;
252
254 virtual bool needsReordering() const final;
255
258 virtual HashTable< std::size_t, std::size_t > reorder() final;
259
261 virtual const IntegerVariable* variable() const final;
262
264 virtual DBTranslatedValue missingValue() const final;
265
267
268
269#ifndef DOXYGEN_SHOULD_SKIP_THIS
270
271 private:
272 // the IntegerVariable used for translations
273 IntegerVariable _variable_;
274
275
276#endif /* DOXYGEN_SHOULD_SKIP_THIS */
277 };
278
279
280 } /* namespace learning */
281
282} /* namespace gum */
283
285#ifndef GUM_NO_INLINE
287#endif /* GUM_NO_INLINE */
288
289#endif /* GUM_LEARNING_DB_TRANSLATOR_4_INTEGER_VARIABLE_H */
The class representing the original values of the cells of databases.
The databases' cell translators for integer variables.
The base class for all the tabular databases' cell translators.
The class for generic Hash Tables.
Definition hashTable.h:637
class IntegerVariable
virtual std::size_t domainSize() const final
returns the domain size of the variable used for translations
DBTranslator4IntegerVariable(const IntegerVariable &var, const std::vector< std::string > &missing_symbols, std::size_t max_dico_entries=std::numeric_limits< std::size_t >::max())
default constructor with an integer variable as translator
virtual std::string translateBack(const DBTranslatedValue translated_val) const final
returns the original value for a given translation
virtual void setEditableDictionaryMode(bool new_mode) final
sets/unset the editable dictionary mode
DBTranslator4IntegerVariable & operator=(DBTranslator4IntegerVariable &&from)
move operator
virtual const IntegerVariable * variable() const final
returns the variable stored into the translator
virtual DBTranslatedValue missingValue() const final
returns the translation of a missing value
virtual HashTable< std::size_t, std::size_t > reorder() final
returns an empty HashTable to indicate that no reordering is needed.
DBTranslator4IntegerVariable(DBTranslator4IntegerVariable &&from)
move constructor
virtual bool hasEditableDictionary() const final
indicates that the translator is never in editable dictionary mode
virtual DBTranslator4IntegerVariable * clone() const
virtual copy constructor
virtual DBTranslatedValue translate(const std::string &str) final
returns the translation of a string
DBTranslator4IntegerVariable(const DBTranslator4IntegerVariable &from)
copy constructor
DBTranslator4IntegerVariable(const IntegerVariable &var, std::size_t max_dico_entries=std::numeric_limits< std::size_t >::max())
default constructor with an integer variable as translator but without missing symbols
virtual bool needsReordering() const final
indicates that the translations should never be reordered
DBTranslator4IntegerVariable & operator=(const DBTranslator4IntegerVariable &from)
copy operator
DBTranslator(DBTranslatedValueType val_type, const bool is_lossless, const std::vector< std::string > &missing_symbols, const bool editable_dictionary=true, std::size_t max_dico_entries=std::numeric_limits< std::size_t >::max())
default constructor
Base class for integer discrete random variables.
include the inlined functions if necessary
Definition CSVParser.h:54
gum is the global namespace for all aGrUM entities
Definition agrum.h:46
STL namespace.
The union class for storing the translated values in learning databases.