49#ifndef GUM_PRM_OBJECT_H
50#define GUM_PRM_OBJECT_H
90 enum class prm_type :
char { ALL, CLASS, PRM_INTERFACE, CLASS_ELT, TYPE, SYSTEM, INSTANCE };
92 static std::string LEFT_CAST();
94 static std::string RIGHT_CAST();
97 static std::string enum2str(prm_type type);
100 static INLINE
bool isClass(
const PRMObject& obj);
103 static INLINE
bool isInterface(
const PRMObject& obj);
106 static INLINE
bool isInstance(
const PRMObject& obj);
118 explicit PRMObject(std::string_view name);
144 const std::string& name()
const;
150 void name(std::string_view name);
203 template < GUM_Numeric GUM_SCALAR >
205 template < GUM_Numeric GUM_SCALAR >
207 template < GUM_Numeric GUM_SCALAR >
209 template < GUM_Numeric GUM_SCALAR >
211 template < GUM_Numeric GUM_SCALAR >
213 template < GUM_Numeric GUM_SCALAR >
215 template < GUM_Numeric GUM_SCALAR >
217 template < GUM_Numeric GUM_SCALAR >
219 template < GUM_Numeric GUM_SCALAR >
221 template < GUM_Numeric GUM_SCALAR >
Inline implementation of PRMObject.
PRMAttribute is a member of a Class in a PRM.
<agrum/PRM/classElementContainer.h>
Abstract class representing an element of PRM class.
A PRMClass is an object of a PRM representing a fragment of a Bayesian network which can be instantia...
An PRMInstance is a Bayesian network fragment defined by a Class and used in a PRMSystem.
An PRMInterface is implemented by a Class<GUM_SCALAR> and defines a set of PRMReferenceSlot<GUM_SCALA...
Abstract base class for any element defined in a PRM.
PRMObject(std::string_view name)
Constructor.
bool operator==(const PRMObject &obj) const
To PRMObject are equal if they have the same name (which is unique).
prm_type
Enumeration of the different types of objects handled by a PRM.
bool operator!=(const PRMObject &obj) const
To PRMObject are equal if they have the same name (which is unique).
PRMObject & operator=(const PRMObject &source)
Copy operator.
virtual prm_type obj_type() const =0
Returns the type of this object.
A PRMReferenceSlot represent a relation between two PRMClassElementContainer.
A PRMSlotChain represents a sequence of gum::prm::PRMClassElement<GUM_SCALAR> where the n-1 first gum...
A PRMSystem is a container of PRMInstance and describe a relational skeleton.
This is a decoration of the DiscreteVariable class.
namespace for all probabilistic relational models entities
std::ostream & operator<<(std::ostream &out, PRMObject::prm_type obj_type)
For printing PRMType easily.
gum is the global namespace for all aGrUM entities