Do the C and C++ standards require the math operations in math.h
on floating points (i.e. sqrt
, exp
, log
, sin
, ...) to return numerically best solution?
For a given (exact and valid) input there can obviously in general not be an exact floating point output from these functions. But is the output required to be the representable value nearest to the mathematically exact one?
If not, are there any requirements on precision whatsoever (possibly platform-specific / in other standards ?), so that I am able to make worst-case estimates of calculation errors in my code? What are typical limits on numerical errors of modern implementations?
exp
,log
,sin
, and more. – Hartz