Direct Graphical Models  v.1.7.0
SamplesAccumulator.h
1 // Samples Accumulator class interface
2 // Written by Sergey G. Kosov in 2015, 2017 for Project X
3 #pragma once
4 
5 #include "types.h"
6 
7 namespace DirectGraphicalModels
8 {
9  // ================================ Samples Accumulator Class ==============================
16  {
17  public:
25  CSamplesAccumulator(byte nStates, size_t maxSamples)
26  : m_vSamplesAcc(vec_mat_t(nStates))
27  , m_vNumInputSamples(vec_int_t(nStates, 0))
28  , m_maxSamples(maxSamples ? static_cast<int>(maxSamples) : std::numeric_limits<int>::max())
29  { }
32 
34 
38  void reset(void);
44  void addSample(const Mat &featureVector, byte state);
50  Mat getSamplesContainer(byte state) const { return m_vSamplesAcc[state]; }
56  int getNumSamples(byte state) const;
66  int getNumInputSamples(byte state) const;
71  void release(byte state);
72 
73 
74  private:
75  vec_mat_t m_vSamplesAcc; // = vec_mat_t(nStates); // Samples container for all states
76  vec_int_t m_vNumInputSamples; // = vec_int_t(nStates, 0); // Amount of input samples for all states
77  int m_maxSamples; // = INFINITY; // for optimisation purposes
78  };
79 }
CSamplesAccumulator & operator=(const CSamplesAccumulator &)=delete
int getNumSamples(byte state) const
Returns the number of stored samples in container for the state (class) state.
void release(byte state)
Releases memory of container for the state (class) state.
void addSample(const Mat &featureVector, byte state)
Adds new sample to the accumulator.
STL namespace.
void reset(void)
Resets the accumulator.
Samples accumulator abstract class.
Mat getSamplesContainer(byte state) const
Returns samples container for the state (class) state.
int getNumInputSamples(byte state) const
Returns the number of input samples in container for the state (class) state.
CSamplesAccumulator(byte nStates, size_t maxSamples)
Constructor.