1 acospi # Name of the function to test
4 # copyright (C) 2007 Ch. Q. Lauter, F. de Dinechin and V.Lefevre
5 # This file is part of crlibm and is distributed under the GNU Public Licence
6 # See file COPYING for details
8 # The following lines are either comments (beginning with a #)
10 # 1/ a rounding mode : RN|RU|RD|RZ (crlibm syntax) or N|P|M|Z (libmcr syntax)
11 # 2/ The high and low hexadecimal halves of an input
12 # 3/ The high and low hexadecimal halves of the expected corresponding output
18 N 00000000 00000000 3fe00000 00000000 # zero
19 N 80000000 00000000 3fe00000 00000000 # -zero
20 P 00000000 00000000 3fe00000 00000000 # zero
21 P 80000000 00000000 3fe00000 00000000 # -zero
22 M 00000000 00000000 3fe00000 00000000 # zero
23 M 80000000 00000000 3fe00000 00000000 # -zero
24 Z 00000000 00000000 3fe00000 00000000 # zero
25 Z 80000000 00000000 3fe00000 00000000 # -zero
28 N 7ff00000 00000000 fff80000 00000000 # +inf
29 N fff00000 00000000 fff80000 00000000 # -inf
30 P 7ff00000 00000000 fff80000 00000000 # +inf
31 P fff00000 00000000 fff80000 00000000 # -inf
32 M 7ff00000 00000000 fff80000 00000000 # +inf
33 M fff00000 00000000 fff80000 00000000 # -inf
34 Z 7ff00000 00000000 fff80000 00000000 # +inf
35 Z fff00000 00000000 fff80000 00000000 # -inf
37 N fff80000 00000000 fff80000 00000000 # NaN
38 P fff80000 00000000 fff80000 00000000 # NaN
39 M fff80000 00000000 fff80000 00000000 # NaN
40 Z fff80000 00000000 fff80000 00000000 # NaN
43 # TODO other bad cases
45 # Bad cases generated by tests/crlibm_generate_test_vectors acospi 15 10
48 # One in five of the very worst cases computed by Lefevre and Muller.
49 # Rounding these values requires evaluating the function to at least 2^(-100).
50 # These worst cases have been selected thanks to the filterlists 5 script
51 # If you want the full list please contact Jean-Michel Muller
52 # TODO This list is probably not complete, worst cases computed using cospi are missing
53 N 0xBFCDA83E 0x335E379A 0x3FE261B6 0x4B3D04CE # -2.316968680210578779288255191204e-01
54 Z 0xBD86C6CB 0xC45DC8DE 0x3FE00000 0x00001D00 # -2.589393572921608322208573423162e-12
55 N 0xBDA65A1D 0xD290660F 0x3FE00000 0x000071D6 # -1.016452077032165551303228187420e-11
56 Z 0xBD36C6CB 0xC45DC8DE 0x3FE00000 0x000000E8 # -8.091854915380026006901791947382e-14
57 Z 0xBD36C6CB 0xC45DC8DE 0x3FE00000 0x000000E8 # -8.091854915380026006901791947382e-14
58 Z 0xBF868591 0x6AAE1754 0x3FE01CAD 0x18E14303 # -1.099694830714851440101043067443e-02
59 Z 0xBF6E0F4E 0xD195FD14 0x3FE00991 0x7F81C901 # -3.669408743632760275255044746245e-03
60 N 0xBF7985A0 0x620463D1 0x3FE0103F 0x7675528B # -6.230951781867014906135526786102e-03
61 N 0xBF7BDE15 0x42BB3723 0x3FE011BD 0xBBBDE141 # -6.803591775406822410310336834982e-03
62 Z 0xBEF969DF 0x9FDA1B90 0x3FE00010 0x2DC489D2 # -2.423626755512390618454987567532e-05
63 N 0xBF141C4A 0x3005149F 0x3FE00033 0x36032798 # -7.671549611128418812763113399100e-05
64 N 0xBEB73E9E 0x2254C98F 0x3FE00000 0xECC47E8A # -1.385486151872330182988567702507e-06
65 Z 0xBEC8EC2E 0x3D383D64 0x3FE00001 0xFBB7F8E9 # -2.971003121527976607277495013637e-06
66 Z 0xBED681DB 0xAB74B2E4 0x3FE00003 0x950737D4 # -5.366148506252765376873040126249e-06
67 N 0xBEE58D7B 0xF8B2F35D 0x3FE00006 0xDC4510D4 # -1.027711529954518508060776899038e-05
68 Z 0xBE8A3359 0x02EF7130 0x3FE00000 0x215C0F72 # -1.952095103054144927532450454200e-07
69 Z 0xBEA2A4DA 0x90D1CA60 0x3FE00000 0x5EF3F1D5 # -5.556333079317252686673417327867e-07
70 N 0xBE4BDBF6 0x3F170FE0 0x3FE00000 0x02378B23 # -1.297296312291712448095857244945e-08
71 N 0xBDFC2779 0x20F3FBAD 0x3FE00000 0x0011EC6B # -4.096974157092618335446132885204e-10
72 N 0xBDBBF9B3 0xC6059D24 0x3FE00000 0x00011CF4 # -2.544347751269826841188103998858e-11
73 Z 0x3FCAC26C 0xC49B0264 0x3FDBB59E 0x68DA6E1D # 2.090583763110941406537790498987e-01
74 N 0x3FA8942D 0x45B22291 0x3FDF058B 0xC54492E7 # 4.800549960879608307751098550398e-02
75 Z 0x3D66C6CB 0xC45DC8DE 0x3FDFFFFF 0xFFFFF17F # 6.473483932304020805521433557905e-13
76 N 0x3D7635E3 0xD74BEFCA 0x3FDFFFFF 0xFFFFE3B9 # 1.262521199566674531803951408507e-12
77 Z 0x3D967E57 0xCDD4DC54 0x3FDFFFFF 0xFFFF8D70 # 5.114435972054957385816476240176e-12
78 Z 0x3D16C6CB 0xC45DC8DE 0x3FDFFFFF 0xFFFFFF8B # 2.022963728845006501725447986845e-14
79 N 0x3CB2D97C 0x7F3321D2 0x3FDFFFFF 0xFFFFFFFF # 2.615901373506473822637100169928e-16
80 Z 0x3D16C6CB 0xC45DC8DE 0x3FDFFFFF 0xFFFFFF8B # 2.022963728845006501725447986845e-14
81 Z 0x3F95FA45 0x3F6BB40E 0x3FDF900F 0x7075F3F4 # 2.146251868810016699695708553008e-02
82 Z 0x3F8D8A6B 0x018A513D 0x3FDFB4C5 0xCAFA0CF6 # 1.442416761828068695605598037446e-02
83 N 0x3F66D963 0x3A6A4286 0x3FDFF174 0x28CBFFEE # 2.789205365225480397206592186876e-03
84 Z 0x3F51C68C 0x1AB0EA57 0x3FDFFA57 0x83F9AA54 # 1.084935017174123430758192476731e-03
85 N 0x3F44BA8A 0x6AA7D40F 0x3FDFFCB3 0x70112E29 # 6.325889456194627334315039313140e-04
86 Z 0x3EA769CB 0xDFA9E1D8 0x3FDFFFFF 0x1183B0FE # 6.977697347274200583597085489895e-07
87 N 0x3EC9B79D 0xB76EA0D6 0x3FDFFFFB 0xE82F595E # 3.065735139046961859634037733668e-06
88 Z 0x3ECA54D5 0xD1A2DC2B 0x3FDFFFFB 0xCF29AA27 # 3.138946010751709512429921331012e-06
89 Z 0x3E671732 0xD4EB3DEA 0x3FDFFFFF 0xF14CD069 # 4.300963018165776348352590712290e-08
90 Z 0x3E83A21A 0xB6AF61A5 0x3FDFFFFF 0xCE012160 # 1.462788888617988224651657877887e-07
91 Z 0x3E2DBBF2 0xA5EC6647 0x3FDFFFFF 0xFED12155 # 3.461513117277129267344529616845e-09
92 Z 0x3DF74C46 0xDECF3374 0x3FDFFFFF 0xFFE2560B # 3.390298864645338430658291818958e-10
93 N 0x3DD44BDB 0x557E1DC1 0x3FDFFFFF 0xFFF98A1B # 7.383756572585558580133555245181e-11