📄 libm-test.inc
字号:
TEST_f_f (asinh, 0, 0); TEST_f_f (asinh, minus_zero, minus_zero);#ifndef TEST_INLINE TEST_f_f (asinh, plus_infty, plus_infty); TEST_f_f (asinh, minus_infty, minus_infty);#endif TEST_f_f (asinh, nan_value, nan_value); TEST_f_f (asinh, 0.7L, 0.652666566082355786L); END (asinh);}static voidatan_test (void){ errno = 0; FUNC(atan) (0); if (errno == ENOSYS) /* Function not implemented. */ return; START (atan); TEST_f_f (atan, 0, 0); TEST_f_f (atan, minus_zero, minus_zero); TEST_f_f (atan, plus_infty, M_PI_2l); TEST_f_f (atan, minus_infty, -M_PI_2l); TEST_f_f (atan, nan_value, nan_value); TEST_f_f (atan, 1, M_PI_4l); TEST_f_f (atan, -1, -M_PI_4l); TEST_f_f (atan, 0.7L, 0.61072596438920861654375887649023613L); END (atan);}static voidatanh_test (void){ errno = 0; FUNC(atanh) (0.7L); if (errno == ENOSYS) /* Function not implemented. */ return; START (atanh); TEST_f_f (atanh, 0, 0); TEST_f_f (atanh, minus_zero, minus_zero); TEST_f_f (atanh, 1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION); TEST_f_f (atanh, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION); TEST_f_f (atanh, nan_value, nan_value); /* atanh (x) == NaN plus invalid exception if |x| > 1. */ TEST_f_f (atanh, 1.1L, nan_value, INVALID_EXCEPTION); TEST_f_f (atanh, -1.1L, nan_value, INVALID_EXCEPTION); TEST_f_f (atanh, 0.7L, 0.8673005276940531944L); END (atanh);}static voidatan2_test (void){ errno = 0; FUNC(atan2) (-0, 1); if (errno == ENOSYS) /* Function not implemented. */ return; START (atan2); /* atan2 (0,x) == 0 for x > 0. */ TEST_ff_f (atan2, 0, 1, 0); /* atan2 (-0,x) == -0 for x > 0. */ TEST_ff_f (atan2, minus_zero, 1, minus_zero); TEST_ff_f (atan2, 0, 0, 0); TEST_ff_f (atan2, minus_zero, 0, minus_zero); /* atan2 (+0,x) == +pi for x < 0. */ TEST_ff_f (atan2, 0, -1, M_PIl); /* atan2 (-0,x) == -pi for x < 0. */ TEST_ff_f (atan2, minus_zero, -1, -M_PIl); TEST_ff_f (atan2, 0, minus_zero, M_PIl); TEST_ff_f (atan2, minus_zero, minus_zero, -M_PIl); /* atan2 (y,+0) == pi/2 for y > 0. */ TEST_ff_f (atan2, 1, 0, M_PI_2l); /* atan2 (y,-0) == pi/2 for y > 0. */ TEST_ff_f (atan2, 1, minus_zero, M_PI_2l); /* atan2 (y,+0) == -pi/2 for y < 0. */ TEST_ff_f (atan2, -1, 0, -M_PI_2l); /* atan2 (y,-0) == -pi/2 for y < 0. */ TEST_ff_f (atan2, -1, minus_zero, -M_PI_2l); /* atan2 (y,inf) == +0 for finite y > 0. */ TEST_ff_f (atan2, 1, plus_infty, 0); /* atan2 (y,inf) == -0 for finite y < 0. */ TEST_ff_f (atan2, -1, plus_infty, minus_zero); /* atan2(+inf, x) == pi/2 for finite x. */ TEST_ff_f (atan2, plus_infty, -1, M_PI_2l); /* atan2(-inf, x) == -pi/2 for finite x. */ TEST_ff_f (atan2, minus_infty, 1, -M_PI_2l); /* atan2 (y,-inf) == +pi for finite y > 0. */ TEST_ff_f (atan2, 1, minus_infty, M_PIl); /* atan2 (y,-inf) == -pi for finite y < 0. */ TEST_ff_f (atan2, -1, minus_infty, -M_PIl); TEST_ff_f (atan2, plus_infty, plus_infty, M_PI_4l); TEST_ff_f (atan2, minus_infty, plus_infty, -M_PI_4l); TEST_ff_f (atan2, plus_infty, minus_infty, M_PI_34l); TEST_ff_f (atan2, minus_infty, minus_infty, -M_PI_34l); TEST_ff_f (atan2, nan_value, nan_value, nan_value); TEST_ff_f (atan2, 0.7L, 1, 0.61072596438920861654375887649023613L); TEST_ff_f (atan2, -0.7L, 1.0L, -0.61072596438920861654375887649023613L); TEST_ff_f (atan2, 0.7L, -1.0L, 2.530866689200584621918884506789267L); TEST_ff_f (atan2, -0.7L, -1.0L, -2.530866689200584621918884506789267L); TEST_ff_f (atan2, 0.4L, 0.0003L, 1.5700463269355215717704032607580829L); TEST_ff_f (atan2, 1.4L, -0.93L, 2.1571487668237843754887415992772736L); END (atan2);}static voidcabs_test (void){ errno = 0; FUNC(cabs) (BUILD_COMPLEX (0.7L, 12.4L)); if (errno == ENOSYS) /* Function not implemented. */ return; START (cabs); /* cabs (x + iy) is specified as hypot (x,y) */ /* cabs (+inf + i x) == +inf. */ TEST_c_f (cabs, plus_infty, 1.0, plus_infty); /* cabs (-inf + i x) == +inf. */ TEST_c_f (cabs, minus_infty, 1.0, plus_infty); TEST_c_f (cabs, minus_infty, nan_value, plus_infty); TEST_c_f (cabs, minus_infty, nan_value, plus_infty); TEST_c_f (cabs, nan_value, nan_value, nan_value); /* cabs (x,y) == cabs (y,x). */ TEST_c_f (cabs, 0.7L, 12.4L, 12.419742348374220601176836866763271L); /* cabs (x,y) == cabs (-x,y). */ TEST_c_f (cabs, -12.4L, 0.7L, 12.419742348374220601176836866763271L); /* cabs (x,y) == cabs (-y,x). */ TEST_c_f (cabs, -0.7L, 12.4L, 12.419742348374220601176836866763271L); /* cabs (x,y) == cabs (-x,-y). */ TEST_c_f (cabs, -12.4L, -0.7L, 12.419742348374220601176836866763271L); /* cabs (x,y) == cabs (-y,-x). */ TEST_c_f (cabs, -0.7L, -12.4L, 12.419742348374220601176836866763271L); /* cabs (x,0) == fabs (x). */ TEST_c_f (cabs, -0.7L, 0, 0.7L); TEST_c_f (cabs, 0.7L, 0, 0.7L); TEST_c_f (cabs, -1.0L, 0, 1.0L); TEST_c_f (cabs, 1.0L, 0, 1.0L); TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L); TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L); TEST_c_f (cabs, 0.7L, 1.2L, 1.3892443989449804508432547041028554L); END (cabs);}#if 0static voidcacos_test (void){ errno = 0; FUNC(cacos) (BUILD_COMPLEX (0.7L, 1.2L)); if (errno == ENOSYS) /* Function not implemented. */ return; START (cacos); TEST_c_c (cacos, 0, 0, M_PI_2l, minus_zero); TEST_c_c (cacos, minus_zero, 0, M_PI_2l, minus_zero); TEST_c_c (cacos, minus_zero, minus_zero, M_PI_2l, 0.0); TEST_c_c (cacos, 0, minus_zero, M_PI_2l, 0.0); TEST_c_c (cacos, minus_infty, plus_infty, M_PI_34l, minus_infty); TEST_c_c (cacos, minus_infty, minus_infty, M_PI_34l, plus_infty); TEST_c_c (cacos, plus_infty, plus_infty, M_PI_4l, minus_infty); TEST_c_c (cacos, plus_infty, minus_infty, M_PI_4l, plus_infty); TEST_c_c (cacos, -10.0, plus_infty, M_PI_2l, minus_infty); TEST_c_c (cacos, -10.0, minus_infty, M_PI_2l, plus_infty); TEST_c_c (cacos, 0, plus_infty, M_PI_2l, minus_infty); TEST_c_c (cacos, 0, minus_infty, M_PI_2l, plus_infty); TEST_c_c (cacos, 0.1L, plus_infty, M_PI_2l, minus_infty); TEST_c_c (cacos, 0.1L, minus_infty, M_PI_2l, plus_infty); TEST_c_c (cacos, minus_infty, 0, M_PIl, minus_infty); TEST_c_c (cacos, minus_infty, minus_zero, M_PIl, plus_infty); TEST_c_c (cacos, minus_infty, 100, M_PIl, minus_infty); TEST_c_c (cacos, minus_infty, -100, M_PIl, plus_infty); TEST_c_c (cacos, plus_infty, 0, 0.0, minus_infty); TEST_c_c (cacos, plus_infty, minus_zero, 0.0, plus_infty); TEST_c_c (cacos, plus_infty, 0.5, 0.0, minus_infty); TEST_c_c (cacos, plus_infty, -0.5, 0.0, plus_infty); TEST_c_c (cacos, plus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN); TEST_c_c (cacos, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN); TEST_c_c (cacos, 0, nan_value, M_PI_2l, nan_value); TEST_c_c (cacos, minus_zero, nan_value, M_PI_2l, nan_value); TEST_c_c (cacos, nan_value, plus_infty, nan_value, minus_infty); TEST_c_c (cacos, nan_value, minus_infty, nan_value, plus_infty); TEST_c_c (cacos, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacos, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacos, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacos, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value); TEST_c_c (cacos, 0.7L, 1.2L, 1.1351827477151551088992008271819053L, -1.0927647857577371459105272080819308L); TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L); END (cacos, complex);}static voidcacosh_test (void){ errno = 0; FUNC(cacosh) (BUILD_COMPLEX (0.7L, 1.2L)); if (errno == ENOSYS) /* Function not implemented. */ return; START (cacosh); TEST_c_c (cacosh, 0, 0, 0.0, M_PI_2l); TEST_c_c (cacosh, minus_zero, 0, 0.0, M_PI_2l); TEST_c_c (cacosh, 0, minus_zero, 0.0, -M_PI_2l); TEST_c_c (cacosh, minus_zero, minus_zero, 0.0, -M_PI_2l); TEST_c_c (cacosh, minus_infty, plus_infty, plus_infty, M_PI_34l); TEST_c_c (cacosh, minus_infty, minus_infty, plus_infty, -M_PI_34l); TEST_c_c (cacosh, plus_infty, plus_infty, plus_infty, M_PI_4l); TEST_c_c (cacosh, plus_infty, minus_infty, plus_infty, -M_PI_4l); TEST_c_c (cacosh, -10.0, plus_infty, plus_infty, M_PI_2l); TEST_c_c (cacosh, -10.0, minus_infty, plus_infty, -M_PI_2l); TEST_c_c (cacosh, 0, plus_infty, plus_infty, M_PI_2l); TEST_c_c (cacosh, 0, minus_infty, plus_infty, -M_PI_2l); TEST_c_c (cacosh, 0.1L, plus_infty, plus_infty, M_PI_2l); TEST_c_c (cacosh, 0.1L, minus_infty, plus_infty, -M_PI_2l); TEST_c_c (cacosh, minus_infty, 0, plus_infty, M_PIl); TEST_c_c (cacosh, minus_infty, minus_zero, plus_infty, -M_PIl); TEST_c_c (cacosh, minus_infty, 100, plus_infty, M_PIl); TEST_c_c (cacosh, minus_infty, -100, plus_infty, -M_PIl); TEST_c_c (cacosh, plus_infty, 0, plus_infty, 0.0); TEST_c_c (cacosh, plus_infty, minus_zero, plus_infty, minus_zero); TEST_c_c (cacosh, plus_infty, 0.5, plus_infty, 0.0); TEST_c_c (cacosh, plus_infty, -0.5, plus_infty, minus_zero); TEST_c_c (cacosh, plus_infty, nan_value, plus_infty, nan_value); TEST_c_c (cacosh, minus_infty, nan_value, plus_infty, nan_value); TEST_c_c (cacosh, 0, nan_value, nan_value, nan_value); TEST_c_c (cacosh, minus_zero, nan_value, nan_value, nan_value); TEST_c_c (cacosh, nan_value, plus_infty, plus_infty, nan_value); TEST_c_c (cacosh, nan_value, minus_infty, plus_infty, nan_value); TEST_c_c (cacosh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacosh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacosh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacosh, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK); TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value); TEST_c_c (cacosh, 0.7L, 1.2L, 1.0927647857577371459105272080819308L, 1.1351827477151551088992008271819053L); TEST_c_c (cacosh, -2, -3, -1.9833870299165354323470769028940395L, 2.1414491111159960199416055713254211L); END (cacosh, complex);}static voidcarg_test (void){ START (carg); /* carg (x + iy) is specified as atan2 (y, x) */ /* carg (x + i 0) == 0 for x > 0. */ TEST_c_f (carg, 2.0, 0, 0); /* carg (x - i 0) == -0 for x > 0. */ TEST_c_f (carg, 2.0, minus_zero, minus_zero); TEST_c_f (carg, 0, 0, 0); TEST_c_f (carg, 0, minus_zero, minus_zero); /* carg (x + i 0) == +pi for x < 0. */ TEST_c_f (carg, -2.0, 0, M_PIl); /* carg (x - i 0) == -pi for x < 0. */ TEST_c_f (carg, -2.0, minus_zero, -M_PIl); TEST_c_f (carg, minus_zero, 0, M_PIl); TEST_c_f (carg, minus_zero, minus_zero, -M_PIl); /* carg (+0 + i y) == pi/2 for y > 0. */ TEST_c_f (carg, 0, 2.0, M_PI_2l); /* carg (-0 + i y) == pi/2 for y > 0. */ TEST_c_f (carg, minus_zero, 2.0, M_PI_2l); /* carg (+0 + i y) == -pi/2 for y < 0. */ TEST_c_f (carg, 0, -2.0, -M_PI_2l); /* carg (-0 + i y) == -pi/2 for y < 0. */ TEST_c_f (carg, minus_zero, -2.0, -M_PI_2l); /* carg (inf + i y) == +0 for finite y > 0. */ TEST_c_f (carg, plus_infty, 2.0, 0); /* carg (inf + i y) == -0 for finite y < 0. */ TEST_c_f (carg, plus_infty, -2.0, minus_zero); /* carg(x + i inf) == pi/2 for finite x. */ TEST_c_f (carg, 10.0, plus_infty, M_PI_2l); /* carg(x - i inf) == -pi/2 for finite x. */ TEST_c_f (carg, 10.0, minus_infty, -M_PI_2l); /* carg (-inf + i y) == +pi for finite y > 0. */ TEST_c_f (carg, minus_infty, 10.0, M_PIl); /* carg (-inf + i y) == -pi for finite y < 0. */ TEST_c_f (carg, minus_infty, -10.0, -M_PIl); TEST_c_f (carg, plus_infty, plus_infty, M_PI_4l); TEST_c_f (carg, plus_infty, minus_infty, -M_PI_4l); TEST_c_f (carg, minus_infty, plus_infty, 3 * M_PI_4l); TEST_c_f (carg, minus_infty, minus_infty, -3 * M_PI_4l); TEST_c_f (carg, nan_value, nan_value, nan_value); END (carg);}static voidcasin_test (void){ errno = 0; FUNC(casin) (BUILD_COMPLEX (0.7L, 1.2L)); if (errno == ENOSYS) /* Function not implemented. */ return; START (casin); TEST_c_c (casin, 0, 0, 0.0, 0.0); TEST_c_c (casin, minus_zero, 0, minus_zero, 0.0); TEST_c_c (casin, 0, minus_zero, 0.0, minus_zero); TEST_c_c (casin, minus_zero, minus_zero, minus_zero, minus_zero); TEST_c_c (casin, plus_infty, plus_infty, M_PI_4l, plus_infty); TEST_c_c (casin, plus_infty, minus_infty, M_PI_4l, minus_infty); TEST_c_c (casin, minus_infty, plus_infty, -M_PI_4l, plus_infty);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -