mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-24 11:41:07 +00:00
1266b9361a
When I moved tests of csin and csinh to auto-libm-test-in, I didn't move a few tests for which gen-auto-libm-tests was very slow because of MPC slowness on certain inputs. Now that auto-libm-test-out has been split up, such slowness only affects regenerating the test expectations for the individual functions in question, rather than any addition of tests for any function to auto-libm-test-in. Thus, I no longer consider it a problem to have these inputs in auto-libm-test-in, and this patch moves them there. This results in test generation for csin and csinh taking 5m43s (for each of csin and csinh) on my system, while other functions are unaffected. I expect the test generation to be much faster in MPC 1.1 (the relevant performance improvements went in MPC mainline in Dec 2013, but there hasn't been a release from mainline since then). Tested for x86_64 and x86. * math/auto-libm-test-in: Add more tests of csin and csinh. * math/auto-libm-test-out-csin: Regenerated. * math/auto-libm-test-out-csinh: Likewise. * math/libm-test-csin.inc (csin_test_data): Remove tests moved to auto-libm-test-in. * math/libm-test-csinh.inc (csinh_test_data): Likewise.
80 lines
3.7 KiB
SQL
80 lines
3.7 KiB
SQL
/* Test csin.
|
|
Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
static const struct test_c_c_data csin_test_data[] =
|
|
{
|
|
TEST_c_c (csin, 0.0, plus_infty, 0.0, plus_infty),
|
|
TEST_c_c (csin, minus_zero, plus_infty, minus_zero, plus_infty),
|
|
TEST_c_c (csin, 0.0, minus_infty, 0.0, minus_infty),
|
|
TEST_c_c (csin, minus_zero, minus_infty, minus_zero, minus_infty),
|
|
|
|
TEST_c_c (csin, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
|
|
TEST_c_c (csin, plus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, minus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, plus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, minus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
|
|
|
|
TEST_c_c (csin, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
|
|
TEST_c_c (csin, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
|
|
TEST_c_c (csin, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
|
|
TEST_c_c (csin, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
|
|
|
|
TEST_c_c (csin, 4.625, plus_infty, minus_infty, minus_infty),
|
|
TEST_c_c (csin, 4.625, minus_infty, minus_infty, plus_infty),
|
|
TEST_c_c (csin, -4.625, plus_infty, plus_infty, minus_infty),
|
|
TEST_c_c (csin, -4.625, minus_infty, plus_infty, plus_infty),
|
|
|
|
TEST_c_c (csin, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
|
|
|
|
TEST_c_c (csin, qnan_value, plus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
|
|
TEST_c_c (csin, qnan_value, minus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
|
|
|
|
TEST_c_c (csin, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
TEST_c_c (csin, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
|
|
TEST_c_c (csin, 0.0, qnan_value, 0.0, qnan_value),
|
|
TEST_c_c (csin, minus_zero, qnan_value, minus_zero, qnan_value),
|
|
|
|
TEST_c_c (csin, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
TEST_c_c (csin, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
|
|
TEST_c_c (csin, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
TEST_c_c (csin, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
|
|
|
|
TEST_c_c (csin, qnan_value, qnan_value, qnan_value, qnan_value),
|
|
|
|
AUTO_TESTS_c_c (csin),
|
|
};
|
|
|
|
static void
|
|
csin_test (void)
|
|
{
|
|
ALL_RM_TEST (csin, 0, csin_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
|
|
}
|
|
|
|
/*
|
|
* Local Variables:
|
|
* mode:c
|
|
* End:
|
|
*/
|