Licson Lee says to YSITD
return (1.0 - fabs(a * b)) * (a + b);