aGrUM  0.16.0
O3SystemFactory.h
Go to the documentation of this file.
1 
31 #include <memory>
32 #include <string>
33 
34 #include <agrum/PRM/PRM.h>
35 #include <agrum/PRM/PRMFactory.h>
37 #include <agrum/PRM/o3prm/O3prm.h>
38 #include <agrum/core/hashTable.h>
39 #include <agrum/core/set.h>
40 
41 #ifndef GUM_PRM_O3PRM_O3SYSTEM_FACTORY_H
42 # define GUM_PRM_O3PRM_O3SYSTEM_FACTORY_H
43 
44 namespace gum {
45  namespace prm {
46  namespace o3prm {
47 
57  template < typename GUM_SCALAR >
59  public:
61  O3PRM& o3_prm,
63  ErrorsContainer& errors);
71 
72  void build();
73 
74  private:
79 
81 
83 
85 
87 
88  bool __checkSystem(O3System& sys);
89 
90  bool __checkIncrements(O3System& sys);
91 
93  const O3Instance& inst);
94 
95  bool __checkInstance(O3System& sys);
96 
97  bool __checkAssignments(O3System& sys);
98  };
99 
100  } // namespace o3prm
101  } // namespace prm
102 } // namespace gum
103 
104 // always include the implementation of the templates
106 
107 
108 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
109 extern template class gum::prm::o3prm::O3SystemFactory< double >;
110 # endif
111 
112 
113 #endif // GUM_PRM_O3PRM_O3SYSTEM_FACTORY_H
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool __checkParameters(const PRMClass< GUM_SCALAR > &type, const O3Instance &inst)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
void __addIncrements(PRMFactory< GUM_SCALAR > &factory, O3System &sys)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
O3NameSolver< GUM_SCALAR > * __solver
This class is used contain and manipulate gum::ParseError.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
Builds gum::prm::PRMSystem from gum::prm::o3prm::O3System.
The class for generic Hash Tables.
Definition: hashTable.h:679
Resolves names for the different O3PRM factories.
Definition: O3NameSolver.h:57
Factory which builds a PRM<GUM_SCALAR>.
Definition: PRMType.h:50
The O3Instance is part of the AST of the O3PRM language.
Definition: O3prm.h:790
void __addAssignments(PRMFactory< GUM_SCALAR > &factory, O3System &sys)
The O3System is part of the AST of the O3PRM language.
Definition: O3prm.h:828
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
HashTable< std::string, O3Instance *> __nameMap
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
Definition: PRM.h:66
A PRMClass is an object of a PRM representing a fragment of a Bayesian Network which can be instantia...
Definition: PRMClass.h:66
void __addInstances(PRMFactory< GUM_SCALAR > &factory, O3System &sys)
O3SystemFactory< GUM_SCALAR > & operator=(const O3SystemFactory< GUM_SCALAR > &src)
O3SystemFactory(PRM< GUM_SCALAR > &prm, O3PRM &o3_prm, O3NameSolver< GUM_SCALAR > &solver, ErrorsContainer &errors)
The O3PRM is part of the AST of the O3PRM language.
Definition: O3prm.h:892
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.