00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef LIBRADIALFUNCTIONS_H
00021 #define LIBRADIALFUNCTIONS_H
00022
00023 #include "types.h"
00024
00030 #include "outputfunction.h"
00031 #include "derivableoutputfunction.h"
00032
00033
00034 namespace nnfw {
00035
00047 class NNFW_API GaussFunction : public DerivableOutputFunction {
00048 public:
00051
00053 GaussFunction( Real centre = 0.0, Real variance = 1.0, Real maxvaule = 1.0 );
00054
00056 GaussFunction( PropertySettings& prop );
00057
00059 virtual ~GaussFunction() { };
00060
00062
00064
00066 bool setCentre( const Variant& v );
00068 Variant getCentre();
00069
00071 bool setVariance( const Variant& v );
00073 Variant getVariance();
00074
00076 bool setMax( const Variant& v );
00078 Variant getMax();
00079
00081 virtual void apply( RealVec& inputs, RealVec& outputs );
00083 virtual void derivate( const RealVec& x, const RealVec& y, RealVec& d ) const;
00085 virtual GaussFunction* clone() const;
00086
00088
00089 private:
00090
00091 Real centre;
00092
00093 Real variance;
00094
00095 Real msqrvar;
00096
00097 Real max;
00098 };
00099
00100 }
00101
00102 #endif
00103