17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- copysign.decTest -- quiet copy with sign from rhs -- 37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- 47db96d56Sopenharmony_ci------------------------------------------------------------------------ 57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases" -- 67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of -- 77db96d56Sopenharmony_ci-- these testcases. -- 87db96d56Sopenharmony_ci-- -- 97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they -- 107db96d56Sopenharmony_ci-- may contain errors. They are offered on an as-is basis. In -- 117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not -- 127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard -- 137db96d56Sopenharmony_ci-- or specification. The tests are not exhaustive. -- 147db96d56Sopenharmony_ci-- -- 157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author: -- 167db96d56Sopenharmony_ci-- Mike Cowlishaw, IBM Fellow -- 177db96d56Sopenharmony_ci-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- 187db96d56Sopenharmony_ci-- mfc@uk.ibm.com -- 197db96d56Sopenharmony_ci------------------------------------------------------------------------ 207db96d56Sopenharmony_civersion: 2.59 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ciextended: 1 237db96d56Sopenharmony_ciprecision: 9 247db96d56Sopenharmony_cirounding: half_up 257db96d56Sopenharmony_cimaxExponent: 999 267db96d56Sopenharmony_ciminExponent: -999 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci-- Sanity check, and examples from decArith 297db96d56Sopenharmony_cicpsx001 copysign +7.50 11 -> 7.50 307db96d56Sopenharmony_cicpsx002 copysign '1.50' '7.33' -> 1.50 317db96d56Sopenharmony_cicpsx003 copysign '-1.50' '7.33' -> 1.50 327db96d56Sopenharmony_cicpsx004 copysign '1.50' '-7.33' -> -1.50 337db96d56Sopenharmony_cicpsx005 copysign '-1.50' '-7.33' -> -1.50 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci-- Infinities 367db96d56Sopenharmony_cicpsx011 copysign Infinity 11 -> Infinity 377db96d56Sopenharmony_cicpsx012 copysign -Infinity 11 -> Infinity 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ci-- NaNs, 0 payload 407db96d56Sopenharmony_cicpsx021 copysign NaN 11 -> NaN 417db96d56Sopenharmony_cicpsx022 copysign -NaN 11 -> NaN 427db96d56Sopenharmony_cicpsx023 copysign sNaN 11 -> sNaN 437db96d56Sopenharmony_cicpsx024 copysign -sNaN 11 -> sNaN 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci-- NaNs, non-0 payload 467db96d56Sopenharmony_cicpsx031 copysign NaN10 11 -> NaN10 477db96d56Sopenharmony_cicpsx032 copysign -NaN10 11 -> NaN10 487db96d56Sopenharmony_cicpsx033 copysign sNaN10 11 -> sNaN10 497db96d56Sopenharmony_cicpsx034 copysign -sNaN10 11 -> sNaN10 507db96d56Sopenharmony_cicpsx035 copysign NaN7 11 -> NaN7 517db96d56Sopenharmony_cicpsx036 copysign -NaN7 11 -> NaN7 527db96d56Sopenharmony_cicpsx037 copysign sNaN101 11 -> sNaN101 537db96d56Sopenharmony_cicpsx038 copysign -sNaN101 11 -> sNaN101 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ci-- finites 567db96d56Sopenharmony_cicpsx101 copysign 7 11 -> 7 577db96d56Sopenharmony_cicpsx102 copysign -7 11 -> 7 587db96d56Sopenharmony_cicpsx103 copysign 75 11 -> 75 597db96d56Sopenharmony_cicpsx104 copysign -75 11 -> 75 607db96d56Sopenharmony_cicpsx105 copysign 7.50 11 -> 7.50 617db96d56Sopenharmony_cicpsx106 copysign -7.50 11 -> 7.50 627db96d56Sopenharmony_cicpsx107 copysign 7.500 11 -> 7.500 637db96d56Sopenharmony_cicpsx108 copysign -7.500 11 -> 7.500 647db96d56Sopenharmony_ci 657db96d56Sopenharmony_ci-- zeros 667db96d56Sopenharmony_cicpsx111 copysign 0 11 -> 0 677db96d56Sopenharmony_cicpsx112 copysign -0 11 -> 0 687db96d56Sopenharmony_cicpsx113 copysign 0E+4 11 -> 0E+4 697db96d56Sopenharmony_cicpsx114 copysign -0E+4 11 -> 0E+4 707db96d56Sopenharmony_cicpsx115 copysign 0.0000 11 -> 0.0000 717db96d56Sopenharmony_cicpsx116 copysign -0.0000 11 -> 0.0000 727db96d56Sopenharmony_cicpsx117 copysign 0E-141 11 -> 0E-141 737db96d56Sopenharmony_cicpsx118 copysign -0E-141 11 -> 0E-141 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ci-- full coefficients, alternating bits 767db96d56Sopenharmony_cicpsx121 copysign 268268268 11 -> 268268268 777db96d56Sopenharmony_cicpsx122 copysign -268268268 11 -> 268268268 787db96d56Sopenharmony_cicpsx123 copysign 134134134 11 -> 134134134 797db96d56Sopenharmony_cicpsx124 copysign -134134134 11 -> 134134134 807db96d56Sopenharmony_ci 817db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny 827db96d56Sopenharmony_cicpsx131 copysign 9.99999999E+999 11 -> 9.99999999E+999 837db96d56Sopenharmony_cicpsx132 copysign 1E-999 11 -> 1E-999 847db96d56Sopenharmony_cicpsx133 copysign 1.00000000E-999 11 -> 1.00000000E-999 857db96d56Sopenharmony_cicpsx134 copysign 1E-1007 11 -> 1E-1007 867db96d56Sopenharmony_ci 877db96d56Sopenharmony_cicpsx135 copysign -1E-1007 11 -> 1E-1007 887db96d56Sopenharmony_cicpsx136 copysign -1.00000000E-999 11 -> 1.00000000E-999 897db96d56Sopenharmony_cicpsx137 copysign -1E-999 11 -> 1E-999 907db96d56Sopenharmony_cicpsx138 copysign -9.99999999E+999 11 -> 9.99999999E+999 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci-- repeat with negative RHS 937db96d56Sopenharmony_ci 947db96d56Sopenharmony_ci-- Infinities 957db96d56Sopenharmony_cicpsx211 copysign Infinity -34 -> -Infinity 967db96d56Sopenharmony_cicpsx212 copysign -Infinity -34 -> -Infinity 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci-- NaNs, 0 payload 997db96d56Sopenharmony_cicpsx221 copysign NaN -34 -> -NaN 1007db96d56Sopenharmony_cicpsx222 copysign -NaN -34 -> -NaN 1017db96d56Sopenharmony_cicpsx223 copysign sNaN -34 -> -sNaN 1027db96d56Sopenharmony_cicpsx224 copysign -sNaN -34 -> -sNaN 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ci-- NaNs, non-0 payload 1057db96d56Sopenharmony_cicpsx231 copysign NaN10 -34 -> -NaN10 1067db96d56Sopenharmony_cicpsx232 copysign -NaN10 -34 -> -NaN10 1077db96d56Sopenharmony_cicpsx233 copysign sNaN10 -34 -> -sNaN10 1087db96d56Sopenharmony_cicpsx234 copysign -sNaN10 -34 -> -sNaN10 1097db96d56Sopenharmony_cicpsx235 copysign NaN7 -34 -> -NaN7 1107db96d56Sopenharmony_cicpsx236 copysign -NaN7 -34 -> -NaN7 1117db96d56Sopenharmony_cicpsx237 copysign sNaN101 -34 -> -sNaN101 1127db96d56Sopenharmony_cicpsx238 copysign -sNaN101 -34 -> -sNaN101 1137db96d56Sopenharmony_ci 1147db96d56Sopenharmony_ci-- finites 1157db96d56Sopenharmony_cicpsx301 copysign 7 -34 -> -7 1167db96d56Sopenharmony_cicpsx302 copysign -7 -34 -> -7 1177db96d56Sopenharmony_cicpsx303 copysign 75 -34 -> -75 1187db96d56Sopenharmony_cicpsx304 copysign -75 -34 -> -75 1197db96d56Sopenharmony_cicpsx305 copysign 7.50 -34 -> -7.50 1207db96d56Sopenharmony_cicpsx306 copysign -7.50 -34 -> -7.50 1217db96d56Sopenharmony_cicpsx307 copysign 7.500 -34 -> -7.500 1227db96d56Sopenharmony_cicpsx308 copysign -7.500 -34 -> -7.500 1237db96d56Sopenharmony_ci 1247db96d56Sopenharmony_ci-- zeros 1257db96d56Sopenharmony_cicpsx311 copysign 0 -34 -> -0 1267db96d56Sopenharmony_cicpsx312 copysign -0 -34 -> -0 1277db96d56Sopenharmony_cicpsx313 copysign 0E+4 -34 -> -0E+4 1287db96d56Sopenharmony_cicpsx314 copysign -0E+4 -34 -> -0E+4 1297db96d56Sopenharmony_cicpsx315 copysign 0.0000 -34 -> -0.0000 1307db96d56Sopenharmony_cicpsx316 copysign -0.0000 -34 -> -0.0000 1317db96d56Sopenharmony_cicpsx317 copysign 0E-141 -34 -> -0E-141 1327db96d56Sopenharmony_cicpsx318 copysign -0E-141 -34 -> -0E-141 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ci-- full coefficients, alternating bits 1357db96d56Sopenharmony_cicpsx321 copysign 268268268 -18 -> -268268268 1367db96d56Sopenharmony_cicpsx322 copysign -268268268 -18 -> -268268268 1377db96d56Sopenharmony_cicpsx323 copysign 134134134 -18 -> -134134134 1387db96d56Sopenharmony_cicpsx324 copysign -134134134 -18 -> -134134134 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny 1417db96d56Sopenharmony_cicpsx331 copysign 9.99999999E+999 -18 -> -9.99999999E+999 1427db96d56Sopenharmony_cicpsx332 copysign 1E-999 -18 -> -1E-999 1437db96d56Sopenharmony_cicpsx333 copysign 1.00000000E-999 -18 -> -1.00000000E-999 1447db96d56Sopenharmony_cicpsx334 copysign 1E-1007 -18 -> -1E-1007 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_cicpsx335 copysign -1E-1007 -18 -> -1E-1007 1477db96d56Sopenharmony_cicpsx336 copysign -1.00000000E-999 -18 -> -1.00000000E-999 1487db96d56Sopenharmony_cicpsx337 copysign -1E-999 -18 -> -1E-999 1497db96d56Sopenharmony_cicpsx338 copysign -9.99999999E+999 -18 -> -9.99999999E+999 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_ci-- Other kinds of RHS 1527db96d56Sopenharmony_cicpsx401 copysign 701 -34 -> -701 1537db96d56Sopenharmony_cicpsx402 copysign -720 -34 -> -720 1547db96d56Sopenharmony_cicpsx403 copysign 701 -0 -> -701 1557db96d56Sopenharmony_cicpsx404 copysign -720 -0 -> -720 1567db96d56Sopenharmony_cicpsx405 copysign 701 +0 -> 701 1577db96d56Sopenharmony_cicpsx406 copysign -720 +0 -> 720 1587db96d56Sopenharmony_cicpsx407 copysign 701 +34 -> 701 1597db96d56Sopenharmony_cicpsx408 copysign -720 +34 -> 720 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_cicpsx413 copysign 701 -Inf -> -701 1627db96d56Sopenharmony_cicpsx414 copysign -720 -Inf -> -720 1637db96d56Sopenharmony_cicpsx415 copysign 701 +Inf -> 701 1647db96d56Sopenharmony_cicpsx416 copysign -720 +Inf -> 720 1657db96d56Sopenharmony_ci 1667db96d56Sopenharmony_cicpsx420 copysign 701 -NaN -> -701 1677db96d56Sopenharmony_cicpsx421 copysign -720 -NaN -> -720 1687db96d56Sopenharmony_cicpsx422 copysign 701 +NaN -> 701 1697db96d56Sopenharmony_cicpsx423 copysign -720 +NaN -> 720 1707db96d56Sopenharmony_cicpsx425 copysign -720 +NaN8 -> 720 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_cicpsx426 copysign 701 -sNaN -> -701 1737db96d56Sopenharmony_cicpsx427 copysign -720 -sNaN -> -720 1747db96d56Sopenharmony_cicpsx428 copysign 701 +sNaN -> 701 1757db96d56Sopenharmony_cicpsx429 copysign -720 +sNaN -> 720 1767db96d56Sopenharmony_cicpsx430 copysign -720 +sNaN3 -> 720 1777db96d56Sopenharmony_ci 178