aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::prm::PRM< GUM_SCALAR > Class Template Reference

This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>. More...

#include <agrum/PRM/PRM.h>

+ Collaboration diagram for gum::prm::PRM< GUM_SCALAR >:

Public Member Functions

Destructor.
 PRM ()
 Default constructor. More...
 
 ~PRM ()
 Destructor. More...
 
Getters and setters.
bool isType (const std::string &name) const
 
bool isClass (const std::string &name) const
 
bool isInterface (const std::string &name) const
 
bool isSystem (const std::string &name) const
 
PRMTypetype (const std::string &name)
 Returns a constant reference on a PRMType given it's name. More...
 
const PRMTypetype (const std::string &name) const
 Returns a constant reference on a PRMType given it's name. More...
 
const Set< PRMType *> & types () const
 Returns the Set of all PRMType in this PRM. More...
 
PRMClass< GUM_SCALAR > & getClass (const std::string &name)
 Returns a constant reference on a Class<GUM_SCALAR> given it's name. More...
 
const PRMClass< GUM_SCALAR > & getClass (const std::string &name) const
 Returns a constant reference on a Class<GUM_SCALAR> given it's name. More...
 
const Set< PRMClass< GUM_SCALAR > *> & classes () const
 Returns the Set of all Class<GUM_SCALAR> in this PRM. More...
 
PRMInterface< GUM_SCALAR > & getInterface (const std::string &name)
 Returns a constant reference on a Class<GUM_SCALAR> given it's name. More...
 
const PRMInterface< GUM_SCALAR > & getInterface (const std::string &name) const
 Returns a constant reference on a Class<GUM_SCALAR> given it's name. More...
 
const Set< PRMInterface< GUM_SCALAR > *> & interfaces () const
 Returns the Set of all Class<GUM_SCALAR> in this PRM. More...
 
PRMSystem< GUM_SCALAR > & getSystem (const std::string &name)
 Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name. More...
 
const PRMSystem< GUM_SCALAR > & getSystem (const std::string &name) const
 Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name. More...
 
const Set< PRMSystem< GUM_SCALAR > *> & systems () const
 Returns the Set of all Systems in this PRM. More...
 

Friends

class PRMFactory< GUM_SCALAR >
 

Detailed Description

template<typename GUM_SCALAR>
class gum::prm::PRM< GUM_SCALAR >

This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.

Definition at line 65 of file PRM.h.

Constructor & Destructor Documentation

◆ PRM() [1/2]

template<typename GUM_SCALAR >
gum::prm::PRM< GUM_SCALAR >::PRM ( )

Default constructor.

Definition at line 35 of file PRM_tpl.h.

35  {
36  GUM_CONSTRUCTOR(PRM);
38  }
void _addBuiltInTypes_()
Add the built-in types in the PRM.
Definition: PRM_tpl.h:63
PRM()
Default constructor.
Definition: PRM_tpl.h:35

◆ ~PRM()

template<typename GUM_SCALAR >
gum::prm::PRM< GUM_SCALAR >::~PRM ( )

Destructor.

Definition at line 42 of file PRM_tpl.h.

42  {
43  GUM_DESTRUCTOR(PRM);
44  _classMap_.clear();
45  _typeMap_.clear();
46  _systemMap_.clear();
47 
48  for (const auto sys: _systems_)
49  delete sys;
50 
51  for (const auto cla: _classes_)
52  delete cla;
53 
54  for (const auto inter: _interfaces_)
55  delete inter;
56 
57  for (const auto typ: _types_)
58  delete typ;
59  }
PRM()
Default constructor.
Definition: PRM_tpl.h:35
HashTable< std::string, PRMSystem< GUM_SCALAR > *> _systemMap_
Mapping of all Systems given their name.
Definition: PRM.h:231
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
Definition: PRM.h:225
HashTable< std::string, PRMClass< GUM_SCALAR > *> _classMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:213
Set< PRMClass< GUM_SCALAR > *> _classes_
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:216
Set< PRMSystem< GUM_SCALAR > *> _systems_
Set of all Systems in this PRM.
Definition: PRM.h:234
Set< PRMInterface< GUM_SCALAR > *> _interfaces_
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:222
Set< PRMType *> _types_
Set of all PRMType in this PRM.
Definition: PRM.h:228

◆ PRM() [2/2]

template<typename GUM_SCALAR>
gum::prm::PRM< GUM_SCALAR >::PRM ( const PRM< GUM_SCALAR > &  source)
private

Copy constructor.

Not Implemented.

Member Function Documentation

◆ _addBuiltInTypes_()

template<typename GUM_SCALAR >
void gum::prm::PRM< GUM_SCALAR >::_addBuiltInTypes_ ( )
private

Add the built-in types in the PRM.

Definition at line 63 of file PRM_tpl.h.

