Newer
Older
Martin Beseda
committed
#include <cmath>
#include <stdexcept>
#include <boost/serialization/export.hpp>
Martin Beseda
committed
#include "NormalizationStrategy.h"
#include "NormalizationStrategySerialization.h"
Martin Beseda
committed
BOOST_CLASS_EXPORT_IMPLEMENT(NormalizationStrategy)
BOOST_CLASS_EXPORT_IMPLEMENT(DoubleUnitStrategy)
//NormalizationStrategy::~NormalizationStrategy() = def
double NormalizationStrategy::get_max_value() {
Martin Beseda
committed
return this->max_min_inp_val.at(0);
}
double NormalizationStrategy::get_min_value() {
Martin Beseda
committed
return this->max_min_inp_val.at(1);
Martin Beseda
committed
DoubleUnitStrategy::DoubleUnitStrategy() {}
Martin Beseda
committed
DoubleUnitStrategy::~DoubleUnitStrategy() {}
double DoubleUnitStrategy::normalize(double n,
double max,
double min) {
if (this->max_min_inp_val.empty()) {
this->max_min_inp_val.emplace_back(max);
this->max_min_inp_val.emplace_back(min);
} else {
this->max_min_inp_val.at(0) = max;
this->max_min_inp_val.at(1) = min;
}

Michal Kravcenko
committed
// return 2 * (n - min) / (max - min) - 1;
return n / (this->get_max_value() - this->get_min_value());
double DoubleUnitStrategy::de_normalize(double n) {
THROW_RUNTIME_ERROR("Data were not normalized, so de-normalization cannot progress!");

Michal Kravcenko
committed
//return 0.5 * ((1 + n) * (this->get_max_value() - this->get_min_value())) + this->get_min_value();
return n * (this->get_max_value() - this->get_min_value());