forpy  2
igaincalculator.h
Go to the documentation of this file.
1 /* Author: Christoph Lassner. */
2 #pragma once
3 #ifndef FORPY_GAINS_IGAINCALCULATOR_H_
4 #define FORPY_GAINS_IGAINCALCULATOR_H_
5 
6 #include "../global.h"
7 
8 #include "../util/serialization/basics.h"
9 
10 #include <vector>
11 
12 #include "../types.h"
13 
14 namespace forpy {
30  public:
31  virtual ~IGainCalculator() {}
32 
34  virtual float operator()(const std::vector<float> &members_numbers_left,
35  const std::vector<float> &members_numbers_right)
36  VIRTUAL(float);
37 
40  virtual float operator()(const float &current_entropy,
41  const std::vector<float> &members_numbers_left,
42  const std::vector<float> &members_numbers_right)
43  VIRTUAL(float);
44 
47  virtual float approx(const std::vector<float> &members_numbers_left,
48  const std::vector<float> &members_numbers_right)
49  VIRTUAL(float);
50 
54  virtual bool operator==(const IGainCalculator &rhs) const VIRTUAL(bool);
55 
56  protected:
58 
59  private:
61 
62  friend class cereal::access;
63  template <class Archive>
64  void serialize(Archive &, const uint &) {}
65 };
66 }; // namespace forpy
67 #endif // FORPY_GAINS_IGAINCALCULATOR_H_
Interface for a gain calculator class.
virtual bool operator==(const IGainCalculator &rhs) const VIRTUAL(bool)
void serialize(Archive &, const uint &)
friend class cereal::access
virtual float operator()(const std::vector< float > &members_numbers_left, const std::vector< float > &members_numbers_right) VIRTUAL(float)
#define VIRTUAL(type)
Definition: global.h:31
virtual float approx(const std::vector< float > &members_numbers_left, const std::vector< float > &members_numbers_right) VIRTUAL(float)
unsigned int uint
Convenience typedef for unsigned int.
Definition: types.h:113
DISALLOW_COPY_AND_ASSIGN(IGainCalculator)