LCFIVertex  0.7.2
InputNormaliser.h
1 #ifndef INPUTNORMALISER_H
2 #define INPUTNORMALISER_H
3 
4 #include "NeuralNetConfig.h"
5 
6 #ifdef __CINT__
7 #include "NeuralNet.h"
8 #else
9 //namespace nnet added 15/08/06 by Mark Grimes (mark.grimes@bristol.ac.uk) for the LCFI vertex package
10 namespace nnet
11 {
12 class NeuralNet;
13 }
14 #endif
15 
16 #include <iostream>
17 #include <string>
18 
19 //namespace nnet added 15/08/06 by Mark Grimes (mark.grimes@bristol.ac.uk) for the LCFI vertex package
20 namespace nnet
21 {
22 
23 class
24 #ifndef __CINT__
25 NEURALNETDLL
26 #endif
28 {
29 public:
30  InputNormaliser(const NeuralNet *parentNetwork) : _parentNetwork(parentNetwork) {}
31  virtual ~InputNormaliser(){}
32 
33  virtual double normalisedValue(const double input) const = 0;
34  virtual std::string name() const = 0;
35  virtual void serialise(std::ostream &os) const = 0;
36  virtual InputNormaliser *clone(const NeuralNet *newNetwork) const = 0;
37 
38 protected:
39  const NeuralNet *_parentNetwork;
40 
41 private:
42  InputNormaliser(const InputNormaliser &other); // Declared but not defined
43 };
44 
45 #ifndef __CINT__
46 NEURALNETDLL
47 #endif
48 std::ostream &operator <<(std::ostream &os,const InputNormaliser &in);
49 
50 }//namespace nnet
51 
52 #endif