On Sat, 9 Aug 1997, Peter Gerwinski wrote:
Hello!
The GPC run time library contains a function `_p_sin' which does nothing else than to call the `sin' function from the C library.
[..]
This means a gain of speed of about 9%.
If there is no special reason for having an extra `_p_sin' I would vote for dropping it in favour of calling `sin' directly, and similar for other mathematical functions.
Comments?
`sin()' is not doing any checking, so you could replace it right away. But there are other functions that do some checking before calling the underlying OS function (like `ln')
GCC knows an optimzation switch -ffast-math, described as:
This option allows GCC to violate some ANSI or IEEE rules/specifications in the interest of optimizing code for speed. For example, it allows the compil- er to assume arguments to the sqrt function are non-negative numbers.
This option should never be turned on by any `-O' option since it can result in incorrect output for programs which depend on an exact implementation of IEEE or ANSI rules/specifications for math func- tions.
This option is not enabled by any of the -Ox optimization switches, probably because it may violate some spec.
How about adding either a simular switch to GPC, or add extra GPC functionality to -ffast-math to emit a direct _sin() and friends instead of _p_sin() when this switch is on? That way, both the speed freaks and the checking lovers are satisfied.
JanJaap --- With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead. -- RFC1925.