dqCopySign.decTest 8.04 KB
Newer Older
1 2
------------------------------------------------------------------------
-- dqCopySign.decTest -- quiet decQuad copy with sign from rhs        --
3
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
------------------------------------------------------------------------
-- 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                                                   --
------------------------------------------------------------------------
20
version: 2.59
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

-- All operands and results are decQuads.
extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even

-- Sanity check
dqcps001 copysign       +7.50     11 -> 7.50

-- Infinities
dqcps011 copysign  Infinity       11 -> Infinity
dqcps012 copysign  -Infinity      11 -> Infinity

-- NaNs, 0 payload
dqcps021 copysign         NaN     11 -> NaN
dqcps022 copysign        -NaN     11 -> NaN
dqcps023 copysign        sNaN     11 -> sNaN
dqcps024 copysign       -sNaN     11 -> sNaN

-- NaNs, non-0 payload
dqcps031 copysign       NaN10     11 -> NaN10
dqcps032 copysign      -NaN10     11 -> NaN10
dqcps033 copysign      sNaN10     11 -> sNaN10
dqcps034 copysign     -sNaN10     11 -> sNaN10
dqcps035 copysign       NaN7      11 -> NaN7
dqcps036 copysign      -NaN7      11 -> NaN7
dqcps037 copysign      sNaN101    11 -> sNaN101
dqcps038 copysign     -sNaN101    11 -> sNaN101

-- finites
dqcps101 copysign          7      11 -> 7
dqcps102 copysign         -7      11 -> 7
dqcps103 copysign         75      11 -> 75
dqcps104 copysign        -75      11 -> 75
dqcps105 copysign       7.50      11 -> 7.50
dqcps106 copysign      -7.50      11 -> 7.50
dqcps107 copysign       7.500     11 -> 7.500
dqcps108 copysign      -7.500     11 -> 7.500

-- zeros
dqcps111 copysign          0      11 -> 0
dqcps112 copysign         -0      11 -> 0
dqcps113 copysign       0E+4      11 -> 0E+4
dqcps114 copysign      -0E+4      11 -> 0E+4
dqcps115 copysign     0.0000      11 -> 0.0000
dqcps116 copysign    -0.0000      11 -> 0.0000
dqcps117 copysign      0E-141     11 -> 0E-141
dqcps118 copysign     -0E-141     11 -> 0E-141

-- full coefficients, alternating bits
dqcps121 copysign   2682682682682682682682682682682682 8  ->  2682682682682682682682682682682682
dqcps122 copysign  -2682682682682682682682682682682682 8  ->  2682682682682682682682682682682682
dqcps123 copysign   1341341341341341341341341341341341 8  ->  1341341341341341341341341341341341
dqcps124 copysign  -1341341341341341341341341341341341 8  ->  1341341341341341341341341341341341

-- Nmax, Nmin, Ntiny
dqcps131 copysign  9.999999999999999999999999999999999E+6144 8 ->  9.999999999999999999999999999999999E+6144
dqcps132 copysign  1E-6143                                   8 ->  1E-6143
dqcps133 copysign  1.000000000000000000000000000000000E-6143 8 ->  1.000000000000000000000000000000000E-6143
dqcps134 copysign  1E-6176                                   8 ->  1E-6176

dqcps135 copysign  -1E-6176                                   8 ->  1E-6176
dqcps136 copysign  -1.000000000000000000000000000000000E-6143 8 ->  1.000000000000000000000000000000000E-6143
dqcps137 copysign  -1E-6143                                   8 ->  1E-6143
dqcps138 copysign  -9.999999999999999999999999999999999E+6144 8 ->  9.999999999999999999999999999999999E+6144

-- repeat with negative RHS

-- Infinities
dqcps211 copysign  Infinity       -34 -> -Infinity
dqcps212 copysign  -Infinity      -34 -> -Infinity

-- NaNs, 0 payload
dqcps221 copysign         NaN     -34 -> -NaN
dqcps222 copysign        -NaN     -34 -> -NaN
dqcps223 copysign        sNaN     -34 -> -sNaN
dqcps224 copysign       -sNaN     -34 -> -sNaN

