head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.2
	netbsd-11-0-RC3:1.1.1.2
	netbsd-11-0-RC2:1.1.1.2
	netbsd-11-0-RC1:1.1.1.2
	perseant-exfatfs-base-20250801:1.1.1.2
	netbsd-11:1.1.1.2.0.14
	netbsd-11-base:1.1.1.2
	netbsd-10-1-RELEASE:1.1.1.2
	perseant-exfatfs-base-20240630:1.1.1.2
	perseant-exfatfs:1.1.1.2.0.12
	perseant-exfatfs-base:1.1.1.2
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.2
	netbsd-10-0-RELEASE:1.1.1.2
	netbsd-10-0-RC6:1.1.1.2
	netbsd-10-0-RC5:1.1.1.2
	netbsd-10-0-RC4:1.1.1.2
	netbsd-10-0-RC3:1.1.1.2
	netbsd-10-0-RC2:1.1.1.2
	netbsd-10-0-RC1:1.1.1.2
	mpc-1-3-1:1.1.1.2
	netbsd-10:1.1.1.2.0.10
	netbsd-10-base:1.1.1.2
	netbsd-9-3-RELEASE:1.1.1.2
	mpc-1-2-1:1.1.1.2
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.8
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.6
	cjep_staticlib_x-base:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.2
	mpc-1-2-0:1.1.1.2
	phil-wifi-20200421:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	is-mlppp:1.1.1.2.0.4
	is-mlppp-base:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-8-2-RELEASE:1.1.1.1
	netbsd-9-0-RELEASE:1.1.1.2
	netbsd-9-0-RC2:1.1.1.2
	netbsd-9-0-RC1:1.1.1.2
	phil-wifi-20191119:1.1.1.2
	netbsd-9:1.1.1.2.0.2
	netbsd-9-base:1.1.1.2
	phil-wifi-20190609:1.1.1.2
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	pgoyette-compat-merge-20190127:1.1.1.1.28.1
	pgoyette-compat-20190127:1.1.1.2
	pgoyette-compat-20190118:1.1.1.2
	pgoyette-compat-1226:1.1.1.2
	pgoyette-compat-1126:1.1.1.2
	pgoyette-compat-1020:1.1.1.2
	pgoyette-compat-0930:1.1.1.2
	pgoyette-compat-0906:1.1.1.2
	mpc-1-1-0:1.1.1.2
	netbsd-7-2-RELEASE:1.1.1.1
	pgoyette-compat-0728:1.1.1.1
	netbsd-8-0-RELEASE:1.1.1.1
	phil-wifi:1.1.1.1.0.30
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	netbsd-7-1-2-RELEASE:1.1.1.1
	pgoyette-compat:1.1.1.1.0.28
	pgoyette-compat-base:1.1.1.1
	netbsd-7-1-1-RELEASE:1.1.1.1
	matt-nb8-mediatek:1.1.1.1.0.26
	matt-nb8-mediatek-base:1.1.1.1
	mpc-1-0-3:1.1.1.1
	perseant-stdc-iso10646:1.1.1.1.0.24
	perseant-stdc-iso10646-base:1.1.1.1
	netbsd-8:1.1.1.1.0.22
	netbsd-8-base:1.1.1.1
	prg-localcount2-base3:1.1.1.1
	prg-localcount2-base2:1.1.1.1
	prg-localcount2-base1:1.1.1.1
	prg-localcount2:1.1.1.1.0.20
	prg-localcount2-base:1.1.1.1
	pgoyette-localcount-20170426:1.1.1.1
	bouyer-socketcan-base1:1.1.1.1
	pgoyette-localcount-20170320:1.1.1.1
	netbsd-7-1:1.1.1.1.0.18
	netbsd-7-1-RELEASE:1.1.1.1
	netbsd-7-1-RC2:1.1.1.1
	netbsd-7-nhusb-base-20170116:1.1.1.1
	bouyer-socketcan:1.1.1.1.0.16
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	netbsd-7-1-RC1:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	netbsd-7-0-2-RELEASE:1.1.1.1
	localcount-20160914:1.1.1.1
	netbsd-7-nhusb:1.1.1.1.0.14
	netbsd-7-nhusb-base:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.12
	pgoyette-localcount-base:1.1.1.1
	netbsd-7-0-1-RELEASE:1.1.1.1
	netbsd-7-0:1.1.1.1.0.10
	netbsd-7-0-RELEASE:1.1.1.1
	netbsd-7-0-RC3:1.1.1.1
	netbsd-7-0-RC2:1.1.1.1
	netbsd-7-0-RC1:1.1.1.1
	tls-maxphys-base:1.1.1.1
	tls-maxphys:1.1.1.1.0.8
	netbsd-7:1.1.1.1.0.6
	netbsd-7-base:1.1.1.1
	yamt-pagecache:1.1.1.1.0.4
	yamt-pagecache-base9:1.1.1.1
	tls-earlyentropy:1.1.1.1.0.2
	tls-earlyentropy-base:1.1.1.1
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
	riastradh-drm2-base3:1.1.1.1
	mpc-1-0-1:1.1.1.1
	mpc:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2013.11.28.10.32.39;	author mrg;	state Exp;
