------------------------------------------------------------------------

-- ddCopySign.decTest -- quiet decDouble copy with sign from rhs      --

-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --

------------------------------------------------------------------------

-- Please see the document "General Decimal Arithmetic Testcases"     --

-- at http://www2.hursley.ibm.com/decimal for the description of      --

-- these testcases.                                                   --

--                                                                    --

-- These testcases are experimental ('beta' versions), and they       --

-- may contain errors.  They are offered on an as-is basis.  In       --

-- particular, achieving the same results as the tests here is not    --

-- a guarantee that an implementation complies with any Standard      --

-- or specification.  The tests are not exhaustive.                   --

--                                                                    --

-- Please send comments, suggestions, and corrections to the author:  --

--   Mike Cowlishaw, IBM Fellow                                       --

--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

--   mfc@uk.ibm.com                                                   --

------------------------------------------------------------------------

version: 2.58



-- All operands and results are decDoubles.

precision:   16

maxExponent: 384

minExponent: -383

extended:    1

clamp:       1

rounding:    half_even



-- Sanity check

ddcps001 copysign       +7.50     11 -> 7.50



-- Infinities

ddcps011 copysign  Infinity       11 -> Infinity

ddcps012 copysign  -Infinity      11 -> Infinity



-- NaNs, 0 payload

ddcps021 copysign         NaN     11 -> NaN

ddcps022 copysign        -NaN     11 -> NaN

ddcps023 copysign        sNaN     11 -> sNaN

ddcps024 copysign       -sNaN     11 -> sNaN



-- NaNs, non-0 payload

ddcps031 copysign       NaN10     11 -> NaN10

ddcps032 copysign      -NaN10     11 -> NaN10

ddcps033 copysign      sNaN10     11 -> sNaN10

ddcps034 copysign     -sNaN10     11 -> sNaN10

ddcps035 copysign       NaN7      11 -> NaN7

ddcps036 copysign      -NaN7      11 -> NaN7

ddcps037 copysign      sNaN101    11 -> sNaN101

ddcps038 copysign     -sNaN101    11 -> sNaN101



-- finites

ddcps101 copysign          7      11 -> 7

ddcps102 copysign         -7      11 -> 7

ddcps103 copysign         75      11 -> 75

ddcps104 copysign        -75      11 -> 75

ddcps105 copysign       7.50      11 -> 7.50

ddcps106 copysign      -7.50      11 -> 7.50

ddcps107 copysign       7.500     11 -> 7.500

ddcps108 copysign      -7.500     11 -> 7.500



-- zeros

ddcps111 copysign          0      11 -> 0

ddcps112 copysign         -0      11 -> 0

ddcps113 copysign       0E+4      11 -> 0E+4

ddcps114 copysign      -0E+4      11 -> 0E+4

ddcps115 copysign     0.0000      11 -> 0.0000

ddcps116 copysign    -0.0000      11 -> 0.0000

ddcps117 copysign      0E-141     11 -> 0E-141

ddcps118 copysign     -0E-141     11 -> 0E-141



-- full coefficients, alternating bits

ddcps121 copysign  2682682682682682            11 -> 2682682682682682

ddcps122 copysign  -2682682682682682           11 -> 2682682682682682

ddcps123 copysign  1341341341341341            11 -> 1341341341341341

ddcps124 copysign  -1341341341341341           11 -> 1341341341341341



-- Nmax, Nmin, Ntiny

ddcps131 copysign  9.999999999999999E+384      11 -> 9.999999999999999E+384

ddcps132 copysign  1E-383                      11 -> 1E-383

ddcps133 copysign  1.000000000000000E-383      11 -> 1.000000000000000E-383

ddcps134 copysign  1E-398                      11 -> 1E-398



ddcps135 copysign  -1E-398                     11 -> 1E-398

ddcps136 copysign  -1.000000000000000E-383     11 -> 1.000000000000000E-383

ddcps137 copysign  -1E-383                     11 -> 1E-383

ddcps138 copysign  -9.999999999999999E+384     11 -> 9.999999999999999E+384



-- repeat with negative RHS



-- Infinities

ddcps211 copysign  Infinity       -34 -> -Infinity

ddcps212 copysign  -Infinity      -34 -> -Infinity