63  {
64  LabelizedVariable var("boolean", "built-in type", 0);
65  var.addLabel("false");
66  var.addLabel("true");
67  PRMType* boolean = new PRMType(var);
68  _types_.insert(boolean);
69  _typeMap_.insert("boolean", boolean);
70  }
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
Definition: PRM.h:225
Set< PRMType *> _types_
Set of all PRMType in this PRM.
Definition: PRM.h:228

◆ classes()

template<typename GUM_SCALAR >
INLINE const Set< PRMClass< GUM_SCALAR > *> & gum::prm::PRM< GUM_SCALAR >::classes ( ) const

Returns the Set of all Class<GUM_SCALAR> in this PRM.

Definition at line 119 of file PRM_tpl.h.

119  {
120  return _classes_;
121  }
Set< PRMClass< GUM_SCALAR > *> _classes_
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:216

◆ getClass() [1/2]

template<typename GUM_SCALAR >
INLINE PRMClass< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getClass ( const std::string &  name)

Returns a constant reference on a Class<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no class is found with the given name.

Definition at line 108 of file PRM_tpl.h.

108  {
109  return *(_classMap_[name]);
110  }
HashTable< std::string, PRMClass< GUM_SCALAR > *> _classMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:213

◆ getClass() [2/2]

template<typename GUM_SCALAR >
INLINE const PRMClass< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getClass ( const std::string &  name) const

Returns a constant reference on a Class<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no class is found with the given name.

Definition at line 114 of file PRM_tpl.h.

114  {
115  return *(_classMap_[name]);
116  }
HashTable< std::string, PRMClass< GUM_SCALAR > *> _classMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:213

◆ getInterface() [1/2]

template<typename GUM_SCALAR >
INLINE PRMInterface< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getInterface ( const std::string &  name)

Returns a constant reference on a Class<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no class is found with the given name.

Definition at line 124 of file PRM_tpl.h.

124  {
125  return *_interfaceMap_[name];
126  }
HashTable< std::string, PRMInterface< GUM_SCALAR > *> _interfaceMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:219

◆ getInterface() [2/2]

template<typename GUM_SCALAR >
INLINE const PRMInterface< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getInterface ( const std::string &  name) const

Returns a constant reference on a Class<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no class is found with the given name.

Definition at line 130 of file PRM_tpl.h.

130  {
131  return *_interfaceMap_[name];
132  }
HashTable< std::string, PRMInterface< GUM_SCALAR > *> _interfaceMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:219

◆ getSystem() [1/2]

template<typename GUM_SCALAR >
INLINE PRMSystem< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getSystem ( const std::string &  name)

Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no model is found with the given name.

Definition at line 140 of file PRM_tpl.h.

140  {
141  return *(_systemMap_[name]);
142  }
HashTable< std::string, PRMSystem< GUM_SCALAR > *> _systemMap_
Mapping of all Systems given their name.
Definition: PRM.h:231

◆ getSystem() [2/2]

template<typename GUM_SCALAR >
INLINE const PRMSystem< GUM_SCALAR > & gum::prm::PRM< GUM_SCALAR >::getSystem ( const std::string &  name) const

Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name.

Exceptions
NotFoundRaised if no model is found with the given name.

Definition at line 146 of file PRM_tpl.h.

146  {
147  return *(_systemMap_[name]);
148  }
HashTable< std::string, PRMSystem< GUM_SCALAR > *> _systemMap_
Mapping of all Systems given their name.
Definition: PRM.h:231

◆ interfaces()

template<typename GUM_SCALAR >
INLINE const Set< PRMInterface< GUM_SCALAR > *> & gum::prm::PRM< GUM_SCALAR >::interfaces ( ) const

Returns the Set of all Class<GUM_SCALAR> in this PRM.

Definition at line 135 of file PRM_tpl.h.

135  {
136  return _interfaces_;
137  }
Set< PRMInterface< GUM_SCALAR > *> _interfaces_
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:222

◆ isClass()

template<typename GUM_SCALAR >
INLINE bool gum::prm::PRM< GUM_SCALAR >::isClass ( const std::string &  name) const
Parameters
nameThe name of a possible Class<GUM_SCALAR> in this PRM.
Returns
Returns true if name names a Class<GUM_SCALAR> in this PRM.

Definition at line 78 of file PRM_tpl.h.

78  {
79  return _classMap_.exists(name);
80  }
HashTable< std::string, PRMClass< GUM_SCALAR > *> _classMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:213

◆ isInterface()

template<typename GUM_SCALAR >
INLINE bool gum::prm::PRM< GUM_SCALAR >::isInterface ( const std::string &  name) const
Parameters
nameThe name of a possible PRMInterface<GUM_SCALAR> in this PRM.
Returns
Returns true if name names a PRMInterface<GUM_SCALAR> in this PRM.

Definition at line 83 of file PRM_tpl.h.

83  {
84  return _interfaceMap_.exists(name);
85  }
HashTable< std::string, PRMInterface< GUM_SCALAR > *> _interfaceMap_
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:219

◆ isSystem()