branches
	1.1.1.1;
next	;
commitid	q22cPE2uoE8G02fx;

1.1.1.1
date	2013.11.28.10.32.39;	author mrg;	state Exp;
branches
	1.1.1.1.4.1
	1.1.1.1.8.1
	1.1.1.1.28.1
	1.1.1.1.30.1;
next	1.1.1.2;
commitid	q22cPE2uoE8G02fx;

1.1.1.2
date	2018.09.04.04.28.12;	author mrg;	state Exp;
branches;
next	;
commitid	oOC0vQcFoJw32KQA;

1.1.1.1.4.1
date	2013.11.28.10.32.39;	author yamt;	state dead;
branches;
next	1.1.1.1.4.2;
commitid	nx2BSsHy0NPeAxBx;

1.1.1.1.4.2
date	2014.05.22.14.09.14;	author yamt;	state Exp;
branches;
next	;
commitid	nx2BSsHy0NPeAxBx;

1.1.1.1.8.1
date	2013.11.28.10.32.39;	author tls;	state dead;
branches;
next	1.1.1.1.8.2;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.1.8.2
date	2014.08.20.00.00.02;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.1.28.1
date	2018.09.06.06.53.44;	author pgoyette;	state Exp;
branches;
next	;
commitid	HCi1bXD317XIK0RA;

1.1.1.1.30.1
date	2019.06.10.22.02.25;	author christos;	state Exp;
branches;
next	;
commitid	jtc8rnCzWiEEHGqB;


desc
@@


1.1
log
@Initial revision
@
text
@# Data test file for mpc_tan.
#
# Copyright (C) 2008, 2010, 2011 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/ .

# See file sin.dat for the format description.

# Special values, following ISO C99 standard, Annex G,
# more precisely Section G.6.2.6 "The ctanh functions"
# since G.6 defines ctan(z) as -i * ctanh(i*z)

# Rule [conj]: tan(conj(z)) = conj(tan(z))
# Rule [odd]:  tan(-z) = -tan(z)

# Note: for each rule, we cite the rule for tanh from C99,
#       and below the translated rule for tan, using tanh(z) = i tan(-iz),
#       thus tanh(a+i*b) = c+i*d translates to tan(b-i*a) = d-i*c

# tanh(+0 + i*0) = +0 + i*0
# tan (+0 - i*0) = +0 - i*0
0 0 2 +0 2 -0   2 +0 2 -0   N N
# [conj]: tan(+0 + i*0) =  +0 + i*0
0 0 2 +0 2 +0   2 +0 2 +0   N N
# [odd]: tan(-0 + i*0) =  -0 + i*0
0 0 2 -0 2 +0   2 -0 2 +0   N N
# [odd+conj]: tan(-0 - i*0) =  -0 - i*0
0 0 2 -0 2 -0   2 -0 2 -0   N N

# tanh(x + i*inf) = nan + i*nan for finite x
# tan (inf - i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 +inf 2 +1   N N
0 0 2 nan 2 nan   2 +inf 2 +0   N N
0 0 2 nan 2 nan   2 +inf 2 -0   N N
0 0 2 nan 2 nan   2 +inf 2 -1   N N
# [conj] does not make sense since we already considered x < 0
# [odd]: tan(-inf + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 -inf 2 +1   N N
0 0 2 nan 2 nan   2 -inf 2 +0   N N
0 0 2 nan 2 nan   2 -inf 2 -0   N N
0 0 2 nan 2 nan   2 -inf 2 -1   N N

