aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
UTGenerator.h
Go to the documentation of this file.
1
/**
2
*
3
* Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN(@LIP6) & Christophe GONZALES(@AMU)
4
* info_at_agrum_dot_org
5
*
6
* This library is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this library. If not, see <http://www.gnu.org/licenses/>.
18
*
19
*/
20
21
22
/** @file
23
* @brief Abstract class for generating Utility Tables.
24
*
25
* @author Pierre-Henri WUILLEMIN(@LIP6) and Jean-Christophe MAGNAN and Christophe
26
* GONZALES(@AMU)
27
*/
28
#
ifndef
GUM_UT_GENERATOR_H
29
#
define
GUM_UT_GENERATOR_H
30
31
#
include
<
agrum
/
tools
/
multidim
/
potential
.
h
>
32
33
namespace
gum
{
34
35
/** @class UTGenerator
36
* @brief Abstract class for generating Utility Tables.
37
* @ingroup id_group
38
*
39
* This abstract class is an implementation of the strategy pattern to
40
* help changing UT generation policies for the InfluenceDiagramGenerator
41
*class.
42
*/
43
class
UTGenerator
{
44
public
:
45
// ############################################################################
46
/// @name Constructors / Destructor
47
// ############################################################################
48
/// @{
49
/**
50
* Default constructor.
51
*/
52
UTGenerator
();
53
54
/**
55
* Destructor.
56
*/
57
virtual
~
UTGenerator
();
58
/// @}
59
60
// ############################################################################
61
/// @name UT generation methods
62
// ############################################################################
63
/// @{
64
/**
65
* Generates a UT using floats.
66
* @param varId The variable id of the UT owner.
67
* @param ut A reference on the UT to fill.
68
*/
69
virtual
void
generateUT
(
const
Idx& varId,
const
Potential<
float
>& ut) = 0;
70
71
/**
72
* Generates a UT using doubles.
73
* @param varId The variable id of the UT owner.
74
* @param ut A reference on the UT to fill.
75
*/
76
virtual
void
generateUT
(
const
Idx& varId,
const
Potential<
double
>& ut) = 0;
77
/// @}
78
};
79
80
}
/* namespace gum */
81
82
#
endif
/* GUM_UT_GENERATOR_H */
gum::UTGenerator::generateUT
virtual void generateUT(const Idx &varId, const Potential< double > &ut)=0
Generates a UT using doubles.
gum::Set::emplace
INLINE void emplace(Args &&... args)
Definition:
set_tpl.h:643
gum::UTGenerator::~UTGenerator
virtual ~UTGenerator()
Destructor.
Definition:
UTGenerator.cpp:40
gum::UTGenerator
Abstract class for generating Utility Tables.
Definition:
UTGenerator.h:43
gum::UTGenerator::UTGenerator
UTGenerator()
Default constructor.
Definition:
UTGenerator.cpp:34