#include namespace utility { int normalize_min_max(std::vector* vec_ptr, dlib::running_stats rs) { double base = rs.min(); double top = rs.max(); double diff = top - base; std::for_each(vec_ptr->begin(), vec_ptr->end(), [&](double& value) { value = (value - base) / diff; }); return 0; } int normalize_z_score(std::vector* vec_ptr, dlib::running_stats rs) { double mean = rs.mean(); double stddev = rs.stddev(); std::for_each(vec_ptr->begin(), vec_ptr->end(), [&](double& value) { value = (value - mean) / stddev; }); return 0; } double normalize_min_max(double x, dlib::running_stats rs) { double base = rs.min(); double top = rs.max(); double diff = top - base; return (x - base) / diff; } double normalize_z_score(double x, dlib::running_stats rs) { return (x - rs.mean()) / rs.stddev(); } double denormalize_z_score(double invert_x, dlib::running_stats rs) { return (invert_x * rs.stddev()) + rs.mean(); } double denormalize_min_max(double invert_x, dlib::running_stats rs) { double base = rs.min(); double top = rs.max(); double diff = top - base; return (invert_x * diff) + base; } } // namespace utility