# tanh(x + i*nan) = nan + i*nan for finite x
# tan (nan + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 nan 2  1    N N
0 0 2 nan 2 nan   2 nan 2 +0    N N
0 0 2 nan 2 nan   2 nan 2 -0    N N
0 0 2 nan 2 nan   2 nan 2 -1    N N
# [conj] makes no sense since we already considered x < 0
# idem for [odd] since nan has no sign

# tanh(+inf + i*y) = 1 + i*0*sin(2y) for positive-signed finite y
# tan (y - i*inf) = 0*sin(2*y) - i*1 for positive-signed finite y
0 0 2 +0 2 -1   2 1 2 -inf   N N
0 0 2 -0 2 -1   2 2 2 -inf   N N
# [conj]: tan (y + i*inf) = 0*sin(2*y) + i*1
0 0 2 +0 2 +1   2 1 2 +inf   N N
0 0 2 -0 2 +1   2 2 2 +inf   N N
# [odd]: tan (-y + i*inf) = -0*sin(2*y) + i*1
0 0 2 -0 2 +1   2 -1 2 +inf   N N
0 0 2 +0 2 +1   2 -2 2 +inf   N N
# [odd+conj]: tan (-y - i*inf) = -0*sin(2*y) - i*1
0 0 2 -0 2 -1   2 -1 2 -inf   N N
0 0 2 +0 2 -1   2 -2 2 -inf   N N

# tanh(+inf + i*inf) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (+inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 +inf 2 -inf   N N
# [conj]: tan (+inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 +inf 2 +inf   N N
# [odd]:  tan (-inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 -inf 2 +inf   N N
# [odd+conj]: tan (-inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 -inf 2 -inf   N N

# tanh(+inf + i*nan) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (nan  - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 nan 2 -inf   N N
# [conj]: tan (nan + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 nan 2 +inf   N N
# [odd] = [conj] since nan has no sign, and -(+/-0) = +/-0

# tanh(nan + i*0) = nan + i*0
# tan(+0 + i*nan) = +0 + i*nan
0 0 2 +0 2 nan   2 +0 2 nan   N N
# [conj] gives the same identity since nan has no sign
# [odd]: tan(-0 + i*nan) = -0 + i*nan
0 0 2 -0 2 nan   2 -0 2 nan   N N

# tanh(nan + i*y) = nan + i*nan for all nonzero y
# tan (y + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 +inf 2 nan   N N
0 0 2 nan 2 nan   2 +1   2 nan   N N
0 0 2 nan 2 nan   2 -1   2 nan   N N
0 0 2 nan 2 nan   2 -inf 2 nan   N N
# [conj] gives no new relation since nan has no sign
# [odd] gives no new relation since we already considered y < 0

# tanh(nan + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 nan 2 nan   N N

# corner case: op = atan (2^(-k) + i*2^k) for k=200 and k=1000
+ + 100 0x1@@-50 100 0x1@@50  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89884d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38 1000 0x1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555548888888888888888888888888888888888888888888888888a@@-50 N N
+ + 100 0x1@@-250 100 0x1@@250  4000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89885d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38aba734d22c7f51fa499ebf06caba47b9475b2c38c5e6ac410aa5773daa520ee12d2cdace186a9c95793009e2e8d811943042f86520bc8c5c6d9c77c73cee58301d0c07364f0745d80f451f6b8abbe0de98a593bc5797ed2ab02e30732a92f9d52ad5ca2ba44c3131f40a202ae51cb51555885b5a662e1a08a0f46750aa4357be3974c9d9f70a08b1b7de1515d4e2aeba0c18fb672e1f0b4dc3c98f57eb5d19b61267ae3d1929c0944ac33b9dc7a44c35a5dcd7e25ff40db31410c9b0ec04e67d90d4c8a43e56302ef6401977c22eaef4c2bad8ee13118175b28dc411c49f40e9cb566287b6b7f9c1fa211c9705a2415242100234e478254f0fccaf10e334217b74b64d33864e30d5e9c4783528d0696c2a17b44b07d39455a899d1b77785b609bd1df25d1df8283f7d954c50f8b28e9cd780bb33652c9f412187444677430ca2b7cfda3ec252e19dc5af5f7037baec42e09039a00d224fab60b5532769d5311b1fbb830dff6fb9214d811e9be86b92680509246d87f56a 4000 0x1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556@@-250 N N

