Mathematical functions_(re)
Sat, 9 Aug 1997 12:23:01 +0100 (WET DST)
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.
Jan-Jaap van der Heijden (janjaap@Wit381304.student.utwente.nl)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es