Commit Graph

10 Commits

Author SHA1 Message Date
Keith Packard via Newlib e108d04432 libm/math: Don't modify __ieee754_pow return values in pow
The __ieee754 functions already return the right value in exception
cases, so don't modify those. Setting the library to _POSIX_/_IEEE_
mode now only affects whether errno is modified.

Signed-off-by: Keith Packard <keithp@keithp.com>
2020-08-05 22:16:31 +02:00
Keith Packard via Newlib 98a4f8de47 libm/math: Set errno to ERANGE for pow(0, -y)
POSIX says that the errno for pow(0, -y) should be ERANGE instead of
EDOM.

https://pubs.opengroup.org/onlinepubs/9699919799/functions/pow.html

Signed-off-by: Keith Packard <keithp@keithp.com>
2020-08-05 22:16:31 +02:00
Jozef Lawrynowicz 7db203304e Remove HUGE_VAL definition from libm math functions
This patch removes the definitions of HUGE_VAL from some of the float math
functions. HUGE_VAL is defined in newlib/libc/include/math.h, so it is not
necessary to have a further definition in the math functions.
2019-01-23 10:46:30 +01:00
Jozef Lawrynowicz b14a879d85 Remove matherr, and SVID and X/Open math library configurations
Default math library configuration is now IEEE
2019-01-23 10:46:24 +01:00
Szabolcs Nagy b99d49e506 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
2018-06-27 15:40:49 +02:00
Yaakov Selkowitz ec4c079f4b math: remove TRAD_SYNOPSIS
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-12-01 03:41:53 -06:00
Jeff Johnston 2babeb3d94 2007-05-01 Cary R. <cygcary <at> yahoo.com>
* libm/math/e_pow.c: Fix to be consistent with glibc with regards
        to treatment of NaN and +-inf arguments.
        * libm/math/ef_pow.c: Ditto.
        * libm/math/w_pow.c: Ditto.
        * libm/math/wf_pow.c: Ditto.
        * libm/math/w_acos.c: Fix domain errors to return NaN.
        * libm/math/w_asin.c: Ditto.
        * libm/math/wf_acos.c: Ditto.
        * libm/math/wf_asin.c: Ditto.
        * libm/math/w_log.c: Fix to return NaN for negative number inputs.
        * libm/math/wf_log.c: Ditto.
        * libm/math/wf_log10.c: Ditto.
        * libm/math/w_log10.c: Ditto.
2007-05-01 18:42:15 +00:00
Jeff Johnston d9edc05f47 2007-02-23 Jeff Johnston <jjohnstn@redhat.com>
* libm/math/w_pow.c: Fix typo in documentation comment.
2007-02-23 18:29:31 +00:00
Jeff Johnston 76a7df5256 2003-10-20 Bob Wilson <bob.wilson@acm.org>
* libc/locale/locale.c: Use double quotes in code.
	* libc/locale/locale.tex: Likewise.
	* libc/libc.texinfo: Hyphenate "floating-point".
	* libc/machine/necv70/necv70.tex: Likewise.
	* libc/stdio/sprintf.c: Likewise.
	* libc/stdio/sscanf.c: Likewise.
	* libc/stdlib/atof.c: Likewise.
	* libc/stdlib/ldtoa.c: Fix comment typo.
	* libc/stdlib/div.c: Use @ifnottex instead of @ifinfo.
	* libc/stdlib/ldiv.c: Likewise.
	* libm/common/s_expm1.c: Likewise.
	* libm/common/s_ilogb.c: Hyphenate "floating-point".  Use "nonzero".
	* libm/common/s_infinity: Hyphenate "double- and single-precision".
	* libm/common/s_nan.c: Likewise.  Also correct the FUNCTION summary.
	* libm/common/s_nextafter.c: Fix typo.  Hyphenate "double-precision"
	and "floating-point".
	* libm/common/s_scalbn.c: Correct the FUNCTION summary.
	* libm/math/e_pow.c: Fix comment typo.
	* libm/math/math.tex: Hyphenate "single-precision" and "floating-point".
	* libm/math/s_asinh.c: Use @ifnottex instead of @ifinfo.
	* libm/math/s_atan.c: Likewise.
	* libm/math/s_frexp.c: Likewise.  Also use "nonzero".
	* libm/math/s_isnan.c: Hyphenate "single-precision" and
	"floating-point".  Use "nonzero".
	* libm/math/s_ldexp.c: Use @ifnottex instead of @ifinfo.
	* libm/math/w_acos.c: Likewise.
	* libm/math/w_acosh.c: Likewise.
	* libm/math/w_asin.c: Likewise.
	* libm/math/w_atan2.c: Likewise.
	* libm/math/w_atanh.c: Likewise.
	* libm/math/w_cosh.c: Likewise.
	* libm/math/w_exp.c: Likewise.
	* libm/math/w_exp2.c: Likewise.  Add missing @end and missing @tex
	version of 2^x in the description.
	* libm/math/w_fmod.c: Use @ifnottex instead of @ifinfo.
	* libm/math/w_gamma.c: Likewise.
	* libm/math/w_hypot.c: Likewise.
	* libm/math/w_j0.c: Likewise.
	* libm/math/w_sinh.c: Likewise.
	* libm/math/w_pow.c: Replace "exp1.0nt" with "exponent".
	* libm/mathfp/mathfp.tex: Hyphenate "single-precision" and
	"floating-point".
	* libm/mathfp/e_acosh.c: Use @ifnottex instead of @ifinfo.
	* libm/mathfp/e_atanh.c: Likewise.
	* libm/mathfp/e_hypot.c: Likewise.
	* libm/mathfp/er_lgamma.c: Likewise.
	* libm/mathfp/s_acos.c: Likewise.
	* libm/mathfp/s_asine.c: Likewise.
	* libm/mathfp/s_asinh.c: Likewise.
	* libm/mathfp/s_atan.c: Likewise.
	* libm/mathfp/s_atan2.c: Likewise.
	* libm/mathfp/s_atangent.c: Likewise.
	* libm/mathfp/s_cosh.c: Likewise.
	* libm/mathfp/s_exp.c: Likewise.
	* libm/mathfp/s_fmod.c: Likewise.
	* libm/mathfp/s_frexp.c: Likewise.  Also use "nonzero".
	* libm/mathfp/s_isnan.c: Hyphenate "single-precision" and
	"floating-point".  Use "nonzero".
	* libm/math/s_pow.c: Replace "exp1.0nt" with "exponent".
	* libm/mathfp/s_ldexp.c: Use @ifnottex instead of @ifinfo.
	* libm/mathfp/s_sineh.c: Likewise.
	* libm/mathfp/w_jn.c: Likewise.
2003-10-20 18:46:38 +00:00
Christopher Faylor 8a0efa53e4 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00