# yet another absurd case: op = atan (2^200) + 2^(-200000)*I;
# expensive to compute
#- - 50 0x1@@50 50 0x1@@-49900  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e803177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de8988628a1c5302b6d540ec33d62c53131c62d4c0a6894a0b2939d784deb9521e7a621f92f1e0bd0d9564ec6981cd3608709e5c18e 1000 0x1@@-50000 N N

# corner case
- + 9 -0x9bp-51 9 -1    9 -0x16dp-8 9 -0x77p-3   N N

# huge values
+ - 53 -0 53 -1  53 0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
- - 53 +0 53 -1  53 -0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
+ + 53 -0 53 +1  53 -0x1B3E8A3660D279p-3 53 0x4580CBF242683p-3 N N

# some values taken from ttan.c
+ + 53 0x1D02967C31CDB5 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 N N
- + 53 0x1D02967C31CDB4 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 D U
- - 53 0x1D02967C31CDB4 53 0x1D02967C31CDB4  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 Z D
- + 53 -0xB0BD0AA4A3B3D 53 -0xB0BD0AA4A3B3D  53 0x1921FB54442D19p-52 53 -0x172CECE675D1FDp-105 N N
@


1.1.1.1
log
@initial import of MPC 1.0.1 package.  changes since 0.9:

Changes in version 1.0.1:
  - Switched to automake 1.11.6, see
    https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html
  - #14669: Fixed extraction of CC from gmp.h
  - Fixed case of intermediate zero real or imaginary part in mpc_fma,
    found by hydra with GMP_CHECK_RANDOMIZE=1346362345

Changes in version 1.0:
  - First release as a GNU package
  - License change: LGPLv3+ for code, GFDLv1.3+ (with no invariant sections)
    for documentation
  - 100% of all lines are covered by tests
  - Functions renamed:
    mpc_mul_2exp to mpc_mul_2ui, mpc_div_2exp to mpc_div_2ui
  - 0^0, which returned (NaN,NaN) previously, now returns (1,+0)
  - Removed compatibility with K&R compilers, untestable due to lack of
    such compilers
  - New functions: mpc_log10, mpc_mul_2si, mpc_div_2si
  - Speed-ups:
    - mpc_fma
  - Bug fixes:
    - mpc_div and mpc_norm now return a value indicating the effective
      rounding direction, as the other functions
    - mpc_mul, mpc_sqr and mpc_norm now return correct results even if there
      are over- or underflows during the computation
    - mpc_asin, mpc_proj, mpc_sqr: Wrong result when input variable has
      infinite part and equals output variable is corrected
    - mpc_fr_sub: Wrong return value for imaginary part is corrected
@
text
@@


1.1.1.1.30.1
log
@Sync with HEAD
@
text
@a135 3

# bug reported by Joseph Myers (07 Apr 2015)
- - 2 0 2 0.75 2 0x1p-10 2 0x1p1000 Z Z
@


1.1.1.1.28.1
log
@Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
@
text
@a135 3

# bug reported by Joseph Myers (07 Apr 2015)
- - 2 0 2 0.75 2 0x1p-10 2 0x1p1000 Z Z
@


1.1.1.2
log
@import MPC 1.1.0.  from their NEWS:

Changes in version 1.1.0:
  - Minimally required library versions: GMP 5.0.0 and MPFR 3.0.0
  - Fixed issues with MPFR 4.0.0
  - New functions: mpc_cmp_abs, mpc_rootofunity
  - Improved speed for corner cases of mpc_asin, mpc_sin, see
    http://lists.gforge.inria.fr/pipermail/mpc-discuss/2013-December/001266.html
  - Rewrite of the testing framework
  - New mpcbench tool, used with "make bench"
  - Fixed handling of over- and underflows with directed rounding in the
    "other direction" for mpc_cos, mpc_sin, mpc_exp and mpc_pow, see
    http://lists.gforge.inria.fr/pipermail/mpc-discuss/2015-March/001336.html
  - Fixed a bug in mpc_atan(0,y) with |y| near 1, see
    http://lists.gforge.inria.fr/pipermail/mpc-discuss/2017-March/001404.html
