#include <iostream>

float map(float value, float istart, float istop, float ostart, float ostop)
{
	return ostart + (ostop - ostart) * ((value - istart) / (istop - istart));
}

float remap(float v, float a, float b, float c, float d)
{
	return v-(abs(b-a)-abs(d-c))/2.0;
}

int main()
{
	std::cout <<   map(5.0, 0.0,10.0, 20.0,40.0) << std::endl;
	std::cout << remap(5.0, 0.0,10.0, 20.0,40.0) << std::endl;
	std::cout <<   map(5.0, 0.0,10.0,  0.0,40.0) << std::endl;
	std::cout << remap(5.0, 0.0,10.0,  0.0,40.0) << std::endl;
}
