New pow implementation

The new implementation is provided under !__OBSOLETE_MATH, it uses
ISO C99 code.  With default settings the worst case error in nearest
rounding mode is 0.54 ULP with inlined fma and fma contraction.  It uses
a 4 KB lookup table in addition to the table in exp_data.c, on aarch64
.text+.rodata size of libm.a is increased by 2295 bytes.

Improvements on Cortex-A72:
latency: 3.3x
thruput: 4.9x
This commit is contained in:
Szabolcs Nagy
2018-06-26 16:25:12 +01:00
committed by Corinna Vinschen
parent 07e2c32828
commit b99d49e506
8 changed files with 607 additions and 5 deletions

View File

@ -52,6 +52,7 @@ PORTABILITY
*/
#include "fdlibm.h"
#if __OBSOLETE_MATH
#include <errno.h>
#ifndef _DOUBLE_IS_32BITS
@ -207,7 +208,7 @@ PORTABILITY
}
#endif /* defined(_DOUBLE_IS_32BITS) */
#endif /* __OBSOLETE_MATH */