@
text
@a135 3

# bug reported by Joseph Myers (07 Apr 2015)
- - 2 0 2 0.75 2 0x1p-10 2 0x1p1000 Z Z
@


1.1.1.1.8.1
log
@file tan.dat was added on branch tls-maxphys on 2014-08-20 00:00:02 +0000
@
text
@d1 135
@


1.1.1.1.8.2
log
@Rebase to HEAD as of a few days ago.
@
text
@a0 135
# Data test file for mpc_tan.
#
# Copyright (C) 2008, 2010, 2011 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/ .

# See file sin.dat for the format description.

# Special values, following ISO C99 standard, Annex G,
# more precisely Section G.6.2.6 "The ctanh functions"
# since G.6 defines ctan(z) as -i * ctanh(i*z)

# Rule [conj]: tan(conj(z)) = conj(tan(z))
# Rule [odd]:  tan(-z) = -tan(z)

# Note: for each rule, we cite the rule for tanh from C99,
#       and below the translated rule for tan, using tanh(z) = i tan(-iz),
#       thus tanh(a+i*b) = c+i*d translates to tan(b-i*a) = d-i*c

# tanh(+0 + i*0) = +0 + i*0
# tan (+0 - i*0) = +0 - i*0
0 0 2 +0 2 -0   2 +0 2 -0   N N
# [conj]: tan(+0 + i*0) =  +0 + i*0
0 0 2 +0 2 +0   2 +0 2 +0   N N
# [odd]: tan(-0 + i*0) =  -0 + i*0
0 0 2 -0 2 +0   2 -0 2 +0   N N
# [odd+conj]: tan(-0 - i*0) =  -0 - i*0
0 0 2 -0 2 -0   2 -0 2 -0   N N

# tanh(x + i*inf) = nan + i*nan for finite x
# tan (inf - i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 +inf 2 +1   N N
0 0 2 nan 2 nan   2 +inf 2 +0   N N
0 0 2 nan 2 nan   2 +inf 2 -0   N N
0 0 2 nan 2 nan   2 +inf 2 -1   N N
# [conj] does not make sense since we already considered x < 0
# [odd]: tan(-inf + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 -inf 2 +1   N N
0 0 2 nan 2 nan   2 -inf 2 +0   N N
0 0 2 nan 2 nan   2 -inf 2 -0   N N
0 0 2 nan 2 nan   2 -inf 2 -1   N N

# tanh(x + i*nan) = nan + i*nan for finite x
# tan (nan + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 nan 2  1    N N
0 0 2 nan 2 nan   2 nan 2 +0    N N
0 0 2 nan 2 nan   2 nan 2 -0    N N
0 0 2 nan 2 nan   2 nan 2 -1    N N
# [conj] makes no sense since we already considered x < 0
# idem for [odd] since nan has no sign

# tanh(+inf + i*y) = 1 + i*0*sin(2y) for positive-signed finite y
# tan (y - i*inf) = 0*sin(2*y) - i*1 for positive-signed finite y
0 0 2 +0 2 -1   2 1 2 -inf   N N
0 0 2 -0 2 -1   2 2 2 -inf   N N
# [conj]: tan (y + i*inf) = 0*sin(2*y) + i*1
0 0 2 +0 2 +1   2 1 2 +inf   N N
0 0 2 -0 2 +1   2 2 2 +inf   N N
# [odd]: tan (-y + i*inf) = -0*sin(2*y) + i*1
0 0 2 -0 2 +1   2 -1 2 +inf   N N
0 0 2 +0 2 +1   2 -2 2 +inf   N N
# [odd+conj]: tan (-y - i*inf) = -0*sin(2*y) - i*1
0 0 2 -0 2 -1   2 -1 2 -inf   N N
0 0 2 +0 2 -1   2 -2 2 -inf   N N

# tanh(+inf + i*inf) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (+inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 +inf 2 -inf   N N
# [conj]: tan (+inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 +inf 2 +inf   N N
# [odd]:  tan (-inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 -inf 2 +inf   N N
# [odd+conj]: tan (-inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 -inf 2 -inf   N N

