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 >
45  _value_(source.value()) {
46  GUM_ERROR(OperationNotAllowed, "cannot copy Paramter<GUM_SCALAR")
47  }
48 
49  template < typename GUM_SCALAR >
52  GUM_ERROR(OperationNotAllowed, "cannot copy Paramter<GUM_SCALAR")
53  }
54 
55  template < typename GUM_SCALAR >
58  }
59 
60  template < typename GUM_SCALAR >
64  }
65 
66  template < typename GUM_SCALAR >
68  return _value_;
69  }
70 
71  template < typename GUM_SCALAR >
73  _value_ = value;
74  }
75 
76  template < typename GUM_SCALAR >
79  return _type_;
80  }
81 
82  template < typename GUM_SCALAR >
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 >
94  GUM_ERROR(OperationNotAllowed, "Parameters do not have a cpf")
95  }
96 
97  template < typename GUM_SCALAR >
99  GUM_ERROR(OperationNotAllowed, "Parameters do not have a cpf")
100  }
101 
102  template < typename GUM_SCALAR >
104  GUM_ERROR(OperationNotAllowed, "Parameters can not have parents")
105  }
106 
107  template < typename GUM_SCALAR >
109  GUM_ERROR(OperationNotAllowed, "Parameters can not have children")
110  }
111 
112  template < typename GUM_SCALAR >
114  GUM_ERROR(OperationNotAllowed, "Parameters can have cast descendants")
115  }
116 
117  } /* namespace prm */
118 } // namespace gum
INLINE void emplace(Args &&... args)
Definition: set_tpl.h:643
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)