the smoothstep() function