aGrUM
0.20.2
a C++ library for (probabilistic) graphical models
PRMParameter_tpl.h
Go to the documentation of this file.
1
/**
2
*
3
* Copyright 2005-2020 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
(
44
const
PRMParameter
<
GUM_SCALAR
>&
source
) :
45
PRMClassElement
<
GUM_SCALAR
>(
source
.
name
()),
46
type__
(
source
.
valueType
()),
value__
(
source
.
value
()) {
47
GUM_ERROR
(
OperationNotAllowed
,
"cannot copy Paramter<GUM_SCALAR"
);
48
}
49
50
template
<
typename
GUM_SCALAR
>
51
PRMParameter
<
GUM_SCALAR
>&
PRMParameter
<
GUM_SCALAR
>::
operator
=(
52
const
PRMParameter
<
GUM_SCALAR
>&
from
) {
53
GUM_ERROR
(
OperationNotAllowed
,
"cannot copy Paramter<GUM_SCALAR"
);
54
}
55
56
template
<
typename
GUM_SCALAR
>
57
PRMParameter
<
GUM_SCALAR
>::~
PRMParameter
() {
58
GUM_DESTRUCTOR
(
PRMParameter
);
59
}
60
61
template
<
typename
GUM_SCALAR
>
62
typename
PRMClassElement
<
GUM_SCALAR
>::
ClassElementType
63
PRMParameter
<
GUM_SCALAR
>::
elt_type
()
const
{
64
return
PRMClassElement
<
GUM_SCALAR
>::
ClassElementType
::
prm_parameter
;
65
}
66
67
template
<
typename
GUM_SCALAR
>
68
GUM_SCALAR
PRMParameter
<
GUM_SCALAR
>::
value
()
const
{
69
return
value__
;
70
}
71
72
template
<
typename
GUM_SCALAR
>
73
void
PRMParameter
<
GUM_SCALAR
>::
value
(
GUM_SCALAR
value
) {
74
value__
=
value
;
75
}
76
77
template
<
typename
GUM_SCALAR
>
78
typename
PRMParameter
<
GUM_SCALAR
>::
ParameterType
79
PRMParameter
<
GUM_SCALAR
>::
valueType
()
const
{
80
return
type__
;
81
}
82
83
template
<
typename
GUM_SCALAR
>
84
PRMType
&
PRMParameter
<
GUM_SCALAR
>::
type
() {
85
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a type"
);
86
}
87
88
template
<
typename
GUM_SCALAR
>
89
const
PRMType
&
PRMParameter
<
GUM_SCALAR
>::
type
()
const
{
90
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a type"
);
91
}
92
93
template
<
typename
GUM_SCALAR
>
94
Potential
<
GUM_SCALAR
>&
PRMParameter
<
GUM_SCALAR
>::
cpf
() {
95
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a cpf"
);
96
}
97
98
template
<
typename
GUM_SCALAR
>
99
const
Potential
<
GUM_SCALAR
>&
PRMParameter
<
GUM_SCALAR
>::
cpf
()
const
{
100
GUM_ERROR
(
OperationNotAllowed
,
"Parameters do not have a cpf"
);
101
}
102
103
template
<
typename
GUM_SCALAR
>
104
void
PRMParameter
<
GUM_SCALAR
>::
addParent
(
105
const
gum
::
prm
::
PRMClassElement
<
GUM_SCALAR
>&) {
106
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can not have parents"
);
107
}
108
109
template
<
typename
GUM_SCALAR
>
110
void
PRMParameter
<
GUM_SCALAR
>::
addChild
(
111
const
gum
::
prm
::
PRMClassElement
<
GUM_SCALAR
>&) {
112
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can not have children"
);
113
}
114
115
template
<
typename
GUM_SCALAR
>
116
PRMAttribute
<
GUM_SCALAR
>*
117
PRMParameter
<
GUM_SCALAR
>::
getCastDescendant
()
const
{
118
GUM_ERROR
(
OperationNotAllowed
,
"Parameters can have cast descendants"
);
119
}
120
121
}
/* namespace prm */
122
}
// namespace gum
gum::Set::emplace
INLINE void emplace(Args &&... args)
Definition:
set_tpl.h:669
gum::prm::ParamScopeData::ParamScopeData
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
Definition:
PRMClass_tpl.h:1101