49#ifndef GUM_CLUSTERED_LAYER_GENERATOR_H
50#define GUM_CLUSTERED_LAYER_GENERATOR_H
73 template < GUM_Numeric GUM_SCALAR >
125 std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >&
getLayer();
126 const std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >&
getLayer()
const;
134 std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >
_layers_;
143 std::vector< std::string >
a;
144 std::vector< std::string >
g;
146 std::vector< std::string >
c;
152 std::string_view type,
153 std::vector< MyData >& l);
156 std::string_view type,
157 std::vector< typename ClusteredLayerGenerator::MyData >& l);
160 std::string_view type,
161 std::vector< typename ClusteredLayerGenerator::MyData >& l,
166 std::string_view type,
167 std::vector< typename ClusteredLayerGenerator::MyData >& l,
174 std::vector< typename ClusteredLayerGenerator::MyData >& l);
177 std::vector< typename ClusteredLayerGenerator::MyData >& l);
The class for generic Hash Tables.
void _generateSystem_(PRMFactory< GUM_SCALAR > &factory, std::vector< typename ClusteredLayerGenerator::MyData > &l)
std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > & getLayer()
Getters and setters.
void _generateClassDag_(Size lvl, DAG &dag, Bijection< std::string, NodeId > &names, std::vector< typename ClusteredLayerGenerator::MyData > &l)
std::string _generateType_(PRMFactory< GUM_SCALAR > &f)
virtual PRM< GUM_SCALAR > * generate()
Proceeds with the generation of the PRM<GUM_SCALAR>.
Size getDomainSize() const
Getters and setters.
void _generateClasses_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< typename ClusteredLayerGenerator::MyData > &l)
void _generateClass_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< typename ClusteredLayerGenerator::MyData > &l, Size lvl, Set< std::string > &i)
ClusteredLayerGenerator()
Default constructor.
void _generateCluster_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< typename ClusteredLayerGenerator::MyData > &l, Size lvl, Set< std::string > &i)
void setLayers(const std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > &v)
Defines the structure of each layers.
std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > _layers_
void setClusterRatio(double ratio)
Define the odds of a given class to be replaced by a cluster.
HashTable< std::string, std::vector< std::string > * > _cluster_map_
void _generateInterfaces_(PRMFactory< GUM_SCALAR > &f, std::string_view type, std::vector< MyData > &l)
virtual ~ClusteredLayerGenerator()
Destructor.
double getClusterRatio() const
Returns the odds of a given class to be replaced by a cluster.
Size getMaxParents() const
Returns the max number of parents allowed for any attribute or aggregator.
void setMaxParents(Size s)
Returns the max number of parents allowed for any attribute or aggregator.
ClusteredLayerGenerator & operator=(const ClusteredLayerGenerator &source)
Copy operator.
void setDomainSize(Size s)
Set the domain size of generated types.
Factory which builds a PRM<GUM_SCALAR>.
PRMGenerator()
Default constructor.
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
Inline implementation of ClusteredLayerGenerator.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Headers of LayerGenerator.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities
std::vector< std::string > a
std::vector< std::string > c
std::vector< std::string > g