panann
All Classes Functions Variables Enumerations Enumerator
ActivationFunction.h
1 //-------------------------------------------------------------------------------------------------------
2 // Copyright (C) Taylor Woll and panann contributors. All rights reserved.
3 // Licensed under the MIT license. See LICENSE.txt file in the project root for
4 // full license information.
5 //-------------------------------------------------------------------------------------------------------
6 
7 #ifndef ACTIVATIONFUNCTION_H__
8 #define ACTIVATIONFUNCTION_H__
9 
10 #include <cstdint>
11 
12 namespace panann {
13 
14 enum class ActivationFunctionType : uint8_t {
15  Linear = 1,
16  Sigmoid,
17  Gaussian,
18  Sine,
19  Cosine,
20  Elliot,
21  Threshold,
22  SigmoidSymmetric,
23  GaussianSymmetric,
24  SineSymmetric,
25  CosineSymmetric,
26  ElliotSymmetric,
27  ThresholdSymmetric,
28 
29  // The symmetric activation functions are grouped at the end so we would
30  // know that an activation function is symmetric if it's at least the
31  // first one in this group.
32  FirstSymmetric = SigmoidSymmetric
33 };
34 
36  public:
37  static double ExecuteLinear(double value);
38  static double ExecuteDerivativeLinear(double value);
39 
40  static double ExecuteSigmoid(double value);
41  static double ExecuteDerivativeSigmoid(double value);
42 
43  static double ExecuteSigmoidSymmetric(double value);
44  static double ExecuteDerivativeSigmoidSymmetric(double value);
45 
46  static double ExecuteGaussian(double value);
47  static double ExecuteDerivativeGaussian(double value, double field);
48 
49  static double ExecuteGaussianSymmetric(double value);
50  static double ExecuteDerivativeGaussianSymmetric(double value, double field);
51 
52  static double ExecuteSine(double value);
53  static double ExecuteDerivativeSine(double value);
54 
55  static double ExecuteSineSymmetric(double value);
56  static double ExecuteDerivativeSineSymmetric(double value);
57 
58  static double ExecuteCosine(double value);
59  static double ExecuteDerivativeCosine(double value);
60 
61  static double ExecuteCosineSymmetric(double value);
62  static double ExecuteDerivativeCosineSymmetric(double value);
63 
64  static double ExecuteElliot(double value);
65  static double ExecuteDerivativeElliot(double field);
66 
67  static double ExecuteElliotSymmetric(double value);
68  static double ExecuteDerivativeElliotSymmetric(double field);
69 
70  static double ExecuteThreshold(double value);
71 
72  static double ExecuteThresholdSymmetric(double value);
73 };
74 
75 } // namespace panann
76 
77 #endif // ACTIVATIONFUNCTION_H__
panann::ActivationFunction
Definition: ActivationFunction.h:35