aGrUM  0.20.2
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  }
PRM()
Default constructor.
Definition: PRM_tpl.h:35
void addBuiltInTypes__()
Add the built-in types in the PRM.
Definition: PRM_tpl.h:63

◆ ~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:232
Set< PRMInterface< GUM_SCALAR > *> interfaces__
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:223
Set< PRMSystem< GUM_SCALAR > *> systems__
Set of all Systems in this PRM.
Definition: PRM.h:235
HashTable< std::string, PRMType *> typeMap__
Mapping of all PRMType given their name.
Definition: PRM.h:226
Set< PRMType *> types__
Set of all PRMType in this PRM.
Definition: PRM.h:229
Set< PRMClass< GUM_SCALAR > *> classes__
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:217
HashTable< std::string, PRMClass< GUM_SCALAR > *> classMap__
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:214

◆ 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:226
Set< PRMType *> types__
Set of all PRMType in this PRM.
Definition: PRM.h:229

◆ 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 121 of file PRM_tpl.h.

121  {
122  return classes__;
123  }
Set< PRMClass< GUM_SCALAR > *> classes__
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:217

◆ 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 109 of file PRM_tpl.h.

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

◆ 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 115 of file PRM_tpl.h.

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

◆ 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 127 of file PRM_tpl.h.

127  {
128  return *interfaceMap__[name];
129  }
HashTable< std::string, PRMInterface< GUM_SCALAR > *> interfaceMap__
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:220

◆ 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 133 of file PRM_tpl.h.

133  {
134  return *interfaceMap__[name];
135  }
HashTable< std::string, PRMInterface< GUM_SCALAR > *> interfaceMap__
Mapping of all Class<GUM_SCALAR> given their name.
Definition: PRM.h:220

◆ 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 145 of file PRM_tpl.h.

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

◆ 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 151 of file PRM_tpl.h.

151  {
152  return *(systemMap__[name]);
153  }
HashTable< std::string, PRMSystem< GUM_SCALAR > *> systemMap__
Mapping of all Systems given their name.
Definition: PRM.h:232

◆ 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 139 of file PRM_tpl.h.

139  {
140  return interfaces__;
141  }
Set< PRMInterface< GUM_SCALAR > *> interfaces__
Set of all Class<GUM_SCALAR> in this PRM.
Definition: PRM.h:223

◆ 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:214

◆ 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:220

◆ 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:232

◆ 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:226

◆ 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 157 of file PRM_tpl.h.

157  {
158  return systems__;
159  }
Set< PRMSystem< GUM_SCALAR > *> systems__
Set of all Systems in this PRM.
Definition: PRM.h:235

◆ 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:226

◆ 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:226

◆ 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:229

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 217 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 214 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 220 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 223 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 232 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 235 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 226 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 229 of file PRM.h.


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