31 #ifndef GUM_CONCRETE_LEAF_H 32 #define GUM_CONCRETE_LEAF_H 34 #include <agrum/agrum.h> 35 #include <agrum/tools/core/hashTable.h> 36 #include <agrum/tools/core/multiPriorityQueue.h> 37 #include <agrum/tools/core/sequence.h> 39 #include <agrum/tools/graphs/graphElements.h> 41 #include <agrum/FMDP/learning/core/templateStrategy.h> 42 #include <agrum/FMDP/learning/datastructure/leaves/abstractLeaf.h> 43 #include <agrum/FMDP/learning/datastructure/nodeDatabase.h> 57 template < TESTNAME AttributeSelection,
bool isScalar >
71 NodeDatabase< AttributeSelection, isScalar >* n1,
72 const Sequence< ValueType >* valueDomain) :
75 GUM_CONSTRUCTOR(ConcreteLeaf);
87 return SmallObjectAllocator::instance().allocate(s);
90 SmallObjectAllocator::instance().deallocate(p,
sizeof(ConcreteLeaf));
99 return effectif__(moda, Int2Type< isScalar >());
104 return (
double)n1__->effectif(Idx(valueDomain__->atPos(moda)));
107 return (
double)n1__->effectif(moda);
111 virtual double total()
const {
return double(n1__->nbObservation()); }
113 Idx nbModa()
const {
return nbModa__(Int2Type< isScalar >()); }
121 std::stringstream ss;
122 ss <<
"{ Id : " <<
this->id() <<
"}";
void * operator new(size_t s)
Allocators and Deallocators redefinition.
Idx nbModa__(Int2Type< false >) const
INLINE void emplace(Args &&... args)
NodeDatabase< AttributeSelection, isScalar > * n1__
const Sequence< ValueType > * valueDomain__
ValueSelect< isScalar, double, Idx >::type ValueType
~ConcreteLeaf()
Default destructor.
ConcreteLeaf(NodeId leafId, NodeDatabase< AttributeSelection, isScalar > *n1, const Sequence< ValueType > *valueDomain)
Default constructor.
virtual double total() const
double effectif__(Idx moda, Int2Type< false >) const
virtual double effectif(Idx moda) const
Gaves the leaf effectif for given modality.
void operator delete(void *p)
Default constructor.