template<typename GUM_SCALAR >
INLINE bool gum::prm::PRM< GUM_SCALAR >::isSystem ( const std::string &  name) const
Parameters
nameThe name of a possible PRMSystem<GUM_SCALAR> in this PRM.
Returns
Returns true if name names a PRMSystem<GUM_SCALAR> in this PRM.

Definition at line 88 of file PRM_tpl.h.

88  {
89  return _systemMap_.exists(name);
90  }
HashTable< std::string, PRMSystem< GUM_SCALAR > *> _systemMap_
Mapping of all Systems given their name.
Definition: PRM.h:231

◆ isType()

template<typename GUM_SCALAR >
INLINE bool gum::prm::PRM< GUM_SCALAR >::isType ( const std::string &  name) const
Parameters
nameThe name of a possible PRMType in this PRM.
Returns
Returns true if name names a PRMType in this PRM.

Definition at line 73 of file PRM_tpl.h.

73  {
74  return _typeMap_.exists(name);
75  }
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
Definition: PRM.h:225

◆ operator=()

template<typename GUM_SCALAR>
PRM< GUM_SCALAR >& gum::prm::PRM< GUM_SCALAR >::operator= ( const PRM< GUM_SCALAR > &  source)
private

Copy operator.

Not Implemented.

◆ systems()

template<typename GUM_SCALAR >
INLINE const Set< PRMSystem< GUM_SCALAR > *> & gum::prm::PRM< GUM_SCALAR >::systems ( ) const

Returns the Set of all Systems in this PRM.

Definition at line 151 of file PRM_tpl.h.

151  {
152  return _systems_;
153  }
Set< PRMSystem< GUM_SCALAR > *> _systems_
Set of all Systems in this PRM.
Definition: PRM.h:234

◆ type() [1/2]

template<typename GUM_SCALAR >
INLINE PRMType & gum::prm::PRM< GUM_SCALAR >::type ( const std::string &  name)

Returns a constant reference on a PRMType given it's name.

Exceptions
NotFoundRaised if no type is found with the given name.

Definition at line 93 of file PRM_tpl.h.

93  {
94  return *(_typeMap_[name]);
95  }
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
Definition: PRM.h:225

◆ type() [2/2]

template<typename GUM_SCALAR >
INLINE const PRMType & gum::prm::PRM< GUM_SCALAR >::type ( const std::string &  name) const

Returns a constant reference on a PRMType given it's name.

Exceptions
NotFoundRaised if no type is found with the given name.

Definition at line 98 of file PRM_tpl.h.

98  {
99  return *(_typeMap_[name]);
100  }
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
Definition: PRM.h:225

◆ types()

template<typename GUM_SCALAR >
INLINE const Set< PRMType *> & gum::prm::PRM< GUM_SCALAR >::types ( ) const

Returns the Set of all PRMType in this PRM.

Definition at line 103 of file PRM_tpl.h.

103  {
104  return _types_;
105  }
Set< PRMType *> _types_
Set of all PRMType in this PRM.
Definition: PRM.h:228

Friends And Related Function Documentation

◆ PRMFactory< GUM_SCALAR >

template<typename GUM_SCALAR>
friend class PRMFactory< GUM_SCALAR >
friend

Definition at line 67 of file PRM.h.

Member Data Documentation

◆ _classes_

template<typename GUM_SCALAR>
Set< PRMClass< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_classes_
private

Set of all Class<GUM_SCALAR> in this PRM.

Definition at line 216 of file PRM.h.

◆ _classMap_

template<typename GUM_SCALAR>
HashTable< std::string, PRMClass< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_classMap_
private

Mapping of all Class<GUM_SCALAR> given their name.

Definition at line 213 of file PRM.h.

◆ _interfaceMap_

template<typename GUM_SCALAR>
HashTable< std::string, PRMInterface< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_interfaceMap_
private

Mapping of all Class<GUM_SCALAR> given their name.

Definition at line 219 of file PRM.h.

◆ _interfaces_

template<typename GUM_SCALAR>
Set< PRMInterface< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_interfaces_
private

Set of all Class<GUM_SCALAR> in this PRM.

Definition at line 222 of file PRM.h.

◆ _systemMap_

template<typename GUM_SCALAR>
HashTable< std::string, PRMSystem< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_systemMap_
private

Mapping of all Systems given their name.

Definition at line 231 of file PRM.h.

◆ _systems_

template<typename GUM_SCALAR>
Set< PRMSystem< GUM_SCALAR >* > gum::prm::PRM< GUM_SCALAR >::_systems_
private

Set of all Systems in this PRM.

Definition at line 234 of file PRM.h.

◆ _typeMap_

template<typename GUM_SCALAR>
HashTable< std::string, PRMType* > gum::prm::PRM< GUM_SCALAR >::_typeMap_
private

Mapping of all PRMType given their name.

Definition at line 225 of file PRM.h.

◆ _types_

template<typename GUM_SCALAR>
Set< PRMType* > gum::prm::PRM< GUM_SCALAR >::_types_
private

Set of all PRMType in this PRM.

Definition at line 228 of file PRM.h.


The documentation for this class was generated from the following files: