Commit Graph

148 Commits

Author SHA1 Message Date
Joseph Myers 335ee09231 Disable libm-test test name beautification for M_* constants.
math/gen-libm-test.pl has code to beautify names of various constants,
transforming the source form in libm-test.inc into the version
appearing in test names in libm-test-ulps files.

This has become decreasingly relevant over time for the M_* constants,
first as I changed the test names so only the arguments and not the
expected results appeared in them, then as tests have moved to
auto-libm-test-* so that automatically generated hex float constants
get used instead of M_* in test inputs.

This patch removes the beautification for all M_* constants.  Tested
x86_64 and x86 and ulps updated accordingly.  Even the one case where
this affected the name in the ulps files will disappear once complex
function tests are moved to auto-libm-test-*.

	* math/gen-libm-test.pl (%beautify): Remove M_* constants.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-19 14:59:22 +00:00
Joseph Myers f88acd39da Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293).
Bug 16293 is inaccuracy of x86/x86_64 versions of expm1, near 0 in
directed rounding modes, that arises from frndint rounding the
exponent to 1 or -1 instead of 0, resulting in large cancellation
error.  This inaccuracy in turn affects other functions such as sinh
that use expm1.  This patch fixes the problem by setting
round-to-nearest mode temporarily around the affected calls to
frndint.  I don't think this is needed for other uses of frndint, such
as in exp itself, as only for expm1 is the cancellation error
significant.

Tested x86_64 and x86 and ulps updated accordingly.

	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Set
	round-to-nearest mode when using frndint.
	* sysdeps/i386/fpu/s_expm1.S (__expm1): Likewise.
	* sysdeps/i386/fpu/s_expm1f.S (__expm1f): Likewise.
	* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]:
	Likewise.
	* math/auto-libm-test-in: Add more tests of expm1.  Do not expect
	sinh test to fail.
	* math/auto-libm-test-out: Regenerated.
	* math/libm-test.inc (TEST_COND_x86_64): Remove macro.
	(TEST_COND_x86): Likewise.
	(expm1_tonearest_test_data): New array.
	(expm1_test_tonearest): New function.
	(expm1_towardzero_test_data): New array.
	(expm1_test_towardzero): New function.
	(expm1_downward_test_data): New array.
	(expm1_test_downward): New function.
	(expm1_upward_test_data): New array.
	(expm1_test_upward): New function.
	(main): Run the new test functions.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-19 13:36:10 +00:00
Joseph Myers f889953b44 Move tests of jn and yn from libm-test.inc to auto-libm-test-in.
This patch moves tests of jn and yn to auto-libm-test-in, adding the
required support for gen-auto-libm-tests (and adding a missing
assertion there and fixing logic that was broken for functions with
integer arguments).

Tested x86_64 and x86 and ulps updated accordingly.

	* math/auto-libm-test-in: Add tests of jn and yn.
	* math/auto-libm-test-out: Regenerated.
	* math/libm-test.inc (jn_test_data): Use AUTO_TESTS_if_f.
	(yn_test_data): Likewise.
	* math/gen-auto-libm-tests.c (func_calc_method): Add value
	mpfr_if_f.
	(func_calc_desc): Add mpfr_if_f union field.
	(FUNC_mpfr_if_f): New macro.
	(test_functions): Add jn and yn.
	(calc_generic_results): Assert type of second input for
	mpfr_ff_f.  Handle mpfr_if_f.
	(output_for_one_input_case): Disable all checking for arguments
	fitting floating-point types in case of an integer argument.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-18 17:59:29 +00:00
Joseph Myers 2dec468fd8 Fix ldbl-128 logl for subnormals (bug 16338).
This patch fixes bug 16338, ldbl-128 logl not handling subnormals
(with consequent inaccuracy for lgammal as well).  The fix is simply
to use __frexpl when determining the exponent, as done already in
log2l and log10l.  Given the lack of testing of small arguments to any
of the log* functions, appropriate tests are added for all of them.

Tested x86_64 and x86 and ulps updated accordingly, and spot tests
also run for mips64 to confirm the ldbl-128 fix.

Note that while this fixes lgammal inaccuracy for small positive
arguments, I suspect that there will still be problems with spurious
underflows in that case.

	* sysdeps/ieee754/ldbl-128/e_logl.c (__ieee754_logl): Use __frexpl
	to determine exponent and adjust argument to have exponent of -1.
	* math/auto-libm-test-in: Add more tests of log, log10, log1p and
	log2.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2013-12-18 11:38:27 +00:00
Joseph Myers ff362e5b93 Move tests of atan2, hypot and pow from libm-test.inc to auto-libm-test-in. 2013-12-16 21:18:07 +00:00
Markus Trippelsdorf e7b914bd0e Update x86_64 ULps for AMD K10 2013-12-09 11:06:11 +05:30
Joseph Myers 9f0be4f8b5 Move tests of lgamma from libm-test.inc to auto-libm-test-in. 2013-12-08 23:56:28 +00:00
Joseph Myers e47cc4e0ed Fix tgamma errno setting on underflow (bug 6810). 2013-12-05 14:01:41 +00:00
Joseph Myers bbf37bdc12 Move TEST_f_f tests for [l-y]* functions from libm-test.inc to auto-libm-test-in. 2013-12-05 13:54:50 +00:00
Joseph Myers 699ff83712 Fix Bessel function error handling (bug 6807, bug 15901). 2013-12-04 14:39:37 +00:00
Joseph Myers 749008ff03 Fix exp missing underflows (bug 15268, bug 15425). 2013-12-03 21:49:56 +00:00
Joseph Myers 34e16df5a1 Fix erfc errno setting on underflow (bug 6786). 2013-12-03 16:25:18 +00:00
Joseph Myers d8e2dbe3e3 Move TEST_f_f tests for [e-j]* functions from libm-test.inc to auto-libm-test-in. 2013-12-03 16:22:49 +00:00
Joseph Myers 176b0c7913 Move TEST_f_f tests for [a-c]* functions from libm-test.inc to auto-libm-test-in. 2013-11-30 22:04:13 +00:00
Joseph Myers ffa3cd7f1a Fix lgammaf spurious underflow (bug 15427). 2013-09-03 15:32:54 +00:00
Joseph Myers b7835e3223 Fix spurious jnf underflows (bug 14155). 2013-09-02 14:51:24 +00:00
Jeroen Albers 72c90ed01f Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1. 2013-07-05 12:58:20 +00:00
Markus Trippelsdorf 5314ed1afd Update x86_64 ULPs. 2013-07-02 22:01:13 +00:00
Joseph Myers 67338156ea Regenerate x86 and x86_64 ulps. 2013-07-02 20:01:15 +00:00
Joseph Myers dd4259b9f7 Test drem and pow10 in libm-test.inc. 2013-05-24 20:33:14 +00:00
Joseph Myers 4f8dfe270b Use same tests for isfinite/finite, lgamma/gamma. 2013-05-24 19:21:22 +00:00
Joseph Myers b50a71810b Don't include expected results in libm-test test names. 2013-05-22 11:49:36 +00:00
Joseph Myers db62a90753 Handle sincos with generic libm-test logic. 2013-05-19 14:45:41 +00:00
Joseph Myers d8cd06db62 Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426). 2013-05-08 11:58:18 +00:00
Joseph Myers 10de07f5fd Fix catan, catanh spurious underflows (bug 15423). 2013-05-01 10:07:00 +00:00
Joseph Myers caf84319c1 Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416). 2013-04-30 11:27:35 +00:00
Joseph Myers 5b4217d71f Fix catan, catanh spurious overflows (bug 15409). 2013-04-27 14:57:41 +00:00
Markus Trippelsdorf 1b8359836d Update x86_64 ULPs
2013-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2013-04-26 09:30:46 +02:00
Joseph Myers 2f38fbfe09 Fix catan, catanh inaccuracy through use of log (bug 15394). 2013-04-24 18:49:13 +00:00
Carlos O'Donell aba5e333d4 libm-test.inc: Fix tests where cos(PI/2) != 0.
The value of PI is never exactly PI in any floating point representation,
and the value of PI/2 is never PI/2. It is wrong to expect cos(M_PI_2l)
to return 0, instead it will return an answer that is  non-zero because
M_PI_2l doesn't round to exactly PI/2 in the type used.