-- NaNs, 0 payload

ddcps221 copysign         NaN     -34 -> -NaN

ddcps222 copysign        -NaN     -34 -> -NaN

ddcps223 copysign        sNaN     -34 -> -sNaN

ddcps224 copysign       -sNaN     -34 -> -sNaN



-- NaNs, non-0 payload

ddcps231 copysign       NaN10     -34 -> -NaN10

ddcps232 copysign      -NaN10     -34 -> -NaN10

ddcps233 copysign      sNaN10     -34 -> -sNaN10

ddcps234 copysign     -sNaN10     -34 -> -sNaN10

ddcps235 copysign       NaN7      -34 -> -NaN7

ddcps236 copysign      -NaN7      -34 -> -NaN7

ddcps237 copysign      sNaN101    -34 -> -sNaN101

ddcps238 copysign     -sNaN101    -34 -> -sNaN101



-- finites

ddcps301 copysign          7      -34 -> -7

ddcps302 copysign         -7      -34 -> -7

ddcps303 copysign         75      -34 -> -75

ddcps304 copysign        -75      -34 -> -75

ddcps305 copysign       7.50      -34 -> -7.50

ddcps306 copysign      -7.50      -34 -> -7.50

ddcps307 copysign       7.500     -34 -> -7.500

ddcps308 copysign      -7.500     -34 -> -7.500



-- zeros

ddcps311 copysign          0      -34 -> -0

ddcps312 copysign         -0      -34 -> -0

ddcps313 copysign       0E+4      -34 -> -0E+4

ddcps314 copysign      -0E+4      -34 -> -0E+4

ddcps315 copysign     0.0000      -34 -> -0.0000

ddcps316 copysign    -0.0000      -34 -> -0.0000

ddcps317 copysign      0E-141     -34 -> -0E-141

ddcps318 copysign     -0E-141     -34 -> -0E-141



-- full coefficients, alternating bits

ddcps321 copysign  2682682682682682            -34 -> -2682682682682682

ddcps322 copysign  -2682682682682682           -34 -> -2682682682682682

ddcps323 copysign  1341341341341341            -34 -> -1341341341341341

ddcps324 copysign  -1341341341341341           -34 -> -1341341341341341



-- Nmax, Nmin, Ntiny

ddcps331 copysign  9.999999999999999E+384      -34 -> -9.999999999999999E+384

ddcps332 copysign  1E-383                      -34 -> -1E-383

ddcps333 copysign  1.000000000000000E-383      -34 -> -1.000000000000000E-383

ddcps334 copysign  1E-398                      -34 -> -1E-398



ddcps335 copysign  -1E-398                     -34 -> -1E-398

ddcps336 copysign  -1.000000000000000E-383     -34 -> -1.000000000000000E-383

ddcps337 copysign  -1E-383                     -34 -> -1E-383

ddcps338 copysign  -9.999999999999999E+384     -34 -> -9.999999999999999E+384



-- Other kinds of RHS

ddcps401 copysign          701    -34 -> -701

ddcps402 copysign         -720    -34 -> -720

ddcps403 copysign          701    -0  -> -701

ddcps404 copysign         -720    -0  -> -720

ddcps405 copysign          701    +0  ->  701

ddcps406 copysign         -720    +0  ->  720

ddcps407 copysign          701    +34 ->  701

ddcps408 copysign         -720    +34 ->  720



ddcps413 copysign          701    -Inf  -> -701

ddcps414 copysign         -720    -Inf  -> -720

ddcps415 copysign          701    +Inf  ->  701

ddcps416 copysign         -720    +Inf  ->  720



ddcps420 copysign          701    -NaN  -> -701

ddcps421 copysign         -720    -NaN  -> -720

ddcps422 copysign          701    +NaN  ->  701

ddcps423 copysign         -720    +NaN  ->  720

ddcps425 copysign         -720    +NaN8 ->  720



ddcps426 copysign          701    -sNaN  -> -701

ddcps427 copysign         -720    -sNaN  -> -720

ddcps428 copysign          701    +sNaN  ->  701

ddcps429 copysign         -720    +sNaN  ->  720

ddcps430 copysign         -720    +sNaN3 ->  720



