summaryrefslogtreecommitdiff
path: root/Lib/test/cmath_testcases.txt
blob: dd7e458ddcb7b1b538504ce09ca2ec33f69c02d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
-- Testcases for functions in cmath.
--
-- Each line takes the form:
--
-- <testid> <function> <input_value> -> <output_value> <flags>
--
-- where:
--
--   <testid> is a short name identifying the test,
--
--   <function> is the function to be tested (exp, cos, asinh, ...),
--
--   <input_value> is a pair of floats separated by whitespace
--     representing real and imaginary parts of a complex number, and
--
--   <output_value> is the expected (ideal) output value, again
--     represented as a pair of floats.
--
--   <flags> is a list of the floating-point flags required by C99
--
-- The possible flags are:
--
--   divide-by-zero : raised when a finite input gives a
--     mathematically infinite result.
--
--   overflow : raised when a finite input gives a finite result whose
--     real or imaginary part is too large to fit in the usual range
--     of an IEEE 754 double.
--
--   invalid : raised for invalid inputs.
--
--   ignore-real-sign : indicates that the sign of the real part of
--     the result is unspecified; if the real part of the result is
--     given as inf, then both -inf and inf should be accepted as
--     correct.
--
--   ignore-imag-sign : indicates that the sign of the imaginary part
--     of the result is unspecified.
--
-- Flags may appear in any order.
--
-- Lines beginning with '--' (like this one) start a comment, and are
-- ignored.  Blank lines, or lines containing only whitespace, are also
-- ignored.

-- The majority of the values below were computed with the help of
-- version 2.3 of the MPFR library for multiple-precision
-- floating-point computations with correct rounding.  All output
-- values in this file are (modulo yet-to-be-discovered bugs)
-- correctly rounded, provided that each input and output decimal
-- floating-point value below is interpreted as a representation of
-- the corresponding nearest IEEE 754 double-precision value.  See the
-- MPFR homepage at http://www.mpfr.org for more information about the
-- MPFR project.

