49#ifndef GUM_LAYER_GENERATOR_H
50#define GUM_LAYER_GENERATOR_H
74 template < GUM_Numeric GUM_SCALAR >
136 void setLayers(
const std::vector< LayerData >& v);
138 std::vector< LayerData >&
getLayer();
139 const std::vector< LayerData >&
getLayer()
const;
154 std::vector< std::string >
a;
155 std::vector< std::string >
g;
157 std::vector< std::string >
c;
163 std::string_view type,
164 std::vector< MyData >& l);
167 std::string_view type,
168 std::vector< typename LayerGenerator::MyData >& l);
173 std::vector< typename LayerGenerator::MyData >& l);
176 std::vector< typename LayerGenerator::MyData >& l);
Size getDomainSize() const
Returns the domain size of generated types.
Size getMaxParents() const
Returns the max number of parents allowed for any attribute or aggregator.
void _generateClassDag_(Size lvl, DAG &dag, Bijection< std::string, NodeId > &names, std::vector< typename LayerGenerator::MyData > &l)
std::string _generateType_(PRMFactory< GUM_SCALAR > &f)
void setLayers(const std::vector< LayerData > &v)
Defines the structure of each layers.
virtual PRM< GUM_SCALAR > * generate()
Proceeds with the generation of the PRM<GUM_SCALAR>.
void setDomainSize(Size s)
Set the domain size of generated types.
LayerGenerator & operator=(const LayerGenerator &source)
Copy operator.
void _generateClasses_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< typename LayerGenerator::MyData > &l)
std::vector< LayerData > _layers_
void _generateSystem_(PRMFactory< GUM_SCALAR > &factory, std::vector< typename LayerGenerator::MyData > &l)
void _generateInterfaces_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< MyData > &l)
virtual ~LayerGenerator()
Destructor.
std::vector< LayerData > & getLayer()
Returns the domain size of generated types.
void setMaxParents(Size s)
Returns the max number of parents allowed for any attribute or aggregator.
LayerGenerator()
Default constructor.
Factory which builds a PRM<GUM_SCALAR>.
PRMGenerator()
Default constructor.
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Inline implementation of LayerGenerator.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities
Class for generating Bayesian networks.
std::vector< std::string > c
std::vector< std::string > a
std::vector< std::string > g