aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
PRMParameter_tpl.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
/**
23
* @file
24
* @brief Implementation of gum::PRMParameter.
25
*
26
* @author Lionel TORTI and Pierre-Henri WUILLEMIN(@LIP6)
27
*/
28
29
namespace
gum
{
30
namespace
prm
{
31
32
template
<
typename
GUM_SCALAR >
33
PRMParameter< GUM_SCALAR >::PRMParameter(
const
std::string& name,
34
ParameterType type,
35
GUM_SCALAR value) :
36
PRMClassElement< GUM_SCALAR >(name),
37
_type_(type), _value_(value) {
38
GUM_CONSTRUCTOR(PRMParameter);
39
this
->safeName_ = name;
40
}
41
42
template
<
typename
GUM_SCALAR
>
43
PRMParameter
<
GUM_SCALAR
>::
PRMParameter
(
const
PRMParameter
<
GUM_SCALAR
>&
source
) :
44
PRMClassElement
<
GUM_SCALAR
>(
source
.
name
()),
_type_
(
source
.
valueType
()),
45
_value_
(
source
.
value
()) {
46
GUM_ERROR
(
OperationNotAllowed
,
"cannot copy Paramter<GUM_SCALAR"
)
47
}
48
49
template
<
typename
GUM_SCALAR
>
50
PRMParameter
<
GUM_SCALAR
>&
51
PRMParameter
<
GUM_SCALAR
>::
operator
=(
const
PRMParameter
<
GUM_SCALAR
>&
from
) {
52
GUM_ERROR
(
OperationNotAllowed
,
"cannot copy Paramter<GUM_SCALAR"
)
53
}
54
55
template
<
typename
GUM_SCALAR
>
56
PRMParameter
<
GUM_SCALAR
>::~
PRMParameter
() {
57
GUM_DESTRUCTOR
(
PRMParameter
);
58
}
59
60
template
<
typename
GUM_SCALAR
>
61
typename
PRMClassElement
<
GUM_SCALAR
>::
ClassElementType
62
PRMParameter
<
GUM_SCALAR
>::
elt_type
()
const
{
63
return
PRMClassElement
<
GUM_SCALAR
>::
ClassElementType
::
prm_parameter
;
64
}
65
66
template
<
typename
GUM_SCALAR
>
67
GUM_SCALAR
PRMParameter
<
GUM_SCALAR
>::
value
()
const
{
68
return
_value_
;
69
}
70
71
template
<
typename
GUM_SCALAR
>
72
void
PRMParameter
<
GUM_SCALAR
>::
value
(
GUM_SCALAR
value
) {
73
_value_
=
value
;
74
}
75
76
template
<
typename
GUM_SCALAR
>
77
typename
PRMParameter
<
GUM_SCALAR
>::
ParameterType
78
PRMParameter
<
GUM_SCALAR
>::
valueType
()
const
{
79
return
_type_
;
80
}
81
82
template
<
typename
GUM_SCALAR
>
83
PRMType
&
PRMParameter
<
GUM_SCALAR
>::
type
() {
84
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a type"
)
85
}
86
87
template
<
typename
GUM_SCALAR
>
88
const
PRMType
&
PRMParameter
<
GUM_SCALAR
>::
type
()
const
{
89
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a type"
)
90
}
91
92
template
<
typename
GUM_SCALAR
>
93
Potential
<
GUM_SCALAR
>&
PRMParameter
<
GUM_SCALAR
>::
cpf
() {
94
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a cpf"
)
95
}
96
97
template
<
typename
GUM_SCALAR
>
98
const
Potential
<
GUM_SCALAR
>&
PRMParameter
<
GUM_SCALAR
>::
cpf
()
const
{
99
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a cpf"
)
100
}
101
102
template
<
typename
GUM_SCALAR
>
103
void
PRMParameter
<
GUM_SCALAR
>::
addParent
(
const
gum
::
prm
::
PRMClassElement
<
GUM_SCALAR
>&) {
104
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can not have parents"
)
105
}
106
107
template
<
typename
GUM_SCALAR
>
108
void
PRMParameter
<
GUM_SCALAR
>::
addChild
(
const
gum
::
prm
::
PRMClassElement
<
GUM_SCALAR
>&) {
109
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can not have children"
)
110
}
111
112
template
<
typename
GUM_SCALAR
>
113
PRMAttribute
<
GUM_SCALAR
>*
PRMParameter
<
GUM_SCALAR
>::
getCastDescendant
()
const
{
114
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can have cast descendants"
)
115
}
116
117
}
/* namespace prm */
118
}
// namespace gum
gum::Set::emplace
INLINE void emplace(Args &&... args)
Definition:
set_tpl.h:643
gum::prm::ParamScopeData::ParamScopeData
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
Definition:
PRMClass_tpl.h:1032