aGrUM 3.1.1
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-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
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
186 [[nodiscard]] DBTranslator4IntegerVariable* clone() const override;
187
190
192
193
194 // ##########################################################################
196 // ##########################################################################
197
199
202
205
207
208
209 // ##########################################################################
211 // ##########################################################################
212
214
216
233 DBTranslatedValue translate(std::string_view str) final;
234
236
239 std::string translateBack(const DBTranslatedValue translated_val) const final;
240
242
245 std::size_t domainSize() const final;
246
248 bool hasEditableDictionary() const final;
249
251 void setEditableDictionaryMode(bool new_mode) final;
252
254 bool needsReordering() const final;
255
258 HashTable< std::size_t, std::size_t > reorder() final;
259
261 const IntegerVariable* variable() const final;
262
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:640
class IntegerVariable
std::size_t domainSize() const final
returns the domain size of the variable used for translations
DBTranslatedValue translate(std::string_view str) final
returns the translation of a string
const IntegerVariable * variable() const final
returns the variable stored into the translator
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
~DBTranslator4IntegerVariable() override
destructor
DBTranslator4IntegerVariable & operator=(DBTranslator4IntegerVariable &&from)
move operator
void setEditableDictionaryMode(bool new_mode) final
sets/unset the editable dictionary mode
std::string translateBack(const DBTranslatedValue translated_val) const final
returns the original value for a given translation
HashTable< std::size_t, std::size_t > reorder() final
returns an empty HashTable to indicate that no reordering is needed.
bool needsReordering() const final
indicates that the translations should never be reordered
DBTranslator4IntegerVariable(DBTranslator4IntegerVariable &&from)
move constructor
DBTranslator4IntegerVariable(const DBTranslator4IntegerVariable &from)
copy constructor
bool hasEditableDictionary() const final
indicates that the translator is never in editable dictionary mode
DBTranslatedValue missingValue() const final
returns the translation of a missing value
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
DBTranslator4IntegerVariable * clone() const override
virtual copy constructor
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:55
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.