[bug #57071] Fix math.h and function names that block 64-bit double · Issue #670 · avrdudes/avr-libc (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

@avrs-admin

Description

@avrs-admin

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