# Data file for mpc_tanh.
#
# Copyright (C) 2008 INRIA
#
# This file is part of GNU MPC.
#
# GNU MPC 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 3 of the License, or (at your
#o ption) any later version.
#
# GNU MPC 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 this program. If not, see http://www.gnu.org/licenses/ .
#
# For explanations on the file format, see sin.dat.

# special values (following ISO C99 standard)
0 0 7   -1 7    0   7 -inf 7 -inf N N
0 0 7   -1 7   -0   7 -inf 7   -1 N N
0 0 7   -1 7   -0   7 -inf 7   -0 N N
0 0 7   -1 7   +0   7 -inf 7   +0 N N
0 0 7   -1 7   +0   7 -inf 7    1 N N
0 0 7   -1 7    0   7 -inf 7 +inf N N
0 0 7   -1 7    0   7 -inf 7  NaN N N
0 0 7  NaN 7  NaN   7   -1 7 -inf N N
0 0 7  NaN 7  NaN   7   -1 7 +inf N N
0 0 7  NaN 7  NaN   7   -1 7  NaN N N
0 0 7  NaN 7  NaN   7   -0 7 -inf N N
0 0 7   -0 7   -0   7   -0 7   -0 N N
0 0 7   -0 7   +0   7   -0 7   +0 N N
0 0 7  NaN 7  NaN   7   -0 7 +inf N N
0 0 7  NaN 7  NaN   7   -0 7  NaN N N
0 0 7  NaN 7  NaN   7   +0 7 -inf N N
0 0 7   +0 7   -0   7   +0 7   -0 N N
0 0 7   +0 7   +0   7   +0 7   +0 N N
0 0 7  NaN 7  NaN   7   +0 7 +inf N N
0 0 7  NaN 7  NaN   7   +0 7  NaN N N
0 0 7  NaN 7  NaN   7    1 7 -inf N N
0 0 7  NaN 7  NaN   7    1 7 +inf N N
0 0 7  NaN 7  NaN   7    1 7  NaN N N
0 0 7    1 7    0   7 +inf 7 -inf N N
0 0 7    1 7   -0   7 +inf 7   -1 N N
0 0 7    1 7   -0   7 +inf 7   -0 N N
0 0 7    1 7   +0   7 +inf 7   +0 N N
0 0 7    1 7   +0   7 +inf 7    1 N N
0 0 7    1 7    0   7 +inf 7 +inf N N
0 0 7    1 7    0   7 +inf 7  NaN N N
0 0 7  NaN 7  NaN   7  NaN 7 -inf N N
0 0 7  NaN 7  NaN   7  NaN 7   -1 N N
0 0 7  NaN 7   -0   7  NaN 7   -0 N N
0 0 7  NaN 7   +0   7  NaN 7   +0 N N
0 0 7  NaN 7  NaN   7  NaN 7    1 N N
0 0 7  NaN 7  NaN   7  NaN 7 +inf N N
0 0 7  NaN 7  NaN   7  NaN 7  NaN N N

# purely real argument
- 0 50 -0xc2f7d5a8a79ccp-52 50 -0   7 -1 7 -0 N N
- 0 50 -0xc2f7d5a8a79ccp-52 50 +0   7 -1 7 +0 N N
+ 0 50  0xc2f7d5a8a79ccp-52 50 -0   7  1 7 -0 N N
+ 0 50  0xc2f7d5a8a79ccp-52 50 +0   7  1 7 +0 N N

# purely imaginary argument
0 - 50 -0 50 -0x18eb245cbee3a8p-52   7 -0 7 -1 N N
0 + 50 -0 50  0x18eb245cbee3a8p-52   7 -0 7  1 N N
0 - 50 +0 50 -0x18eb245cbee3a8p-52   7 +0 7 -1 N N
0 + 50 +0 50  0x18eb245cbee3a8p-52   7 +0 7  1 N N

# values with +1 and -1
- - 50 -0x1157bffca4a8cp-48 50 -0x459193d28cfe2p-52   7 -1 7 -1 N N
- + 50 -0x1157bffca4a8cp-48 50  0x459193d28cfe2p-52   7 -1 7  1 N N
+ - 50  0x1157bffca4a8cp-48 50 -0x459193d28cfe2p-52   7  1 7 -1 N N
+ + 50  0x1157bffca4a8cp-48 50  0x459193d28cfe2p-52   7  1 7  1 N N

# IEEE-754 double precision
+ - 53 0x10000000000001p-53  53 0x1FFFFFFFFFFFFFp-53   53 0x1E938CBCEB16DFp-55 53 0x1B1F56FDEEF00Fp-53 N N