That is to say that the correct answer is to do the following:
* Take PI or PI/2.
* Round to the floating point representation.
* Take the rounded value and compute an infinite precision cos or sin.
* Use the rounded result of the infinite precision cos or sin as the
  answer to the test.

I used printf to do the type rounding, and Wolfram's Alpha to do the
infinite precision cos calculations.

The following changes bring x86-64 and x86 to 1/2 ulp for two tests.
It shows that the x86 cos implementation is quite good, and that
our test are flawed.

Unfortunately given that the rounding errors are type dependent we
need to fix this for each type. No regressions on x86-64 or x86.

---

2013-04-11  Carlos O'Donell  <carlos@redhat.com>

	* math/libm-test.inc (cos_test): Fix PI/2 test.
	(sincos_test): Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Regenerate.
	* sysdeps/i386/fpu/libm-test-ulps: Regenerate.
2013-04-11 08:52:18 -04:00
Joseph Myers 52ce486045 Fix cacosh inaccuracy and spurious exceptions (bug 15327). 2013-04-02 22:54:00 +00:00
Joseph Myers ccc8cadf75 Fix casinh inaccuracy for imaginary part < 1.0, real part small (bug 10357). 2013-03-30 13:31:53 +00:00
Joseph Myers 3a7182a14b Fix casinh inaccuracy near i, imaginary part > 1 (bug 15307). 2013-03-27 14:38:44 +00:00
Joseph Myers 0a1b2ae6f6 Fix casinh inaccuracy for argument with imaginary part 1 (bug 15287). 2013-03-21 10:27:10 +00:00
Joseph Myers d2f9799e7c Fix y1l spurious overflows for ldbl-96 (bug 15283). 2013-03-16 17:51:48 +00:00
Joseph Myers 8cf28c5ebe Fix casinh spurious underflows away from [-i,i] (bug 15062). 2013-01-31 22:55:29 +00:00
Joseph Myers 728d7b43fc Fix cacos real-part inaccuracy for result real part near 0 (bug 15023). 2013-01-17 20:25:51 +00:00
Joseph Myers a9708fed77 Fix casinh, casin overflow (bug 14996). 2013-01-07 14:59:53 +00:00
Joseph Myers cdc1c96fba Fix casinh, casin inaccuracy from cancellation (bug 14994). 2013-01-04 13:25:17 +00:00
Joseph Myers 1bead169c3 Fix powl inaccuracy for x86_64 and x86 (bug 13881). 2012-11-28 13:40:54 +00:00
David S. Miller 6d33cc9d9b Fix spurious underflows in ldbl-128 atan implementation.
With help from Joseph Myers.
	* sysdeps/ieee754/ldbl-128/s_atanl.c (__atanl): Handle tiny and
	very large arguments properly.
	* math/libm-test.inc (atan_test): New tests.
	(atan2_test): New tests.
	* sysdeps/sparc/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2012-11-19 15:31:24 -08:00
David S. Miller 05b227bdae Correct tinyness handling in long-double and float y0/y1.
With help from Joseph Myers.
	* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Adjust tinyness
	cutoff to 2**-13.
	* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Adjust tinyness
	cutoff to 2**-25.
	* sysdeps/ieee754/ldbl-128/e_j0l.c (U0): New constant.
	( __ieee754_y0l): Avoid arithmetic underflow when 'x' is very
	small.
	* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): Likewise.
	* math/libm-test.inc (y0_test): New tests.
	(y1_test): New tests.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/fpu/libm-test-ulps: Update.
2012-11-18 12:33:53 -08:00
Markus Trippelsdorf 43c4edba7e Update x86-64 ULPs 2012-09-26 12:46:51 +02:00
Joseph Myers d032e0d29b Fix inaccuracy of clog, clog10 near |z| = 1 (bug 13629). 2012-09-25 19:43:49 +00:00
Liubov Dmitrieva 22bf5c1793 Add optimized sincosf for SSE2 for x86 and x86-64 2012-09-25 20:47:20 +02:00
Andreas Jaeger bcd6c8dc64 Update libm-test-ulps 2012-09-03 15:43:56 +02:00
Liubov Dmitrieva 4ffffbd272 Add optimized sinf and cosf routines for x86 and x86-64
* sysdeps/i386/i686/fpu/multiarch/Makefile (sysdep_routines):
	Add s_sinf-sse2, s_conf-sse2.

	* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: New file.
	* sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: New file.
	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: New file.
	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: New file.

	* sysdeps/ieee754/flt-32/s_sinf.c (SINF, SINF_FUNC): Add macros
	for using routine as __sinf_ia32.
	Use macro for function declaration and weak_alias.
	* sysdeps/ieee754/flt-32/s_cosf.c (COSF, COSF_FUNC): Add macros
	for using routine as __cosf_ia32.
	Use macro for function declaration and weak_alias.

	* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Fix Copyright.
	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Fix Copyright.

	* sysdeps/x86_64/fpu/s_sinf.S: New file.
	* sysdeps/x86_64/fpu/s_cosf.S: New file.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.

	* math/libm-test.inc (cos_test): Add more test cases.
	(sin_test): Likewise.
	(sincos_test): Likewise.
