aGrUM  0.16.0
IBayesNetFactory.h
Go to the documentation of this file.
1 
29 #ifndef GUM_INTERFACE_BAYESNET_FACTORY_H
30 #define GUM_INTERFACE_BAYESNET_FACTORY_H
31 
32 #include <string>
33 #include <vector>
34 
38 
39 namespace gum {
50  public:
60  enum class factory_state : char {
61  NONE,
62  NETWORK,
63  VARIABLE,
64  PARENTS,
65  RAW_CPT,
66  FACT_CPT,
68  };
69 
71  // just to make some compilers happy
72  virtual ~IBayesNetFactory(){};
73 
78  void setVerbose() { __verbose = true; };
79 
80  void resetVerbose() { __verbose = false; };
81 
82  bool isVerbose() { return __verbose; };
83 
88  virtual const DiscreteVariable& varInBN(NodeId id) = 0;
91  virtual factory_state state() const = 0;
92  virtual NodeId variableId(const std::string& name) const = 0;
93  virtual Size cptDomainSize(NodeId n) const = 0;
94 
95  virtual void startNetworkDeclaration() = 0;
96  virtual void addNetworkProperty(const std::string& propName,
97  const std::string& propValue) = 0;
98  virtual void endNetworkDeclaration() = 0;
99  virtual void startVariableDeclaration() = 0;
100  virtual void variableName(const std::string& name) = 0;
101  virtual void variableDescription(const std::string& desc) = 0;
102  virtual void addModality(const std::string& name) = 0;
103  virtual void setVariableCPTImplementation(MultiDimAdressable* impl) = 0;
104  virtual NodeId endVariableDeclaration() = 0;
105  virtual void startParentsDeclaration(const std::string& var) = 0;
106  virtual void addParent(const std::string& var) = 0;
107  virtual void endParentsDeclaration() = 0;
108  virtual void startRawProbabilityDeclaration(const std::string& var) = 0;
109  virtual void rawConditionalTable(const std::vector< std::string >& variables,
110  const std::vector< float >& rawTable) = 0;
111  virtual void rawConditionalTable(const std::vector< float >& rawTable) = 0;
112  virtual void endRawProbabilityDeclaration() = 0;
113  virtual void startFactorizedProbabilityDeclaration(const std::string& var) = 0;
114  virtual void startFactorizedEntry() = 0;
115  virtual void endFactorizedEntry() = 0;
116  virtual void setParentModality(const std::string& parent,
117  const std::string& modality) = 0;
118  virtual void
119  setVariableValuesUnchecked(const std::vector< float >& values) = 0;
120  virtual void setVariableValues(const std::vector< float >& values) = 0;
121  virtual void endFactorizedProbabilityDeclaration() = 0;
122  virtual void setVariable(const DiscreteVariable& var) = 0;
123  virtual void setVariableCPT(const std::string& varName,
124  MultiDimAdressable* table,
125  bool redefineParents) = 0;
127 
128  private:
129  bool __verbose;
130  };
131 } /* namespace gum */
132 
133 #endif // GUM_ASBTRACT_BAYESNET_FACTORY_H
virtual void addNetworkProperty(const std::string &propName, const std::string &propValue)=0
Please.
virtual void variableName(const std::string &name)=0
Please.
IBayesNetFactory is the non-template interface for BayesNetFactory : many ways to build a BN do not d...
virtual void startNetworkDeclaration()=0
Please.
virtual void endNetworkDeclaration()=0
Please.
virtual void endFactorizedEntry()=0
Please.
Base class for discrete random variable.
virtual void setVariableCPT(const std::string &varName, MultiDimAdressable *table, bool redefineParents)=0
Please.
virtual void setVariableValuesUnchecked(const std::vector< float > &values)=0
Please.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void startParentsDeclaration(const std::string &var)=0
Please.
virtual void endParentsDeclaration()=0
Please.
factory_state
The enumeration of states in which the factory can be in.
virtual void addModality(const std::string &name)=0
Please.
virtual NodeId variableId(const std::string &name) const =0
Please.
virtual void setVariableValues(const std::vector< float > &values)=0
Please.
virtual void variableDescription(const std::string &desc)=0
Please.
virtual void startFactorizedProbabilityDeclaration(const std::string &var)=0
Please.
Abstract base class for all multi dimensionnal addressable.
virtual void endRawProbabilityDeclaration()=0
Please.
virtual void endFactorizedProbabilityDeclaration()=0
Please.
virtual Size cptDomainSize(NodeId n) const =0
Please.
virtual void setParentModality(const std::string &parent, const std::string &modality)=0
Please.
virtual const DiscreteVariable & varInBN(NodeId id)=0
Please.
virtual void rawConditionalTable(const std::vector< std::string > &variables, const std::vector< float > &rawTable)=0
Please.
virtual void startVariableDeclaration()=0
Please.
virtual NodeId endVariableDeclaration()=0
Please.
virtual void setVariableCPTImplementation(MultiDimAdressable *impl)=0
Please.
virtual void addParent(const std::string &var)=0
Please.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
virtual factory_state state() const =0
Please.
virtual void startFactorizedEntry()=0
Please.
virtual void setVariable(const DiscreteVariable &var)=0
Please.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void startRawProbabilityDeclaration(const std::string &var)=0
Please.
Size NodeId
Type for node ids.
Definition: graphElements.h:98
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.