Se gli estremi sono sempre gli stessi e si vuole velocizzare il calcolo si può anche semplificare la formula precalcolando le parti costanti:
float k1 = (out_max - out_min) / (in_max - in_min);
float k2 = out_min - (in_min * k1);
float fmap(float x)
{
return x*k1 + k2;
}
...che poi è l'equazione della retta, infatti map non fa altro che una trasformazione lineare.