[bug #57071] Fix math.h and function names that block 64-bit double (original) (raw)

Thu 17 Oct 2019 09:10:37 AM CEST

Implementation of math.h / libm currently blocks 64-bit double, namely:

  1. Function names are wrong, e.g. 32-bit implementation of sine is named "sin", not "sinf".
  2. There are "aliases" in math.h (macros actually) that define the float version (like "sinf") to the double version (like "sin"). Problem is that this:

2a) This is the wrong way round ("sin" should be alias of "sinf").

2b) There are no proper prototypes.

2c) Macros are bad, e.g. in C++ when some class implements a method for which math.h defines a macro, C++ functions / methods are silently renamed.

  1. math.h is unconditional, i.e. treats double != float just like double = float.

file #47705: math64.diff
file #47711: math64-syms.diff
file #47938: math64-2.diff
file #48029: math64-3.diff
file #48240: math64-addend1.diff

This issue was migrated from https://savannah.nongnu.org/bugs/?57071