BALL  1.5.0
genes.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marcel Schumann $
3 // $Authors: Jan Fuhrmann, Marcel Schumann $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_DOCKING_GENETICDOCK_GENES_H
7 #define BALL_DOCKING_GENETICDOCK_GENES_H
8 
10 
11 #include <vector>
12 #include <random>
13 
14 namespace BALL
15 {
19  {
20  public:
21 
24  GenericGene();
25 
28  virtual ~GenericGene(){};
29 
32  virtual GenericGene* mate(GenericGene* gg) = 0;
33 
36  virtual void mutate() = 0;
37 
40  virtual GenericGene* clone() = 0;
41 
44  virtual void randomize() = 0;
45 
46  protected:
47  double randomGeneValue();
48  int randomGenePosition(int from, int to);
49 
50  private:
51  std::mt19937 rng_;
52  std::uniform_real_distribution<double> dist_;
53  };
54 
58  {
59  public:
60 
63  DoubleGene();
64 
67  virtual ~DoubleGene();
68 
71  DoubleGene(Size i);
72 
75  virtual GenericGene *mate(GenericGene * gg);
76 
79  virtual void mutate();
80 
83  std::vector<double> getValues();
84 
87  void setValue(std::vector<double> v);
88 
91  virtual GenericGene *clone();
92 
95  void randomize();
96 
97  private:
98 
101  std::vector<double> values_;
102  };
103 
104 
108  {
109  public:
110 
113  QuaternionGene();
114 
117  virtual ~QuaternionGene();
118 
121  virtual GenericGene *mate(GenericGene *gg);
122 
125  virtual void mutate();
126 
129  Quaternion getValue();
130 
133  virtual GenericGene *clone();
134 
137  void randomize();
138 
139  private:
140 
143  Quaternion quat_;
144  };
145 }
146 
147 #endif /* BALL_DOCKING_GENETICDOCK_GENES_H */
BALL::QuaternionGene
Definition: genes.h:107
BALL::DoubleGene
Definition: genes.h:57
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition: COMMON/global.h:64
BALL
Definition: constants.h:12
quaternion.h
BALL_SIZE_TYPE
BALL::TQuaternion< float >
BALL::GenericGene::~GenericGene
virtual ~GenericGene()
Definition: genes.h:28
BALL::GenericGene
Definition: genes.h:18
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50