-- A minority of the test cases were generated with the help of
-- mpmath 0.19 at 100 bit accuracy (http://mpmath.org) to improve
-- coverage of real functions with real-valued arguments. These are
-- used in test.test_math.MathTests.test_testfile, as well as in
-- test_cmath.


--------------------------
-- acos: Inverse cosine --
--------------------------

-- zeros
acos0000 acos 0.0 0.0 -> 1.5707963267948966 -0.0
acos0001 acos 0.0 -0.0 -> 1.5707963267948966 0.0
acos0002 acos -0.0 0.0 -> 1.5707963267948966 -0.0
acos0003 acos -0.0 -0.0 -> 1.5707963267948966 0.0

-- branch points: +/-1
acos0010 acos 1.0 0.0 -> 0.0 -0.0
acos0011 acos 1.0 -0.0 -> 0.0 0.0
acos0012 acos -1.0 0.0 -> 3.1415926535897931 -0.0
acos0013 acos -1.0 -0.0 -> 3.1415926535897931 0.0

-- values along both sides of real axis
acos0020 acos -9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0
acos0021 acos -9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0
acos0022 acos -1e-305 0.0 -> 1.5707963267948966 -0.0
acos0023 acos -1e-305 -0.0 -> 1.5707963267948966 0.0
acos0024 acos -1e-150 0.0 -> 1.5707963267948966 -0.0
acos0025 acos -1e-150 -0.0 -> 1.5707963267948966 0.0
acos0026 acos -9.9999999999999998e-17 0.0 -> 1.5707963267948968 -0.0
acos0027 acos -9.9999999999999998e-17 -0.0 -> 1.5707963267948968 0.0
acos0028 acos -0.001 0.0 -> 1.5717963269615634 -0.0
acos0029 acos -0.001 -0.0 -> 1.5717963269615634 0.0
acos0030 acos -0.57899999999999996 0.0 -> 2.1882979816120667 -0.0
acos0031 acos -0.57899999999999996 -0.0 -> 2.1882979816120667 0.0
acos0032 acos -0.99999999999999989 0.0 -> 3.1415926386886319 -0.0
acos0033 acos -0.99999999999999989 -0.0 -> 3.1415926386886319 0.0
acos0034 acos -1.0000000000000002 0.0 -> 3.1415926535897931 -2.1073424255447014e-08
acos0035 acos -1.0000000000000002 -0.0 -> 3.1415926535897931 2.1073424255447014e-08
acos0036 acos -1.0009999999999999 0.0 -> 3.1415926535897931 -0.044717633608306849
acos0037 acos -1.0009999999999999 -0.0 -> 3.1415926535897931 0.044717633608306849
acos0038 acos -2.0 0.0 -> 3.1415926535897931 -1.3169578969248168
acos0039 acos -2.0 -0.0 -> 3.1415926535897931 1.3169578969248168
acos0040 acos -23.0 0.0 -> 3.1415926535897931 -3.8281684713331012
acos0041 acos -23.0 -0.0 -> 3.1415926535897931 3.8281684713331012
acos0042 acos -10000000000000000.0 0.0 -> 3.1415926535897931 -37.534508668464674
acos0043 acos -10000000000000000.0 -0.0 -> 3.1415926535897931 37.534508668464674
acos0044 acos -9.9999999999999998e+149 0.0 -> 3.1415926535897931 -346.08091112966679
acos0045 acos -9.9999999999999998e+149 -0.0 -> 3.1415926535897931 346.08091112966679
acos0046 acos -1.0000000000000001e+299 0.0 -> 3.1415926535897931 -689.16608998577965
acos0047 acos -1.0000000000000001e+299 -0.0 -> 3.1415926535897931 689.16608998577965
acos0048 acos 9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0
acos0049 acos 9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0
acos0050 acos 1e-305 0.0 -> 1.5707963267948966 -0.0
acos0051 acos 1e-305 -0.0 -> 1.5707963267948966 0.0
acos0052 acos 1e-150 0.0 -> 1.5707963267948966 -0.0
acos0053 acos 1e-150 -0.0 -> 1.5707963267948966 0.0
acos0054 acos 9.9999999999999998e-17 0.0 -> 1.5707963267948966 -0.0
acos0055 acos 9.9999999999999998e-17 -0.0 -> 1.5707963267948966 0.0
acos0056 acos 0.001 0.0 -> 1.56979632662823 -0.0
acos0057 acos 0.001 -0.0 -> 1.56979632662823 0.0
acos0058 acos 0.57899999999999996 0.0 -> 0.95329467197772655 -0.0
acos0059 acos 0.57899999999999996 -0.0 -> 0.95329467197772655 0.0
acos0060 acos 0.99999999999999989 0.0 -> 1.4901161193847656e-08 -0.0
acos0061 acos 0.99999999999999989 -0.0 -> 1.4901161193847656e-08 0.0
acos0062 acos 1.0000000000000002 0.0 -> 0.0 -2.1073424255447014e-08
acos0063 acos 1.0000000000000002 -0.0 -> 0.0 2.1073424255447014e-08
acos0064 acos 1.0009999999999999 0.0 -> 0.0 -0.044717633608306849
acos0065 acos 1.0009999999999999 -0.0 -> 0.0 0.044717633608306849
acos0066 acos 2.0 0.0 -> 0.0 -1.3169578969248168
acos0067 acos 2.0 -0.0 -> 0.0 1.3169578969248168
acos0068 acos 23.0 0.0 -> 0.0 -3.8281684713331012
acos0069 acos 23.0 -0.0 -> 0.0 3.8281684713331012
acos0070 acos 10000000000000000.0 0.0 -> 0.0 -37.534508668464674
acos0071 acos 10000000000000000.0 -0.0 -> 0.0 37.534508668464674
acos0072 acos 9.9999999999999998e+149 0.0 -> 0.0 -346.08091112966679
acos0073 acos 9.9999999999999998e+149 -0.0 -> 0.0 346.08091112966679
acos0074 acos 1.0000000000000001e+299 0.0 -> 0.0 -689.16608998577965
acos0075 acos 1.0000000000000001e+299 -0.0 -> 0.0 689.16608998577965

-- random inputs
acos0100 acos -3.3307113324596682 -10.732007530863266 -> 1.8706085694482339 3.113986806554613
acos0101 acos -2863.952991743291 -2681013315.2571239 -> 1.5707973950301699 22.402607843274758
acos0102 acos -0.33072639793220088 -0.85055464658253055 -> 1.8219426895922601 0.79250166729311966
acos0103 acos -2.5722325842097802 -12.703940809821574 -> 1.7699942413107408 3.2565170156527325
acos0104 acos -42.495233785459583 -0.54039320751337161 -> 3.1288732573153304 4.4424815519735601
acos0105 acos -1.1363818625856401 9641.1325498630376 -> 1.5709141948820049 -9.8669410553254284
acos0106 acos -2.4398426824157866e-11 0.33002051890266165 -> 1.570796326818066 -0.32430578041578667
acos0107 acos -1.3521340428186552 2.9369737912076772 -> 1.9849059192339338 -1.8822893674117942
acos0108 acos -1.827364706477915 1.0355459232147557 -> 2.5732246307960032 -1.4090688267854969
acos0109 acos -0.25978373706403546 10.09712669185833 -> 1.5963940386378306 -3.0081673050196063
acos0110 acos 0.33561778471072551 -4587350.6823999118 -> 1.5707962536333251 16.031960402579539
acos0111 acos 0.49133444610998445 -0.8071422362990015 -> 1.1908761712801788 0.78573345813187867
acos0112 acos 0.42196734507823974 -2.4812965431745115 -> 1.414091186100692 1.651707260988172
acos0113 acos 2.961426210100655 -219.03295695248664 -> 1.5572768319822778 6.0824659885827304
acos0114 acos 2.886209063652641 -20.38011207220606 -> 1.4302765252297889 3.718201853147642
acos0115 acos 0.4180568075276509 1.4833433990823484 -> 1.3393834558303042 -1.2079847758301576
acos0116 acos 52.376111405924718 0.013930429001941001 -> 0.00026601761804024188 -4.6515066691204714
acos0117 acos 41637948387.625969 1.563418292894041 -> 3.7547918507883548e-11 -25.145424989809381
acos0118 acos 0.061226659122249526 0.8447234394615154 -> 1.5240280306367315 -0.76791798971140812
acos0119 acos 2.4480466420442959e+26 0.18002339201384662 -> 7.353756620564798e-28 -61.455650015996376

-- values near infinity
acos0200 acos 1.6206860518683021e+308 1.0308426226285283e+308 -> 0.56650826093826223 -710.54206874241561
acos0201 acos 1.2067735875070062e+308 -1.3429173724390276e+308 -> 0.83874369390864889 710.48017794027498
acos0202 acos -7.4130145132549047e+307 1.1759130543927645e+308 -> 2.1332729346478536 -710.21871115698752
acos0203 acos -8.6329426442257249e+307 -1.2316282952184133e+308 -> 2.1821511032444838 710.29752145697148
acos0204 acos 0.0 1.4289713855849746e+308 -> 1.5707963267948966 -710.24631069738996
acos0205 acos -0.0 1.3153524545987432e+308 -> 1.5707963267948966 -710.1634604787539
acos0206 acos 0.0 -9.6229037669269321e+307 -> 1.5707963267948966 709.85091679573691
acos0207 acos -0.0 -4.9783616421107088e+307 -> 1.5707963267948966 709.19187157911233
acos0208 acos 1.3937541925739389e+308 0.0 -> 0.0 -710.22135678707264
acos0209 acos 9.1362388967371536e+307 -0.0 -> 0.0 709.79901953124613
acos0210 acos -1.3457361220697436e+308 0.0 -> 3.1415926535897931 -710.18629698871848
acos0211 acos -5.4699090056144284e+307 -0.0 -> 3.1415926535897931 709.28603271085649
acos0212 acos 1.5880716932358901e+308 5.5638401252339929 -> 3.503519487773873e-308 -710.35187633140583
acos0213 acos 1.2497211663463164e+308 -3.0456477717911024 -> 2.4370618453197486e-308 710.11227628223412
acos0214 acos -9.9016224006029528e+307 4.9570427340789056 -> 3.1415926535897931 -709.87946935229468
acos0215 acos -1.5854071066874139e+308 -4.4233577741497783 -> 3.1415926535897931 710.35019704672004
acos0216 acos 9.3674623083647628 1.5209559051877979e+308 -> 1.5707963267948966 -710.30869484491086
acos0217 acos 8.1773832021784383 -6.6093445795000056e+307 -> 1.5707963267948966 709.4752552227792
acos0218 acos -3.1845935000665104 1.5768856396650893e+308 -> 1.5707963267948966 -710.34480761042687
acos0219 acos -1.0577303880953903 -6.4574626815735613e+307 -> 1.5707963267948966 709.45200719662046

-- values near 0
acos0220 acos 1.8566986970714045e-320 3.1867234156760402e-321 -> 1.5707963267948966 -3.1867234156760402e-321
acos0221 acos 7.9050503334599447e-323 -8.8931816251424378e-323 -> 1.5707963267948966 8.8931816251424378e-323
acos0222 acos -4.4465908125712189e-323 2.4654065097222727e-311 -> 1.5707963267948966 -2.4654065097222727e-311
acos0223 acos -6.1016916408192619e-311 -2.4703282292062327e-323 -> 1.5707963267948966 2.4703282292062327e-323
acos0224 acos 0.0 3.4305783621842729e-311 -> 1.5707963267948966 -3.4305783621842729e-311
acos0225 acos -0.0 1.6117409498633145e-319 -> 1.5707963267948966 -1.6117409498633145e-319
acos0226 acos 0.0 -4.9900630229965901e-322 -> 1.5707963267948966 4.9900630229965901e-322
acos0227 acos -0.0 -4.4889279210592818e-311 -> 1.5707963267948966 4.4889279210592818e-311
acos0228 acos 5.3297678681477214e-312 0.0 -> 1.5707963267948966 -0.0
acos0229 acos 6.2073425897211614e-313 -0.0 -> 1.5707963267948966 0.0
acos0230 acos -4.9406564584124654e-324 0.0 -> 1.5707963267948966 -0.0
acos0231 acos -1.7107517052899003e-318 -0.0 -> 1.5707963267948966 0.0

-- special values
acos1000 acos 0.0 0.0 -> 1.5707963267948966 -0.0
acos1001 acos 0.0 -0.0 -> 1.5707963267948966 0.0
acos1002 acos -0.0 0.0 -> 1.5707963267948966 -0.0
acos1003 acos -0.0 -0.0 -> 1.5707963267948966 0.0
acos1004 acos 0.0 nan -> 1.5707963267948966 nan
acos1005 acos -0.0 nan -> 1.5707963267948966 nan
acos1006 acos -2.3 inf -> 1.5707963267948966 -inf
acos1007 acos -0.0 inf -> 1.5707963267948966 -inf
acos1008 acos 0.0 inf -> 1.5707963267948966 -inf
acos1009 acos 2.3 inf -> 1.5707963267948966 -inf
acos1010 acos -2.3 nan -> nan nan
acos1011 acos 2.3 nan -> nan nan
acos1012 acos -inf 2.3 -> 3.1415926535897931 -inf
acos1013 acos -inf 0.0 -> 3.1415926535897931 -inf
acos1014 acos inf 2.3 -> 0.0 -inf
acos1015 acos inf 0.0 -> 0.0 -inf
acos1016 acos -inf inf -> 2.3561944901923448 -inf
acos1017 acos inf inf -> 0.78539816339744828 -inf
acos1018 acos inf nan -> nan inf                        ignore-imag-sign
acos1019 acos -inf nan -> nan inf                       ignore-imag-sign
acos1020 acos nan 0.0 -> nan nan
acos1021 acos nan 2.3 -> nan nan
acos1022 acos nan inf -> nan -inf
acos1023 acos nan nan -> nan nan
acos1024 acos -2.3 -inf -> 1.5707963267948966 inf
acos1025 acos -0.0 -inf -> 1.5707963267948966 inf
acos1026 acos 0.0 -inf -> 1.5707963267948966 inf
acos1027 acos 2.3 -inf -> 1.5707963267948966 inf
acos1028 acos -inf -2.3 -> 3.1415926535897931 inf
acos1029 acos -inf -0.0 -> 3.1415926535897931 inf
acos1030 acos inf -2.3 -> 0.0 inf
acos1031 acos inf -0.0 -> 0.0 inf
acos1032 acos -inf -inf -> 2.3561944901923448 inf
acos1033 acos inf -inf -> 0.78539816339744828 inf
acos1034 acos nan -0.0 -> nan nan
acos1035 acos nan -2.3 -> nan nan
acos1036 acos nan -inf -> nan inf


--------------------------------------
-- acosh: Inverse hyperbolic cosine --
--------------------------------------

-- zeros
acosh0000 acosh 0.0 0.0 -> 0.0 1.5707963267948966
acosh0001 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966
acosh0002 acosh -0.0 0.0 -> 0.0 1.5707963267948966
acosh0003 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966

-- branch points: +/-1
acosh0010 acosh 1.0 0.0 -> 0.0 0.0
acosh0011 acosh 1.0 -0.0 -> 0.0 -0.0
acosh0012 acosh -1.0 0.0 -> 0.0 3.1415926535897931
acosh0013 acosh -1.0 -0.0 -> 0.0 -3.1415926535897931

-- values along both sides of real axis
acosh0020 acosh -9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966
acosh0021 acosh -9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966
acosh0022 acosh -1e-305 0.0 -> 0.0 1.5707963267948966
acosh0023 acosh -1e-305 -0.0 -> 0.0 -1.5707963267948966
acosh0024 acosh -1e-150 0.0 -> 0.0 1.5707963267948966
acosh0025 acosh -1e-150 -0.0 -> 0.0 -1.5707963267948966
acosh0026 acosh -9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948968
acosh0027 acosh -9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948968
acosh0028 acosh -0.001 0.0 -> 0.0 1.5717963269615634
acosh0029 acosh -0.001 -0.0 -> 0.0 -1.5717963269615634
acosh0030 acosh -0.57899999999999996 0.0 -> 0.0 2.1882979816120667
acosh0031 acosh -0.57899999999999996 -0.0 -> 0.0 -2.1882979816120667
acosh0032 acosh -0.99999999999999989 0.0 -> 0.0 3.1415926386886319
acosh0033 acosh -0.99999999999999989 -0.0 -> 0.0 -3.1415926386886319
acosh0034 acosh -1.0000000000000002 0.0 -> 2.1073424255447014e-08 3.1415926535897931
acosh0035 acosh -1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -3.1415926535897931
acosh0036 acosh -1.0009999999999999 0.0 -> 0.044717633608306849 3.1415926535897931
acosh0037 acosh -1.0009999999999999 -0.0 -> 0.044717633608306849 -3.1415926535897931
acosh0038 acosh -2.0 0.0 -> 1.3169578969248168 3.1415926535897931
acosh0039 acosh -2.0 -0.0 -> 1.3169578969248168 -3.1415926535897931
acosh0040 acosh -23.0 0.0 -> 3.8281684713331012 3.1415926535897931
acosh0041 acosh -23.0 -0.0 -> 3.8281684713331012 -3.1415926535897931
acosh0042 acosh -10000000000000000.0 0.0 -> 37.534508668464674 3.1415926535897931
acosh0043 acosh -10000000000000000.0 -0.0 -> 37.534508668464674 -3.1415926535897931
acosh0044 acosh -9.9999999999999998e+149 0.0 -> 346.08091112966679 3.1415926535897931
acosh0045 acosh -9.9999999999999998e+149 -0.0 -> 346.08091112966679 -3.1415926535897931
acosh0046 acosh -1.0000000000000001e+299 0.0 -> 689.16608998577965 3.1415926535897931
acosh0047 acosh -1.0000000000000001e+299 -0.0 -> 689.16608998577965 -3.1415926535897931
acosh0048 acosh 9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966
acosh0049 acosh 9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966
acosh0050 acosh 1e-305 0.0 -> 0.0 1.5707963267948966
acosh0051 acosh 1e-305 -0.0 -> 0.0 -1.5707963267948966
acosh0052 acosh 1e-150 0.0 -> 0.0 1.5707963267948966
acosh0053 acosh 1e-150 -0.0 -> 0.0 -1.5707963267948966
acosh0054 acosh 9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948966
acosh0055 acosh 9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948966
acosh0056 acosh 0.001 0.0 -> 0.0 1.56979632662823
acosh0057 acosh 0.001 -0.0 -> 0.0 -1.56979632662823
acosh0058 acosh 0.57899999999999996 0.0 -> 0.0 0.95329467197772655
acosh0059 acosh 0.57899999999999996 -0.0 -> 0.0 -0.95329467197772655
acosh0060 acosh 0.99999999999999989 0.0 -> 0.0 1.4901161193847656e-08
acosh0061 acosh 0.99999999999999989 -0.0 -> 0.0 -1.4901161193847656e-08
acosh0062 acosh 1.0000000000000002 0.0 -> 2.1073424255447014e-08 0.0
acosh0063 acosh 1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -0.0
acosh0064 acosh 1.0009999999999999 0.0 -> 0.044717633608306849 0.0
acosh0065 acosh 1.0009999999999999 -0.0 -> 0.044717633608306849 -0.0
acosh0066 acosh 2.0 0.0 -> 1.3169578969248168 0.0
acosh0067 acosh 2.0 -0.0 -> 1.3169578969248168 -0.0
acosh0068 acosh 23.0 0.0 -> 3.8281684713331012 0.0
acosh0069 acosh 23.0 -0.0 -> 3.8281684713331012 -0.0
acosh0070 acosh 10000000000000000.0 0.0 -> 37.534508668464674 0.0
acosh0071 acosh 10000000000000000.0 -0.0 -> 37.534508668464674 -0.0
acosh0072 acosh 9.9999999999999998e+149 0.0 -> 346.08091112966679 0.0
acosh0073 acosh 9.9999999999999998e+149 -0.0 -> 346.08091112966679 -0.0
acosh0074 acosh 1.0000000000000001e+299 0.0 -> 689.16608998577965 0.0
acosh0075 acosh 1.0000000000000001e+299 -0.0 -> 689.16608998577965 -0.0

-- random inputs
acosh0100 acosh -1.4328589581250843 -1.8370347775558309 -> 1.5526962646549587 -2.190250168435786
acosh0101 acosh -0.31075819156220957 -1.0772555786839297 -> 0.95139168286193709 -1.7812228089636479
acosh0102 acosh -1.9044776578070453 -20.485370158932124 -> 3.7177411088932359 -1.6633888745861227
acosh0103 acosh -0.075642506000858742 -21965976320.873051 -> 24.505907742881991 -1.5707963267983402
acosh0104 acosh -1.6162271181056307 -3.0369343458696099 -> 1.9407057262861227 -2.0429549461750209
acosh0105 acosh -0.3103780280298063 0.00018054880018078987 -> 0.00018992877058761416 1.886386995096728
acosh0106 acosh -9159468751.5897655 5.8014747664273649 -> 23.631201197959193 3.1415926529564078
acosh0107 acosh -0.037739157550933884 0.21841357493510705 -> 0.21685844960602488 1.6076735133449402
acosh0108 acosh -8225991.0508394297 0.28318543008913644 -> 16.615956520420287 3.1415926191641019
acosh0109 acosh -35.620070502302639 0.31303237005015 -> 4.2658980006943965 3.1328013255541873
acosh0110 acosh 96.729939906820917 -0.029345228372365334 -> 5.2650434775863548 -0.00030338895866972843
acosh0111 acosh 0.59656024007966491 -2.0412294654163978 -> 1.4923002024287835 -1.312568421900338
acosh0112 acosh 109.29384112677828 -0.00015454863061533812 -> 5.3871662961545477 -1.4141245154061214e-06
acosh0113 acosh 8.6705651969361597 -3.6723631649787465 -> 2.9336180958363545 -0.40267362031872861
acosh0114 acosh 1.8101646445052686 -0.012345132721855478 -> 1.1997148566285769 -0.0081813912760150265
acosh0115 acosh 52.56897195025288 0.001113916065985443 -> 4.6551827622264135 2.1193445872040307e-05
acosh0116 acosh 0.28336786164214739 355643992457.40485 -> 27.290343226816528 1.5707963267940999
acosh0117 acosh 0.73876621291911437 2.8828594541104322e-20 -> 4.2774820978159067e-20 0.73955845836827927
acosh0118 acosh 0.025865471781718878 37125746064318.492 -> 31.938478989418012 1.5707963267948959
acosh0119 acosh 2.2047353511780132 0.074712248143489271 -> 1.4286403248698021 0.037997904971626598

-- values near infinity
acosh0200 acosh 8.1548592876467785e+307 9.0943779335951128e+307 -> 710.08944620800605 0.83981165425478954
acosh0201 acosh 1.4237229680972531e+308 -1.0336966617874858e+308 -> 710.4543331094759 -0.6279972876348755
acosh0202 acosh -1.5014526899738939e+308 1.5670700378448792e+308 -> 710.66420706795464 2.3348137299106697
acosh0203 acosh -1.0939040375213928e+308 -1.0416960351127978e+308 -> 710.30182863115886 -2.380636147787027
acosh0204 acosh 0.0 1.476062433559588e+308 -> 710.27873384716929 1.5707963267948966
acosh0205 acosh -0.0 6.2077210326221094e+307 -> 709.41256457484769 1.5707963267948966
acosh0206 acosh 0.0 -1.5621899909968308e+308 -> 710.33544449990734 -1.5707963267948966
acosh0207 acosh -0.0 -8.3556624833839122e+307 -> 709.70971018048317 -1.5707963267948966
acosh0208 acosh 1.3067079752499342e+308 0.0 -> 710.15686680107228 0.0
acosh0209 acosh 1.5653640340214026e+308 -0.0 -> 710.33747422926706 -0.0
acosh0210 acosh -6.9011375992290636e+307 0.0 -> 709.51845699719922 3.1415926535897931
acosh0211 acosh -9.9539576809926973e+307 -0.0 -> 709.88474095870185 -3.1415926535897931
acosh0212 acosh 7.6449598518914925e+307 9.5706540768268358 -> 709.62081731754802 1.2518906916769345e-307
acosh0213 acosh 5.4325410972602197e+307 -7.8064807816522706 -> 709.279177727925 -1.4369851312471974e-307
acosh0214 acosh -1.1523626112360465e+308 7.0617510038869336 -> 710.03117010216909 3.1415926535897931
acosh0215 acosh -1.1685027786862599e+308 -5.1568558357925625 -> 710.04507907571417 -3.1415926535897931
acosh0216 acosh 3.0236370339788721 1.7503248720096417e+308 -> 710.44915723458064 1.5707963267948966
acosh0217 acosh 6.6108007926031149 -9.1469968225806149e+307 -> 709.80019633903328 -1.5707963267948966
acosh0218 acosh -5.1096262905623959 6.4484926785412395e+307 -> 709.45061713997973 1.5707963267948966
acosh0219 acosh -2.8080920608735846 -1.7716118836519368e+308 -> 710.46124562363445 -1.5707963267948966

-- values near 0
acosh0220 acosh 4.5560530326699304e-317 7.3048989121436657e-318 -> 7.3048989121436657e-318 1.5707963267948966
acosh0221 acosh 4.8754274133585331e-314 -9.8469794897684199e-315 -> 9.8469794897684199e-315 -1.5707963267948966
acosh0222 acosh -4.6748876009960097e-312 9.7900342887557606e-318 -> 9.7900342887557606e-318 1.5707963267948966
acosh0223 acosh -4.3136871538399236e-320 -4.9406564584124654e-323 -> 4.9406564584124654e-323 -1.5707963267948966
acosh0224 acosh 0.0 4.3431013866496774e-314 -> 4.3431013866496774e-314 1.5707963267948966
acosh0225 acosh -0.0 6.0147334335829184e-317 -> 6.0147334335829184e-317 1.5707963267948966
acosh0226 acosh 0.0 -1.2880291387081297e-320 -> 1.2880291387081297e-320 -1.5707963267948966
acosh0227 acosh -0.0 -1.4401563976534621e-317 -> 1.4401563976534621e-317 -1.5707963267948966
acosh0228 acosh 1.3689680570863091e-313 0.0 -> 0.0 1.5707963267948966
acosh0229 acosh 1.5304346893494371e-312 -0.0 -> 0.0 -1.5707963267948966
acosh0230 acosh -3.7450175954766488e-320 0.0 -> 0.0 1.5707963267948966
acosh0231 acosh -8.4250563080885801e-311 -0.0 -> 0.0 -1.5707963267948966

-- special values
acosh1000 acosh 0.0 0.0 -> 0.0 1.5707963267948966
acosh1001 acosh -0.0 0.0 -> 0.0 1.5707963267948966
acosh1002 acosh 0.0 inf -> inf 1.5707963267948966
acosh1003 acosh 2.3 inf -> inf 1.5707963267948966
acosh1004 acosh -0.0 inf -> inf 1.5707963267948966
acosh1005 acosh -2.3 inf -> inf 1.5707963267948966
acosh1006 acosh 0.0 nan -> nan nan
acosh1007 acosh 2.3 nan -> nan nan
acosh1008 acosh -0.0 nan -> nan nan
acosh1009 acosh -2.3 nan -> nan nan
acosh1010 acosh -inf 0.0 -> inf 3.1415926535897931
acosh1011 acosh -inf 2.3 -> inf 3.1415926535897931
acosh1012 acosh inf 0.0 -> inf 0.0
acosh1013 acosh inf 2.3 -> inf 0.0
acosh1014 acosh -inf inf -> inf 2.3561944901923448
acosh1015 acosh inf inf -> inf 0.78539816339744828
acosh1016 acosh inf nan -> inf nan
acosh1017 acosh -inf nan -> inf nan
acosh1018 acosh nan 0.0 -> nan nan
acosh1019 acosh nan 2.3 -> nan nan
acosh1020 acosh nan inf -> inf nan
acosh1021 acosh nan nan -> nan nan
acosh1022 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966
acosh1023 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966
acosh1024 acosh 0.0 -inf -> inf -1.5707963267948966
acosh1025 acosh 2.3 -inf -> inf -1.5707963267948966
acosh1026 acosh -0.0 -inf -> inf -1.5707963267948966
acosh1027 acosh -2.3 -inf -> inf -1.5707963267948966
acosh1028 acosh -inf -0.0 -> inf -3.1415926535897931
acosh1029 acosh -inf -2.3 -> inf -3.1415926535897931
acosh1030 acosh inf -0.0 -> inf -0.0
acosh1031 acosh inf -2.3 -> inf -0.0
acosh1032 acosh -inf -inf -> inf -2.3561944901923448
acosh1033 acosh inf -inf -> inf -0.78539816339744828
acosh1034 acosh nan -0.0 -> nan nan
acosh1035 acosh nan -2.3 -> nan nan
acosh1036 acosh nan -inf -> inf nan


------------------------
-- asin: Inverse sine --
------------------------

-- zeros
asin0000 asin 0.0 0.0 -> 0.0 0.0
asin0001 asin 0.0 -0.0 -> 0.0 -0.0
asin0002 asin -0.0 0.0 -> -0.0 0.0
asin0003 asin -0.0 -0.0 -> -0.0 -0.0

-- branch points: +/-1
asin0010 asin 1.0 0.0 -> 1.5707963267948966 0.0
asin0011 asin 1.0 -0.0 -> 1.5707963267948966 -0.0
asin0012 asin -1.0 0.0 -> -1.5707963267948966 0.0
asin0013 asin -1.0 -0.0 -> -1.5707963267948966 -0.0

-- values along both sides of real axis
asin0020 asin -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0
asin0021 asin -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0
asin0022 asin -1e-305 0.0 -> -1e-305 0.0
asin0023 asin -1e-305 -0.0 -> -1e-305 -0.0
asin0024 asin -1e-150 0.0 -> -1e-150 0.0
asin0025 asin -1e-150 -0.0 -> -1e-150 -0.0
asin0026 asin -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0
asin0027 asin -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0
asin0028 asin -0.001 0.0 -> -0.0010000001666667416 0.0
asin0029 asin -0.001 -0.0 -> -0.0010000001666667416 -0.0
asin0030 asin -0.57899999999999996 0.0 -> -0.61750165481717001 0.0
asin0031 asin -0.57899999999999996 -0.0 -> -0.61750165481717001 -0.0
asin0032 asin -0.99999999999999989 0.0 -> -1.5707963118937354 0.0
asin0033 asin -0.99999999999999989 -0.0 -> -1.5707963118937354 -0.0
asin0034 asin -1.0000000000000002 0.0 -> -1.5707963267948966 2.1073424255447014e-08
asin0035 asin -1.0000000000000002 -0.0 -> -1.5707963267948966 -2.1073424255447014e-08
asin0036 asin -1.0009999999999999 0.0 -> -1.5707963267948966 0.044717633608306849
asin0037 asin -1.0009999999999999 -0.0 -> -1.5707963267948966 -0.044717633608306849
asin0038 asin -2.0 0.0 -> -1.5707963267948966 1.3169578969248168
asin0039 asin -2.0 -0.0 -> -1.5707963267948966 -1.3169578969248168
asin0040 asin -23.0 0.0 -> -1.5707963267948966 3.8281684713331012
asin0041 asin -23.0 -0.0 -> -1.5707963267948966 -3.8281684713331012
asin0042 asin -10000000000000000.0 0.0 -> -1.5707963267948966 37.534508668464674
asin0043 asin -10000000000000000.0 -0.0 -> -1.5707963267948966 -37.534508668464674
asin0044 asin -9.9999999999999998e+149 0.0 -> -1.5707963267948966 346.08091112966679
asin0045 asin -9.9999999999999998e+149 -0.0 -> -1.5707963267948966 -346.08091112966679
asin0046 asin -1.0000000000000001e+299 0.0 -> -1.5707963267948966 689.16608998577965
asin0047 asin -1.0000000000000001e+299 -0.0 -> -1.5707963267948966 -689.16608998577965
asin0048 asin 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0
asin0049 asin 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0
asin0050 asin 1e-305 0.0 -> 1e-305 0.0
asin0051 asin 1e-305 -0.0 -> 1e-305 -0.0
asin0052 asin 1e-150 0.0 -> 1e-150 0.0
asin0053 asin 1e-150 -0.0 -> 1e-150 -0.0
asin0054 asin 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0
asin0055 asin 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0
asin0056 asin 0.001 0.0 -> 0.0010000001666667416 0.0
asin0057 asin 0.001 -0.0 -> 0.0010000001666667416 -0.0
asin0058 asin 0.57899999999999996 0.0 -> 0.61750165481717001 0.0
asin0059 asin 0.57899999999999996 -0.0 -> 0.61750165481717001 -0.0
asin0060 asin 0.99999999999999989 0.0 -> 1.5707963118937354 0.0
asin0061 asin 0.99999999999999989 -0.0 -> 1.5707963118937354 -0.0
asin0062 asin 1.0000000000000002 0.0 -> 1.5707963267948966 2.1073424255447014e-08
asin0063 asin 1.0000000000000002 -0.0 -> 1.5707963267948966 -2.1073424255447014e-08
asin0064 asin 1.0009999999999999 0.0 -> 1.5707963267948966 0.044717633608306849
asin0065 asin 1.0009999999999999 -0.0 -> 1.5707963267948966 -0.044717633608306849
asin0066 asin 2.0 0.0 -> 1.5707963267948966 1.3169578969248168
asin0067 asin 2.0 -0.0 -> 1.5707963267948966 -1.3169578969248168
asin0068 asin 23.0 0.0 -> 1.5707963267948966 3.8281684713331012
asin0069 asin 23.0 -0.0 -> 1.5707963267948966 -3.8281684713331012
asin0070 asin 10000000000000000.0 0.0 -> 1.5707963267948966 37.534508668464674
asin0071 asin 10000000000000000.0 -0.0 -> 1.5707963267948966 -37.534508668464674
asin0072 asin 9.9999999999999998e+149 0.0 -> 1.5707963267948966 346.08091112966679
asin0073 asin 9.9999999999999998e+149 -0.0 -> 1.5707963267948966 -346.08091112966679
asin0074 asin 1.0000000000000001e+299 0.0 -> 1.5707963267948966 689.16608998577965
asin0075 asin 1.0000000000000001e+299 -0.0 -> 1.5707963267948966 -689.16608998577965

-- random inputs
asin0100 asin -1.5979555835086083 -0.15003009814595247 -> -1.4515369557405788 -1.0544476399790823
asin0101 asin -0.57488225895317679 -9.6080397838952743e-13 -> -0.61246024460412851 -1.174238005400403e-12
asin0102 asin -3.6508087930516249 -0.36027527093220152 -> -1.4685890605305874 -1.9742273007152038
asin0103 asin -1.5238659792326819 -1.1360813516996364 -> -0.86080051691147275 -1.3223742205689195
asin0104 asin -1592.0639045555306 -0.72362427935018236 -> -1.5703418071175179 -8.0659336918729228
asin0105 asin -0.19835471371312019 4.2131508416697709 -> -0.045777831019935149 2.1461732751933171
asin0106 asin -1.918471054430213 0.40603305079779234 -> -1.3301396585791556 1.30263642314981
asin0107 asin -254495.01623373642 0.71084414434470822 -> -1.5707935336394359 13.140183712762321
asin0108 asin -0.31315882715691157 3.9647994288429866 -> -0.076450403840916004 2.0889762138713457
asin0109 asin -0.90017064284720816 1.2530659485907105 -> -0.53466509741943447 1.1702811557577
asin0110 asin 2.1615181696571075 -0.14058647488229523 -> 1.4976166323896871 -1.4085811039334604
asin0111 asin 1.2104749210707795 -0.85732484485298999 -> 0.83913071588343924 -1.0681719250525901
asin0112 asin 1.7059733185128891 -0.84032966373156581 -> 1.0510900815816229 -1.2967979791361652
asin0113 asin 9.9137085017290687 -1.4608383970250893 -> 1.4237704820128891 -2.995414677560686
asin0114 asin 117.12344751041495 -5453908091.5334015 -> 2.1475141411392012e-08 -23.112745450217066
asin0115 asin 0.081041187798029227 0.067054349860173196 -> 0.080946786856771813 0.067223991060639698
asin0116 asin 46.635472322049949 2.3835190718056678 -> 1.5197194940010779 4.5366989600972083
asin0117 asin 3907.0687961127105 19.144021886390181 -> 1.5658965233083235 8.9637018715924217
asin0118 asin 1.0889312322308273 509.01577883554768 -> 0.0021392803817829316 6.9256294494524706
asin0119 asin 0.10851518277509224 1.5612510908217476 -> 0.058491014243902621 1.2297075725621327

-- values near infinity
asin0200 asin 1.5230241998821499e+308 5.5707228994084525e+307 -> 1.2201446370892068 710.37283486535966
asin0201 asin 8.1334317698672204e+307 -9.2249425197872451e+307 -> 0.72259991284020042 -710.0962453049026
asin0202 asin -9.9138506659241768e+307 6.701544526434995e+307 -> -0.97637511742194594 710.06887486671371
asin0203 asin -1.4141298868173842e+308 -5.401505134514191e+307 -> -1.2059319055160587 -710.30396478954628
asin0204 asin 0.0 9.1618092977897431e+307 -> 0.0 709.80181441050593
asin0205 asin -0.0 6.8064342551939755e+307 -> -0.0 709.50463910853489
asin0206 asin 0.0 -6.4997516454798215e+307 -> 0.0 -709.45853469751592
asin0207 asin -0.0 -1.6767449053345242e+308 -> -0.0 -710.4062101803022
asin0208 asin 5.4242749957378916e+307 0.0 -> 1.5707963267948966 709.27765497888902
asin0209 asin 9.5342145121164749e+307 -0.0 -> 1.5707963267948966 -709.84165758595907
asin0210 asin -7.0445698006201847e+307 0.0 -> -1.5707963267948966 709.53902780872136
asin0211 asin -1.0016025569769706e+308 -0.0 -> -1.5707963267948966 -709.89095709697881
asin0212 asin 1.6552203778877204e+308 0.48761543336249491 -> 1.5707963267948966 710.39328998153474
asin0213 asin 1.2485712830384869e+308 -4.3489311161278899 -> 1.5707963267948966 -710.1113557467786
asin0214 asin -1.5117842813353125e+308 5.123452666102434 -> -1.5707963267948966 710.30264641923031
asin0215 asin -1.3167634313008016e+308 -0.52939679793528982 -> -1.5707963267948966 -710.16453260239768
asin0216 asin 0.80843929176985907 1.0150851827767876e+308 -> 7.9642507396113875e-309 709.90432835561637
asin0217 asin 8.2544809829680901 -1.7423548140539474e+308 -> 4.7375430746865733e-308 -710.44459336242164
asin0218 asin -5.2499000118824295 4.6655578977512214e+307 -> -1.1252459249113292e-307 709.1269781491103
asin0219 asin -5.9904782760833433 -4.7315689314781163e+307 -> -1.2660659419394637e-307 -709.14102757522312

-- special values
asin1000 asin -0.0 0.0 -> -0.0 0.0
asin1001 asin 0.0 0.0 -> 0.0 0.0
asin1002 asin -0.0 -0.0 -> -0.0 -0.0
asin1003 asin 0.0 -0.0 -> 0.0 -0.0
asin1004 asin -inf 0.0 -> -1.5707963267948966 inf
asin1005 asin -inf 2.2999999999999998 -> -1.5707963267948966 inf
asin1006 asin nan 0.0 -> nan nan
asin1007 asin nan 2.2999999999999998 -> nan nan
asin1008 asin -0.0 inf -> -0.0 inf
asin1009 asin -2.2999999999999998 inf -> -0.0 inf
asin1010 asin -inf inf -> -0.78539816339744828 inf
asin1011 asin nan inf -> nan inf
asin1012 asin -0.0 nan -> -0.0 nan
asin1013 asin -2.2999999999999998 nan -> nan nan
asin1014 asin -inf nan -> nan inf ignore-imag-sign
asin1015 asin nan nan -> nan nan
asin1016 asin inf 0.0 -> 1.5707963267948966 inf
asin1017 asin inf 2.2999999999999998 -> 1.5707963267948966 inf
asin1018 asin 0.0 inf -> 0.0 inf
asin1019 asin 2.2999999999999998 inf -> 0.0 inf
asin1020 asin inf inf -> 0.78539816339744828 inf
asin1021 asin 0.0 nan -> 0.0 nan
asin1022 asin 2.2999999999999998 nan -> nan nan
asin1023 asin inf nan -> nan inf ignore-imag-sign
asin1024 asin inf -0.0 -> 1.5707963267948966 -inf
asin1025 asin inf -2.2999999999999998 -> 1.5707963267948966 -inf
asin1026 asin nan -0.0 -> nan nan
asin1027 asin nan -2.2999999999999998 -> nan nan
asin1028 asin 0.0 -inf -> 0.0 -inf
asin1029 asin 2.2999999999999998 -inf -> 0.0 -inf
asin1030 asin inf -inf -> 0.78539816339744828 -inf
asin1031 asin nan -inf -> nan -inf
asin1032 asin -inf -0.0 -> -1.5707963267948966 -inf
asin1033 asin -inf -2.2999999999999998 -> -1.5707963267948966 -inf
asin1034 asin -0.0 -inf -> -0.0 -inf
asin1035 asin -2.2999999999999998 -inf -> -0.0 -inf
asin1036 asin -inf -inf -> -0.78539816339744828 -inf


------------------------------------
-- asinh: Inverse hyperbolic sine --
------------------------------------

-- zeros
asinh0000 asinh 0.0 0.0 -> 0.0 0.0
asinh0001 asinh 0.0 -0.0 -> 0.0 -0.0
asinh0002 asinh -0.0 0.0 -> -0.0 0.0
asinh0003 asinh -0.0 -0.0 -> -0.0 -0.0

-- branch points: +/-i
asinh0010 asinh 0.0 1.0 -> 0.0 1.5707963267948966
asinh0011 asinh 0.0 -1.0 -> 0.0 -1.5707963267948966
asinh0012 asinh -0.0 1.0 -> -0.0 1.5707963267948966
asinh0013 asinh -0.0 -1.0 -> -0.0 -1.5707963267948966

-- values along both sides of imaginary axis
asinh0020 asinh 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324
asinh0021 asinh -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324
asinh0022 asinh 0.0 -1e-305 -> 0.0 -1e-305
asinh0023 asinh -0.0 -1e-305 -> -0.0 -1e-305
asinh0024 asinh 0.0 -1e-150 -> 0.0 -1e-150
asinh0025 asinh -0.0 -1e-150 -> -0.0 -1e-150
asinh0026 asinh 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17
asinh0027 asinh -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17
asinh0028 asinh 0.0 -0.001 -> 0.0 -0.0010000001666667416
asinh0029 asinh -0.0 -0.001 -> -0.0 -0.0010000001666667416
asinh0030 asinh 0.0 -0.57899999999999996 -> 0.0 -0.61750165481717001
asinh0031 asinh -0.0 -0.57899999999999996 -> -0.0 -0.61750165481717001
asinh0032 asinh 0.0 -0.99999999999999989 -> 0.0 -1.5707963118937354
asinh0033 asinh -0.0 -0.99999999999999989 -> -0.0 -1.5707963118937354
asinh0034 asinh 0.0 -1.0000000000000002 -> 2.1073424255447014e-08 -1.5707963267948966
asinh0035 asinh -0.0 -1.0000000000000002 -> -2.1073424255447014e-08 -1.5707963267948966
asinh0036 asinh 0.0 -1.0009999999999999 -> 0.044717633608306849 -1.5707963267948966
asinh0037 asinh -0.0 -1.0009999999999999 -> -0.044717633608306849 -1.5707963267948966
asinh0038 asinh 0.0 -2.0 -> 1.3169578969248168 -1.5707963267948966
asinh0039 asinh -0.0 -2.0 -> -1.3169578969248168 -1.5707963267948966
asinh0040 asinh 0.0 -20.0 -> 3.6882538673612966 -1.5707963267948966
asinh0041 asinh -0.0 -20.0 -> -3.6882538673612966 -1.5707963267948966
asinh0042 asinh 0.0 -10000000000000000.0 -> 37.534508668464674 -1.5707963267948966
asinh0043 asinh -0.0 -10000000000000000.0 -> -37.534508668464674 -1.5707963267948966
asinh0044 asinh 0.0 -9.9999999999999998e+149 -> 346.08091112966679 -1.5707963267948966
asinh0045 asinh -0.0 -9.9999999999999998e+149 -> -346.08091112966679 -1.5707963267948966
asinh0046 asinh 0.0 -1.0000000000000001e+299 -> 689.16608998577965 -1.5707963267948966
asinh0047 asinh -0.0 -1.0000000000000001e+299 -> -689.16608998577965 -1.5707963267948966
asinh0048 asinh 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324
asinh0049 asinh -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324
asinh0050 asinh 0.0 1e-305 -> 0.0 1e-305
asinh0051 asinh -0.0 1e-305 -> -0.0 1e-305
asinh0052 asinh 0.0 1e-150 -> 0.0 1e-150
asinh0053 asinh -0.0 1e-150 -> -0.0 1e-150
asinh0054 asinh 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17
asinh0055 asinh -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17
asinh0056 asinh 0.0 0.001 -> 0.0 0.0010000001666667416
asinh0057 asinh -0.0 0.001 -> -0.0 0.0010000001666667416
asinh0058 asinh 0.0 0.57899999999999996 -> 0.0 0.61750165481717001
asinh0059 asinh -0.0 0.57899999999999996 -> -0.0 0.61750165481717001
asinh0060 asinh 0.0 0.99999999999999989 -> 0.0 1.5707963118937354
asinh0061 asinh -0.0 0.99999999999999989 -> -0.0 1.5707963118937354
asinh0062 asinh 0.0 1.0000000000000002 -> 2.1073424255447014e-08 1.5707963267948966
asinh0063 asinh -0.0 1.0000000000000002 -> -2.1073424255447014e-08 1.5707963267948966
asinh0064 asinh 0.0 1.0009999999999999 -> 0.044717633608306849 1.5707963267948966
asinh0065 asinh -0.0 1.0009999999999999 -> -0.044717633608306849 1.5707963267948966
asinh0066 asinh 0.0 2.0 -> 1.3169578969248168 1.5707963267948966
asinh0067 asinh -0.0 2.0 -> -1.3169578969248168 1.5707963267948966
asinh0068 asinh 0.0 20.0 -> 3.6882538673612966 1.5707963267948966
asinh0069 asinh -0.0 20.0 -> -3.6882538673612966 1.5707963267948966
asinh0070 asinh 0.0 10000000000000000.0 -> 37.534508668464674 1.5707963267948966
asinh0071 asinh -0.0 10000000000000000.0 -> -37.534508668464674 1.5707963267948966
asinh0072 asinh 0.0 9.9999999999999998e+149 -> 346.08091112966679 1.5707963267948966
asinh0073 asinh -0.0 9.9999999999999998e+149 -> -346.08091112966679 1.5707963267948966
asinh0074 asinh 0.0 1.0000000000000001e+299 -> 689.16608998577965 1.5707963267948966
asinh0075 asinh -0.0 1.0000000000000001e+299 -> -689.16608998577965 1.5707963267948966

-- random inputs
asinh0100 asinh -0.5946402853710423 -0.044506548910000145 -> -0.56459775392653022 -0.038256221441536356
asinh0101 asinh -0.19353958046180916 -0.017489624793193454 -> -0.19237926804196651 -0.017171741895336792
asinh0102 asinh -0.033117585138955893 -8.5256414015933757 -> -2.8327758348650969 -1.5668848791092411
asinh0103 asinh -1.5184043184035716 -0.73491245339073275 -> -1.2715891419764005 -0.39204624408542355
asinh0104 asinh -0.60716120271208818 -0.28900743958436542 -> -0.59119299421187232 -0.24745931678118135
asinh0105 asinh -0.0237177865112429 2.8832601052166313 -> -1.7205820772413236 1.5620261702963094
asinh0106 asinh -2.3906812342743979 2.6349216848574013 -> -1.9609636249445124 0.8142142660574706
asinh0107 asinh -0.0027605019787620517 183.85588476550555 -> -5.9072920005445066 1.5707813120847871
asinh0108 asinh -0.99083661164404713 0.028006797051617648 -> -0.8750185251283995 0.019894099615994653
asinh0109 asinh -3.0362951937986393 0.86377266758504867 -> -1.8636030714685221 0.26475058859950168
asinh0110 asinh 0.34438464536152769 -0.71603790174885029 -> 0.43985415690734164 -0.71015037409294324
asinh0111 asinh 4.4925124413876256 -60604595352.871613 -> 25.520783738612078 -1.5707963267207683
asinh0112 asinh 2.3213991428170337 -7.5459667007307258 -> 2.7560464993451643 -1.270073210856117
asinh0113 asinh 0.21291939741682028 -1.2720428814784408 -> 0.77275088137338266 -1.3182099250896895
asinh0114 asinh 6.6447359379455957 -0.97196191666946996 -> 2.602830695139672 -0.14368247412319965
asinh0115 asinh 7.1326256655083746 2.1516360452706857 -> 2.7051146374367212 0.29051701669727581
asinh0116 asinh 0.18846550905063442 3.4705348585339832 -> 1.917697875799296 1.514155593347924
asinh0117 asinh 0.19065075303281598 0.26216814548222012 -> 0.19603050785932474 0.26013422809614117
asinh0118 asinh 2.0242004665739719 0.70510281647495787 -> 1.4970366212896002 0.30526007200481453
asinh0119 asinh 37.336596461576057 717.29157391678234 -> 7.269981997945294 1.5187910219576033

-- values near infinity
asinh0200 asinh 1.0760517500874541e+308 1.1497786241240167e+308 -> 710.34346055651815 0.81850936961793475
asinh0201 asinh 1.1784839328845529e+308 -1.6478429586716638e+308 -> 710.59536255783678 -0.94996311735607697
asinh0202 asinh -4.8777682248909193e+307 1.4103736217538474e+308 -> -710.28970147376992 1.2378239519096443
asinh0203 asinh -1.2832478903233108e+308 -1.5732392613155698e+308 -> -710.59750164290745 -0.88657181439322452
asinh0204 asinh 0.0 6.8431383856345372e+307 -> 709.51001718444604 1.5707963267948966
asinh0205 asinh -0.0 8.601822432238051e+307 -> -709.73874482126689 1.5707963267948966
asinh0206 asinh 0.0 -5.5698396067303782e+307 -> 709.30413698733742 -1.5707963267948966
asinh0207 asinh -0.0 -7.1507777734621804e+307 -> -709.55399186002705 -1.5707963267948966
asinh0208 asinh 1.6025136110019349e+308 0.0 -> 710.3609292261076 0.0
asinh0209 asinh 1.3927819858239114e+308 -0.0 -> 710.22065899832899 -0.0
asinh0210 asinh -6.0442994056210995e+307 0.0 -> -709.38588631057621 0.0
asinh0211 asinh -1.2775271979042634e+308 -0.0 -> -710.13428215553972 -0.0
asinh0212 asinh 1.0687496260268489e+308 1.0255615699476961 -> 709.95584521407841 9.5959010882679093e-309
asinh0213 asinh 1.0050967333370962e+308 -0.87668970117333433 -> 709.89443961168183 -8.7224410556242882e-309
asinh0214 asinh -5.7161452814862392e+307 8.2377808413450122 -> -709.33006540611166 1.4411426644501116e-307
asinh0215 asinh -8.2009040727653315e+307 -6.407409526654976 -> -709.69101513070109 -7.8130526461510088e-308
asinh0216 asinh 6.4239368496483982 1.6365990821551427e+308 -> 710.38197618101287 1.5707963267948966
asinh0217 asinh 5.4729111423315882 -1.1227237438144211e+308 -> 710.00511346983546 -1.5707963267948966
asinh0218 asinh -8.3455818297412723 1.443172020182019e+308 -> -710.25619930551818 1.5707963267948966
asinh0219 asinh -2.6049726230372441 -1.7952291144022702e+308 -> -710.47448847685644 -1.5707963267948966

-- values near 0
asinh0220 asinh 1.2940113339664088e-314 6.9169190417774516e-323 -> 1.2940113339664088e-314 6.9169190417774516e-323
asinh0221 asinh 2.3848478863874649e-315 -3.1907655025717717e-310 -> 2.3848478863874649e-315 -3.1907655025717717e-310
asinh0222 asinh -3.0097643679641622e-316 4.6936236354918422e-322 -> -3.0097643679641622e-316 4.6936236354918422e-322
asinh0223 asinh -1.787997087755751e-308 -8.5619622834902341e-310 -> -1.787997087755751e-308 -8.5619622834902341e-310
asinh0224 asinh 0.0 1.2491433448427325e-314 -> 0.0 1.2491433448427325e-314
asinh0225 asinh -0.0 2.5024072154538062e-308 -> -0.0 2.5024072154538062e-308
asinh0226 asinh 0.0 -2.9643938750474793e-323 -> 0.0 -2.9643938750474793e-323
asinh0227 asinh -0.0 -2.9396905927554169e-320 -> -0.0 -2.9396905927554169e-320
asinh0228 asinh 5.64042930029359e-317 0.0 -> 5.64042930029359e-317 0.0
asinh0229 asinh 3.3833911866596068e-318 -0.0 -> 3.3833911866596068e-318 -0.0
asinh0230 asinh -4.9406564584124654e-324 0.0 -> -4.9406564584124654e-324 0.0
asinh0231 asinh -2.2211379227994845e-308 -0.0 -> -2.2211379227994845e-308 -0.0

-- special values
asinh1000 asinh 0.0 0.0 -> 0.0 0.0
asinh1001 asinh 0.0 -0.0 -> 0.0 -0.0
asinh1002 asinh -0.0 0.0 -> -0.0 0.0
asinh1003 asinh -0.0 -0.0 -> -0.0 -0.0
asinh1004 asinh 0.0 inf -> inf 1.5707963267948966
asinh1005 asinh 2.3 inf -> inf 1.5707963267948966
asinh1006 asinh 0.0 nan -> nan nan
asinh1007 asinh 2.3 nan -> nan nan
asinh1008 asinh inf 0.0 -> inf 0.0
asinh1009 asinh inf 2.3 -> inf 0.0
asinh1010 asinh inf inf -> inf 0.78539816339744828
asinh1011 asinh inf nan -> inf nan
asinh1012 asinh nan 0.0 -> nan 0.0
asinh1013 asinh nan 2.3 -> nan nan
asinh1014 asinh nan inf -> inf nan                      ignore-real-sign
asinh1015 asinh nan nan -> nan nan
asinh1016 asinh 0.0 -inf -> inf -1.5707963267948966
asinh1017 asinh 2.3 -inf -> inf -1.5707963267948966
asinh1018 asinh inf -0.0 -> inf -0.0
asinh1019 asinh inf -2.3 -> inf -0.0
asinh1020 asinh inf -inf -> inf -0.78539816339744828
asinh1021 asinh nan -0.0 -> nan -0.0
asinh1022 asinh nan -2.3 -> nan nan
asinh1023 asinh nan -inf -> inf nan                     ignore-real-sign
asinh1024 asinh -0.0 -inf -> -inf -1.5707963267948966
asinh1025 asinh -2.3 -inf -> -inf -1.5707963267948966
asinh1026 asinh -0.0 nan -> nan nan
asinh1027 asinh -2.3 nan -> nan nan
asinh1028 asinh -inf -0.0 -> -inf -0.0
asinh1029 asinh -inf -2.3 -> -inf -0.0
asinh1030 asinh -inf -inf -> -inf -0.78539816339744828
asinh1031 asinh -inf nan -> -inf nan
asinh1032 asinh -0.0 inf -> -inf 1.5707963267948966
asinh1033 asinh -2.3 inf -> -inf 1.5707963267948966
asinh1034 asinh -inf 0.0 -> -inf 0.0
asinh1035 asinh -inf 2.3 -> -inf 0.0
asinh1036 asinh -inf inf -> -inf 0.78539816339744828


---------------------------
-- atan: Inverse tangent --
---------------------------

-- zeros
-- These are tested in testAtanSign in test_cmath.py
-- atan0000 atan 0.0 0.0 -> 0.0 0.0
-- atan0001 atan 0.0 -0.0 -> 0.0 -0.0
-- atan0002 atan -0.0 0.0 -> -0.0 0.0
-- atan0003 atan -0.0 -0.0 -> -0.0 -0.0

-- values along both sides of imaginary axis
atan0010 atan 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324
atan0011 atan -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324
atan0012 atan 0.0 -1e-305 -> 0.0 -1e-305
atan0013 atan -0.0 -1e-305 -> -0.0 -1e-305
atan0014 atan 0.0 -1e-150 -> 0.0 -1e-150
atan0015 atan -0.0 -1e-150 -> -0.0 -1e-150
atan0016 atan 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17
atan0017 atan -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17
atan0018 atan 0.0 -0.001 -> 0.0 -0.0010000003333335333
atan0019 atan -0.0 -0.001 -> -0.0 -0.0010000003333335333
atan0020 atan 0.0 -0.57899999999999996 -> 0.0 -0.6609570902866303
atan0021 atan -0.0 -0.57899999999999996 -> -0.0 -0.6609570902866303
atan0022 atan 0.0 -0.99999999999999989 -> 0.0 -18.714973875118524
atan0023 atan -0.0 -0.99999999999999989 -> -0.0 -18.714973875118524
atan0024 atan 0.0 -1.0000000000000002 -> 1.5707963267948966 -18.36840028483855
atan0025 atan -0.0 -1.0000000000000002 -> -1.5707963267948966 -18.36840028483855
atan0026 atan 0.0 -1.0009999999999999 -> 1.5707963267948966 -3.8007011672919218
atan0027 atan -0.0 -1.0009999999999999 -> -1.5707963267948966 -3.8007011672919218
atan0028 atan 0.0 -2.0 -> 1.5707963267948966 -0.54930614433405489
atan0029 atan -0.0 -2.0 -> -1.5707963267948966 -0.54930614433405489
atan0030 atan 0.0 -20.0 -> 1.5707963267948966 -0.050041729278491265
atan0031 atan -0.0 -20.0 -> -1.5707963267948966 -0.050041729278491265
atan0032 atan 0.0 -10000000000000000.0 -> 1.5707963267948966 -9.9999999999999998e-17
atan0033 atan -0.0 -10000000000000000.0 -> -1.5707963267948966 -9.9999999999999998e-17
atan0034 atan 0.0 -9.9999999999999998e+149 -> 1.5707963267948966 -1e-150
atan0035 atan -0.0 -9.9999999999999998e+149 -> -1.5707963267948966 -1e-150
atan0036 atan 0.0 -1.0000000000000001e+299 -> 1.5707963267948966 -9.9999999999999999e-300
atan0037 atan -0.0 -1.0000000000000001e+299 -> -1.5707963267948966 -9.9999999999999999e-300
atan0038 atan 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324
atan0039 atan -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324
atan0040 atan 0.0 1e-305 -> 0.0 1e-305
atan0041 atan -0.0 1e-305 -> -0.0 1e-305
atan0042 atan 0.0 1e-150 -> 0.0 1e-150
atan0043 atan -0.0 1e-150 -> -0.0 1e-150
atan0044 atan 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17
atan0045 atan -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17
atan0046 atan 0.0 0.001 -> 0.0 0.0010000003333335333
atan0047 atan -0.0 0.001 -> -0.0 0.0010000003333335333
atan0048 atan 0.0 0.57899999999999996 -> 0.0 0.6609570902866303
atan0049 atan -0.0 0.57899999999999996 -> -0.0 0.6609570902866303
atan0050 atan 0.0 0.99999999999999989 -> 0.0 18.714973875118524
atan0051 atan -0.0 0.99999999999999989 -> -0.0 18.714973875118524
atan0052 atan 0.0 1.0000000000000002 -> 1.5707963267948966 18.36840028483855
atan0053 atan -0.0 1.0000000000000002 -> -1.5707963267948966 18.36840028483855
atan0054 atan 0.0 1.0009999999999999 -> 1.5707963267948966 3.8007011672919218
atan0055 atan -0.0 1.0009999999999999 -> -1.5707963267948966 3.8007011672919218
atan0056 atan 0.0 2.0 -> 1.5707963267948966 0.54930614433405489
atan0057 atan -0.0 2.0 -> -1.5707963267948966 0.54930614433405489
atan0058 atan 0.0 20.0 -> 1.5707963267948966 0.050041729278491265
atan0059 atan -0.0 20.0 -> -1.5707963267948966 0.050041729278491265
atan0060 atan 0.0 10000000000000000.0 -> 1.5707963267948966 9.9999999999999998e-17
atan0061 atan -0.0 10000000000000000.0 -> -1.5707963267948966 9.9999999999999998e-17
atan0062 atan 0.0 9.9999999999999998e+149 -> 1.5707963267948966 1e-150
atan0063 atan -0.0 9.9999999999999998e+149 -> -1.5707963267948966 1e-150
atan0064 atan 0.0 1.0000000000000001e+299 -> 1.5707963267948966 9.9999999999999999e-300
atan0065 atan -0.0 1.0000000000000001e+299 -> -1.5707963267948966 9.9999999999999999e-300

-- random inputs
atan0100 atan -0.32538873661060214 -1.5530461550412578 -> -1.3682728427554227 -0.69451401598762041
atan0101 atan -0.45863393495197929 -4799.1747094903594 -> -1.5707963068820623 -0.00020836916050636145
atan0102 atan -8.3006999685976162 -2.6788890251790938 -> -1.4619862771810199 -0.034811669653327826
atan0103 atan -1.8836307682985314 -1.1441976638861771 -> -1.1839984370871612 -0.20630956157312796
atan0104 atan -0.00063230482407491669 -4.9312520961829485 -> -1.5707692093223147 -0.20563867743008304
atan0105 atan -0.84278137150065946 179012.37493146997 -> -1.5707963267685969 5.5862059836425272e-06
atan0106 atan -0.95487853984049287 14.311334539886177 -> -1.5661322859434561 0.069676024526232005
atan0107 atan -1.3513252539663239 6.0500727021632198e-08 -> -0.93371676315220975 2.140800269742656e-08
atan0108 atan -0.20566254458595795 0.11933771944159823 -> -0.20556463711174916 0.11493405387141732
atan0109 atan -0.58563718795408559 0.64438965423212868 -> -0.68361089300233124 0.46759762751800249
atan0110 atan 48.479267751948292 -78.386382460112543 -> 1.5650888770910523 -0.0092276811373297584
atan0111 atan 1.0575373914056061 -0.75988012377296987 -> 0.94430886722043594 -0.31915698126703118
atan0112 atan 4444810.4314677203 -0.56553404593942558 -> 1.5707961018134231 -2.8625446437701909e-14
atan0113 atan 0.010101405082520009 -0.032932668550282478 -> 0.01011202676646334 -0.032941214776834996
atan0114 atan 1.5353585300154911 -2.1947099346796519 -> 1.3400310739206394 -0.29996003607449045
atan0115 atan 0.21869457055670882 9.9915684254007093 -> 1.5685846078876444 0.1003716881759439
atan0116 atan 0.17783290150246836 0.064334689863650957 -> 0.17668728064286277 0.062435808728873846
atan0117 atan 15.757474087615918 383.57262142534 -> 1.5706894060369621 0.0026026817278826603
atan0118 atan 10.587017408533317 0.21720238081843438 -> 1.4766594681336236 0.0019199097383010061
atan0119 atan 0.86026078678781204 0.1230148609359502 -> 0.7147259322534929 0.070551221954286605

-- values near infinity
atan0200 atan 7.8764397011195798e+307 8.1647921137746308e+307 -> 1.5707963267948966 6.3439446939604493e-309
atan0201 atan 1.5873698696131487e+308 -1.0780367422960641e+308 -> 1.5707963267948966 -2.9279309368530781e-309
atan0202 atan -1.5844551864825834e+308 1.0290657809098675e+308 -> -1.5707963267948966 2.8829614736961417e-309
atan0203 atan -1.3168792562524032e+308 -9.088432341614825e+307 -> -1.5707963267948966 -3.5499373057390056e-309
atan0204 atan 0.0 1.0360465742258337e+308 -> 1.5707963267948966 9.6520757355646018e-309
atan0205 atan -0.0 1.0045063210373196e+308 -> -1.5707963267948966 9.955138947929503e-309
atan0206 atan 0.0 -9.5155296715763696e+307 -> 1.5707963267948966 -1.050913648020118e-308
atan0207 atan -0.0 -1.5565700490496501e+308 -> -1.5707963267948966 -6.4243816114189071e-309
atan0208 atan 1.2956339389525244e+308 0.0 -> 1.5707963267948966 0.0
atan0209 atan 1.4408126243772151e+308 -0.0 -> 1.5707963267948966 -0.0
atan0210 atan -1.0631786461936417e+308 0.0 -> -1.5707963267948966 0.0
atan0211 atan -1.0516056964171069e+308 -0.0 -> -1.5707963267948966 -0.0
atan0212 atan 1.236162319603838e+308 4.6827953496242936 -> 1.5707963267948966 0.0
atan0213 atan 7.000516472897218e+307 -5.8631608017844163 -> 1.5707963267948966 -0.0
atan0214 atan -1.5053444003338508e+308 5.1199197268420313 -> -1.5707963267948966 0.0
atan0215 atan -1.399172518147259e+308 -3.5687766472913673 -> -1.5707963267948966 -0.0
atan0216 atan 8.1252833070803021 6.2782953917343822e+307 -> 1.5707963267948966 1.5927890256908564e-308
atan0217 atan 2.8034285947515167 -1.3378049775753878e+308 -> 1.5707963267948966 -7.4749310756219562e-309
atan0218 atan -1.4073509988974953 1.6776381785968355e+308 -> -1.5707963267948966 5.9607608646364569e-309
atan0219 atan -2.7135551527592119 -1.281567445525738e+308 -> -1.5707963267948966 -7.8029447727565326e-309

-- imaginary part = +/-1, real part tiny
atan0300 atan -1e-150 -1.0 -> -0.78539816339744828 -173.04045556483339
atan0301 atan 1e-155 1.0 -> 0.78539816339744828 178.79691829731851
atan0302 atan 9.9999999999999999e-161 -1.0 -> 0.78539816339744828 -184.55338102980363
atan0303 atan -1e-165 1.0 -> -0.78539816339744828 190.30984376228875
atan0304 atan -9.9998886718268301e-321 -1.0 -> -0.78539816339744828 -368.76019403576692

-- Additional real values (mpmath)
atan0400 atan 1.7976931348623157e+308 0.0 -> 1.5707963267948966192 0.0
atan0401 atan -1.7976931348623157e+308 0.0 -> -1.5707963267948966192 0.0
atan0402 atan 1e-17 0.0 -> 1.0000000000000000715e-17 0.0
atan0403 atan -1e-17 0.0 -> -1.0000000000000000715e-17 0.0
atan0404 atan 0.0001 0.0 -> 0.000099999999666666673459 0.0
atan0405 atan -0.0001 0.0 -> -0.000099999999666666673459 0.0
atan0406 atan 0.999999999999999 0.0 -> 0.78539816339744781002 0.0
atan0407 atan 1.000000000000001 0.0 -> 0.78539816339744886473 0.0
atan0408 atan 14.101419947171719 0.0 -> 1.4999999999999999969 0.0
atan0409 atan 1255.7655915007897 0.0 -> 1.5700000000000000622 0.0

-- special values
atan1000 atan -0.0 0.0 -> -0.0 0.0
atan1001 atan nan 0.0 -> nan 0.0
atan1002 atan -0.0 1.0 -> -0.0 inf divide-by-zero
atan1003 atan -inf 0.0 -> -1.5707963267948966 0.0
atan1004 atan -inf 2.2999999999999998 -> -1.5707963267948966 0.0
atan1005 atan nan 2.2999999999999998 -> nan nan
atan1006 atan -0.0 inf -> -1.5707963267948966 0.0
atan1007 atan -2.2999999999999998 inf -> -1.5707963267948966 0.0
atan1008 atan -inf inf -> -1.5707963267948966 0.0
atan1009 atan nan inf -> nan 0.0
atan1010 atan -0.0 nan -> nan nan
atan1011 atan -2.2999999999999998 nan -> nan nan
atan1012 atan -inf nan -> -1.5707963267948966 0.0 ignore-imag-sign
atan1013 atan nan nan -> nan nan
atan1014 atan 0.0 0.0 -> 0.0 0.0
atan1015 atan 0.0 1.0 -> 0.0 inf divide-by-zero
atan1016 atan inf 0.0 -> 1.5707963267948966 0.0
atan1017 atan inf 2.2999999999999998 -> 1.5707963267948966 0.0
atan1018 atan 0.0 inf -> 1.5707963267948966 0.0
atan1019 atan 2.2999999999999998 inf -> 1.5707963267948966 0.0
atan1020 atan inf inf -> 1.5707963267948966 0.0
atan1021 atan 0.0 nan -> nan nan
atan1022 atan 2.2999999999999998 nan -> nan nan
atan1023 atan inf nan -> 1.5707963267948966 0.0 ignore-imag-sign
atan1024 atan 0.0 -0.0 -> 0.0 -0.0
atan1025 atan nan -0.0 -> nan -0.0
atan1026 atan 0.0 -1.0 -> 0.0 -inf divide-by-zero
atan1027 atan inf -0.0 -> 1.5707963267948966 -0.0
atan1028 atan inf -2.2999999999999998 -> 1.5707963267948966 -0.0
atan1029 atan nan -2.2999999999999998 -> nan nan
atan1030 atan 0.0 -inf -> 1.5707963267948966 -0.0
atan1031 atan 2.2999999999999998 -inf -> 1.5707963267948966 -0.0
atan1032 atan inf -inf -> 1.5707963267948966 -0.0
atan1033 atan nan -inf -> nan -0.0
atan1034 atan -0.0 -0.0 -> -0.0 -0.0
atan1035 atan -0.0 -1.0 -> -0.0 -inf divide-by-zero
atan1036 atan -inf -0.0 -> -1.5707963267948966 -0.0
atan1037 atan -inf -2.2999999999999998 -> -1.5707963267948966 -0.0
atan1038 atan -0.0 -inf -> -1.5707963267948966 -0.0
atan1039 atan -2.2999999999999998 -inf -> -1.5707963267948966 -0.0
atan1040 atan -inf -inf -> -1.5707963267948966 -0.0


---------------------------------------
-- atanh: Inverse hyperbolic tangent --
---------------------------------------

-- zeros
-- These are tested in testAtanhSign in test_cmath.py
-- atanh0000 atanh 0.0 0.0 -> 0.0 0.0
-- atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0
-- atanh0002 atanh -0.0 0.0 -> -0.0 0.0
-- atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0

-- values along both sides of real axis
atanh0010 atanh -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0
atanh0011 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0
atanh0012 atanh -1e-305 0.0 -> -1e-305 0.0
atanh0013 atanh -1e-305 -0.0 -> -1e-305 -0.0
atanh0014 atanh -1e-150 0.0 -> -1e-150 0.0
atanh0015 atanh -1e-150 -0.0 -> -1e-150 -0.0
atanh0016 atanh -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0
atanh0017 atanh -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0
atanh0018 atanh -0.001 0.0 -> -0.0010000003333335333 0.0
atanh0019 atanh -0.001 -0.0 -> -0.0010000003333335333 -0.0
atanh0020 atanh -0.57899999999999996 0.0 -> -0.6609570902866303 0.0
atanh0021 atanh -0.57899999999999996 -0.0 -> -0.6609570902866303 -0.0
atanh0022 atanh -0.99999999999999989 0.0 -> -18.714973875118524 0.0
atanh0023 atanh -0.99999999999999989 -0.0 -> -18.714973875118524 -0.0
atanh0024 atanh -1.0000000000000002 0.0 -> -18.36840028483855 1.5707963267948966
atanh0025 atanh -1.0000000000000002 -0.0 -> -18.36840028483855 -1.5707963267948966
atanh0026 atanh -1.0009999999999999 0.0 -> -3.8007011672919218 1.5707963267948966
atanh0027 atanh -1.0009999999999999 -0.0 -> -3.8007011672919218 -1.5707963267948966
atanh0028 atanh -2.0 0.0 -> -0.54930614433405489 1.5707963267948966
atanh0029 atanh -2.0 -0.0 -> -0.54930614433405489 -1.5707963267948966
atanh0030 atanh -23.0 0.0 -> -0.043505688494814884 1.5707963267948966
atanh0031 atanh -23.0 -0.0 -> -0.043505688494814884 -1.5707963267948966
atanh0032 atanh -10000000000000000.0 0.0 -> -9.9999999999999998e-17 1.5707963267948966
atanh0033 atanh -10000000000000000.0 -0.0 -> -9.9999999999999998e-17 -1.5707963267948966
atanh0034 atanh -9.9999999999999998e+149 0.0 -> -1e-150 1.5707963267948966
atanh0035 atanh -9.9999999999999998e+149 -0.0 -> -1e-150 -1.5707963267948966
atanh0036 atanh -1.0000000000000001e+299 0.0 -> -9.9999999999999999e-300 1.5707963267948966
atanh0037 atanh -1.0000000000000001e+299 -0.0 -> -9.9999999999999999e-300 -1.5707963267948966
atanh0038 atanh 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0
atanh0039 atanh 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0
atanh0040 atanh 1e-305 0.0 -> 1e-305 0.0
atanh0041 atanh 1e-305 -0.0 -> 1e-305 -0.0
atanh0042 atanh 1e-150 0.0 -> 1e-150 0.0
atanh0043 atanh 1e-150 -0.0 -> 1e-150 -0.0
atanh0044 atanh 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0
atanh0045 atanh 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0
atanh0046 atanh 0.001 0.0 -> 0.0010000003333335333 0.0
atanh0047 atanh 0.001 -0.0 -> 0.0010000003333335333 -0.0
atanh0048 atanh 0.57899999999999996 0.0 -> 0.6609570902866303 0.0
atanh0049 atanh 0.57899999999999996 -0.0 -> 0.6609570902866303 -0.0
atanh0050 atanh 0.99999999999999989 0.0 -> 18.714973875118524 0.0
atanh0051 atanh 0.99999999999999989 -0.0 -> 18.714973875118524 -0.0
atanh0052 atanh 1.0000000000000002 0.0 -> 18.36840028483855 1.5707963267948966
atanh0053 atanh 1.0000000000000002 -0.0 -> 18.36840028483855 -1.5707963267948966
atanh0054 atanh 1.0009999999999999 0.0 -> 3.8007011672919218 1.5707963267948966
atanh0055 atanh 1.0009999999999999 -0.0 -> 3.8007011672919218 -1.5707963267948966
atanh0056 atanh 2.0 0.0 -> 0.54930614433405489 1.5707963267948966
atanh0057 atanh 2.0 -0.0 -> 0.54930614433405489 -1.5707963267948966
atanh0058 atanh 23.0 0.0 -> 0.043505688494814884 1.5707963267948966
atanh0059 atanh 23.0 -0.0 -> 0.043505688494814884 -1.5707963267948966
atanh0060 atanh 10000000000000000.0 0.0 -> 9.9999999999999998e-17 1.5707963267948966
atanh0061 atanh 10000000000000000.0 -0.0 -> 9.9999999999999998e-17 -1.5707963267948966
atanh0062 atanh 9.9999999999999998e+149 0.0 -> 1e-150 1.5707963267948966
atanh0063 atanh 9.9999999999999998e+149 -0.0 -> 1e-150 -1.5707963267948966
atanh0064 atanh 1.0000000000000001e+299 0.0 -> 9.9999999999999999e-300 1.5707963267948966
atanh0065 atanh 1.0000000000000001e+299 -0.0 -> 9.9999999999999999e-300 -1.5707963267948966

-- random inputs
atanh0100 atanh -0.54460925980633501 -0.54038050126721027 -> -0.41984265808446974 -0.60354153938352828
atanh0101 atanh -1.6934614269829051 -0.48807386108113621 -> -0.58592769102243281 -1.3537837470975898
atanh0102 atanh -1.3467293985501207 -0.47868354895395876 -> -0.69961624370709985 -1.1994450156570076
atanh0103 atanh -5.6142232418984888 -544551613.39307702 -> -1.8932657550925744e-17 -1.5707963249585235
atanh0104 atanh -0.011841460381263651 -3.259978899823385 -> -0.0010183936547405188 -1.2731614020743838
atanh0105 atanh -0.0073345736950029532 0.35821949670922248 -> -0.0065004869024682466 0.34399359971920895
atanh0106 atanh -13.866782244320014 0.9541129545860273 -> -0.071896852055058899 1.5658322704631409
atanh0107 atanh -708.59964982780775 21.984802159266675 -> -0.0014098779074189741 1.5707525842838959
atanh0108 atanh -30.916832076030602 1.3691897138829843 -> -0.032292682045743676 1.5693652094847115
atanh0109 atanh -0.57461806339861754 0.29534797443913063 -> -0.56467464472482765 0.39615612824172625
atanh0110 atanh 0.40089246737415685 -1.632285984300659 -> 0.1063832707890608 -1.0402821335326482
atanh0111 atanh 2119.6167688262176 -1.5383653437377242e+17 -> 8.9565008518382049e-32 -1.5707963267948966
atanh0112 atanh 756.86017850941641 -6.6064087133223817 -> 0.0013211481136820046 -1.5707847948702234
atanh0113 atanh 4.0490617718041602 -2.5784456791040652e-12 -> 0.25218425538553618 -1.5707963267947291
atanh0114 atanh 10.589254957173523 -0.13956391149624509 -> 0.094700890282197664 -1.5695407140217623
atanh0115 atanh 1.0171187553160499 0.70766113465354019 -> 0.55260251975367791 0.96619711116641682
atanh0116 atanh 0.031645502527750849 0.067319983726544394 -> 0.031513018344086742 0.067285437670549036
atanh0117 atanh 0.13670177624994517 0.43240089361857947 -> 0.11538933151017253 0.41392008145336212
atanh0118 atanh 0.64173899243596688 2.9008577686695256 -> 0.065680142424134405 1.2518535724053921
atanh0119 atanh 0.19313813528025942 38.799619150741869 -> 0.00012820765917366644 1.5450292202823612

-- values near infinity
atanh0200 atanh 5.3242646831347954e+307 1.3740396080084153e+308 -> 2.4519253616695576e-309 1.5707963267948966
atanh0201 atanh 1.158701641241358e+308 -6.5579268873375853e+307 -> 6.5365375267795098e-309 -1.5707963267948966
atanh0202 atanh -1.3435325735762247e+308 9.8947369259601547e+307 -> -4.8256680906589956e-309 1.5707963267948966
atanh0203 atanh -1.4359857522598942e+308 -9.4701204702391004e+307 -> -4.8531282262872645e-309 -1.5707963267948966
atanh0204 atanh 0.0 5.6614181068098497e+307 -> 0.0 1.5707963267948966
atanh0205 atanh -0.0 6.9813212721450139e+307 -> -0.0 1.5707963267948966
atanh0206 atanh 0.0 -7.4970613060311453e+307 -> 0.0 -1.5707963267948966
atanh0207 atanh -0.0 -1.5280601880314068e+308 -> -0.0 -1.5707963267948966
atanh0208 atanh 8.2219472336000745e+307 0.0 -> 1.2162568933954813e-308 1.5707963267948966
atanh0209 atanh 1.4811519617280899e+308 -0.0 -> 6.7515017083951325e-309 -1.5707963267948966
atanh0210 atanh -1.2282016263598785e+308 0.0 -> -8.1419856360537615e-309 1.5707963267948966
atanh0211 atanh -1.0616427760154426e+308 -0.0 -> -9.4193642399489563e-309 -1.5707963267948966
atanh0212 atanh 1.2971536510180682e+308 5.2847948452333293 -> 7.7091869510998328e-309 1.5707963267948966
atanh0213 atanh 1.1849860977411851e+308 -7.9781906447459949 -> 8.4389175696339014e-309 -1.5707963267948966
atanh0214 atanh -1.4029969422586635e+308 0.93891986543663375 -> -7.127599283218073e-309 1.5707963267948966
atanh0215 atanh -4.7508098912248211e+307 -8.2702421247039908 -> -2.1049042645278043e-308 -1.5707963267948966
atanh0216 atanh 8.2680742115769998 8.1153898410918065e+307 -> 0.0 1.5707963267948966
atanh0217 atanh 1.2575325146218885 -1.4746679147661649e+308 -> 0.0 -1.5707963267948966
atanh0218 atanh -2.4618803682310899 1.3781522717005568e+308 -> -0.0 1.5707963267948966
atanh0219 atanh -4.0952386694788112 -1.231083376353703e+308 -> -0.0 -1.5707963267948966

-- values near 0
atanh0220 atanh 3.8017563659811628e-314 2.6635484239074319e-312 -> 3.8017563659811628e-314 2.6635484239074319e-312
atanh0221 atanh 1.7391110733611878e-321 -4.3547800672541419e-313 -> 1.7391110733611878e-321 -4.3547800672541419e-313
atanh0222 atanh -5.9656816081325078e-317 9.9692253555416263e-313 -> -5.9656816081325078e-317 9.9692253555416263e-313
atanh0223 atanh -6.5606671178400239e-313 -2.1680936406357335e-309 -> -6.5606671178400239e-313 -2.1680936406357335e-309
atanh0224 atanh 0.0 2.5230944401820779e-319 -> 0.0 2.5230944401820779e-319
atanh0225 atanh -0.0 5.6066569490064658e-320 -> -0.0 5.6066569490064658e-320
atanh0226 atanh 0.0 -2.4222487249468377e-317 -> 0.0 -2.4222487249468377e-317
atanh0227 atanh -0.0 -3.0861101089206037e-316 -> -0.0 -3.0861101089206037e-316
atanh0228 atanh 3.1219222884393986e-310 0.0 -> 3.1219222884393986e-310 0.0
atanh0229 atanh 9.8926337564976196e-309 -0.0 -> 9.8926337564976196e-309 -0.0
atanh0230 atanh -1.5462535092918154e-312 0.0 -> -1.5462535092918154e-312 0.0
atanh0231 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0

-- real part = +/-1, imaginary part tiny
atanh0300 atanh 1.0 1e-153 -> 176.49433320432448 0.78539816339744828
atanh0301 atanh 1.0 9.9999999999999997e-155 -> 177.64562575082149 0.78539816339744828
atanh0302 atanh -1.0 1e-161 -> -185.70467357630065 0.78539816339744828
atanh0303 atanh 1.0 -1e-165 -> 190.30984376228875 -0.78539816339744828
atanh0304 atanh -1.0 -9.8813129168249309e-324 -> -372.22003596069061 -0.78539816339744828

-- special values
atanh1000 atanh 0.0 0.0 -> 0.0 0.0
atanh1001 atanh 0.0 nan -> 0.0 nan
atanh1002 atanh 1.0 0.0 -> inf 0.0                      divide-by-zero
atanh1003 atanh 0.0 inf -> 0.0 1.5707963267948966
atanh1004 atanh 2.3 inf -> 0.0 1.5707963267948966
atanh1005 atanh 2.3 nan -> nan nan
atanh1006 atanh inf 0.0 -> 0.0 1.5707963267948966
atanh1007 atanh inf 2.3 -> 0.0 1.5707963267948966
atanh1008 atanh inf inf -> 0.0 1.5707963267948966
atanh1009 atanh inf nan -> 0.0 nan
atanh1010 atanh nan 0.0 -> nan nan
atanh1011 atanh nan 2.3 -> nan nan
atanh1012 atanh nan inf -> 0.0 1.5707963267948966       ignore-real-sign
atanh1013 atanh nan nan -> nan nan
atanh1014 atanh 0.0 -0.0 -> 0.0 -0.0
atanh1015 atanh 1.0 -0.0 -> inf -0.0                    divide-by-zero
atanh1016 atanh 0.0 -inf -> 0.0 -1.5707963267948966
atanh1017 atanh 2.3 -inf -> 0.0 -1.5707963267948966
atanh1018 atanh inf -0.0 -> 0.0 -1.5707963267948966
atanh1019 atanh inf -2.3 -> 0.0 -1.5707963267948966
atanh1020 atanh inf -inf -> 0.0 -1.5707963267948966
atanh1021 atanh nan -0.0 -> nan nan
atanh1022 atanh nan -2.3 -> nan nan
atanh1023 atanh nan -inf -> 0.0 -1.5707963267948966     ignore-real-sign
atanh1024 atanh -0.0 -0.0 -> -0.0 -0.0
atanh1025 atanh -0.0 nan -> -0.0 nan
atanh1026 atanh -1.0 -0.0 -> -inf -0.0                  divide-by-zero
atanh1027 atanh -0.0 -inf -> -0.0 -1.5707963267948966
atanh1028 atanh -2.3 -inf -> -0.0 -1.5707963267948966
atanh1029 atanh -2.3 nan -> nan nan
atanh1030 atanh -inf -0.0 -> -0.0 -1.5707963267948966
atanh1031 atanh -inf -2.3 -> -0.0 -1.5707963267948966
atanh1032 atanh -inf -inf -> -0.0 -1.5707963267948966
atanh1033 atanh -inf nan -> -0.0 nan
atanh1034 atanh -0.0 0.0 -> -0.0 0.0
atanh1035 atanh -1.0 0.0 -> -inf 0.0                    divide-by-zero
atanh1036 atanh -0.0 inf -> -0.0 1.5707963267948966
atanh1037 atanh -2.3 inf -> -0.0 1.5707963267948966
atanh1038 atanh -inf 0.0 -> -0.0 1.5707963267948966
atanh1039 atanh -inf 2.3 -> -0.0 1.5707963267948966
atanh1040 atanh -inf inf -> -0.0 1.5707963267948966


----------------------------
-- log: Natural logarithm --
----------------------------

log0000 log 1.0 0.0 -> 0.0 0.0
log0001 log 1.0 -0.0 -> 0.0 -0.0
log0002 log -1.0 0.0 -> 0.0 3.1415926535897931
log0003 log -1.0 -0.0 -> 0.0 -3.1415926535897931
-- values along both sides of real axis
log0010 log -9.8813129168249309e-324 0.0 -> -743.74692474082133 3.1415926535897931
log0011 log -9.8813129168249309e-324 -0.0 -> -743.74692474082133 -3.1415926535897931
log0012 log -1e-305 0.0 -> -702.28845336318398 3.1415926535897931
log0013 log -1e-305 -0.0 -> -702.28845336318398 -3.1415926535897931
log0014 log -1e-150 0.0 -> -345.38776394910684 3.1415926535897931
log0015 log -1e-150 -0.0 -> -345.38776394910684 -3.1415926535897931
log0016 log -9.9999999999999998e-17 0.0 -> -36.841361487904734 3.1415926535897931
log0017 log -9.9999999999999998e-17 -0.0 -> -36.841361487904734 -3.1415926535897931
log0018 log -0.001 0.0 -> -6.9077552789821368 3.1415926535897931
log0019 log -0.001 -0.0 -> -6.9077552789821368 -3.1415926535897931
log0020 log -0.57899999999999996 0.0 -> -0.54645280140914188 3.1415926535897931
log0021 log -0.57899999999999996 -0.0 -> -0.54645280140914188 -3.1415926535897931
log0022 log -0.99999999999999989 0.0 -> -1.1102230246251565e-16 3.1415926535897931
log0023 log -0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -3.1415926535897931
log0024 log -1.0000000000000002 0.0 -> 2.2204460492503128e-16 3.1415926535897931
log0025 log -1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -3.1415926535897931
log0026 log -1.0009999999999999 0.0 -> 0.00099950033308342321 3.1415926535897931
log0027 log -1.0009999999999999 -0.0 -> 0.00099950033308342321 -3.1415926535897931
log0028 log -2.0 0.0 -> 0.69314718055994529 3.1415926535897931
log0029 log -2.0 -0.0 -> 0.69314718055994529 -3.1415926535897931
log0030 log -23.0 0.0 -> 3.1354942159291497 3.1415926535897931
log0031 log -23.0 -0.0 -> 3.1354942159291497 -3.1415926535897931
log0032 log -10000000000000000.0 0.0 -> 36.841361487904734 3.1415926535897931
log0033 log -10000000000000000.0 -0.0 -> 36.841361487904734 -3.1415926535897931
log0034 log -9.9999999999999998e+149 0.0 -> 345.38776394910684 3.1415926535897931
log0035 log -9.9999999999999998e+149 -0.0 -> 345.38776394910684 -3.1415926535897931
log0036 log -1.0000000000000001e+299 0.0 -> 688.47294280521965 3.1415926535897931
log0037 log -1.0000000000000001e+299 -0.0 -> 688.47294280521965 -3.1415926535897931
log0038 log 9.8813129168249309e-324 0.0 -> -743.74692474082133 0.0
log0039 log 9.8813129168249309e-324 -0.0 -> -743.74692474082133 -0.0
log0040 log 1e-305 0.0 -> -702.28845336318398 0.0
log0041 log 1e-305 -0.0 -> -702.28845336318398 -0.0
log0042 log 1e-150 0.0 -> -345.38776394910684 0.0
log0043 log 1e-150 -0.0 -> -345.38776394910684 -0.0
log0044 log 9.9999999999999998e-17 0.0 -> -36.841361487904734 0.0
log0045 log 9.9999999999999998e-17 -0.0 -> -36.841361487904734 -0.0
log0046 log 0.001 0.0 -> -6.9077552789821368 0.0
log0047 log 0.001 -0.0 -> -6.9077552789821368 -0.0
log0048 log 0.57899999999999996 0.0 -> -0.54645280140914188 0.0
log0049 log 0.57899999999999996 -0.0 -> -0.54645280140914188 -0.0
log0050 log 0.99999999999999989 0.0 -> -1.1102230246251565e-16 0.0
log0051 log 0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -0.0
log0052 log 1.0000000000000002 0.0 -> 2.2204460492503128e-16 0.0
log0053 log 1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -0.0
log0054 log 1.0009999999999999 0.0 -> 0.00099950033308342321 0.0
log0055 log 1.0009999999999999 -0.0 -> 0.00099950033308342321 -0.0
log0056 log 2.0 0.0 -> 0.69314718055994529 0.0
log0057 log 2.0 -0.0 -> 0.69314718055994529 -0.0
log0058 log 23.0 0.0 -> 3.1354942159291497 0.0
log0059 log 23.0 -0.0 -> 3.1354942159291497 -0.0
log0060 log 10000000000000000.0 0.0 -> 36.841361487904734 0.0
log0061 log 10000000000000000.0 -0.0 -> 36.841361487904734 -0.0
log0062 log 9.9999999999999998e+149 0.0 -> 345.38776394910684 0.0
log0063 log 9.9999999999999998e+149 -0.0 -> 345.38776394910684 -0.0
log0064 log 1.0000000000000001e+299 0.0 -> 688.47294280521965 0.0
log0065 log 1.0000000000000001e+299 -0.0 -> 688.47294280521965 -0.0

-- random inputs
log0066 log -1.9830454945186191e-16 -2.0334448025673346 -> 0.70973130194329803 -1.5707963267948968
log0067 log -0.96745853024741857 -0.84995816228299692 -> 0.25292811398722387 -2.4207570438536905
log0068 log -0.1603644313948418 -0.2929942111041835 -> -1.0965857872427374 -2.0715870859971419
log0069 log -0.15917913168438699 -0.25238799251132177 -> -1.2093477313249901 -2.1334784232033863
log0070 log -0.68907818535078802 -3.0693105853476346 -> 1.1460398629184565 -1.7916403813913211
log0071 log -17.268133447565589 6.8165120014604756 -> 2.9212694465974836 2.7656245081603164
log0072 log -1.7153894479690328 26.434055372802636 -> 3.2767542953718003 1.6355986276341734
log0073 log -8.0456794648936578e-06 0.19722758057570208 -> -1.6233969848296075 1.5708371206810101
log0074 log -2.4306442691323173 0.6846919750700996 -> 0.92633592001969589 2.8670160576718331
log0075 log -3.5488049250888194 0.45324040643185254 -> 1.2747008374256426 3.0145640007885111
log0076 log 0.18418516851510189 -0.26062518836212617 -> -1.1421287121940344 -0.95558440841183434
log0077 log 2.7124837795638399 -13.148769067133387 -> 2.5971659975706802 -1.3673583045209439
log0078 log 3.6521275476169149e-13 -3.7820543023170673e-05 -> -10.182658136741569 -1.5707963171384316
log0079 log 5.0877545813862239 -1.2834978326786852 -> 1.6576856213076328 -0.24711583497738485
log0080 log 0.26477986808461512 -0.67659001194187429 -> -0.31944085207999973 -1.197773671987121
log0081 log 0.0014754261398071962 5.3514691608205442 -> 1.6773711707153829 1.5705206219261802
log0082 log 0.29667334462157885 0.00020056045042584795 -> -1.2151233667079588 0.00067603114168689204
log0083 log 0.82104233671099425 3.9005387130133102 -> 1.3827918965299593 1.3633304701848363
log0084 log 0.27268135358180667 124.42088110945804 -> 4.8236724223559229 1.5686047258789015
log0085 log 0.0026286959168267485 0.47795808180573013 -> -0.73821712137809126 1.5652965360960087

-- values near infinity
log0100 log 1.0512025744003172e+308 7.2621669750664611e+307 -> 709.44123967814494 0.60455434048332968
log0101 log 5.5344249034372126e+307 -1.2155859158431275e+308 -> 709.48562300345679 -1.143553056717973
log0102 log -1.3155575403469408e+308 1.1610793541663864e+308 -> 709.75847809546428 2.41848796504974
log0103 log -1.632366720973235e+308 -1.54299446211448e+308 -> 710.00545236515586 -2.3843326028455087
log0104 log 0.0 5.9449276692327712e+307 -> 708.67616191258526 1.5707963267948966
log0105 log -0.0 1.1201850459025692e+308 -> 709.30970253338171 1.5707963267948966
log0106 log 0.0 -1.6214225933466528e+308 -> 709.6795125501086 -1.5707963267948966
log0107 log -0.0 -1.7453269791591058e+308 -> 709.75315056087379 -1.5707963267948966
log0108 log 1.440860577601428e+308 0.0 -> 709.56144920058262 0.0
log0109 log 1.391515176148282e+308 -0.0 -> 709.52660185041327 -0.0
log0110 log -1.201354401295296e+308 0.0 -> 709.37965823023956 3.1415926535897931
log0111 log -1.6704337825976804e+308 -0.0 -> 709.70929198492399 -3.1415926535897931
log0112 log 7.2276974655190223e+307 7.94879711369164 -> 708.87154406512104 1.0997689307850458e-307
log0113 log 1.1207859593716076e+308 -6.1956200868221147 -> 709.31023883080104 -5.5279244310803286e-308
log0114 log -4.6678933874471045e+307 9.947107893220382 -> 708.43433142431388 3.1415926535897931
log0115 log -1.5108012453950142e+308 -5.3117197179375619 -> 709.60884877835008 -3.1415926535897931
log0116 log 7.4903750871504435 1.5320703776626352e+308 -> 709.62282865085137 1.5707963267948966
log0117 log 5.9760325525654778 -8.0149473997349123e+307 -> 708.97493177248396 -1.5707963267948966
log0118 log -7.880194206386629 1.7861845814767441e+308 -> 709.77629046837137 1.5707963267948966
log0119 log -9.886438993852865 -6.19235781080747e+307 -> 708.71693946977302 -1.5707963267948966

-- values near 0
log0120 log 2.2996867579227779e-308 6.7861840770939125e-312 -> -708.36343567717392 0.00029509166223339815
log0121 log 6.9169190417774516e-323 -9.0414013188948118e-322 -> -739.22766796468386 -1.4944423210001669
log0122 log -1.5378064962914011e-316 1.8243628389354635e-310 -> -713.20014803142965 1.5707971697228842
log0123 log -2.3319898483706837e-321 -2.2358763941866371e-313 -> -719.9045008332522 -1.570796337224766
log0124 log 0.0 3.872770101081121e-315 -> -723.96033425374401 1.5707963267948966
log0125 log -0.0 9.6342800939043076e-322 -> -739.16707236281752 1.5707963267948966
log0126 log 0.0 -2.266099393427834e-308 -> -708.37814861757965 -1.5707963267948966
log0127 log -0.0 -2.1184695673766626e-315 -> -724.56361036731812 -1.5707963267948966
log0128 log 1.1363509854348671e-322 0.0 -> -741.30457770545206 0.0
log0129 log 3.5572726500569751e-322 -0.0 -> -740.16340580236522 -0.0
log0130 log -2.3696071074040593e-310 0.0 -> -712.93865466421641 3.1415926535897931
log0131 log -2.813283897266934e-317 -0.0 -> -728.88512203138862 -3.1415926535897931

-- values near the unit circle
log0200 log -0.59999999999999998 0.80000000000000004 -> 2.2204460492503132e-17 2.2142974355881808
log0201 log 0.79999999999999993 0.60000000000000009 -> 6.1629758220391547e-33 0.64350110879328448

-- special values
log1000 log -0.0 0.0 -> -inf 3.1415926535897931         divide-by-zero
log1001 log 0.0 0.0 -> -inf 0.0                         divide-by-zero
log1002 log 0.0 inf -> inf 1.5707963267948966
log1003 log 2.3 inf -> inf 1.5707963267948966
log1004 log -0.0 inf -> inf 1.5707963267948966
log1005 log -2.3 inf -> inf 1.5707963267948966
log1006 log 0.0 nan -> nan nan
log1007 log 2.3 nan -> nan nan
log1008 log -0.0 nan -> nan nan
log1009 log -2.3 nan -> nan nan
log1010 log -inf 0.0 -> inf 3.1415926535897931
log1011 log -inf 2.3 -> inf 3.1415926535897931
log1012 log inf 0.0 -> inf 0.0
log1013 log inf 2.3 -> inf 0.0
log1014 log -inf inf -> inf 2.3561944901923448
log1015 log inf inf -> inf 0.78539816339744828
log1016 log inf nan -> inf nan
log1017 log -inf nan -> inf nan
log1018 log nan 0.0 -> nan nan
log1019 log nan 2.3 -> nan nan
log1020 log nan inf -> inf nan
log1021 log nan nan -> nan nan
log1022 log -0.0 -0.0 -> -inf -3.1415926535897931       divide-by-zero
log1023 log 0.0 -0.0 -> -inf -0.0                       divide-by-zero
log1024 log 0.0 -inf -> inf -1.5707963267948966
log1025 log 2.3 -inf -> inf -1.5707963267948966
log1026 log -0.0 -inf -> inf -1.5707963267948966
log1027 log -2.3 -inf -> inf -1.5707963267948966
log1028 log -inf -0.0 -> inf -3.1415926535897931
log1029 log -inf -2.3 -> inf -3.1415926535897931
log1030 log inf -0.0 -> inf -0.0
log1031 log inf -2.3 -> inf -0.0
log1032 log -inf -inf -> inf -2.3561944901923448
log1033 log inf -inf -> inf -0.78539816339744828
log1034 log nan -0.0 -> nan nan
log1035 log nan -2.3 -> nan nan
log1036 log nan -inf -> inf nan


------------------------------
-- log10: Logarithm base 10 --
------------------------------

logt0000 log10 1.0 0.0 -> 0.0 0.0
logt0001 log10 1.0 -0.0 -> 0.0 -0.0
logt0002 log10 -1.0 0.0 -> 0.0 1.3643763538418414
logt0003 log10 -1.0 -0.0 -> 0.0 -1.3643763538418414
-- values along both sides of real axis
logt0010 log10 -9.8813129168249309e-324 0.0 -> -323.0051853474518 1.3643763538418414
logt0011 log10 -9.8813129168249309e-324 -0.0 -> -323.0051853474518 -1.3643763538418414
logt0012 log10 -1e-305 0.0 -> -305.0 1.3643763538418414
logt0013 log10 -1e-305 -0.0 -> -305.0 -1.3643763538418414
logt0014 log10 -1e-150 0.0 -> -150.0 1.3643763538418414
logt0015 log10 -1e-150 -0.0 -> -150.0 -1.3643763538418414
logt0016 log10 -9.9999999999999998e-17 0.0 -> -16.0 1.3643763538418414
logt0017 log10 -9.9999999999999998e-17 -0.0 -> -16.0 -1.3643763538418414
logt0018 log10 -0.001 0.0 -> -3.0 1.3643763538418414
logt0019 log10 -0.001 -0.0 -> -3.0 -1.3643763538418414
logt0020 log10 -0.57899999999999996 0.0 -> -0.23732143627256383 1.3643763538418414
logt0021 log10 -0.57899999999999996 -0.0 -> -0.23732143627256383 -1.3643763538418414
logt0022 log10 -0.99999999999999989 0.0 -> -4.821637332766436e-17 1.3643763538418414
logt0023 log10 -0.99999999999999989 -0.0 -> -4.821637332766436e-17 -1.3643763538418414
logt0024 log10 -1.0000000000000002 0.0 -> 9.6432746655328696e-17 1.3643763538418414
logt0025 log10 -1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -1.3643763538418414
logt0026 log10 -1.0009999999999999 0.0 -> 0.0004340774793185929 1.3643763538418414
logt0027 log10 -1.0009999999999999 -0.0 -> 0.0004340774793185929 -1.3643763538418414
logt0028 log10 -2.0 0.0 -> 0.3010299956639812 1.3643763538418414
logt0029 log10 -2.0 -0.0 -> 0.3010299956639812 -1.3643763538418414
logt0030 log10 -23.0 0.0 -> 1.3617278360175928 1.3643763538418414
logt0031 log10 -23.0 -0.0 -> 1.3617278360175928 -1.3643763538418414
logt0032 log10 -10000000000000000.0 0.0 -> 16.0 1.3643763538418414
logt0033 log10 -10000000000000000.0 -0.0 -> 16.0 -1.3643763538418414
logt0034 log10 -9.9999999999999998e+149 0.0 -> 150.0 1.3643763538418414
logt0035 log10 -9.9999999999999998e+149 -0.0 -> 150.0 -1.3643763538418414
logt0036 log10 -1.0000000000000001e+299 0.0 -> 299.0 1.3643763538418414
logt0037 log10 -1.0000000000000001e+299 -0.0 -> 299.0 -1.3643763538418414
logt0038 log10 9.8813129168249309e-324 0.0 -> -323.0051853474518 0.0
logt0039 log10 9.8813129168249309e-324 -0.0 -> -323.0051853474518 -0.0
logt0040 log10 1e-305 0.0 -> -305.0 0.0
logt0041 log10 1e-305 -0.0 -> -305.0 -0.0
logt0042 log10 1e-150 0.0 -> -150.0 0.0
logt0043 log10 1e-150 -0.0 -> -150.0 -0.0
logt0044 log10 9.9999999999999998e-17 0.0 -> -16.0 0.0
logt0045 log10 9.9999999999999998e-17 -0.0 -> -16.0 -0.0
logt0046 log10 0.001 0.0 -> -3.0 0.0
logt0047 log10 0.001 -0.0 -> -3.0 -0.0
logt0048 log10 0.57899999999999996 0.0 -> -0.23732143627256383 0.0
logt0049 log10 0.57899999999999996 -0.0 -> -0.23732143627256383 -0.0
logt0050 log10 0.99999999999999989 0.0 -> -4.821637332766436e-17 0.0
logt0051 log10 0.99999999999999989 -0.0 -> -4.821637332766436e-17 -0.0
logt0052 log10 1.0000000000000002 0.0 -> 9.6432746655328696e-17 0.0
logt0053 log10 1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -0.0
logt0054 log10 1.0009999999999999 0.0 -> 0.0004340774793185929 0.0
logt0055 log10 1.0009999999999999 -0.0 -> 0.0004340774793185929 -0.0
logt0056 log10 2.0 0.0 -> 0.3010299956639812 0.0
logt0057 log10 2.0 -0.0 -> 0.3010299956639812 -0.0
logt0058 log10 23.0 0.0 -> 1.3617278360175928 0.0
logt0059 log10 23.0 -0.0 -> 1.3617278360175928 -0.0
logt0060 log10 10000000000000000.0 0.0 -> 16.0 0.0
logt0061 log10 10000000000000000.0 -0.0 -> 16.0 -0.0
logt0062 log10 9.9999999999999998e+149 0.0 -> 150.0 0.0
logt0063 log10 9.9999999999999998e+149 -0.0 -> 150.0 -0.0
logt0064 log10 1.0000000000000001e+299 0.0 -> 299.0 0.0
logt0065 log10 1.0000000000000001e+299 -0.0 -> 299.0 -0.0

-- random inputs
logt0066 log10 -1.9830454945186191e-16 -2.0334448025673346 -> 0.30823238806798503 -0.68218817692092071
logt0067 log10 -0.96745853024741857 -0.84995816228299692 -> 0.10984528422284802 -1.051321426174086
logt0068 log10 -0.1603644313948418 -0.2929942111041835 -> -0.47624115633305419 -0.89967884023059597
logt0069 log10 -0.15917913168438699 -0.25238799251132177 -> -0.52521304641665956 -0.92655790645688119
logt0070 log10 -0.68907818535078802 -3.0693105853476346 -> 0.4977187885066448 -0.77809953119328823
logt0071 log10 -17.268133447565589 6.8165120014604756 -> 1.2686912008098534 1.2010954629104202
logt0072 log10 -1.7153894479690328 26.434055372802636 -> 1.423076309032751 0.71033145859005309
logt0073 log10 -8.0456794648936578e-06 0.19722758057570208 -> -0.70503235244987561 0.68220589348055516
logt0074 log10 -2.4306442691323173 0.6846919750700996 -> 0.40230257845332595 1.2451292533748923
logt0075 log10 -3.5488049250888194 0.45324040643185254 -> 0.55359553977141063 1.3092085108866405
logt0076 log10 0.18418516851510189 -0.26062518836212617 -> -0.49602019732913638 -0.41500503556604301
logt0077 log10 2.7124837795638399 -13.148769067133387 -> 1.1279348613317008 -0.59383616643803216
logt0078 log10 3.6521275476169149e-13 -3.7820543023170673e-05 -> -4.4222722398941112 -0.68218817272717114
logt0079 log10 5.0877545813862239 -1.2834978326786852 -> 0.71992371806426847 -0.10732104352159283
logt0080 log10 0.26477986808461512 -0.67659001194187429 -> -0.13873139935281681 -0.52018649631300229
logt0081 log10 0.0014754261398071962 5.3514691608205442 -> 0.72847304354528819 0.6820684398178033
logt0082 log10 0.29667334462157885 0.00020056045042584795 -> -0.52772137299296806 0.00029359659442937261
logt0083 log10 0.82104233671099425 3.9005387130133102 -> 0.60053889028349361 0.59208690021184018
logt0084 log10 0.27268135358180667 124.42088110945804 -> 2.094894315538069 0.68123637673656989
logt0085 log10 0.0026286959168267485 0.47795808180573013 -> -0.32060362226100814 0.67979964816877081

-- values near infinity
logt0100 log10 1.0512025744003172e+308 7.2621669750664611e+307 -> 308.10641562682065 0.26255461408256975
logt0101 log10 5.5344249034372126e+307 -1.2155859158431275e+308 -> 308.12569106009209 -0.496638782296212
logt0102 log10 -1.3155575403469408e+308 1.1610793541663864e+308 -> 308.24419052091019 1.0503359777705266
logt0103 log10 -1.632366720973235e+308 -1.54299446211448e+308 -> 308.3514500834093 -1.0355024924378222
logt0104 log10 0.0 5.9449276692327712e+307 -> 307.77414657501117 0.68218817692092071
logt0105 log10 -0.0 1.1201850459025692e+308 -> 308.04928977068465 0.68218817692092071
logt0106 log10 0.0 -1.6214225933466528e+308 -> 308.20989622030174 -0.68218817692092071
logt0107 log10 -0.0 -1.7453269791591058e+308 -> 308.24187680203539 -0.68218817692092071
logt0108 log10 1.440860577601428e+308 0.0 -> 308.15862195908755 0.0
logt0109 log10 1.391515176148282e+308 -0.0 -> 308.14348794720007 -0.0
logt0110 log10 -1.201354401295296e+308 0.0 -> 308.07967114380773 1.3643763538418414
logt0111 log10 -1.6704337825976804e+308 -0.0 -> 308.22282926451624 -1.3643763538418414
logt0112 log10 7.2276974655190223e+307 7.94879711369164 -> 307.85899996571993 4.7762357800858463e-308
logt0113 log10 1.1207859593716076e+308 -6.1956200868221147 -> 308.04952268169455 -2.4007470767963597e-308
logt0114 log10 -4.6678933874471045e+307 9.947107893220382 -> 307.66912092839902 1.3643763538418414
logt0115 log10 -1.5108012453950142e+308 -5.3117197179375619 -> 308.1792073341565 -1.3643763538418414
logt0116 log10 7.4903750871504435 1.5320703776626352e+308 -> 308.18527871564157 0.68218817692092071
logt0117 log10 5.9760325525654778 -8.0149473997349123e+307 -> 307.90390067652424 -0.68218817692092071
logt0118 log10 -7.880194206386629 1.7861845814767441e+308 -> 308.25192633617331 0.68218817692092071
logt0119 log10 -9.886438993852865 -6.19235781080747e+307 -> 307.79185604308338 -0.68218817692092071

-- values near 0
logt0120 log10 2.2996867579227779e-308 6.7861840770939125e-312 -> -307.63833129662572 0.00012815668056362305
logt0121 log10 6.9169190417774516e-323 -9.0414013188948118e-322 -> -321.04249706727148 -0.64902805353306059
logt0122 log10 -1.5378064962914011e-316 1.8243628389354635e-310 -> -309.73888878263222 0.68218854299989429
logt0123 log10 -2.3319898483706837e-321 -2.2358763941866371e-313 -> -312.65055220919641 -0.68218818145055538
logt0124 log10 0.0 3.872770101081121e-315 -> -314.41197828323476 0.68218817692092071
logt0125 log10 -0.0 9.6342800939043076e-322 -> -321.01618073175331 0.68218817692092071
logt0126 log10 0.0 -2.266099393427834e-308 -> -307.64472104545649 -0.68218817692092071
logt0127 log10 -0.0 -2.1184695673766626e-315 -> -314.67397777042407 -0.68218817692092071
logt0128 log10 1.1363509854348671e-322 0.0 -> -321.94448750709819 0.0
logt0129 log10 3.5572726500569751e-322 -0.0 -> -321.44888284668451 -0.0
logt0130 log10 -2.3696071074040593e-310 0.0 -> -309.62532365619722 1.3643763538418414
logt0131 log10 -2.813283897266934e-317 -0.0 -> -316.55078643961042 -1.3643763538418414

-- values near the unit circle
logt0200 log10 -0.59999999999999998 0.80000000000000004 -> 9.6432746655328709e-18 0.96165715756846815
logt0201 log10 0.79999999999999993 0.60000000000000009 -> 2.6765463916147622e-33 0.2794689806475476

-- special values
logt1000 log10 -0.0 0.0 -> -inf 1.3643763538418414         divide-by-zero
logt1001 log10 0.0 0.0 -> -inf 0.0                         divide-by-zero
logt1002 log10 0.0 inf -> inf 0.68218817692092071
logt1003 log10 2.3 inf -> inf 0.68218817692092071
logt1004 log10 -0.0 inf -> inf 0.68218817692092071
logt1005 log10 -2.3 inf -> inf 0.68218817692092071
logt1006 log10 0.0 nan -> nan nan
logt1007 log10 2.3 nan -> nan nan
logt1008 log10 -0.0 nan -> nan nan
logt1009 log10 -2.3 nan -> nan nan
logt1010 log10 -inf 0.0 -> inf 1.3643763538418414
logt1011 log10 -inf 2.3 -> inf 1.3643763538418414
logt1012 log10 inf 0.0 -> inf 0.0
logt1013 log10 inf 2.3 -> inf 0.0
logt1014 log10 -inf inf -> inf 1.0232822653813811
logt1015 log10 inf inf -> inf 0.34109408846046035
logt1016 log10 inf nan -> inf nan
logt1017 log10 -inf nan -> inf nan
logt1018 log10 nan 0.0 -> nan nan
logt1019 log10 nan 2.3 -> nan nan
logt1020 log10 nan inf -> inf nan
logt1021 log10 nan nan -> nan nan
logt1022 log10 -0.0 -0.0 -> -inf -1.3643763538418414       divide-by-zero
logt1023 log10 0.0 -0.0 -> -inf -0.0                       divide-by-zero
logt1024 log10 0.0 -inf -> inf -0.68218817692092071
logt1025 log10 2.3 -inf -> inf -0.68218817692092071
logt1026 log10 -0.0 -inf -> inf -0.68218817692092071
logt1027 log10 -2.3 -inf -> inf -0.68218817692092071
logt1028 log10 -inf -0.0 -> inf -1.3643763538418414
logt1029 log10 -inf -2.3 -> inf -1.3643763538418414
logt1030 log10 inf -0.0 -> inf -0.0
logt1031 log10 inf -2.3 -> inf -0.0
logt1032 log10 -inf -inf -> inf -1.0232822653813811
logt1033 log10 inf -inf -> inf -0.34109408846046035
logt1034 log10 nan -0.0 -> nan nan
logt1035 log10 nan -2.3 -> nan nan
logt1036 log10 nan -inf -> inf nan


-----------------------
-- sqrt: Square root --
-----------------------

-- zeros
sqrt0000 sqrt 0.0 0.0 -> 0.0 0.0
sqrt0001 sqrt 0.0 -0.0 -> 0.0 -0.0
sqrt0002 sqrt -0.0 0.0 -> 0.0 0.0
sqrt0003 sqrt -0.0 -0.0 -> 0.0 -0.0

-- values along both sides of real axis
sqrt0010 sqrt -9.8813129168249309e-324 0.0 -> 0.0 3.1434555694052576e-162
sqrt0011 sqrt -9.8813129168249309e-324 -0.0 -> 0.0 -3.1434555694052576e-162
sqrt0012 sqrt -1e-305 0.0 -> 0.0 3.1622776601683791e-153
sqrt0013 sqrt -1e-305 -0.0 -> 0.0 -3.1622776601683791e-153
sqrt0014 sqrt -1e-150 0.0 -> 0.0 9.9999999999999996e-76
sqrt0015 sqrt -1e-150 -0.0 -> 0.0 -9.9999999999999996e-76
sqrt0016 sqrt -9.9999999999999998e-17 0.0 -> 0.0 1e-08
sqrt0017 sqrt -9.9999999999999998e-17 -0.0 -> 0.0 -1e-08
sqrt0018 sqrt -0.001 0.0 -> 0.0 0.031622776601683791
sqrt0019 sqrt -0.001 -0.0 -> 0.0 -0.031622776601683791
sqrt0020 sqrt -0.57899999999999996 0.0 -> 0.0 0.76092049518987193
sqrt0021 sqrt -0.57899999999999996 -0.0 -> 0.0 -0.76092049518987193
sqrt0022 sqrt -0.99999999999999989 0.0 -> 0.0 0.99999999999999989
sqrt0023 sqrt -0.99999999999999989 -0.0 -> 0.0 -0.99999999999999989
sqrt0024 sqrt -1.0000000000000002 0.0 -> 0.0 1.0
sqrt0025 sqrt -1.0000000000000002 -0.0 -> 0.0 -1.0
sqrt0026 sqrt -1.0009999999999999 0.0 -> 0.0 1.000499875062461
sqrt0027 sqrt -1.0009999999999999 -0.0 -> 0.0 -1.000499875062461
sqrt0028 sqrt -2.0 0.0 -> 0.0 1.4142135623730951
sqrt0029 sqrt -2.0 -0.0 -> 0.0 -1.4142135623730951
sqrt0030 sqrt -23.0 0.0 -> 0.0 4.7958315233127191
sqrt0031 sqrt -23.0 -0.0 -> 0.0 -4.7958315233127191
sqrt0032 sqrt -10000000000000000.0 0.0 -> 0.0 100000000.0
sqrt0033 sqrt -10000000000000000.0 -0.0 -> 0.0 -100000000.0
sqrt0034 sqrt -9.9999999999999998e+149 0.0 -> 0.0 9.9999999999999993e+74
sqrt0035 sqrt -9.9999999999999998e+149 -0.0 -> 0.0 -9.9999999999999993e+74
sqrt0036 sqrt -1.0000000000000001e+299 0.0 -> 0.0 3.1622776601683796e+149
sqrt0037 sqrt -1.0000000000000001e+299 -0.0 -> 0.0 -3.1622776601683796e+149
sqrt0038 sqrt 9.8813129168249309e-324 0.0 -> 3.1434555694052576e-162 0.0
sqrt0039 sqrt 9.8813129168249309e-324 -0.0 -> 3.1434555694052576e-162 -0.0
sqrt0040 sqrt 1e-305 0.0 -> 3.1622776601683791e-153 0.0
sqrt0041 sqrt 1e-305 -0.0 -> 3.1622776601683791e-153 -0.0
sqrt0042 sqrt 1e-150 0.0 -> 9.9999999999999996e-76 0.0
sqrt0043 sqrt 1e-150 -0.0 -> 9.9999999999999996e-76 -0.0
sqrt0044 sqrt 9.9999999999999998e-17 0.0 -> 1e-08 0.0
sqrt0045 sqrt 9.9999999999999998e-17 -0.0 -> 1e-08 -0.0
sqrt0046 sqrt 0.001 0.0 -> 0.031622776601683791 0.0
sqrt0047 sqrt 0.001 -0.0 -> 0.031622776601683791 -0.0
sqrt0048 sqrt 0.57899999999999996 0.0 -> 0.76092049518987193 0.0
sqrt0049 sqrt 0.57899999999999996 -0.0 -> 0.76092049518987193 -0.0
sqrt0050 sqrt 0.99999999999999989 0.0 -> 0.99999999999999989 0.0
sqrt0051 sqrt 0.99999999999999989 -0.0 -> 0.99999999999999989 -0.0
sqrt0052 sqrt 1.0000000000000002 0.0 -> 1.0 0.0
sqrt0053 sqrt 1.0000000000000002 -0.0 -> 1.0 -0.0
sqrt0054 sqrt 1.0009999999999999 0.0 -> 1.000499875062461 0.0
sqrt0055 sqrt 1.0009999999999999 -0.0 -> 1.000499875062461 -0.0
sqrt0056 sqrt 2.0 0.0 -> 1.4142135623730951 0.0
sqrt0057 sqrt 2.0 -0.0 -> 1.4142135623730951 -0.0
sqrt0058 sqrt 23.0 0.0 -> 4.7958315233127191 0.0
sqrt0059 sqrt 23.0 -0.0 -> 4.7958315233127191 -0.0
sqrt0060 sqrt 10000000000000000.0 0.0 -> 100000000.0 0.0
sqrt0061 sqrt 10000000000000000.0 -0.0 -> 100000000.0 -0.0
sqrt0062 sqrt 9.9999999999999998e+149 0.0 -> 9.9999999999999993e+74 0.0
sqrt0063 sqrt 9.9999999999999998e+149 -0.0 -> 9.9999999999999993e+74 -0.0
sqrt0064 sqrt 1.0000000000000001e+299 0.0 -> 3.1622776601683796e+149 0.0
sqrt0065 sqrt 1.0000000000000001e+299 -0.0 -> 3.1622776601683796e+149 -0.0

-- random inputs
sqrt0100 sqrt -0.34252542541549913 -223039880.15076211 -> 10560.300180587592 -10560.300196805192
sqrt0101 sqrt -0.88790791393018909 -5.3307751730827402 -> 1.5027154613689004 -1.7737140896343291
sqrt0102 sqrt -113916.89291310767 -0.018143374626153858 -> 2.6877817875351178e-05 -337.51576691038952
sqrt0103 sqrt -0.63187172386197121 -0.26293913366617694 -> 0.16205707495266153 -0.81125471918761971
sqrt0104 sqrt -0.058185169308906215 -2.3548312990430991 -> 1.0717660342420072 -1.0985752598086966
sqrt0105 sqrt -1.0580584765935896 0.14400319259151736 -> 0.069837489270111242 1.030987755262468
sqrt0106 sqrt -1.1667595947504932 0.11159711473953678 -> 0.051598531319315251 1.0813981705111229
sqrt0107 sqrt -0.5123728411449906 0.026175433648339085 -> 0.018278026262418718 0.71603556293597614
sqrt0108 sqrt -3.7453400060067228 1.0946500314809635 -> 0.27990088541692498 1.9554243814742367
sqrt0109 sqrt -0.0027736121575097673 1.0367943000839817 -> 0.71903560338719175 0.72096172651250545
sqrt0110 sqrt 1501.2559699453188 -1.1997325207283589 -> 38.746047664730959 -0.015481998720355024
sqrt0111 sqrt 1.4830075326850578 -0.64100878436755349 -> 1.244712815741096 -0.25749264258434584
sqrt0112 sqrt 0.095395618499734602 -0.48226565701639595 -> 0.54175904053472879 -0.44509239434231551
sqrt0113 sqrt 0.50109185681863277 -0.54054037379892561 -> 0.7868179858332387 -0.34349772344520979
sqrt0114 sqrt 0.98779807595367897 -0.00019848758437225191 -> 0.99388031770665153 -9.9854872279921968e-05
sqrt0115 sqrt 11.845472380792259 0.0010051104581506761 -> 3.4417252072345397 0.00014601840612346451
sqrt0116 sqrt 2.3558249686735975 0.25605157371744403 -> 1.5371278477386647 0.083288964575761404
sqrt0117 sqrt 0.77584894123159098 1.0496420627016076 -> 1.0200744386390885 0.51449287568756552
sqrt0118 sqrt 1.8961715669604893 0.34940793467158854 -> 1.3827991781411615 0.12634080935066902
sqrt0119 sqrt 0.96025378316565801 0.69573224860140515 -> 1.0358710342209998 0.33581991658093457

-- values near 0
sqrt0120 sqrt 7.3577938365086866e-313 8.1181408465112743e-319 -> 8.5777583531543516e-157 4.732087634251168e-163
sqrt0121 sqrt 1.2406883874892108e-310 -5.1210133324269776e-312 -> 1.1140990057468052e-155 -2.2982756945349973e-157
sqrt0122 sqrt -7.1145453001139502e-322 2.9561379244703735e-314 -> 1.2157585807480286e-157 1.2157586100077242e-157
sqrt0123 sqrt -4.9963244206801218e-314 -8.4718424423690227e-319 -> 1.8950582312540437e-162 -2.2352459419578971e-157
sqrt0124 sqrt 0.0 7.699553609385195e-318 -> 1.9620848107797476e-159 1.9620848107797476e-159
sqrt0125 sqrt -0.0 3.3900826606499415e-309 -> 4.1170879639922327e-155 4.1170879639922327e-155
sqrt0126 sqrt 0.0 -9.8907989772250828e-319 -> 7.032353438652342e-160 -7.032353438652342e-160
sqrt0127 sqrt -0.0 -1.3722939367590908e-315 -> 2.6194407196566702e-158 -2.6194407196566702e-158
sqrt0128 sqrt 7.9050503334599447e-323 0.0 -> 8.8910349979403099e-162 0.0
sqrt0129 sqrt 1.8623241768349486e-309 -0.0 -> 4.3154654173506579e-155 -0.0
sqrt0130 sqrt -2.665971134499887e-308 0.0 -> 0.0 1.6327801856036491e-154
sqrt0131 sqrt -1.5477066694467245e-310 -0.0 -> 0.0 -1.2440685951533077e-155

-- inputs whose absolute value overflows
sqrt0140 sqrt 1.6999999999999999e+308 -1.6999999999999999e+308 -> 1.4325088230154573e+154 -5.9336458271212207e+153
sqrt0141 sqrt -1.797e+308 -9.9999999999999999e+306 -> 3.7284476432057307e+152 -1.3410406899802901e+154

-- Additional real values (mpmath)
sqrt0150 sqrt 1.7976931348623157e+308 0.0 -> 1.3407807929942596355e+154 0.0
sqrt0151 sqrt 2.2250738585072014e-308 0.0 -> 1.4916681462400413487e-154 0.0
sqrt0152 sqrt 5e-324 0.0 -> 2.2227587494850774834e-162 0.0

-- special values
sqrt1000 sqrt 0.0 0.0 -> 0.0 0.0
sqrt1001 sqrt -0.0 0.0 -> 0.0 0.0
sqrt1002 sqrt 0.0 inf -> inf inf
sqrt1003 sqrt 2.3 inf -> inf inf
sqrt1004 sqrt inf inf -> inf inf
sqrt1005 sqrt -0.0 inf -> inf inf
sqrt1006 sqrt -2.3 inf -> inf inf
sqrt1007 sqrt -inf inf -> inf inf
sqrt1008 sqrt nan inf -> inf inf
sqrt1009 sqrt 0.0 nan -> nan nan
sqrt1010 sqrt 2.3 nan -> nan nan
sqrt1011 sqrt -0.0 nan -> nan nan
sqrt1012 sqrt -2.3 nan -> nan nan
sqrt1013 sqrt -inf 0.0 -> 0.0 inf
sqrt1014 sqrt -inf 2.3 -> 0.0 inf
sqrt1015 sqrt inf 0.0 -> inf 0.0
sqrt1016 sqrt inf 2.3 -> inf 0.0
sqrt1017 sqrt -inf nan -> nan inf       ignore-imag-sign
sqrt1018 sqrt inf nan -> inf nan
sqrt1019 sqrt nan 0.0 -> nan nan
sqrt1020 sqrt nan 2.3 -> nan nan
sqrt1021 sqrt nan nan -> nan nan
sqrt1022 sqrt 0.0 -0.0 -> 0.0 -0.0
sqrt1023 sqrt -0.0 -0.0 -> 0.0 -0.0
sqrt1024 sqrt 0.0 -inf -> inf -inf
sqrt1025 sqrt 2.3 -inf -> inf -inf
sqrt1026 sqrt inf -inf -> inf -inf
sqrt1027 sqrt -0.0 -inf -> inf -inf
sqrt1028 sqrt -2.3 -inf -> inf -inf
sqrt1029 sqrt -inf -inf -> inf -inf
sqrt1030 sqrt nan -inf -> inf -inf
sqrt1031 sqrt -inf -0.0 -> 0.0 -inf
sqrt1032 sqrt -inf -2.3 -> 0.0 -inf
sqrt1033 sqrt inf -0.0 -> inf -0.0
sqrt1034 sqrt inf -2.3 -> inf -0.0
sqrt1035 sqrt nan -0.0 -> nan nan
sqrt1036 sqrt nan -2.3 -> nan nan


-- For exp, cosh, sinh, tanh we limit tests to arguments whose
-- imaginary part is less than 10 in absolute value:  most math
-- libraries have poor accuracy for (real) sine and cosine for
-- large arguments, and the accuracy of these complex functions
-- suffer correspondingly.
--
-- Similarly, for cos, sin and tan we limit tests to arguments
-- with relatively small real part.


-------------------------------
-- exp: Exponential function --
-------------------------------

-- zeros
exp0000 exp 0.0 0.0 -> 1.0 0.0
exp0001 exp 0.0 -0.0 -> 1.0 -0.0
exp0002 exp -0.0 0.0 -> 1.0 0.0
exp0003 exp -0.0 -0.0 -> 1.0 -0.0

-- random inputs
exp0004 exp -17.957359009564684 -1.108613895795274 -> 7.0869292576226611e-09 -1.4225929202377833e-08
exp0005 exp -1.4456149663368642e-15 -0.75359817331772239 -> 0.72923148323917997 -0.68426708517419033
exp0006 exp -0.76008654883512661 -0.46657235480105019 -> 0.41764393109928666 -0.21035108396792854
exp0007 exp -5.7071614697735731 -2.3744161818115816e-11 -> 0.0033220890242068356 -7.8880219364953578e-14
exp0008 exp -0.4653981327927097 -5.2236706667445587e-21 -> 0.62788507378216663 -3.2798648420026468e-21
exp0009 exp -3.2444565242295518 1.1535625304243959 -> 0.015799936931457641 0.035644950380024749
exp0010 exp -3.0651456337977727 0.87765086532391878 -> 0.029805595629855953 0.035882775180855669
exp0011 exp -0.11080823753233926 0.96486386300873106 -> 0.50979112534376314 0.73575512419561562
exp0012 exp -2.5629722598928648 0.019636235754708079 -> 0.077060452853917397 0.0015133717341137684
exp0013 exp -3.3201709957983357e-10 1.2684017344487268 -> 0.29780699855434889 0.95462610007689186
exp0014 exp 0.88767276057993272 -0.18953422986895557 -> 2.3859624049858095 -0.45771559132044426
exp0015 exp 1.5738333486794742 -2.2576803075544328e-11 -> 4.8251091132458654 -1.0893553826776623e-10
exp0016 exp 1.6408702341813795 -1.438879484380837 -> 0.6786733590689048 -5.1148284173168825
exp0017 exp 1.820279424202033 -0.020812040370785722 -> 6.1722462896420902 -0.1284755888435051
exp0018 exp 1.7273965735945873 -0.61140621328954947 -> 4.6067931898799976 -3.2294267694441308
exp0019 exp 2.5606034306862995 0.098153136008435504 -> 12.881325889966629 1.2684184812864494
exp0020 exp 10.280368619483029 3.4564622559748535 -> -27721.283321551502 -9028.9663215568835
exp0021 exp 1.104007405129741e-155 0.21258803067317278 -> 0.97748813933531764 0.21099037290544478
exp0022 exp 0.027364777809295172 0.00059226603500623363 -> 1.0277424518451876 0.0006086970181346579
exp0023 exp 0.94356313429255245 3.418530463518592 -> -2.4712285695346194 -0.70242654900218349

-- cases where exp(z) representable, exp(z.real) not
exp0030 exp 710.0 0.78500000000000003 -> 1.5803016909637158e+308 1.5790437551806911e+308
exp0031 exp 710.0 -0.78500000000000003 -> 1.5803016909637158e+308 -1.5790437551806911e+308

-- values for which exp(x) is subnormal, or underflows to 0
exp0040 exp -735.0 0.78500000000000003 -> 4.3976783136329355e-320 4.3942198541120468e-320
exp0041 exp -735.0 -2.3559999999999999 -> -4.3952079854037293e-320 -4.396690182341253e-320
exp0042 exp -745.0 0.0 -> 4.9406564584124654e-324 0.0
exp0043 exp -745.0 0.7 -> 0.0 0.0
exp0044 exp -745.0 2.1 -> -0.0 0.0
exp0045 exp -745.0 3.7 -> -0.0 -0.0
exp0046 exp -745.0 5.3 -> 0.0 -0.0

-- values for which exp(z) overflows
exp0050 exp 710.0 0.0 -> inf 0.0                        overflow
exp0051 exp 711.0 0.7 -> inf inf                        overflow
exp0052 exp 710.0 1.5 -> 1.5802653829857376e+307 inf    overflow
exp0053 exp 710.0 1.6 -> -6.5231579995501372e+306 inf   overflow
exp0054 exp 710.0 2.8 -> -inf 7.4836177417448528e+307   overflow

-- Additional real values (mpmath)
exp0070 exp 1e-08 0.0 -> 1.00000001000000005 0.0
exp0071 exp 0.0003 0.0 -> 1.0003000450045003375 0.0
exp0072 exp 0.2 0.0 -> 1.2214027581601698475 0.0
exp0073 exp 1.0 0.0 -> 2.7182818284590452354 0.0
exp0074 exp -1e-08 0.0 -> 0.99999999000000005 0.0
exp0075 exp -0.0003 0.0 -> 0.99970004499550033751 0.0
exp0076 exp -1.0 0.0 -> 0.3678794411714423216 0.0
exp0077 exp 2.220446049250313e-16 0.0 -> 1.000000000000000222 0.0
exp0078 exp -1.1102230246251565e-16 0.0 -> 0.99999999999999988898 0.0
exp0079 exp 2.302585092994046 0.0 -> 10.000000000000002171 0.0
exp0080 exp -2.302585092994046 0.0 -> 0.099999999999999978292 0.0
exp0081 exp 709.7827 0.0 -> 1.7976699566638014654e+308 0.0

-- special values
exp1000 exp 0.0 0.0 -> 1.0 0.0
exp1001 exp -0.0 0.0 -> 1.0 0.0
exp1002 exp 0.0 inf -> nan nan          invalid
exp1003 exp 2.3 inf -> nan nan          invalid
exp1004 exp -0.0 inf -> nan nan         invalid
exp1005 exp -2.3 inf -> nan nan         invalid
exp1006 exp 0.0 nan -> nan nan
exp1007 exp 2.3 nan -> nan nan
exp1008 exp -0.0 nan -> nan nan
exp1009 exp -2.3 nan -> nan nan
exp1010 exp -inf 0.0 -> 0.0 0.0
exp1011 exp -inf 1.4 -> 0.0 0.0
exp1012 exp -inf 2.8 -> -0.0 0.0
exp1013 exp -inf 4.2 -> -0.0 -0.0
exp1014 exp -inf 5.6 -> 0.0 -0.0
exp1015 exp -inf 7.0 -> 0.0 0.0
exp1016 exp inf 0.0 -> inf 0.0
exp1017 exp inf 1.4 -> inf inf
exp1018 exp inf 2.8 -> -inf inf
exp1019 exp inf 4.2 -> -inf -inf
exp1020 exp inf 5.6 -> inf -inf
exp1021 exp inf 7.0 -> inf inf
exp1022 exp -inf inf -> 0.0 0.0         ignore-real-sign ignore-imag-sign
exp1023 exp inf inf -> inf nan          invalid ignore-real-sign
exp1024 exp -inf nan -> 0.0 0.0         ignore-real-sign ignore-imag-sign
exp1025 exp inf nan -> inf nan          ignore-real-sign
exp1026 exp nan 0.0 -> nan 0.0
exp1027 exp nan 2.3 -> nan nan
exp1028 exp nan inf -> nan nan
exp1029 exp nan nan -> nan nan
exp1030 exp 0.0 -0.0 -> 1.0 -0.0
exp1031 exp -0.0 -0.0 -> 1.0 -0.0
exp1032 exp 0.0 -inf -> nan nan         invalid
exp1033 exp 2.3 -inf -> nan nan         invalid
exp1034 exp -0.0 -inf -> nan nan        invalid
exp1035 exp -2.3 -inf -> nan nan        invalid
exp1036 exp -inf -0.0 -> 0.0 -0.0
exp1037 exp -inf -1.4 -> 0.0 -0.0
exp1038 exp -inf -2.8 -> -0.0 -0.0
exp1039 exp -inf -4.2 -> -0.0 0.0
exp1040 exp -inf -5.6 -> 0.0 0.0
exp1041 exp -inf -7.0 -> 0.0 -0.0
exp1042 exp inf -0.0 -> inf -0.0
exp1043 exp inf -1.4 -> inf -inf
exp1044 exp inf -2.8 -> -inf -inf
exp1045 exp inf -4.2 -> -inf inf
exp1046 exp inf -5.6 -> inf inf
exp1047 exp inf -7.0 -> inf -inf
exp1048 exp -inf -inf -> 0.0 0.0        ignore-real-sign ignore-imag-sign
exp1049 exp inf -inf -> inf nan         invalid ignore-real-sign
exp1050 exp nan -0.0 -> nan -0.0
exp1051 exp nan -2.3 -> nan nan
exp1052 exp nan -inf -> nan nan


-----------------------------
-- cosh: Hyperbolic Cosine --
-----------------------------

-- zeros
cosh0000 cosh 0.0 0.0 -> 1.0 0.0
cosh0001 cosh 0.0 -0.0 -> 1.0 -0.0
cosh0002 cosh -0.0 0.0 -> 1.0 -0.0
cosh0003 cosh -0.0 -0.0 -> 1.0 0.0

-- random inputs
cosh0004 cosh -0.85395264297414253 -8.8553756148671958 -> -1.1684340348021185 0.51842195359787435
cosh0005 cosh -19.584904237211223 -0.066582627994906177 -> 159816812.23336992 10656776.050406246
cosh0006 cosh -0.11072618401130772 -1.484820215073247 -> 0.086397164744949503 0.11054275637717284
cosh0007 cosh -3.4764840250681752 -0.48440348288275276 -> 14.325931955190844 7.5242053548737955
cosh0008 cosh -0.52047063604524602 -0.3603805382775585 -> 1.0653940354683802 0.19193293606252473
cosh0009 cosh -1.39518962975995 0.0074738604700702906 -> 2.1417031027235969 -0.01415518712296308
cosh0010 cosh -0.37107064757653541 0.14728085307856609 -> 1.0580601496776991 -0.055712531964568587
cosh0011 cosh -5.8470200958739653 4.0021722388336292 -> -112.86220667618285 131.24734033545013
cosh0012 cosh -0.1700261444851883 0.97167540135354513 -> 0.57208748253577946 -0.1410904820240203
cosh0013 cosh -0.44042397902648783 1.0904791964139742 -> 0.50760322393058133 -0.40333966652010816
cosh0014 cosh 0.052267552491867299 -3.8889011430644174 -> -0.73452303414639297 0.035540704833537134
cosh0015 cosh 0.98000764177127453 -1.2548829247784097 -> 0.47220747341416142 -1.0879421432180316
cosh0016 cosh 0.083594701222644008 -0.88847899930181284 -> 0.63279782419312613 -0.064954566816002285
cosh0017 cosh 1.38173531783776 -0.43185040816732229 -> 1.9221663374671647 -0.78073830858849347
cosh0018 cosh 0.57315681120148465 -0.22255760951027942 -> 1.1399733125173004 -0.1335512343605956
cosh0019 cosh 1.8882512333062347 4.5024932182383797 -> -0.7041602065362691 -3.1573822131964615
cosh0020 cosh 0.5618219206858317 0.92620452129575348 -> 0.69822380405378381 0.47309067471054522
cosh0021 cosh 0.54361442847062591 0.64176483583018462 -> 0.92234462074193491 0.34167906495845501
cosh0022 cosh 0.0014777403107920331 1.3682028122677661 -> 0.2012106963899549 0.001447518137863219
cosh0023 cosh 2.218885944363501 2.0015727395883687 -> -1.94294321081968 4.1290269176083196

-- large real part
cosh0030 cosh 710.5 2.3519999999999999 -> -1.2967465239355998e+308 1.3076707908857333e+308
cosh0031 cosh -710.5 0.69999999999999996 -> 1.4085466381392499e+308 -1.1864024666450239e+308

-- Additional real values (mpmath)
cosh0050 cosh 1e-150 0.0 -> 1.0 0.0
cosh0051 cosh 1e-18 0.0 -> 1.0 0.0
cosh0052 cosh 1e-09 0.0 -> 1.0000000000000000005 0.0
cosh0053 cosh 0.0003 0.0 -> 1.0000000450000003375 0.0
cosh0054 cosh 0.2 0.0 -> 1.0200667556190758485 0.0
cosh0055 cosh 1.0 0.0 -> 1.5430806348152437785 0.0
cosh0056 cosh -1e-18 0.0 -> 1.0 -0.0
cosh0057 cosh -0.0003 0.0 -> 1.0000000450000003375 -0.0
cosh0058 cosh -1.0 0.0 -> 1.5430806348152437785 -0.0
cosh0059 cosh 1.3169578969248168 0.0 -> 2.0000000000000001504 0.0
cosh0060 cosh -1.3169578969248168 0.0 -> 2.0000000000000001504 -0.0
cosh0061 cosh 17.328679513998633 0.0 -> 16777216.000000021938 0.0
cosh0062 cosh 18.714973875118524 0.0 -> 67108864.000000043662 0.0
cosh0063 cosh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0
cosh0064 cosh -709.7827 0.0 -> 8.9883497833190073272e+307 -0.0

-- special values
cosh1000 cosh 0.0 0.0 -> 1.0 0.0
cosh1001 cosh 0.0 inf -> nan 0.0        invalid ignore-imag-sign
cosh1002 cosh 0.0 nan -> nan 0.0        ignore-imag-sign
cosh1003 cosh 2.3 inf -> nan nan        invalid
cosh1004 cosh 2.3 nan -> nan nan
cosh1005 cosh inf 0.0 -> inf 0.0
cosh1006 cosh inf 1.4 -> inf inf
cosh1007 cosh inf 2.8 -> -inf inf
cosh1008 cosh inf 4.2 -> -inf -inf
cosh1009 cosh inf 5.6 -> inf -inf
cosh1010 cosh inf 7.0 -> inf inf
cosh1011 cosh inf inf -> inf nan        invalid ignore-real-sign
cosh1012 cosh inf nan -> inf nan
cosh1013 cosh nan 0.0 -> nan 0.0        ignore-imag-sign
cosh1014 cosh nan 2.3 -> nan nan
cosh1015 cosh nan inf -> nan nan
cosh1016 cosh nan nan -> nan nan
cosh1017 cosh 0.0 -0.0 -> 1.0 -0.0
cosh1018 cosh 0.0 -inf -> nan 0.0       invalid ignore-imag-sign
cosh1019 cosh 2.3 -inf -> nan nan       invalid
cosh1020 cosh inf -0.0 -> inf -0.0
cosh1021 cosh inf -1.4 -> inf -inf
cosh1022 cosh inf -2.8 -> -inf -inf
cosh1023 cosh inf -4.2 -> -inf inf
cosh1024 cosh inf -5.6 -> inf inf
cosh1025 cosh inf -7.0 -> inf -inf
cosh1026 cosh inf -inf -> inf nan       invalid ignore-real-sign
cosh1027 cosh nan -0.0 -> nan 0.0       ignore-imag-sign
cosh1028 cosh nan -2.3 -> nan nan
cosh1029 cosh nan -inf -> nan nan
cosh1030 cosh -0.0 -0.0 -> 1.0 0.0
cosh1031 cosh -0.0 -inf -> nan 0.0      invalid ignore-imag-sign
cosh1032 cosh -0.0 nan -> nan 0.0       ignore-imag-sign
cosh1033 cosh -2.3 -inf -> nan nan      invalid
cosh1034 cosh -2.3 nan -> nan nan
cosh1035 cosh -inf -0.0 -> inf 0.0
cosh1036 cosh -inf -1.4 -> inf inf
cosh1037 cosh -inf -2.8 -> -inf inf
cosh1038 cosh -inf -4.2 -> -inf -inf
cosh1039 cosh -inf -5.6 -> inf -inf
cosh1040 cosh -inf -7.0 -> inf inf
cosh1041 cosh -inf -inf -> inf nan      invalid ignore-real-sign
cosh1042 cosh -inf nan -> inf nan
cosh1043 cosh -0.0 0.0 -> 1.0 -0.0
cosh1044 cosh -0.0 inf -> nan 0.0       invalid ignore-imag-sign
cosh1045 cosh -2.3 inf -> nan nan       invalid
cosh1046 cosh -inf 0.0 -> inf -0.0
cosh1047 cosh -inf 1.4 -> inf -inf
cosh1048 cosh -inf 2.8 -> -inf -inf
cosh1049 cosh -inf 4.2 -> -inf inf
cosh1050 cosh -inf 5.6 -> inf inf
cosh1051 cosh -inf 7.0 -> inf -inf
cosh1052 cosh -inf inf -> inf nan       invalid ignore-real-sign


---------------------------
-- sinh: Hyperbolic Sine --
---------------------------

-- zeros
sinh0000 sinh 0.0 0.0 -> 0.0 0.0
sinh0001 sinh 0.0 -0.0 -> 0.0 -0.0
sinh0002 sinh -0.0 0.0 -> -0.0 0.0
sinh0003 sinh -0.0 -0.0 -> -0.0 -0.0

-- random inputs
sinh0004 sinh -17.282588091462742 -0.38187948694103546 -> -14867386.857248396 -5970648.6553516639
sinh0005 sinh -343.91971203143208 -5.0172868877771525e-22 -> -1.1518691776521735e+149 -5.7792581214689021e+127
sinh0006 sinh -14.178122253300922 -1.9387157579351293 -> 258440.37909034826 -670452.58500946441
sinh0007 sinh -1.0343810581686239 -1.0970235266369905 -> -0.56070858278092739 -1.4098883258046697
sinh0008 sinh -0.066126561416368204 -0.070461584169961872 -> -0.066010558700938124 -0.070557276738637542
sinh0009 sinh -0.37630149150308484 3.3621734692162173 -> 0.37591118119332617 -0.23447115926369383
sinh0010 sinh -0.049941960978670055 0.40323767020414625 -> -0.045955482136329009 0.3928878494430646
sinh0011 sinh -16.647852603903715 0.0026852219129082098 -> -8492566.5739382561 22804.480671133562
sinh0012 sinh -1.476625314303694 0.89473773116683386 -> -1.2982943334382224 1.7966593367791204
sinh0013 sinh -422.36429577556913 0.10366634502307912 -> -1.3400321008920044e+183 1.3941600948045599e+182
sinh0014 sinh 0.09108340745641981 -0.40408227416070353 -> 0.083863724802237902 -0.39480716553935602
sinh0015 sinh 2.036064132067386 -2.6831729961386239 -> -3.37621124363175 -1.723868330002817
sinh0016 sinh 2.5616717223063317 -0.0078978498622717767 -> 6.4399415853815869 -0.051472264400722133
sinh0017 sinh 0.336804011985188 -6.5654622971649337 -> 0.32962499307574578 -0.29449170159995197
sinh0018 sinh 0.23774603755649693 -0.92467195799232049 -> 0.14449839490603389 -0.82109449053556793
sinh0019 sinh 0.0011388273541465494 1.9676196882949855 -> -0.00044014605389634999 0.92229398407098806
sinh0020 sinh 3.2443870105663759 0.8054287559616895 -> 8.8702890778527426 9.2610748597042196
sinh0021 sinh 0.040628908857054738 0.098206391190944958 -> 0.04044426841671233 0.098129544739707392
sinh0022 sinh 4.7252283918217696e-30 9.1198155642656697 -> -4.5071980561644404e-30 0.30025730701661713
sinh0023 sinh 0.043713693678420068 0.22512549887532657 -> 0.042624198673416713 0.22344201231217961

-- large real part
sinh0030 sinh 710.5 -2.3999999999999999 -> -1.3579970564885919e+308 -1.24394470907798e+308
sinh0031 sinh -710.5 0.80000000000000004 -> -1.2830671601735164e+308 1.3210954193997678e+308

-- Additional real values (mpmath)
sinh0050 sinh 1e-100 0.0 -> 1.00000000000000002e-100 0.0
sinh0051 sinh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0
sinh0052 sinh 1e-16 0.0 -> 9.999999999999999791e-17 0.0
sinh0053 sinh 3.7e-08 0.0 -> 3.7000000000000008885e-8 0.0
sinh0054 sinh 0.001 0.0 -> 0.0010000001666666750208 0.0
sinh0055 sinh 0.2 0.0 -> 0.20133600254109399895 0.0
sinh0056 sinh 1.0 0.0 -> 1.1752011936438014569 0.0
sinh0057 sinh -3.7e-08 0.0 -> -3.7000000000000008885e-8 0.0
sinh0058 sinh -0.001 0.0 -> -0.0010000001666666750208 0.0
sinh0059 sinh -1.0 0.0 -> -1.1752011936438014569 0.0
sinh0060 sinh 1.4436354751788103 0.0 -> 1.9999999999999999078 0.0
sinh0061 sinh -1.4436354751788103 0.0 -> -1.9999999999999999078 0.0
sinh0062 sinh 17.328679513998633 0.0 -> 16777215.999999992136 0.0
sinh0063 sinh 18.714973875118524 0.0 -> 67108864.000000036211 0.0
sinh0064 sinh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0
sinh0065 sinh -709.7827 0.0 -> -8.9883497833190073272e+307 0.0

-- special values
sinh1000 sinh 0.0 0.0 -> 0.0 0.0
sinh1001 sinh 0.0 inf -> 0.0 nan        invalid ignore-real-sign
sinh1002 sinh 0.0 nan -> 0.0 nan        ignore-real-sign
sinh1003 sinh 2.3 inf -> nan nan        invalid
sinh1004 sinh 2.3 nan -> nan nan
sinh1005 sinh inf 0.0 -> inf 0.0
sinh1006 sinh inf 1.4 -> inf inf
sinh1007 sinh inf 2.8 -> -inf inf
sinh1008 sinh inf 4.2 -> -inf -inf
sinh1009 sinh inf 5.6 -> inf -inf
sinh1010 sinh inf 7.0 -> inf inf
sinh1011 sinh inf inf -> inf nan        invalid ignore-real-sign
sinh1012 sinh inf nan -> inf nan        ignore-real-sign
sinh1013 sinh nan 0.0 -> nan 0.0
sinh1014 sinh nan 2.3 -> nan nan
sinh1015 sinh nan inf -> nan nan
sinh1016 sinh nan nan -> nan nan
sinh1017 sinh 0.0 -0.0 -> 0.0 -0.0
sinh1018 sinh 0.0 -inf -> 0.0 nan       invalid ignore-real-sign
sinh1019 sinh 2.3 -inf -> nan nan       invalid
sinh1020 sinh inf -0.0 -> inf -0.0
sinh1021 sinh inf -1.4 -> inf -inf
sinh1022 sinh inf -2.8 -> -inf -inf
sinh1023 sinh inf -4.2 -> -inf inf
sinh1024 sinh inf -5.6 -> inf inf
sinh1025 sinh inf -7.0 -> inf -inf
sinh1026 sinh inf -inf -> inf nan       invalid ignore-real-sign
sinh1027 sinh nan -0.0 -> nan -0.0
sinh1028 sinh nan -2.3 -> nan nan
sinh1029 sinh nan -inf -> nan nan
sinh1030 sinh -0.0 -0.0 -> -0.0 -0.0
sinh1031 sinh -0.0 -inf -> 0.0 nan      invalid ignore-real-sign
sinh1032 sinh -0.0 nan -> 0.0 nan       ignore-real-sign
sinh1033 sinh -2.3 -inf -> nan nan      invalid
sinh1034 sinh -2.3 nan -> nan nan
sinh1035 sinh -inf -0.0 -> -inf -0.0
sinh1036 sinh -inf -1.4 -> -inf -inf
sinh1037 sinh -inf -2.8 -> inf -inf
sinh1038 sinh -inf -4.2 -> inf inf
sinh1039 sinh -inf -5.6 -> -inf inf
sinh1040 sinh -inf -7.0 -> -inf -inf
sinh1041 sinh -inf -inf -> inf nan      invalid ignore-real-sign
sinh1042 sinh -inf nan -> inf nan       ignore-real-sign
sinh1043 sinh -0.0 0.0 -> -0.0 0.0
sinh1044 sinh -0.0 inf -> 0.0 nan       invalid ignore-real-sign
sinh1045 sinh -2.3 inf -> nan nan       invalid
sinh1046 sinh -inf 0.0 -> -inf 0.0
sinh1047 sinh -inf 1.4 -> -inf inf
sinh1048 sinh -inf 2.8 -> inf inf
sinh1049 sinh -inf 4.2 -> inf -inf
sinh1050 sinh -inf 5.6 -> -inf -inf
sinh1051 sinh -inf 7.0 -> -inf inf
sinh1052 sinh -inf inf -> inf nan       invalid ignore-real-sign


------------------------------
-- tanh: Hyperbolic Tangent --
------------------------------

-- Disabled test: replaced by test_math.testTanhSign()
-- and test_cmath.testTanhSign()

-- -- zeros
-- tanh0000 tanh 0.0 0.0 -> 0.0 0.0
-- tanh0001 tanh 0.0 -0.0 -> 0.0 -0.0
-- tanh0002 tanh -0.0 0.0 -> -0.0 0.0
-- tanh0003 tanh -0.0 -0.0 -> -0.0 -0.0

-- random inputs
tanh0004 tanh -21.200500450664993 -1.6970729480342996 -> -1.0 1.9241352344849399e-19
tanh0005 tanh -0.34158771504251928 -8.0848504951747131 -> -2.123711225855613 1.2827526782026006
tanh0006 tanh -15.454144725193689 -0.23619582288265617 -> -0.99999999999993283 -3.4336684248260036e-14
tanh0007 tanh -7.6103163119661952 -0.7802748320307008 -> -0.99999999497219438 -4.9064845343755437e-07
tanh0008 tanh -0.15374717235792129 -0.6351086327306138 -> -0.23246081703561869 -0.71083467433910219
tanh0009 tanh -0.49101115474392465 0.09723001264886301 -> -0.45844445715492133 0.077191158541805888
tanh0010 tanh -0.10690612157664491 2.861612800856395 -> -0.11519761626257358 -0.28400488355647507
tanh0011 tanh -0.91505774192066702 1.5431174597727007 -> -1.381109893068114 0.025160819663709356
tanh0012 tanh -0.057433367093792223 0.35491159541246459 -> -0.065220499046696953 0.36921788332369498
tanh0013 tanh -1.3540418621233514 0.18969415642242535 -> -0.88235642861151387 0.043764069984411721
tanh0014 tanh 0.94864783961003529 -0.11333689578867717 -> 0.74348401861861368 -0.051271042543855221
tanh0015 tanh 1.9591698133845488 -0.0029654444904578339 -> 0.9610270776968135 -0.00022664240049212933
tanh0016 tanh 1.0949715796669197 -0.24706642853984456 -> 0.81636574501369386 -0.087767436914149954
tanh0017 tanh 5770428.2113731047 -3.7160580339833165 -> 1.0 -0.0
tanh0018 tanh 1.5576782321399629 -1.0357943787966468 -> 1.0403002384895388 -0.081126347894671463
tanh0019 tanh 0.62378536230552961 2.3471393579560216 -> 0.85582499238960363 -0.53569473646842869
tanh0020 tanh 17.400628602508025 9.3987059533841979 -> 0.99999999999999845 -8.0175867720530832e-17
tanh0021 tanh 0.15026177509871896 0.50630349159505472 -> 0.19367536571827768 0.53849847858853661
tanh0022 tanh 0.57433977530711167 1.0071604546265627 -> 1.0857848159262844 0.69139213955872214
tanh0023 tanh 0.16291181500449456 0.006972810241567544 -> 0.16149335907551157 0.0067910772903467817

-- large real part
tanh0030 tanh 710 0.13 -> 1.0 0.0
tanh0031 tanh -711 7.4000000000000004 -> -1.0 0.0
tanh0032 tanh 1000 -2.3199999999999998 -> 1.0 0.0
tanh0033 tanh -1.0000000000000001e+300 -9.6699999999999999 -> -1.0 -0.0

-- Additional real values (mpmath)
tanh0050 tanh 1e-100 0.0 -> 1.00000000000000002e-100 0.0
tanh0051 tanh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0
tanh0052 tanh 1e-16 0.0 -> 9.999999999999999791e-17 0.0
tanh0053 tanh 3.7e-08 0.0 -> 3.6999999999999983559e-8 0.0
tanh0054 tanh 0.001 0.0 -> 0.00099999966666680002076 0.0
tanh0055 tanh 0.2 0.0 -> 0.19737532022490401141 0.0
tanh0056 tanh 1.0 0.0 -> 0.76159415595576488812 0.0
tanh0057 tanh -3.7e-08 0.0 -> -3.6999999999999983559e-8 0.0
tanh0058 tanh -0.001 0.0 -> -0.00099999966666680002076 0.0
tanh0059 tanh -1.0 0.0 -> -0.76159415595576488812 0.0
tanh0060 tanh 0.5493061443340549 0.0 -> 0.50000000000000003402 0.0
tanh0061 tanh -0.5493061443340549 0.0 -> -0.50000000000000003402 0.0
tanh0062 tanh 17.328679513998633 0.0 -> 0.99999999999999822364 0.0
tanh0063 tanh 18.714973875118524 0.0 -> 0.99999999999999988898 0.0
tanh0064 tanh 711 0.0 -> 1.0 0.0
tanh0065 tanh 1.797e+308 0.0 -> 1.0 0.0

--special values
tanh1000 tanh 0.0 0.0 -> 0.0 0.0
tanh1001 tanh 0.0 inf -> nan nan        invalid
tanh1002 tanh 2.3 inf -> nan nan        invalid
tanh1003 tanh 0.0 nan -> nan nan
tanh1004 tanh 2.3 nan -> nan nan
tanh1005 tanh inf 0.0 -> 1.0 0.0
tanh1006 tanh inf 0.7 -> 1.0 0.0
tanh1007 tanh inf 1.4 -> 1.0 0.0
tanh1008 tanh inf 2.1 -> 1.0 -0.0
tanh1009 tanh inf 2.8 -> 1.0 -0.0
tanh1010 tanh inf 3.5 -> 1.0 0.0
tanh1011 tanh inf inf -> 1.0 0.0        ignore-imag-sign
tanh1012 tanh inf nan -> 1.0 0.0        ignore-imag-sign
tanh1013 tanh nan 0.0 -> nan 0.0
tanh1014 tanh nan 2.3 -> nan nan
tanh1015 tanh nan inf -> nan nan
tanh1016 tanh nan nan -> nan nan
tanh1017 tanh 0.0 -0.0 -> 0.0 -0.0
tanh1018 tanh 0.0 -inf -> nan nan       invalid
tanh1019 tanh 2.3 -inf -> nan nan       invalid
tanh1020 tanh inf -0.0 -> 1.0 -0.0
tanh1021 tanh inf -0.7 -> 1.0 -0.0
tanh1022 tanh inf -1.4 -> 1.0 -0.0
tanh1023 tanh inf -2.1 -> 1.0 0.0
tanh1024 tanh inf -2.8 -> 1.0 0.0
tanh1025 tanh inf -3.5 -> 1.0 -0.0
tanh1026 tanh inf -inf -> 1.0 0.0       ignore-imag-sign
tanh1027 tanh nan -0.0 -> nan -0.0
tanh1028 tanh nan -2.3 -> nan nan
tanh1029 tanh nan -inf -> nan nan
tanh1030 tanh -0.0 -0.0 -> -0.0 -0.0
tanh1031 tanh -0.0 -inf -> nan nan      invalid
tanh1032 tanh -2.3 -inf -> nan nan      invalid
tanh1033 tanh -0.0 nan -> nan nan
tanh1034 tanh -2.3 nan -> nan nan
tanh1035 tanh -inf -0.0 -> -1.0 -0.0
tanh1036 tanh -inf -0.7 -> -1.0 -0.0
tanh1037 tanh -inf -1.4 -> -1.0 -0.0
tanh1038 tanh -inf -2.1 -> -1.0 0.0
tanh1039 tanh -inf -2.8 -> -1.0 0.0
tanh1040 tanh -inf -3.5 -> -1.0 -0.0
tanh1041 tanh -inf -inf -> -1.0 0.0     ignore-imag-sign
tanh1042 tanh -inf nan -> -1.0 0.0      ignore-imag-sign
tanh1043 tanh -0.0 0.0 -> -0.0 0.0
tanh1044 tanh -0.0 inf -> nan nan       invalid
tanh1045 tanh -2.3 inf -> nan nan       invalid
tanh1046 tanh -inf 0.0 -> -1.0 0.0
tanh1047 tanh -inf 0.7 -> -1.0 0.0
tanh1048 tanh -inf 1.4 -> -1.0 0.0
tanh1049 tanh -inf 2.1 -> -1.0 -0.0
tanh1050 tanh -inf 2.8 -> -1.0 -0.0
tanh1051 tanh -inf 3.5 -> -1.0 0.0
tanh1052 tanh -inf inf -> -1.0 0.0      ignore-imag-sign


-----------------
-- cos: Cosine --
-----------------

-- zeros
cos0000 cos 0.0 0.0 -> 1.0 -0.0
cos0001 cos 0.0 -0.0 -> 1.0 0.0
cos0002 cos -0.0 0.0 -> 1.0 0.0
cos0003 cos -0.0 -0.0 -> 1.0 -0.0

-- random inputs
cos0004 cos -2.0689194692073034 -0.0016802181751734313 -> -0.47777827208561469 -0.0014760401501695971
cos0005 cos -0.4209627318177977 -1.8238516774258027 -> 2.9010402201444108 -1.2329207042329617
cos0006 cos -1.9402181630694557 -2.9751857392891217 -> -3.5465459297970985 -9.1119163586282248
cos0007 cos -3.3118320290191616 -0.87871302909286142 -> -1.3911528636565498 0.16878141517391701
cos0008 cos -4.9540404623376872 -0.57949232239026827 -> 0.28062445586552065 0.59467861308508008
cos0009 cos -0.45374584316245026 1.3950283448373935 -> 1.9247665574290578 0.83004572204761107
cos0010 cos -0.42578172040176843 1.2715881615413049 -> 1.7517161459489148 0.67863902697363332
cos0011 cos -0.13862985354300136 0.43587635877670328 -> 1.0859880290361912 0.062157548146672272
cos0012 cos -0.11073221308966584 9.9384082307326475e-15 -> 0.99387545040722947 1.0982543264065479e-15
cos0013 cos -1.5027633662054623e-07 0.0069668060249955498 -> 1.0000242682912412 1.0469545565660995e-09
cos0014 cos 4.9728645490503052 -0.00027479808860952822 -> 0.25754011731975501 -0.00026552849549083186
cos0015 cos 7.81969303486719 -0.79621523445878783 -> 0.045734882501585063 0.88253139933082991
cos0016 cos 0.13272421880766716 -0.74668445308718201 -> 1.2806012244432847 0.10825373267437005
cos0017 cos 4.2396521985973274 -2.2178848380884881 -> -2.1165117057056855 -4.0416492444641401
cos0018 cos 1.1622206624927296 -0.50400115461197081 -> 0.44884072613370379 0.4823469915034318
cos0019 cos 1.628772864620884e-08 0.58205705428979282 -> 1.1742319995791435 -1.0024839481956604e-08
cos0020 cos 2.6385212606111241 2.9886107100937296 -> -8.7209475927161417 -4.7748352107199796
cos0021 cos 4.8048375263775256 0.0062248852898515658 -> 0.092318702015846243 0.0061983430422306142
cos0022 cos 7.9914515433858515 0.71659966615501436 -> -0.17375439906936566 -0.77217043527294582
cos0023 cos 0.45124351152540226 1.6992693993812158 -> 2.543477948972237 -1.1528193694875477

-- Additional real values (mpmath)
cos0050 cos 1e-150 0.0 -> 1.0 -0.0
cos0051 cos 1e-18 0.0 -> 1.0 -0.0
cos0052 cos 1e-09 0.0 -> 0.9999999999999999995 -0.0
cos0053 cos 0.0003 0.0 -> 0.9999999550000003375 -0.0
cos0054 cos 0.2 0.0 -> 0.98006657784124162892 -0.0
cos0055 cos 1.0 0.0 -> 0.5403023058681397174 -0.0
cos0056 cos -1e-18 0.0 -> 1.0 0.0
cos0057 cos -0.0003 0.0 -> 0.9999999550000003375 0.0
cos0058 cos -1.0 0.0 -> 0.5403023058681397174 0.0
cos0059 cos 1.0471975511965976 0.0 -> 0.50000000000000009945 -0.0
cos0060 cos 2.5707963267948966 0.0 -> -0.84147098480789647357 -0.0
cos0061 cos -2.5707963267948966 0.0 -> -0.84147098480789647357 0.0
cos0062 cos 7.225663103256523 0.0 -> 0.58778525229247407559 -0.0
cos0063 cos -8.79645943005142 0.0 -> -0.80901699437494722255 0.0

-- special values
cos1000 cos -0.0 0.0 -> 1.0 0.0
cos1001 cos -inf 0.0 -> nan 0.0 invalid ignore-imag-sign
cos1002 cos nan 0.0 -> nan 0.0 ignore-imag-sign
cos1003 cos -inf 2.2999999999999998 -> nan nan invalid
cos1004 cos nan 2.2999999999999998 -> nan nan
cos1005 cos -0.0 inf -> inf 0.0
cos1006 cos -1.3999999999999999 inf -> inf inf
cos1007 cos -2.7999999999999998 inf -> -inf inf
cos1008 cos -4.2000000000000002 inf -> -inf -inf
cos1009 cos -5.5999999999999996 inf -> inf -inf
cos1010 cos -7.0 inf -> inf inf
cos1011 cos -inf inf -> inf nan invalid ignore-real-sign
cos1012 cos nan inf -> inf nan
cos1013 cos -0.0 nan -> nan 0.0 ignore-imag-sign
cos1014 cos -2.2999999999999998 nan -> nan nan
cos1015 cos -inf nan -> nan nan
cos1016 cos nan nan -> nan nan
cos1017 cos 0.0 0.0 -> 1.0 -0.0
cos1018 cos inf 0.0 -> nan 0.0 invalid ignore-imag-sign
cos1019 cos inf 2.2999999999999998 -> nan nan invalid
cos1020 cos 0.0 inf -> inf -0.0
cos1021 cos 1.3999999999999999 inf -> inf -inf
cos1022 cos 2.7999999999999998 inf -> -inf -inf
cos1023 cos 4.2000000000000002 inf -> -inf inf
cos1024 cos 5.5999999999999996 inf -> inf inf
cos1025 cos 7.0 inf -> inf -inf
cos1026 cos inf inf -> inf nan invalid ignore-real-sign
cos1027 cos 0.0 nan -> nan 0.0 ignore-imag-sign
cos1028 cos 2.2999999999999998 nan -> nan nan
cos1029 cos inf nan -> nan nan
cos1030 cos 0.0 -0.0 -> 1.0 0.0
cos1031 cos inf -0.0 -> nan 0.0 invalid ignore-imag-sign
cos1032 cos nan -0.0 -> nan 0.0 ignore-imag-sign
cos1033 cos inf -2.2999999999999998 -> nan nan invalid
cos1034 cos nan -2.2999999999999998 -> nan nan
cos1035 cos 0.0 -inf -> inf 0.0
cos1036 cos 1.3999999999999999 -inf -> inf inf
cos1037 cos 2.7999999999999998 -inf -> -inf inf
cos1038 cos 4.2000000000000002 -inf -> -inf -inf
cos1039 cos 5.5999999999999996 -inf -> inf -inf
cos1040 cos 7.0 -inf -> inf inf
cos1041 cos inf -inf -> inf nan invalid ignore-real-sign
cos1042 cos nan -inf -> inf nan
cos1043 cos -0.0 -0.0 -> 1.0 -0.0
cos1044 cos -inf -0.0 -> nan 0.0 invalid ignore-imag-sign
cos1045 cos -inf -2.2999999999999998 -> nan nan invalid
cos1046 cos -0.0 -inf -> inf -0.0
cos1047 cos -1.3999999999999999 -inf -> inf -inf
cos1048 cos -2.7999999999999998 -inf -> -inf -inf
cos1049 cos -4.2000000000000002 -inf -> -inf inf
cos1050 cos -5.5999999999999996 -inf -> inf inf
cos1051 cos -7.0 -inf -> inf -inf
cos1052 cos -inf -inf -> inf nan invalid ignore-real-sign


---------------
-- sin: Sine --
---------------

-- zeros
sin0000 sin 0.0 0.0 -> 0.0 0.0
sin0001 sin 0.0 -0.0 -> 0.0 -0.0
sin0002 sin -0.0 0.0 -> -0.0 0.0
sin0003 sin -0.0 -0.0 -> -0.0 -0.0

-- random inputs
sin0004 sin -0.18691829163163759 -0.74388741985507034 -> -0.2396636733773444 -0.80023231101856751
sin0005 sin -0.45127453702459158 -461.81339920716164 -> -7.9722299331077877e+199 -1.6450205811004628e+200
sin0006 sin -0.47669228345768921 -2.7369936564987514 -> -3.557238022267124 -6.8308030771226615
sin0007 sin -0.31024285525950857 -1.4869219939188296 -> -0.70972676047175209 -1.9985029635426839
sin0008 sin -4.4194573407025608 -1.405999210989288 -> 2.0702480800802685 0.55362250792180601
sin0009 sin -1.7810832046434898e-05 0.0016439555384379083 -> -1.7810856113185261e-05 0.0016439562786668375
sin0010 sin -0.8200017874897666 0.61724876887771929 -> -0.8749078195948865 0.44835295550987758
sin0011 sin -1.4536502806107114 0.63998575534150415 -> -1.2035709929437679 0.080012187489163708
sin0012 sin -2.2653412155506079 0.13172760685583729 -> -0.77502093809190431 -0.084554426868229532
sin0013 sin -0.02613983069491858 0.18404766597776073 -> -0.026580778863127943 0.18502525396735642
sin0014 sin 1.5743065001054617 -0.53125574272642029 -> 1.1444596332092725 0.0019537598099352077
sin0015 sin 7.3833101791283289e-20 -0.16453221324236217 -> 7.4834720674379429e-20 -0.16527555646466915
sin0016 sin 0.34763834641254038 -2.8377416421089565 -> 2.918883541504663 -8.0002718053250224
sin0017 sin 0.077105785180421563 -0.090056027316200674 -> 0.077341973814471304 -0.089909869380524587
sin0018 sin 3.9063227798142329e-17 -0.05954098654295524 -> 3.9132490348956512e-17 -0.059576172859837351
sin0019 sin 0.57333917932544598 8.7785221430594696e-06 -> 0.54244029338302935 7.3747869125301368e-06
sin0020 sin 0.024861722816513169 0.33044620756118515 -> 0.026228801369651 0.3363889671570689
sin0021 sin 1.4342727387492671 0.81361889790284347 -> 1.3370960060947923 0.12336137961387163
sin0022 sin 1.1518087354403725 4.8597235966150558 -> 58.919141989603041 26.237003403758852
sin0023 sin 0.00087773078406649192 34.792379211312095 -> 565548145569.38245 644329685822700.62

-- Additional real values (mpmath)
sin0050 sin 1e-100 0.0 -> 1.00000000000000002e-100 0.0
sin0051 sin 3.7e-08 0.0 -> 3.6999999999999992001e-8 0.0
sin0052 sin 0.001 0.0 -> 0.00099999983333334168748 0.0
sin0053 sin 0.2 0.0 -> 0.19866933079506122634 0.0
sin0054 sin 1.0 0.0 -> 0.84147098480789650665 0.0
sin0055 sin -3.7e-08 0.0 -> -3.6999999999999992001e-8 0.0
sin0056 sin -0.001 0.0 -> -0.00099999983333334168748 0.0
sin0057 sin -1.0 0.0 -> -0.84147098480789650665 0.0
sin0058 sin 0.5235987755982989 0.0 -> 0.50000000000000004642 0.0
sin0059 sin -0.5235987755982989 0.0 -> -0.50000000000000004642 0.0
sin0060 sin 2.6179938779914944 0.0 -> 0.49999999999999996018 -0.0
sin0061 sin -2.6179938779914944 0.0 -> -0.49999999999999996018 -0.0
sin0062 sin 7.225663103256523 0.0 -> 0.80901699437494673648 0.0
sin0063 sin -8.79645943005142 0.0 -> -0.58778525229247340658 -0.0

-- special values
sin1000 sin -0.0 0.0 -> -0.0 0.0
sin1001 sin -inf 0.0 -> nan 0.0 invalid ignore-imag-sign
sin1002 sin nan 0.0 -> nan 0.0 ignore-imag-sign
sin1003 sin -inf 2.2999999999999998 -> nan nan invalid
sin1004 sin nan 2.2999999999999998 -> nan nan
sin1005 sin -0.0 inf -> -0.0 inf
sin1006 sin -1.3999999999999999 inf -> -inf inf
sin1007 sin -2.7999999999999998 inf -> -inf -inf
sin1008 sin -4.2000000000000002 inf -> inf -inf
sin1009 sin -5.5999999999999996 inf -> inf inf
sin1010 sin -7.0 inf -> -inf inf
sin1011 sin -inf inf -> nan inf invalid ignore-imag-sign
sin1012 sin nan inf -> nan inf ignore-imag-sign
sin1013 sin -0.0 nan -> -0.0 nan
sin1014 sin -2.2999999999999998 nan -> nan nan
sin1015 sin -inf nan -> nan nan
sin1016 sin nan nan -> nan nan
sin1017 sin 0.0 0.0 -> 0.0 0.0
sin1018 sin inf 0.0 -> nan 0.0 invalid ignore-imag-sign
sin1019 sin inf 2.2999999999999998 -> nan nan invalid
sin1020 sin 0.0 inf -> 0.0 inf
sin1021 sin 1.3999999999999999 inf -> inf inf
sin1022 sin 2.7999999999999998 inf -> inf -inf
sin1023 sin 4.2000000000000002 inf -> -inf -inf
sin1024 sin 5.5999999999999996 inf -> -inf inf
sin1025 sin 7.0 inf -> inf inf
sin1026 sin inf inf -> nan inf invalid ignore-imag-sign
sin1027 sin 0.0 nan -> 0.0 nan
sin1028 sin 2.2999999999999998 nan -> nan nan
sin1029 sin inf nan -> nan nan
sin1030 sin 0.0 -0.0 -> 0.0 -0.0
sin1031 sin inf -0.0 -> nan 0.0 invalid ignore-imag-sign
sin1032 sin nan -0.0 -> nan 0.0 ignore-imag-sign
sin1033 sin inf -2.2999999999999998 -> nan nan invalid
sin1034 sin nan -2.2999999999999998 -> nan nan
sin1035 sin 0.0 -inf -> 0.0 -inf
sin1036 sin 1.3999999999999999 -inf -> inf -inf
sin1037 sin 2.7999999999999998 -inf -> inf inf
sin1038 sin 4.2000000000000002 -inf -> -inf inf
sin1039 sin 5.5999999999999996 -inf -> -inf -inf
sin1040 sin 7.0 -inf -> inf -inf
sin1041 sin inf -inf -> nan inf invalid ignore-imag-sign
sin1042 sin nan -inf -> nan inf ignore-imag-sign
sin1043 sin -0.0 -0.0 -> -0.0 -0.0
sin1044 sin -inf -0.0 -> nan 0.0 invalid ignore-imag-sign
sin1045 sin -inf -2.2999999999999998 -> nan nan invalid
sin1046 sin -0.0 -inf -> -0.0 -inf
sin1047 sin -1.3999999999999999 -inf -> -inf -inf
sin1048 sin -2.7999999999999998 -inf -> -inf inf
sin1049 sin -4.2000000000000002 -inf -> inf inf
sin1050 sin -5.5999999999999996 -inf -> inf -inf
sin1051 sin -7.0 -inf -> -inf -inf
sin1052 sin -inf -inf -> nan inf invalid ignore-imag-sign


------------------
-- tan: Tangent --
------------------

-- zeros
tan0000 tan 0.0 0.0 -> 0.0 0.0
tan0001 tan 0.0 -0.0 -> 0.0 -0.0
tan0002 tan -0.0 0.0 -> -0.0 0.0
tan0003 tan -0.0 -0.0 -> -0.0 -0.0

-- random inputs
tan0004 tan -0.56378561833861074 -1.7110276237187664e+73 -> -0.0 -1.0
tan0005 tan -3.5451633993471915e-12 -2.855471863564059 -> -4.6622441304889575e-14 -0.99340273843093951
tan0006 tan -2.502442719638696 -0.26742234390504221 -> 0.66735215252994995 -0.39078997935420956
tan0007 tan -0.87639597720371365 -55.586225523280206 -> -1.0285264565948176e-48 -1.0
tan0008 tan -0.015783869596427243 -520.05944436039272 -> -0.0 -1.0
tan0009 tan -0.84643549990725164 2.0749097935396343 -> -0.031412661676959573 1.0033548479526764
tan0010 tan -0.43613792248559646 8.1082741629458059 -> -1.3879848444644593e-07 0.99999988344224011
tan0011 tan -1.0820906367833114 0.28571868992480248 -> -1.3622485737936536 0.99089269377971245
tan0012 tan -1.1477859580220084 1.9021637002708041 -> -0.034348450042071196 1.0293954097901687
tan0013 tan -0.12465543176953409 3.0606851016344815e-05 -> -0.12530514290387343 3.1087420769945479e-05
tan0014 tan 3.7582848717525343 -692787020.44038939 -> 0.0 -1.0
tan0015 tan 2.2321967655142176e-06 -10.090069423008169 -> 1.5369846120622643e-14 -0.99999999655723759
tan0016 tan 0.88371172390245012 -1.1635053630132823 -> 0.19705017118625889 -1.0196452280843129
tan0017 tan 2.1347414231849267 -1.9311339960416831 -> -0.038663576915982524 -1.0174399993980778
tan0018 tan 5.9027945255899974 -2.1574195684607135e-183 -> -0.39986591539281496 -2.5023753167976915e-183
tan0019 tan 0.44811489490805362 683216075670.07556 -> 0.0 1.0
tan0020 tan 4.1459766396068325 12.523017205605756 -> 2.4022514758988068e-11 1.0000000000112499
tan0021 tan 1.7809617968443272 1.5052381702853379 -> -0.044066222118946903 1.0932684517702778
tan0022 tan 1.1615313900880577 1.7956298728647107 -> 0.041793186826390362 1.0375339546034792
tan0023 tan 0.067014779477908945 5.8517361577457097 -> 2.2088639754800034e-06 0.9999836182420061

-- Additional real values (mpmath)
tan0050 tan 1e-100 0.0 -> 1.00000000000000002e-100 0.0
tan0051 tan 3.7e-08 0.0 -> 3.7000000000000017328e-8 0.0
tan0052 tan 0.001 0.0 -> 0.0010000003333334666875 0.0
tan0053 tan 0.2 0.0 -> 0.20271003550867249488 0.0
tan0054 tan 1.0 0.0 -> 1.5574077246549022305 0.0
tan0055 tan -3.7e-08 0.0 -> -3.7000000000000017328e-8 0.0
tan0056 tan -0.001 0.0 -> -0.0010000003333334666875 0.0
tan0057 tan -1.0 0.0 -> -1.5574077246549022305 0.0
tan0058 tan 0.4636476090008061 0.0 -> 0.49999999999999997163 0.0
tan0059 tan -0.4636476090008061 0.0 -> -0.49999999999999997163 0.0
tan0060 tan 1.1071487177940904 0.0 -> 1.9999999999999995298 0.0
tan0061 tan -1.1071487177940904 0.0 -> -1.9999999999999995298 0.0
tan0062 tan 1.5 0.0 -> 14.101419947171719388 0.0
tan0063 tan 1.57 0.0 -> 1255.7655915007896475 0.0
tan0064 tan 1.5707963267948961 0.0 -> 1978937966095219.0538 0.0
tan0065 tan 7.225663103256523 0.0 -> 1.3763819204711701522 0.0
tan0066 tan -8.79645943005142 0.0 -> 0.7265425280053614098 0.0

-- special values
tan1000 tan -0.0 0.0 -> -0.0 0.0
tan1001 tan -inf 0.0 -> nan nan invalid
tan1002 tan -inf 2.2999999999999998 -> nan nan invalid
tan1003 tan nan 0.0 -> nan nan
tan1004 tan nan 2.2999999999999998 -> nan nan
tan1005 tan -0.0 inf -> -0.0 1.0
tan1006 tan -0.69999999999999996 inf -> -0.0 1.0
tan1007 tan -1.3999999999999999 inf -> -0.0 1.0
tan1008 tan -2.1000000000000001 inf -> 0.0 1.0
tan1009 tan -2.7999999999999998 inf -> 0.0 1.0
tan1010 tan -3.5 inf -> -0.0 1.0
tan1011 tan -inf inf -> -0.0 1.0 ignore-real-sign
tan1012 tan nan inf -> -0.0 1.0 ignore-real-sign
tan1013 tan -0.0 nan -> -0.0 nan
tan1014 tan -2.2999999999999998 nan -> nan nan
tan1015 tan -inf nan -> nan nan
tan1016 tan nan nan -> nan nan
tan1017 tan 0.0 0.0 -> 0.0 0.0
tan1018 tan inf 0.0 -> nan nan invalid
tan1019 tan inf 2.2999999999999998 -> nan nan invalid
tan1020 tan 0.0 inf -> 0.0 1.0
tan1021 tan 0.69999999999999996 inf -> 0.0 1.0
tan1022 tan 1.3999999999999999 inf -> 0.0 1.0
tan1023 tan 2.1000000000000001 inf -> -0.0 1.0
tan1024 tan 2.7999999999999998 inf -> -0.0 1.0
tan1025 tan 3.5 inf -> 0.0 1.0
tan1026 tan inf inf -> -0.0 1.0 ignore-real-sign
tan1027 tan 0.0 nan -> 0.0 nan
tan1028 tan 2.2999999999999998 nan -> nan nan
tan1029 tan inf nan -> nan nan
tan1030 tan 0.0 -0.0 -> 0.0 -0.0
tan1031 tan inf -0.0 -> nan nan invalid
tan1032 tan inf -2.2999999999999998 -> nan nan invalid
tan1033 tan nan -0.0 -> nan nan
tan1034 tan nan -2.2999999999999998 -> nan nan
tan1035 tan 0.0 -inf -> 0.0 -1.0
tan1036 tan 0.69999999999999996 -inf -> 0.0 -1.0
tan1037 tan 1.3999999999999999 -inf -> 0.0 -1.0
tan1038 tan 2.1000000000000001 -inf -> -0.0 -1.0
tan1039 tan 2.7999999999999998 -inf -> -0.0 -1.0
tan1040 tan 3.5 -inf -> 0.0 -1.0
tan1041 tan inf -inf -> -0.0 -1.0 ignore-real-sign
tan1042 tan nan -inf -> -0.0 -1.0 ignore-real-sign
tan1043 tan -0.0 -0.0 -> -0.0 -0.0
tan1044 tan -inf -0.0 -> nan nan invalid
tan1045 tan -inf -2.2999999999999998 -> nan nan invalid
tan1046 tan -0.0 -inf -> -0.0 -1.0
tan1047 tan -0.69999999999999996 -inf -> -0.0 -1.0
tan1048 tan -1.3999999999999999 -inf -> -0.0 -1.0
tan1049 tan -2.1000000000000001 -inf -> 0.0 -1.0
tan1050 tan -2.7999999999999998 -inf -> 0.0 -1.0
tan1051 tan -3.5 -inf -> -0.0 -1.0
tan1052 tan -inf -inf -> -0.0 -1.0 ignore-real-sign


------------------------------------------------------------------------
-- rect: Conversion from polar coordinates to rectangular coordinates --
------------------------------------------------------------------------
--
-- For cmath.rect, we can use the same testcase syntax as for the
-- complex -> complex functions above, but here the input arguments
-- should be interpreted as a pair of floating-point numbers rather
-- than the real and imaginary parts of a complex number.
--
-- Here are the 'spirit of C99' rules for rect.  First, the short
-- version:
--
--    rect(x, t) = exp(log(x)+it) for positive-signed x
--    rect(x, t) = -exp(log(-x)+it) for negative-signed x
--    rect(nan, t) = exp(nan + it), except that in rect(nan, +-0) the
--      sign of the imaginary part is unspecified.
--
-- and now the long version:
--
--   rect(x, -t) = conj(rect(x, t)) for all x and t
--   rect(-x, t) = -rect(x, t) for all x and t
--   rect(+0, +0) returns +0 + i0
--   rect(+0, inf) returns +- 0 +- i0, where the signs of the real and
--     imaginary parts are unspecified.
--   rect(x, inf) returns NaN + i NaN and raises the "invalid"
--     floating-point exception, for finite nonzero x.
--   rect(inf, inf) returns +-inf + i NaN and raises the "invalid"
--     floating-point exception (where the sign of the real part of the
--     result is unspecified).
--   rect(inf, +0) returns inf+i0
--   rect(inf, x) returns inf*cis(x), for finite nonzero x
--   rect(inf, NaN) returns +-inf+i NaN, where the sign of the real part
--     of the result is unspecified.
--   rect(NaN, x) returns NaN + i NaN for all nonzero numbers (including
--     infinities) x
--   rect(NaN, 0) returns NaN +- i0, where the sign of the imaginary
--     part is unspecified
--   rect(NaN, NaN) returns NaN + i NaN
--   rect(x, NaN) returns NaN + i NaN for finite nonzero x
--   rect(+0, NaN) return +-0 +- i0, where the signs of the real and
--     imaginary parts are unspecified.

-- special values
rect1000 rect 0.0 0.0 -> 0.0 0.0
rect1001 rect 0.0 inf -> 0.0 0.0        ignore-real-sign ignore-imag-sign
rect1002 rect 2.3 inf -> nan nan        invalid
rect1003 rect inf inf -> inf nan        invalid ignore-real-sign
rect1004 rect inf 0.0 -> inf 0.0
rect1005 rect inf 1.4 -> inf inf
rect1006 rect inf 2.8 -> -inf inf
rect1007 rect inf 4.2 -> -inf -inf
rect1008 rect inf 5.6 -> inf -inf
rect1009 rect inf 7.0 -> inf inf
rect1010 rect nan 0.0 -> nan 0.0        ignore-imag-sign
rect1011 rect nan 2.3 -> nan nan
rect1012 rect nan inf -> nan nan
rect1013 rect nan nan -> nan nan
rect1014 rect inf nan -> inf nan        ignore-real-sign
rect1015 rect 2.3 nan -> nan nan
rect1016 rect 0.0 nan -> 0.0 0.0        ignore-real-sign ignore-imag-sign
rect1017 rect 0.0 -0.0 -> 0.0 -0.0
rect1018 rect 0.0 -inf -> 0.0 0.0       ignore-real-sign ignore-imag-sign
rect1019 rect 2.3 -inf -> nan nan       invalid
rect1020 rect inf -inf -> inf nan       invalid ignore-real-sign
rect1021 rect inf -0.0 -> inf -0.0
rect1022 rect inf -1.4 -> inf -inf
rect1023 rect inf -2.8 -> -inf -inf
rect1024 rect inf -4.2 -> -inf inf
rect1025 rect inf -5.6 -> inf inf
rect1026 rect inf -7.0 -> inf -inf
rect1027 rect nan -0.0 -> nan 0.0       ignore-imag-sign
rect1028 rect nan -2.3 -> nan nan
rect1029 rect nan -inf -> nan nan
rect1030 rect -0.0 0.0 -> -0.0 -0.0
rect1031 rect -0.0 inf -> 0.0 0.0       ignore-real-sign ignore-imag-sign
rect1032 rect -2.3 inf -> nan nan       invalid
rect1033 rect -inf inf -> -inf nan      invalid ignore-real-sign
rect1034 rect -inf 0.0 -> -inf -0.0
rect1035 rect -inf 1.4 -> -inf -inf
rect1036 rect -inf 2.8 -> inf -inf
rect1037 rect -inf 4.2 -> inf inf
rect1038 rect -inf 5.6 -> -inf inf
rect1039 rect -inf 7.0 -> -inf -inf
rect1040 rect -inf nan -> inf nan       ignore-real-sign
rect1041 rect -2.3 nan -> nan nan
rect1042 rect -0.0 nan -> 0.0 0.0       ignore-real-sign ignore-imag-sign
rect1043 rect -0.0 -0.0 -> -0.0 0.0
rect1044 rect -0.0 -inf -> 0.0 0.0      ignore-real-sign ignore-imag-sign
rect1045 rect -2.3 -inf -> nan nan      invalid
rect1046 rect -inf -inf -> -inf nan     invalid ignore-real-sign
rect1047 rect -inf -0.0 -> -inf 0.0
rect1048 rect -inf -1.4 -> -inf inf
rect1049 rect -inf -2.8 -> inf inf
rect1050 rect -inf -4.2 -> inf -inf
rect1051 rect -inf -5.6 -> -inf -inf
rect1052 rect -inf -7.0 -> -inf inf

-------------------------------------------------------------------------
-- polar: Conversion from rectangular coordinates to polar coordinates --
-------------------------------------------------------------------------
--
-- For cmath.polar, we can use the same testcase syntax as for the
-- complex -> complex functions above, but here the output arguments
-- should be interpreted as a pair of floating-point numbers rather
-- than the real and imaginary parts of a complex number.
--
-- Annex G of the C99 standard describes fully both the real and
-- imaginary parts of polar (as cabs and carg, respectively, which in turn
-- are defined in terms of the functions hypot and atan2).

-- overflow
polar0100 polar 1.4e308 1.4e308 -> inf 0.78539816339744828      overflow

-- special values
polar1000 polar 0.0 0.0 -> 0.0 0.0
polar1001 polar 0.0 -0.0 -> 0.0 -0.0
polar1002 polar -0.0 0.0 -> 0.0 3.1415926535897931
polar1003 polar -0.0 -0.0 -> 0.0 -3.1415926535897931
polar1004 polar inf 0.0 -> inf 0.0
polar1005 polar inf 2.3 -> inf 0.0
polar1006 polar inf inf -> inf 0.78539816339744828
polar1007 polar 2.3 inf -> inf 1.5707963267948966
polar1008 polar 0.0 inf -> inf 1.5707963267948966
polar1009 polar -0.0 inf -> inf 1.5707963267948966
polar1010 polar -2.3 inf -> inf 1.5707963267948966
polar1011 polar -inf inf -> inf 2.3561944901923448
polar1012 polar -inf 2.3 -> inf 3.1415926535897931
polar1013 polar -inf 0.0 -> inf 3.1415926535897931
polar1014 polar -inf -0.0 -> inf -3.1415926535897931
polar1015 polar -inf -2.3 -> inf -3.1415926535897931
polar1016 polar -inf -inf -> inf -2.3561944901923448
polar1017 polar -2.3 -inf -> inf -1.5707963267948966
polar1018 polar -0.0 -inf -> inf -1.5707963267948966
polar1019 polar 0.0 -inf -> inf -1.5707963267948966
polar1020 polar 2.3 -inf -> inf -1.5707963267948966
polar1021 polar inf -inf -> inf -0.78539816339744828
polar1022 polar inf -2.3 -> inf -0.0
polar1023 polar inf -0.0 -> inf -0.0
polar1024 polar nan -inf -> inf nan
polar1025 polar nan -2.3 -> nan nan
polar1026 polar nan -0.0 -> nan nan
polar1027 polar nan 0.0 -> nan nan
polar1028 polar nan 2.3 -> nan nan
polar1029 polar nan inf -> inf nan
polar1030 polar nan nan -> nan nan
polar1031 polar inf nan -> inf nan
polar1032 polar 2.3 nan -> nan nan
polar1033 polar 0.0 nan -> nan nan
polar1034 polar -0.0 nan -> nan nan
polar1035 polar -2.3 nan -> nan nan
polar1036 polar -inf nan -> inf nan