xref: /netbsd-src/external/lgpl3/mpc/dist/tests/cosh.dat (revision 8fa80f29617a57ed2098db654a02cc5c7dc15820)
1# Data test file for mpc_cosh.
2#
3# Copyright (C) 2008, 2010 INRIA
4#
5# This file is part of GNU MPC.
6#
7# GNU MPC is free software; you can redistribute it and/or modify it under
8# the terms of the GNU Lesser General Public License as published by the
9# Free Software Foundation; either version 3 of the License, or (at your
10#o ption) any later version.
11#
12# GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15# more details.
16#
17# You should have received a copy of the GNU Lesser General Public License
18# along with this program. If not, see http://www.gnu.org/licenses/ .
19
20# See file sin.dat for the format description.
21
22# Special values, following ISO C99 standard, Annex G,
23# more precisely Section G.6.2.4 "The ccosh functions".
24
25# Rule [conj]: cosh(conj(z)) = conj(cosh(z))
26# Rule [even]: cosh(-z)      = cosh(z)
27
28# cosh(+0 + i*0) = 1 + i*0
290 0 2 1 2 +0   2 +0 2 +0 N N
30# [conj]: cosh(+0 - i*0) = 1 - i*0
310 0 2 1 2 -0   2 +0 2 -0 N N
32# [even]: cosh(-0 - i*0) = 1 + i*0
330 0 2 1 2 +0   2 -0 2 -0 N N
34# [even+conj]: cosh(-0 + i*0) = 1 - i*0
350 0 2 1 2 -0   2 -0 2 +0 N N
36
37# cosh(+0 + i*inf) = nan + i*0 (C99 says that the sign of the imaginary part
38# is left unspecified)
390 0 2 nan 2 0   2 +0 2 +inf N N
40# [conj]: cosh(+0 - i*inf) = nan - i*0
410 0 2 nan 2 0   2 +0 2 -inf N N
42# [even]: cosh(-0 - i*inf) = nan + i*0
430 0 2 nan 2 0   2 -0 2 -inf N N
44# [even+conj]: cosh(-0 + i*inf) = nan - i*0
450 0 2 nan 2 0   2 -0 2 +inf N N
46
47# cosh(+0 +i*nan) = nan + i*0 (C99 says that the sign of the imaginary part
48# is left unspecified)
490 0 2 nan 2 0   2 +0 2 nan N N
50# [even]: cosh(-0 + i*nan) = nan + i*0
510 0 2 nan 2 0   2 -0 2 nan N N
52
53# cosh(x + i*inf) = nan + i*nan for finite nonzero x
540 0 2 nan 2 nan   2  1 2 inf N N
550 0 2 nan 2 nan   2 -1 2 inf N N
56# [conj]: cosh(x - i*inf) = nan + i*nan
570 0 2 nan 2 nan   2  1 2 -inf N N
580 0 2 nan 2 nan   2 -1 2 -inf N N
59# [even] and [even+conj] are already considered for x=-1 < 0
60
61# cosh(x + i*nan) = nan + i*nan for finite nonzero x
620 0 2 nan 2 nan   2  1 2 nan N N
630 0 2 nan 2 nan   2 -1 2 nan N N
64# [conj] makes no sense since nan has no sign
65# [even] is already considered for x=-1 < 0
66
67# cosh(+inf + i*0) = +inf + i*0
680 0 2 +inf 2 +0   2 +inf 2 +0   N N
69# [conj]: cosh(+inf - i*0) = +inf - i*0
700 0 2 +inf 2 -0   2 +inf 2 -0   N N
71# [even]: cosh(-inf - i*0) = +inf + i*0
720 0 2 +inf 2 +0   2 -inf 2 -0   N N
73# [even+conj]: cosh(-inf + i*0) = +inf - i*0
740 0 2 +inf 2 -0   2 -inf 2 +0   N N
75
76# cosh(+inf + i*y) = +inf * (cos(y) + i*sin(y)) for finite non-zero y
770 0 2 +inf 2 +inf   2 +inf 2 1    N N
780 0 2 -inf 2 +inf   2 +inf 2 2    N N
790 0 2 -inf 2 -inf   2 +inf 2 4    N N
800 0 2 +inf 2 -inf   2 +inf 2 1024 N N
81# [conj]
820 0 2 +inf 2 -inf   2 +inf 2 -1    N N
830 0 2 -inf 2 -inf   2 +inf 2 -2    N N
840 0 2 -inf 2 +inf   2 +inf 2 -4    N N
850 0 2 +inf 2 +inf   2 +inf 2 -1024 N N
86# [even]
870 0 2 +inf 2 +inf   2 -inf 2 -1    N N
880 0 2 -inf 2 +inf   2 -inf 2 -2    N N
890 0 2 -inf 2 -inf   2 -inf 2 -4    N N
900 0 2 +inf 2 -inf   2 -inf 2 -1024 N N
91# [even+conj]
920 0 2 +inf 2 -inf   2 -inf 2 1    N N
930 0 2 -inf 2 -inf   2 -inf 2 2    N N
940 0 2 -inf 2 +inf   2 -inf 2 4    N N
950 0 2 +inf 2 +inf   2 -inf 2 1024 N N
96
97# cosh(+inf + i*inf) = +inf + i*nan (C99 leaves unspecified the sign of the
98# real part)
990 0 2 inf 2 nan   2 +inf 2 +inf   N N
100# [conj]: cosh(+inf - i*inf) = +inf + i*nan
1010 0 2 inf 2 nan   2 +inf 2 -inf   N N
102# [even]: cosh(-inf - i*inf) = +inf + i*nan
1030 0 2 inf 2 nan   2 -inf 2 -inf   N N
104# [even+conj]: cosh(-inf + i*inf) = +inf + i*nan
1050 0 2 inf 2 nan   2 -inf 2 +inf   N N
106
107# cosh(+inf + i*nan) = +inf + i*nan
1080 0 2 +inf 2 nan   2 +inf 2 nan   N N
109# [conj] makes no sense since NaN has no sign
110# [even]: cosh(-inf + i*nan) = +inf + i*nan
1110 0 2 +inf 2 nan   2 -inf 2 nan   N N
112
113# cosh(nan + i*0) = nan - i*0 (C99 leaves unspecified the sign of the
114# imaginary part)
1150 0 2 nan 2 0   2 nan 2 +0   N N
116# [conj]: cosh(nan - i*0) = nan + i*0
1170 0 2 nan 2 0   2 nan 2 -0   N N
118
119# cosh(nan + i*y) = nan + i*nan for all nonzero y (including +/-inf)
1200 0 2 nan 2 nan   2 nan 2  1   N N
1210 0 2 nan 2 nan   2 nan 2 -1   N N
1220 0 2 nan 2 nan   2 nan 2 +inf   N N
1230 0 2 nan 2 nan   2 nan 2 -inf   N N
124
125# cosh(nan + i*nan) = nan + i*nan
1260 0 2 nan 2 nan   2 nan 2 nan   N N
127
128+ + 53 0x10000000000001p-53 53 0x10000000000001p-52   53 0x1DA2E1BD2C9EBCp-53 53 0x138AADEA15829Fp-52 N N
129
130
131# huge values
132+ - 53 +inf 53 -inf 53 0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
133- - 53 -inf 53 -inf 53 -0x1B3E8A3660D279p-3 53 0x4580CBF242683p-3 N N
134