aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
observation.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
49
50// #define TRACE_ALGO
51// =========================================================================
52#ifndef GUM_OBSERVATION_H
53#define GUM_OBSERVATION_H
54// =========================================================================
56// =========================================================================
58
59// =========================================================================
60
61namespace gum {
62
72
74 public:
75 // ==========================================================================
77 // ==========================================================================
79
80 // ###################################################################
82 // ###################################################################
84 GUM_CONSTRUCTOR(Observation);
85 ;
86 }
87
88 // ###################################################################
90 // ###################################################################
92 GUM_DESTRUCTOR(Observation);
93 ;
94 }
95
96 // ============================================================================
98 // ============================================================================
99 void* operator new(size_t s) { return SmallObjectAllocator::instance().allocate(s); }
100
101 void operator delete(void* p) {
103 }
104
106
107 // ==========================================================================
109 // ==========================================================================
111
112 // ###################################################################
118 // ###################################################################
119 INLINE Idx modality(const DiscreteVariable* var) const { return _varInst_[var]; }
120
121 INLINE Idx rModality(const DiscreteVariable* var) const { return _rInst_[var]; }
122
123 // ###################################################################
130 // ###################################################################
131 INLINE void setModality(const DiscreteVariable* var, Idx modality) {
132 _varInst_.insert(var, modality);
133 }
134
135 INLINE void setRModality(const DiscreteVariable* var, Idx modality) {
136 _rInst_.insert(var, modality);
137 }
138
139 // ###################################################################
140 // Returns the reward obtained during this observation
141 // ###################################################################
142 double reward() const { return _reward_; }
143
144 // ###################################################################
145 // Sets the reward obtained during this observation
146 // ###################################################################
147 void setReward(double reward) { _reward_ = reward; }
148
151 std::string toString() const;
152
153 // ==========================================================================
155 // ==========================================================================
157
158 // ###################################################################
161 // ###################################################################
165
166 // ###################################################################
169 // ###################################################################
173
175
176 private:
180
182 double _reward_;
183 };
184
185} /* namespace gum */
186
187
188#endif // GUM_OBSERVATION_H
Base class for discrete random variable.
Safe Const Iterators for hashtables.
Definition hashTable.h:1602
The class for generic Hash Tables.
Definition hashTable.h:637
HashTableConstIteratorSafe< const DiscreteVariable *, Idx > cbeginVariablesSafe() const
Returns an const safe iterator on the beginning of the list of variables in this observation.
double _reward_
The reward associated to this transition.
~Observation()
Default destructor.
Definition observation.h:91
INLINE Idx modality(const DiscreteVariable *var) const
Returns the modality assumed by the given variable in this observation.
INLINE Idx rModality(const DiscreteVariable *var) const
Returns the modality assumed by the given variable in this observation.
Observation()
Default constructor.
Definition observation.h:83
void setReward(double reward)
Returns the modality assumed by the given variable in this observation.
double reward() const
Returns the modality assumed by the given variable in this observation.
std::string toString() const
HashTableConstIteratorSafe< const DiscreteVariable *, Idx > cendVariablesSafe() const
Returns an const safe iterator on the end of the list of variables in this observation.
INLINE void setRModality(const DiscreteVariable *var, Idx modality)
Returns the modality assumed by the given variable in this observation.
HashTable< const DiscreteVariable *, Idx > _varInst_
Table giving for every variables its instantiation.
INLINE void setModality(const DiscreteVariable *var, Idx modality)
Sets the modality assumed by the given variable in this observation.
HashTable< const DiscreteVariable *, Idx > _rInst_
static SmallObjectAllocator & instance()
void * allocate(const size_t &objectSize)
Allocates a block.
void deallocate(void *pDeallocatedObject, const size_t &objectSize)
Deallocates an object.
Base class for discrete random variable.
Size Idx
Type for indexes.
Definition types.h:79
gum is the global namespace for all aGrUM entities
Definition agrum.h:46
Headers of gum::SmallObjectAllocator.