The floating point math functions from math.h have ambiguous bindings when passed int values.
Use double precision values for these functions.
For example,
int x; ... ans=sqrt(x)will cause a compile time error because sqrt may be cast to a float or double argument type. Pass double values and you should be fine:
int x; ... double xtmp=x; ans=sqrt(x);or
ans=sqrt((double)x)
This has been seen with
sqrt atan powbut you should assume they problem exists with all math functions.