-- NaNs, non-0 payload
dqcps231 copysign       NaN10     -34 -> -NaN10
dqcps232 copysign      -NaN10     -34 -> -NaN10
dqcps233 copysign      sNaN10     -34 -> -sNaN10
dqcps234 copysign     -sNaN10     -34 -> -sNaN10
dqcps235 copysign       NaN7      -34 -> -NaN7
dqcps236 copysign      -NaN7      -34 -> -NaN7
dqcps237 copysign      sNaN101    -34 -> -sNaN101
dqcps238 copysign     -sNaN101    -34 -> -sNaN101

-- finites
dqcps301 copysign          7      -34 -> -7
dqcps302 copysign         -7      -34 -> -7
dqcps303 copysign         75      -34 -> -75
dqcps304 copysign        -75      -34 -> -75
dqcps305 copysign       7.50      -34 -> -7.50
dqcps306 copysign      -7.50      -34 -> -7.50
dqcps307 copysign       7.500     -34 -> -7.500
dqcps308 copysign      -7.500     -34 -> -7.500

-- zeros
dqcps311 copysign          0      -34 -> -0
dqcps312 copysign         -0      -34 -> -0
dqcps313 copysign       0E+4      -34 -> -0E+4
dqcps314 copysign      -0E+4      -34 -> -0E+4
dqcps315 copysign     0.0000      -34 -> -0.0000
dqcps316 copysign    -0.0000      -34 -> -0.0000
dqcps317 copysign      0E-141     -34 -> -0E-141
dqcps318 copysign     -0E-141     -34 -> -0E-141

-- full coefficients, alternating bits
dqcps321 copysign   2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
dqcps322 copysign  -2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
dqcps323 copysign   1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341
dqcps324 copysign  -1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341

-- Nmax, Nmin, Ntiny
dqcps331 copysign  9.999999999999999999999999999999999E+6144 -1  -> -9.999999999999999999999999999999999E+6144
dqcps332 copysign  1E-6143                                   -1  -> -1E-6143
dqcps333 copysign  1.000000000000000000000000000000000E-6143 -1  -> -1.000000000000000000000000000000000E-6143
dqcps334 copysign  1E-6176                                   -1  -> -1E-6176

dqcps335 copysign  -1E-6176                                   -3 -> -1E-6176
dqcps336 copysign  -1.000000000000000000000000000000000E-6143 -3 -> -1.000000000000000000000000000000000E-6143
dqcps337 copysign  -1E-6143                                   -3 -> -1E-6143
dqcps338 copysign  -9.999999999999999999999999999999999E+6144 -3 -> -9.999999999999999999999999999999999E+6144

-- Other kinds of RHS
dqcps401 copysign          701    -34 -> -701
dqcps402 copysign         -720    -34 -> -720
dqcps403 copysign          701    -0  -> -701
dqcps404 copysign         -720    -0  -> -720
dqcps405 copysign          701    +0  ->  701
dqcps406 copysign         -720    +0  ->  720
dqcps407 copysign          701    +34 ->  701
dqcps408 copysign         -720    +34 ->  720

dqcps413 copysign          701    -Inf  -> -701
dqcps414 copysign         -720    -Inf  -> -720
dqcps415 copysign          701    +Inf  ->  701
dqcps416 copysign         -720    +Inf  ->  720

dqcps420 copysign          701    -NaN  -> -701
dqcps421 copysign         -720    -NaN  -> -720
dqcps422 copysign          701    +NaN  ->  701
dqcps423 copysign         -720    +NaN  ->  720
dqcps425 copysign         -720    +NaN8 ->  720

dqcps426 copysign          701    -sNaN  -> -701
dqcps427 copysign         -720    -sNaN  -> -720
dqcps428 copysign          701    +sNaN  ->  701
dqcps429 copysign         -720    +sNaN  ->  720
dqcps430 copysign         -720    +sNaN3 ->  720