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