#ifndef GB_SCALINGFUNCTIONS_H
#define GB_SCALINGFUNCTIONS_H

//simple y = f(x) functions, used for a variety of purposes.

//limit x into range [min_x..max_x], then scale linearly into [min_y..max_y]
double scale_linear(double x, double min_x, double max_x, double min_y, double max_y);
float scale_linear(float x, float min_x, float max_x, float min_y, float max_y);


//limit x into range [min_x..max_x], then scale using a quadratic expression  into [min_y..max_y]
double scale_quadratic(double x, double min_x, double max_x, double min_y, double max_y);


//limit x into range [min_x..max_x], then scale logarithmically into [min_y..max_y]
double scale_logarithmically(double x, double min_x, double max_x, double min_y, double max_y);


#endif // GB_SCALINGFUNCTIONS_H