Newer
Older
Martin Beseda
committed
//
// Created by martin on 21.11.18.
//
#include <cmath>
#include <stdexcept>
#include <boost/serialization/export.hpp>
Martin Beseda
committed
#include "NormalizationStrategy.h"
#include "NormalizationStrategySerialization.h"
BOOST_CLASS_EXPORT_IMPLEMENT(NormalizationStrategy);
BOOST_CLASS_EXPORT_IMPLEMENT(DoubleUnitStrategy);
double NormalizationStrategy::get_max_value() {
return this->max_value;
}
double NormalizationStrategy::get_min_value() {
return this->min_value;
}
Martin Beseda
committed
DoubleUnitStrategy::DoubleUnitStrategy() {}
double DoubleUnitStrategy::normalize(double n, double max, double min) {
this->max_value = max;
this->min_value = min;
Martin Beseda
committed
return 2*(n - min)/(max - min) - 1;
double DoubleUnitStrategy::de_normalize(double n) {
if(std::isnan(this->max_value)) {
throw std::runtime_error("Data were not normalized, so de-normalization cannot progress!");
}
return 0.5 * (1 + (this->max_value - this->min_value) * n) + this->min_value;