2012-09-03 15:32:13 +02:00
Markus Trippelsdorf ba6cba9eec Update x86-64 ULPs
The recent clog and clog10 fixes are causing some failing tests on my
AMD64 CPU.
2012-08-13 21:25:17 +02:00
Joseph Myers d0419dbfbd Improve clog, clog10 handling of values with real or imaginary part slightly above 1 (bug 13629). 2012-07-31 14:21:19 +00:00
Joseph Myers da865e95bc Improve clog, clog10 handling of values with real or imaginary part 1 (bug 13629). 2012-07-26 11:31:35 +00:00
Joseph Myers 638a572eb0 Fix clog, clog10 spurious underflow exceptions (bug 14337). 2012-07-09 11:06:34 +00:00
Joseph Myers f17ac40d7c Fix expm1 spurious underflow exceptions (bug 6778). 2012-07-06 11:17:41 +00:00
Joseph Myers cdfe2c5eb3 Fix csqrt underflow (bugs 14157, 14331). 2012-07-05 11:02:13 +00:00
Joseph Myers ca61cf32d9 Fix ctan, ctanh of subnormals in round-upwards mode (bug 14328). 2012-07-04 09:55:26 +00:00
Joseph Myers 795405f956 Don't include exceptions in libm-test-ulps test names. 2012-05-24 12:14:03 +00:00
Joseph Myers 80bad0ccae Test underflow exceptions in libm-test.inc. 2012-05-24 11:26:36 +00:00
Joseph Myers e0b16cc25c Fix ccos, csin, ccosh, csinh overflows (bug 14123). 2012-05-19 15:35:29 +00:00
Joseph Myers 495fd99f3a Fix x86/x86_64 expm1l inaccuracy and exceptions (bugs 13885, 13923). 2012-05-07 19:13:08 +00:00
Joseph Myers d8b82cad1b Fix exp10 inaccuracy and exceptions (bugs 13884, 13914). 2012-05-06 18:23:44 +00:00
Andreas Jaeger d7cf87a64e Update x86-64 libm-test-ulps 2012-05-06 09:32:12 +02:00
Joseph Myers adfbc8ac9e Fix x86 acos near 1 (bug 13942). 2012-04-30 18:56:39 +00:00
Joseph Myers 5ba3cc691c Fix acos (-1) in round-downwards mode on x86 (bug 14034). 2012-04-30 09:38:06 +00:00
Markus Trippelsdorf 8280f22d30 Update sysdeps/x86_64/fpu/libm-test-ulps
[BZ #13927]
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2012-04-21 14:14:27 +02:00
Joseph Myers bcc8d6617b Fix ctan, ctanh overflow (bug 11521). 2012-04-09 22:31:35 +00:00
Joseph Myers c483f6b4a4 Fix x86 pow inaccuracy for large integer exponents (bug 706). 2012-04-09 09:42:05 +00:00
Joseph Myers 7c69cd143b Fix cexp overflow (bug 13892). 2012-03-22 19:38:09 +00:00
Joseph Myers 1a4ac776eb Remove inaccurate x86 cexp implementations (bug 13883). 2012-03-21 15:28:05 +00:00
Joseph Myers 1897ad4432 Fix clog overflow/underflow (bug 13629). 2012-03-19 20:14:26 +00:00
Joseph Myers c36e1d2369 Disable Bessel function TLOSS errors in POSIX mode. 2012-03-16 20:08:02 +00:00
Joseph Myers 11b90b9f50 Fix tan, tanl for large inputs. 2012-03-16 20:05:37 +00:00
Joseph Myers 8848d99dce Implement ldbl-96 sinl / cosl / sincosl (bug 13851). 2012-03-16 12:30:05 +00:00
Joseph Myers e456826d7a Fix csqrt overflow/underflow (bug 13841). 2012-03-14 11:53:32 +00:00
Joseph Myers d1d3431a3a Fix signs of zeros from casinh, cacosh etc. (bug 10716). 2012-03-07 15:15:19 +00:00
Joseph Myers b7cd39e8f8 Fix pow in non-default rounding modes (bug 3976). 2012-03-05 12:22:46 +00:00
Joseph Myers ca811b2256 Test cosh, sinh in non-default rounding modes (bug 3976). 2012-03-05 12:20:24 +00:00
Joseph Myers 804360ed83 Fix sin, cos, tan in non-default rounding modes (bug 3976). 2012-03-02 20:51:39 +00:00
Joseph Myers 28afd92dbd Fix exp in non-default rounding modes (bug 3976). 2012-03-02 15:12:53 +00:00
Joseph Myers 7b1902cb3e Improve erfc accuracy. 2012-03-01 21:15:38 +00:00
Joseph Myers 0fcad3e243 Add test for bug 5794 (incorrect expm1 overflow). 2012-02-29 20:49:20 +00:00
Joseph Myers 5b8a4d4a09 Reduce large expected errors from libm tests on x86 and x86_64. 2012-02-29 20:40:50 +00:00
Joseph Myers 5ad91f6e6f Resort ULPs files with gen-libm-test.pl -n in C locale. 2012-02-20 18:06:05 +00:00
Andreas Schwab 6c6dbc6300 Reduce ldouble ULPs for jn tests on x86 2012-02-08 22:25:15 +01:00
Ulrich Drepper fb24de5932 Fix typo in last change 2011-10-22 20:09:58 -04:00
Ulrich Drepper 0d355eb7c7 Update ULPs for x86-64 2011-10-22 20:06:23 -04:00
Petr Baudis 1248c1c415 Fix jn precision 2011-09-09 22:16:10 -04:00
Andreas Jaeger 4f7e7f8e00 [BZ #1950, BZ #2153]
Update.
	[BZ #1950]
	* posix/regex_internal.c (re_string_reconstruct): Adjust for
	build_wcs_upper_buffer change.
	(build_wcs_upper_buffer): Change return type.

	[BZ #2153]
	* math/s_cacosh.c (__cacosh): Do not return a negative
	value. Patch by Wes Loewer <wjltemp-temp01@yahoo.com>.
	* math/s_cacoshl.c (__cacoshl): Likewise.
	* math/s_cacoshf.c (__cacoshf): Likewise.
	* math/libm-test.inc (cacosh_test): Adjust for change.

	* sysdeps/alpha/fpu/libm-test-ulps: Adopt for cacosh test change.
	* sysdeps/hppa/fpu/libm-test-ulps: Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Likewise.
	* sysdeps/ia64/fpu/libm-test-ulps: Likewise.
	* sysdeps/m68k/fpu/libm-test-ulps: Likewise.
	* sysdeps/mips/fpu/libm-test-ulps: Likewise.
	* sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
	* sysdeps/s390/fpu/libm-test-ulps: Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
	* sysdeps/sh/sh4/fpu/libm-test-ulps: Likewise.
	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Likewise.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Likewise.
2006-01-15 17:59:52 +00:00
Ulrich Drepper 35476e9cd7 * sysdeps/x86_64/fpu/libm-test-ulps: Adjust expected atan2f results.
* sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
	* sysdeps/s390/fpu/libm-test-ulps: Likewise.

            Darin Petkov  <darin@tensilica.com>
2005-07-20 18:20:48 +00:00
Ulrich Drepper a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek 0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Andreas Jaeger 9b7adbb732 Update.
2004-12-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.

2004-12-17  Andreas Jaeger  <aj@suse.de>
2004-12-17 07:41:02 +00:00
Ulrich Drepper bb3f4825c4 Update.
2003-11-28  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/fpu/libm-test-ulps: Add some more minor changes
	to compensate other setup.

2003-11-27  Andreas Jaeger  <aj@suse.de>

	* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for new atan2 test.

	* math/libm-test.inc (atan2_test): Add test that run infinitly.
	Reported by "Willus" <etc231etc231@willus.com>.

2003-11-27  Michael Matz  <matz@suse.de>

	* sysdeps/ieee754/dbl-64/mpsqrt.c (fastiroot): Fix 64-bit problem
	with wrong types.

2003-11-28  Jakub Jelinek  <jakub@redhat.com>

	* posix/regexec.c (acquire_init_state_context): Make inline.
	Add always_inline attribute.
	(check_matching): Add BE macro.  Move if (cur_state->has_backref)
	into if (dfa->nbackref).
	(sift_states_backward): Fix comment.
	(transit_state): Add BE macro.  Move if (next_state->has_backref)
	into if (dfa->nbackref && next_state).  Don't check for next_state
	!= NULL twice.
	* posix/regcomp.c (peek_token): Use opr.ctx_type instead of opr.idx
	for ANCHOR.
	(parse_expression): Only call init_word_char if word context will be
	needed.

	* posix/bug-regex11.c (tests): Add new tests.

	* posix/tst-regex.c: Include getopt.h.
	(timing): New variable.
	(main): Set timing to 1 if --timing argument is present.
	Add 2 new tests.
	(run_test, run_test_backwards): Handle timing.

2003-11-27  Jakub Jelinek  <jakub@redhat.com>

	* posix/regex_internal.h (re_string_t): Remove mbs_case field.
	Add offsets, valid_raw_len, raw_len, raw_stop, mbs_allocated and
	offsets_needed fields.  Change icase, is_utf8 and map_notascii
	type from int bitfield to unsigned char.
	(MBS_ALLOCATED, MBS_CASE_ALLOCATED): Remove.
	(build_wcs_upper_buffer): Change prototype to return int.
	(re_string_peek_byte_case, re_string_fetch_byte_case): Remove
	defines, add prototypes.
	* posix/regex_internal.c (re_string_allocate): Don't initialize
	stop here.  Don't initialize mbs_case.  Set valid_raw_len.
	Use mbs_allocated instead of MBS_* macros.
	(re_string_construct): Don't initialize stop and valid_len here.
	Don't initialize mbs_case.  Use mbs_allocated instead of MBS_*
	macros.  Reallocate buffers if build_wcs_upper_buffer converted
	too few bytes.  Set valid_len to bufs_len only for single byte
	no translation and set in that case valid_raw_len as well.
	(re_string_realloc_buffers): Reallocate offsets if not NULL.
	Use mbs_allocated instead of MBS_ALLOCATED.  Don't reallocate
	mbs_case.
	(re_string_construct_common): Initialize raw_len, mbs_allocated,
	stop and raw_stop.
	(build_wcs_buffer): Apply pstr->trans before mbrtowc instead of
	after it.  Set valid_raw_len.  Don't set mbs_case.
	(build_wcs_upper_buffer): Return REG_NOERROR or REG_ESPACE.
	Only use the fast path if !pstr->offsets_needed.  Apply pstr->trans
	before mbrtowc instead of after it.  If upper case character
	uses different number of bytes than lower case, goto to the
	slow path.  Don't call towupper unnecessarily twice.  Set
	valid_raw_len as well.  Handle in the slow path the case if
	lower and upper case use different number of characters.
	Don't set mbs_case.
	(re_string_skip_chars): Use valid_raw_len instead of valid_len.
	(build_upper_buffer): Don't set mbs_case.  Add BE macro.  Set
	valid_raw_len.
	(re_string_translate_buffer): Set mbs instead of mbs_case.  Set
	valid_raw_len.
	(re_string_reconstruct): Use raw_len/raw_stop to initialize
	len/stop.  Clear valid_raw_len and offsets_needed when clearing
	valid_len.  Use mbs_allocated instead of MBS_* macros.
	Check original offset against valid_raw_len instead of valid_len.
	Remove mbs_case handling.  Adjust valid_raw_len together with
	valid_len.  If is_utf8 and looking for tip context, apply
	pstr->trans first.  If buffers start with partial multi-byte
	character, initialize mbs array as well if mbs_allocated.
	Check return value of build_wcs_upper_buffer.
	(re_string_peek_byte_case): New function.
	(re_string_fetch_byte_case): New function.
	(re_string_destruct): Use mbs_allocated instead of MBS_ALLOCATED.
	Don't free mbs_case.  Free offsets.
	* posix/regcomp.c (init_dfa): Only check if charset name is UTF-8
	if mb_cur_max == 6.
	* posix/regexec.c (re_search_internal): Initialize input.raw_stop
	as well.  Use valid_raw_len instead of valid_len when looking
	through fastmap.  Adjust registers through input.offsets.
	(extend_buffers): Allow build_wcs_upper_buffer to fail.
	* posix/bug-regex18.c (tests): Enable #ifdefed out tests.  Add new
	tests.
2003-11-29 06:13:09 +00:00
Roland McGrath f92abad6b9 * sysdeps/alpha/fpu/libm-test-ulps: Update.
* sysdeps/arm/libm-test-ulps: Update.
	* sysdeps/hppa/fpu/libm-test-ulps: Update.
	* sysdeps/ia64/fpu/libm-test-ulps: Update.
	* sysdeps/mips/fpu/libm-test-ulps: Update.
	* sysdeps/powerpc/nofpu/libm-test-ulps: Update.
	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
	* sysdeps/sh/sh4/fpu/libm-test-ulps: Update.
	* sysdeps/s390/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2003-03-23 00:52:23 +00:00
Ulrich Drepper ea1d1dee93 Relax errors for flaot and double again a bit. 2002-12-06 22:26:57 +00:00
Andreas Jaeger 43d218d55b Regenerated. 2002-12-03 15:39:37 +00:00
Andreas Jaeger 22ca6116c0 Add ulps for double tests. 2002-08-31 10:32:59 +00:00
Andreas Jaeger df5e9fa69f Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for float and long
	double tests.
2002-08-31 08:22:35 +00:00
Andreas Jaeger 1af437d636 Update.
2002-06-20  Andreas Jaeger  <aj@suse.de>

	* math/libm-test.inc: Use exact values as input parameters,
	compute output parameters with 36 digits for 128-bit long doubles.
	* sysdeps/i386/fpu/libm-test-ulps: Regenerated.
	* sysdeps/x86-64/fpu/libm-test-ulps: Regenerated.
2002-06-20 08:34:01 +00:00
Andreas Jaeger c9cf6ddeeb Update.
* sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
	* sysdeps/unix/sysv/linux/x86_64/Versions: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/time.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/types.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/brk.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/fstatfs64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/ftruncate64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/fxstat.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/fxstat64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/getdents.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/getdents64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/getrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/glob64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/lxstat.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/lxstat64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/mmap64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/pread64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/profil-counter.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/pwrite64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/readdir.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/readdir64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/readdir64_r.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/readdir_r.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/recv.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/register-dump.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/send.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/setrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/sigpending.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sigprocmask.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sigsuspend.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/statfs64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sys/perm.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/sys/procfs.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/sys/reg.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/syscall.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list: New file.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/time.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/truncate64.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/umount.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/xstat.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/xstat64.c: New file.
	* sysdeps/unix/x86_64/sysdep.S: New file.
	* sysdeps/unix/x86_64/sysdep.h: New file.
	* sysdeps/x86_64/Implies: New file.
	* sysdeps/x86_64/Makefile: New file.
	* sysdeps/x86_64/Versions: New file.
	* sysdeps/x86_64/__longjmp.S: New file.
	* sysdeps/x86_64/abort-instr.h: New file.
	* sysdeps/x86_64/atomicity.h: New file.
	* sysdeps/x86_64/bits/endian.h: New file.
	* sysdeps/x86_64/bits/setjmp.h: New file.
	* sysdeps/x86_64/bits/string.h: New file.
	* sysdeps/x86_64/bp-asm.h: New file.
	* sysdeps/x86_64/bsd-_setjmp.S: New file.
	* sysdeps/x86_64/bsd-setjmp.S: New file.
	* sysdeps/x86_64/dl-machine.h: New file.
	* sysdeps/x86_64/elf/initfini.c: New file.
	* sysdeps/x86_64/elf/start.S: New file.
	* sysdeps/x86_64/ffs.c: New file.
	* sysdeps/x86_64/ffsll.c: New file.
	* sysdeps/x86_64/fpu/bits/fenv.h: New file.
	* sysdeps/x86_64/fpu/bits/mathdef.h: New file.
	* sysdeps/x86_64/fpu/e_acosl.c: New file.
	* sysdeps/x86_64/fpu/e_atan2l.c: New file.
	* sysdeps/x86_64/fpu/e_exp2l.S: New file.
	* sysdeps/x86_64/fpu/e_expl.c: New file.
	* sysdeps/x86_64/fpu/e_fmodl.S: New file.
	* sysdeps/x86_64/fpu/e_log10l.S: New file.
	* sysdeps/x86_64/fpu/e_log2l.S: New file.
	* sysdeps/x86_64/fpu/e_logl.S: New file.
	* sysdeps/x86_64/fpu/e_powl.S: New file.
	* sysdeps/x86_64/fpu/e_rem_pio2l.c: New file.
	* sysdeps/x86_64/fpu/e_scalbl.S: New file.
	* sysdeps/x86_64/fpu/e_sqrtl.c: New file.
	* sysdeps/x86_64/fpu/fclrexcpt.c: New file.
	* sysdeps/x86_64/fpu/fedisblxcpt.c: New file.
	* sysdeps/x86_64/fpu/feenablxcpt.c: New file.
	* sysdeps/x86_64/fpu/fegetenv.c: New file.
	* sysdeps/x86_64/fpu/fegetexcept.c: New file.
	* sysdeps/x86_64/fpu/fegetround.c: New file.
	* sysdeps/x86_64/fpu/feholdexcpt.c: New file.
	* sysdeps/x86_64/fpu/fesetenv.c: New file.
	* sysdeps/x86_64/fpu/fesetround.c: New file.
	* sysdeps/x86_64/fpu/fgetexcptflg.c: New file.
	* sysdeps/x86_64/fpu/fraiseexcpt.c: New file.
	* sysdeps/x86_64/fpu/fsetexcptflg.c: New file.
	* sysdeps/x86_64/fpu/ftestexcept.c: New file.
	* sysdeps/x86_64/fpu/libm-test-ulps: New file.
	* sysdeps/x86_64/fpu/math_ldbl.h: New file.
	* sysdeps/x86_64/fpu/printf_fphex.c: New file.
	* sysdeps/x86_64/fpu/s_atanl.c: New file.
	* sysdeps/x86_64/fpu/s_cosl.S: New file.
	* sysdeps/x86_64/fpu/s_expm1l.S: New file.
	* sysdeps/x86_64/fpu/s_fpclassifyl.c: New file.
	* sysdeps/x86_64/fpu/s_isinfl.c: New file.
	* sysdeps/x86_64/fpu/s_isnanl.c: New file.
	* sysdeps/x86_64/fpu/s_log1pl.S: New file.
	* sysdeps/x86_64/fpu/s_logbl.c: New file.
	* sysdeps/x86_64/fpu/s_nextafterl.c: New file.
	* sysdeps/x86_64/fpu/s_nexttoward.c: New file.
	* sysdeps/x86_64/fpu/s_nexttowardf.c: New file.
	* sysdeps/x86_64/fpu/s_rintl.c: New file.
	* sysdeps/x86_64/fpu/s_significandl.c: New file.
	* sysdeps/x86_64/fpu/s_sincosl.S: New file.
	* sysdeps/x86_64/fpu/s_sinl.S: New file.
	* sysdeps/x86_64/fpu/s_tanl.S: New file.
	* sysdeps/x86_64/gmp-mparam.h: New file.
	* sysdeps/x86_64/hp-timing.c: New file.
	* sysdeps/x86_64/hp-timing.h: New file.
	* sysdeps/x86_64/htonl.S: New file.
	* sysdeps/x86_64/memusage.h: New file.
	* sysdeps/x86_64/setjmp.S: New file.
	* sysdeps/x86_64/soft-fp/sfp-machine.h: New file.
	* sysdeps/x86_64/stackinfo.h: New file.
	* sysdeps/x86_64/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed: New file.
2001-09-19 10:37:31 +00:00