# tanh(+inf + i*nan) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (nan  - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 nan 2 -inf   N N
# [conj]: tan (nan + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 nan 2 +inf   N N
# [odd] = [conj] since nan has no sign, and -(+/-0) = +/-0

# tanh(nan + i*0) = nan + i*0
# tan(+0 + i*nan) = +0 + i*nan
0 0 2 +0 2 nan   2 +0 2 nan   N N
# [conj] gives the same identity since nan has no sign
# [odd]: tan(-0 + i*nan) = -0 + i*nan
0 0 2 -0 2 nan   2 -0 2 nan   N N

# tanh(nan + i*y) = nan + i*nan for all nonzero y
# tan (y + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 +inf 2 nan   N N
0 0 2 nan 2 nan   2 +1   2 nan   N N
0 0 2 nan 2 nan   2 -1   2 nan   N N
0 0 2 nan 2 nan   2 -inf 2 nan   N N
# [conj] gives no new relation since nan has no sign
# [odd] gives no new relation since we already considered y < 0

# tanh(nan + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 nan 2 nan   N N

# corner case: op = atan (2^(-k) + i*2^k) for k=200 and k=1000
+ + 100 0x1@@-50 100 0x1@@50  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89884d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38 1000 0x1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555548888888888888888888888888888888888888888888888888a@@-50 N N
+ + 100 0x1@@-250 100 0x1@@250  4000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89885d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38aba734d22c7f51fa499ebf06caba47b9475b2c38c5e6ac410aa5773daa520ee12d2cdace186a9c95793009e2e8d811943042f86520bc8c5c6d9c77c73cee58301d0c07364f0745d80f451f6b8abbe0de98a593bc5797ed2ab02e30732a92f9d52ad5ca2ba44c3131f40a202ae51cb51555885b5a662e1a08a0f46750aa4357be3974c9d9f70a08b1b7de1515d4e2aeba0c18fb672e1f0b4dc3c98f57eb5d19b61267ae3d1929c0944ac33b9dc7a44c35a5dcd7e25ff40db31410c9b0ec04e67d90d4c8a43e56302ef6401977c22eaef4c2bad8ee13118175b28dc411c49f40e9cb566287b6b7f9c1fa211c9705a2415242100234e478254f0fccaf10e334217b74b64d33864e30d5e9c4783528d0696c2a17b44b07d39455a899d1b77785b609bd1df25d1df8283f7d954c50f8b28e9cd780bb33652c9f412187444677430ca2b7cfda3ec252e19dc5af5f7037baec42e09039a00d224fab60b5532769d5311b1fbb830dff6fb9214d811e9be86b92680509246d87f56a 4000 0x1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556@@-250 N N

# yet another absurd case: op = atan (2^200) + 2^(-200000)*I;
# expensive to compute
#- - 50 0x1@@50 50 0x1@@-49900  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e803177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de8988628a1c5302b6d540ec33d62c53131c62d4c0a6894a0b2939d784deb9521e7a621f92f1e0bd0d9564ec6981cd3608709e5c18e 1000 0x1@@-50000 N N

# corner case
- + 9 -0x9bp-51 9 -1    9 -0x16dp-8 9 -0x77p-3   N N

# huge values
+ - 53 -0 53 -1  53 0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
- - 53 +0 53 -1  53 -0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
+ + 53 -0 53 +1  53 -0x1B3E8A3660D279p-3 53 0x4580CBF242683p-3 N N

# some values taken from ttan.c
+ + 53 0x1D02967C31CDB5 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 N N
- + 53 0x1D02967C31CDB4 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 D U
- - 53 0x1D02967C31CDB4 53 0x1D02967C31CDB4  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 Z D
- + 53 -0xB0BD0AA4A3B3D 53 -0xB0BD0AA4A3B3D  53 0x1921FB54442D19p-52 53 -0x172CECE675D1FDp-105 N N
@


1.1.1.1.4.1
log
@file tan.dat was added on branch yamt-pagecache on 2014-05-22 14:09:14 +0000
@
text
@d1 135
@


