aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
PRMFuncAttribute_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 Inline implementation of gum::PRMFuncAttribute
25
*
26
* @author Lionel TORTI and Pierre-Henri WUILLEMIN(@LIP6)
27
*/
28
29
30
namespace
gum
{
31
namespace
prm
{
32
33
template
<
typename
GUM_SCALAR >
34
INLINE PRMFuncAttribute<
GUM_SCALAR
>::
PRMFuncAttribute
(
35
const
std
::
string
&
name
,
36
const
PRMType
&
type
,
37
MultiDimImplementation
<
GUM_SCALAR
>*
impl
) :
38
PRMScalarAttribute
<
GUM_SCALAR
>(
name
,
type
,
impl
) {
39
std
::
stringstream
str
;
40
str
<<
"In FuncAttribute("
<<
name
<<
", "
<<
type
.
name
() <<
", "
<<
impl
<<
")"
;
41
GUM_CONSTRUCTOR
(
PRMFuncAttribute
);
42
}
43
44
template
<
typename
GUM_SCALAR
>
45
INLINE
PRMFuncAttribute
<
GUM_SCALAR
>::~
PRMFuncAttribute
() {
46
GUM_DESTRUCTOR
(
PRMFuncAttribute
);
47
}
48
49
template
<
typename
GUM_SCALAR
>
50
INLINE
void
51
PRMFuncAttribute
<
GUM_SCALAR
>::
addParent
(
const
PRMClassElement
<
GUM_SCALAR
>&
elt
) {}
52
53
template
<
typename
GUM_SCALAR
>
54
INLINE
void
PRMFuncAttribute
<
GUM_SCALAR
>::
addChild
(
const
PRMClassElement
<
GUM_SCALAR
>&
elt
) {
55
}
56
57
template
<
typename
GUM_SCALAR
>
58
INLINE
PRMFuncAttribute
<
GUM_SCALAR
>::
PRMFuncAttribute
(
59
const
PRMFuncAttribute
<
GUM_SCALAR
>&
source
) :
60
PRMScalarAttribute
<
GUM_SCALAR
>(
source
) {
61
GUM_CONS_CPY
(
PRMFuncAttribute
);
62
GUM_ERROR
(
FatalError
,
"illegal call to copy constructor"
)
63
}
64
65
template
<
typename
GUM_SCALAR
>
66
INLINE
PRMFuncAttribute
<
GUM_SCALAR
>&
67
PRMFuncAttribute
<
GUM_SCALAR
>::
operator
=(
const
PRMFuncAttribute
<
GUM_SCALAR
>&
from
) {
68
GUM_ERROR
(
FatalError
,
"illegal call to copy operator"
)
69
}
70
71
template
<
typename
GUM_SCALAR
>
72
INLINE
void
PRMFuncAttribute
<
GUM_SCALAR
>::
setCpf_
(
Potential
<
GUM_SCALAR
>*
cpf
) {
73
GUM_ERROR
(
OperationNotAllowed
,
"Cannot change CPF of a functional attribute"
)
74
}
75
76
}
/* namespace prm */
77
}
/* 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