do not use the variable name predefined
use compat.h to check if INFINITY is available or not
donot forget to stage a file
switch erf and pow_2 functions