1.1.1.1.4.2
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@a0 135
# Data test file for mpc_tan.
#
# Copyright (C) 2008, 2010, 2011 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/ .

# See file sin.dat for the format description.

# Special values, following ISO C99 standard, Annex G,
# more precisely Section G.6.2.6 "The ctanh functions"
# since G.6 defines ctan(z) as -i * ctanh(i*z)

# Rule [conj]: tan(conj(z)) = conj(tan(z))
# Rule [odd]:  tan(-z) = -tan(z)

# Note: for each rule, we cite the rule for tanh from C99,
#       and below the translated rule for tan, using tanh(z) = i tan(-iz),
#       thus tanh(a+i*b) = c+i*d translates to tan(b-i*a) = d-i*c

# tanh(+0 + i*0) = +0 + i*0
# tan (+0 - i*0) = +0 - i*0
0 0 2 +0 2 -0   2 +0 2 -0   N N
# [conj]: tan(+0 + i*0) =  +0 + i*0
0 0 2 +0 2 +0   2 +0 2 +0   N N
# [odd]: tan(-0 + i*0) =  -0 + i*0
0 0 2 -0 2 +0   2 -0 2 +0   N N
# [odd+conj]: tan(-0 - i*0) =  -0 - i*0
0 0 2 -0 2 -0   2 -0 2 -0   N N

# tanh(x + i*inf) = nan + i*nan for finite x
# tan (inf - i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 +inf 2 +1   N N
0 0 2 nan 2 nan   2 +inf 2 +0   N N
0 0 2 nan 2 nan   2 +inf 2 -0   N N
0 0 2 nan 2 nan   2 +inf 2 -1   N N
# [conj] does not make sense since we already considered x < 0
# [odd]: tan(-inf + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 -inf 2 +1   N N
0 0 2 nan 2 nan   2 -inf 2 +0   N N
0 0 2 nan 2 nan   2 -inf 2 -0   N N
0 0 2 nan 2 nan   2 -inf 2 -1   N N

# tanh(x + i*nan) = nan + i*nan for finite x
# tan (nan + i*x) = nan + i*nan for finite x
0 0 2 nan 2 nan   2 nan 2  1    N N
0 0 2 nan 2 nan   2 nan 2 +0    N N
0 0 2 nan 2 nan   2 nan 2 -0    N N
0 0 2 nan 2 nan   2 nan 2 -1    N N
# [conj] makes no sense since we already considered x < 0
# idem for [odd] since nan has no sign

# tanh(+inf + i*y) = 1 + i*0*sin(2y) for positive-signed finite y
# tan (y - i*inf) = 0*sin(2*y) - i*1 for positive-signed finite y
0 0 2 +0 2 -1   2 1 2 -inf   N N
0 0 2 -0 2 -1   2 2 2 -inf   N N
# [conj]: tan (y + i*inf) = 0*sin(2*y) + i*1
0 0 2 +0 2 +1   2 1 2 +inf   N N
0 0 2 -0 2 +1   2 2 2 +inf   N N
# [odd]: tan (-y + i*inf) = -0*sin(2*y) + i*1
0 0 2 -0 2 +1   2 -1 2 +inf   N N
0 0 2 +0 2 +1   2 -2 2 +inf   N N
# [odd+conj]: tan (-y - i*inf) = -0*sin(2*y) - i*1
0 0 2 -0 2 -1   2 -1 2 -inf   N N
0 0 2 +0 2 -1   2 -2 2 -inf   N N

# tanh(+inf + i*inf) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (+inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 +inf 2 -inf   N N
# [conj]: tan (+inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 +inf 2 +inf   N N
# [odd]:  tan (-inf + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 -inf 2 +inf   N N
# [odd+conj]: tan (-inf - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 -inf 2 -inf   N N

# tanh(+inf + i*nan) = 1 +/- i*0 (unspecified sign of zero for C99)
# tan (nan  - i*inf) = +/-0 - i*1
0 0 2 0 2 -1   2 nan 2 -inf   N N
# [conj]: tan (nan + i*inf) = +/-0 + i*1
0 0 2 0 2 +1   2 nan 2 +inf   N N
# [odd] = [conj] since nan has no sign, and -(+/-0) = +/-0

