Skip to content
Snippets Groups Projects
NormalizationStrategy.h 1.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • //
    // Created by martin on 21.11.18.
    //
    
    #ifndef LIB4NEURO_NORMALIZATIONSTRATEGY_H
    #define LIB4NEURO_NORMALIZATIONSTRATEGY_H
    
    
    //    /**
    //     *
    //     */
    //    double max_value = std::numeric_limits<double>::quiet_NaN();
    //
    //    /**
    //     *
    //     */
    //    double min_value = std::numeric_limits<double>::quiet_NaN();
    //
    
         * Maximum (index 0) and minimum (index 1) input value
    
    
        /**
         *
         */
        struct access;
    
        /**
         *
         * @param n
         * @param max
         * @param min
         * @return
         */
    
        virtual double normalize(double n, double max, double min) = 0;
    
    
        /**
         *
         * @param n
         * @param max
         * @param min
         * @return
         */
        virtual double de_normalize(double n) = 0;
    
        /**
         *
         * @return
         */
        double get_max_value();
    
        /**
         *
         * @return
         */
        double get_min_value();
    
    class DoubleUnitStrategy : public NormalizationStrategy {
    public:
    
        DoubleUnitStrategy();
    
        /**
         * Normalizes the input value to the interval [-1,1]
         *
         * @param n
         * @param max
         * @param min
         * @return
         */
        double normalize(double n, double max, double min) override;
    
        double de_normalize(double n) override;