42 #ifndef GUM_PRM_O3PRM_O3CLASS_FACTORY_H 43 # define GUM_PRM_O3PRM_O3CLASS_FACTORY_H 58 template <
typename GUM_SCALAR >
192 const std::string& s);
227 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 232 #endif // GUM_PRM_O3PRM_O3CLASS_FACTORY_H std::pair< O3LabelList, O3FormulaList > O3Rule
bool __checkAggregateForDeclaration(O3Class &o3class, O3Aggregate &agg)
PRMParameter is a member of a Class in a PRM.
void completeAggregates()
bool __checkLabelsValues(const PRMClass< GUM_SCALAR > &c, const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
bool __checkAttributeForCompletion(const O3Class &o3_c, O3Attribute &attr)
void __addParamsToForms(const HashTable< std::string, const PRMParameter< GUM_SCALAR > * > &scope, O3RuleCPT::O3Rule &rule)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool __checkAttributeForDeclaration(O3Class &o3_c, O3Attribute &attr)
void buildReferenceSlots()
bool __checkRawCPT(const PRMClass< GUM_SCALAR > &c, O3RawCPT &attr)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The O3Aggregate is part of the AST of the O3PRM language.
bool __checkReferenceSlot(O3Class &c, O3ReferenceSlot &ref)
void __setO3ClassCreationOrder()
Abstract class representing an element of PRM class.
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.
This class is used contain and manipulate gum::ParseError.
The O3Label is part of the AST of the O3PRM language.
bool __checkParent(const PRMClass< GUM_SCALAR > &c, const O3Label &prnt)
The O3Attribute is part of the AST of the O3PRM language.
void __addReferenceSlots(O3Class &c)
void __completeAggregates(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool __checkLocalParent(const PRMClass< GUM_SCALAR > &c, const O3Label &prnt)
void buildImplementations()
bool __checkRuleCPT(const PRMClass< GUM_SCALAR > &c, O3RuleCPT &attr)
bool __checkImplementation(O3Class &c)
bool __checkRemoteParent(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &prnt)
HashTable< std::string, gum::NodeId > __nameMap
void __completeAttribute(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
The O3RuleCPT is part of the AST of the O3PRM language.
Resolves names for the different O3PRM factories.
bool __checkAggTypeLegality(O3Class &o3class, O3Aggregate &agg)
bool __checkAggParameters(O3Class &o3class, O3Aggregate &agg, const PRMType *t)
The O3Class is part of the AST of the O3PRM language.
O3ClassFactory(PRM< GUM_SCALAR > &prm, O3PRM &o3_prm, O3NameSolver< GUM_SCALAR > &solver, ErrorsContainer &errors)
bool __checkParameterValue(O3Aggregate &agg, const gum::prm::PRMType &t)
Factory which builds a PRM<GUM_SCALAR>.
The O3ReferenceSlot is part of the AST of the O3PRM language.
HashTable< NodeId, O3Class *> __nodeMap
bool __checkAggregateForCompletion(O3Class &o3class, O3Aggregate &agg)
HashTable< std::string, O3Class *> __classMap
void __declareAggregates(O3Class &c)
This is a decoration of the DiscreteVariable class.
bool __checkLabelsNumber(const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
Builds gum::prm::Class from gum::prm::o3prm::O3Class.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool __checkRuleCPTSumsTo1(const PRMClass< GUM_SCALAR > &c, const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
The O3RawCPT is part of the AST of the O3PRM language.
std::vector< O3Class *> __o3Classes
bool __checkSlotChainLink(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &chain, const std::string &s)
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
<agrum/PRM/classElementContainer.h>
ErrorsContainer * __errors
A PRMClass is an object of a PRM representing a fragment of a Bayesian Network which can be instantia...
O3NameSolver< GUM_SCALAR > * __solver
O3ClassFactory< GUM_SCALAR > & operator=(const O3ClassFactory< GUM_SCALAR > &src)
bool __checkAndAddArcsToDag()
void __addParameters(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
const PRMClassElement< GUM_SCALAR > * __resolveSlotChain(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &chain)
void completeAttributes()
bool __checkParametersNumber(O3Aggregate &agg, Size n)
The O3PRM is part of the AST of the O3PRM language.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
void __declareAttribute(O3Class &c)
const PRMType * __checkAggParents(O3Class &o3class, O3Aggregate &agg)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool __checkAndAddNodesToDag()
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
PRM< GUM_SCALAR > * __prm