# tanh(nan + i*0) = nan + i*0
# tan(+0 + i*nan) = +0 + i*nan
0 0 2 +0 2 nan   2 +0 2 nan   N N
# [conj] gives the same identity since nan has no sign
# [odd]: tan(-0 + i*nan) = -0 + i*nan
0 0 2 -0 2 nan   2 -0 2 nan   N N

# tanh(nan + i*y) = nan + i*nan for all nonzero y
# tan (y + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 +inf 2 nan   N N
0 0 2 nan 2 nan   2 +1   2 nan   N N
0 0 2 nan 2 nan   2 -1   2 nan   N N
0 0 2 nan 2 nan   2 -inf 2 nan   N N
# [conj] gives no new relation since nan has no sign
# [odd] gives no new relation since we already considered y < 0

# tanh(nan + i*nan) = nan + i*nan
0 0 2 nan 2 nan   2 nan 2 nan   N N

# corner case: op = atan (2^(-k) + i*2^k) for k=200 and k=1000
+ + 100 0x1@@-50 100 0x1@@50  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89884d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38 1000 0x1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555548888888888888888888888888888888888888888888888888a@@-50 N N
+ + 100 0x1@@-250 100 0x1@@250  4000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e804177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de89885d34c6fdad617feb96de80d6fdbdc70d7f6b5133f4b5d3e4822f8963fcc9250cca3d9c8b67b8400f97142c77e0b31b4906c38aba734d22c7f51fa499ebf06caba47b9475b2c38c5e6ac410aa5773daa520ee12d2cdace186a9c95793009e2e8d811943042f86520bc8c5c6d9c77c73cee58301d0c07364f0745d80f451f6b8abbe0de98a593bc5797ed2ab02e30732a92f9d52ad5ca2ba44c3131f40a202ae51cb51555885b5a662e1a08a0f46750aa4357be3974c9d9f70a08b1b7de1515d4e2aeba0c18fb672e1f0b4dc3c98f57eb5d19b61267ae3d1929c0944ac33b9dc7a44c35a5dcd7e25ff40db31410c9b0ec04e67d90d4c8a43e56302ef6401977c22eaef4c2bad8ee13118175b28dc411c49f40e9cb566287b6b7f9c1fa211c9705a2415242100234e478254f0fccaf10e334217b74b64d33864e30d5e9c4783528d0696c2a17b44b07d39455a899d1b77785b609bd1df25d1df8283f7d954c50f8b28e9cd780bb33652c9f412187444677430ca2b7cfda3ec252e19dc5af5f7037baec42e09039a00d224fab60b5532769d5311b1fbb830dff6fb9214d811e9be86b92680509246d87f56a 4000 0x1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556@@-250 N N

# yet another absurd case: op = atan (2^200) + 2^(-200000)*I;
# expensive to compute
#- - 50 0x1@@50 50 0x1@@-49900  1000 0x1.921fb54442d18469898cc51701b839a252049c1114cf98e803177d4c76273644a29410f31c6809bbdf2a33679a748636605614dbe4be286e9fc26adadaa3848bc90b6aecc4bcfd8de8988628a1c5302b6d540ec33d62c53131c62d4c0a6894a0b2939d784deb9521e7a621f92f1e0bd0d9564ec6981cd3608709e5c18e 1000 0x1@@-50000 N N

# corner case
- + 9 -0x9bp-51 9 -1    9 -0x16dp-8 9 -0x77p-3   N N

# huge values
+ - 53 -0 53 -1  53 0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
- - 53 +0 53 -1  53 -0x4580CBF242683p-3 53 -0x1B3E8A3660D279p-3 N N
+ + 53 -0 53 +1  53 -0x1B3E8A3660D279p-3 53 0x4580CBF242683p-3 N N

# some values taken from ttan.c
+ + 53 0x1D02967C31CDB5 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 N N
- + 53 0x1D02967C31CDB4 53 0x1D02967C31CDB5  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 D U
- - 53 0x1D02967C31CDB4 53 0x1D02967C31CDB4  53 0x3243F6A8885A30p-53 53 0x11A62633145C07p-106 Z D
- + 53 -0xB0BD0AA4A3B3D 53 -0xB0BD0AA4A3B3D  53 0x1921FB54442D19p-52 53 -0x172CECE675D1FDp-105 N N
@


