Add two new files and update remaining tests from the latest update of the

test suite in version 2.39 of dectest.zip.
This commit is contained in:
Raymond Hettinger 2004-08-17 06:42:13 +00:00
parent d6c700a320
commit 3ee3ed2e80
31 changed files with 1190 additions and 191 deletions

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of tests primarily tests the existence of the operator.
-- Additon, subtraction, rounding, and more overflows are tested

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
precision: 9
rounding: half_up

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This file tests base conversions from string to a decimal number
-- and back to a string (in either Scientific or Engineering form)
@ -73,21 +73,22 @@ basx038 toSci '0.123456789012345' -> '0.123456789012345'
-- String [many more examples are implicitly tested elsewhere]
-- strings without E cannot generate E in result
basx101 toSci "12" -> '12'
basx102 toSci "-76" -> '-76'
basx103 toSci "12.76" -> '12.76'
basx104 toSci "+12.76" -> '12.76'
basx105 toSci "012.76" -> '12.76'
basx106 toSci "+0.003" -> '0.003'
basx107 toSci "17." -> '17'
basx108 toSci ".5" -> '0.5'
basx109 toSci "044" -> '44'
basx110 toSci "0044" -> '44'
basx111 toSci "0.0005" -> '0.0005'
basx112 toSci "00.00005" -> '0.00005'
basx113 toSci "0.000005" -> '0.000005'
basx114 toSci "0.0000005" -> '5E-7'
basx115 toSci "0.00000005" -> '5E-8'
basx100 toSci "12" -> '12'
basx101 toSci "-76" -> '-76'
basx102 toSci "12.76" -> '12.76'
basx103 toSci "+12.76" -> '12.76'
basx104 toSci "012.76" -> '12.76'
basx105 toSci "+0.003" -> '0.003'
basx106 toSci "17." -> '17'
basx107 toSci ".5" -> '0.5'
basx108 toSci "044" -> '44'
basx109 toSci "0044" -> '44'
basx110 toSci "0.0005" -> '0.0005'
basx111 toSci "00.00005" -> '0.00005'
basx112 toSci "0.000005" -> '0.000005'
basx113 toSci "0.0000050" -> '0.0000050'
basx114 toSci "0.0000005" -> '5E-7'
basx115 toSci "0.00000005" -> '5E-8'
basx116 toSci "12345678.543210" -> '12345678.543210'
basx117 toSci "2345678.543210" -> '2345678.543210'
basx118 toSci "345678.543210" -> '345678.543210'
@ -99,6 +100,11 @@ basx123 toSci "+00345678.5432" -> '345678.5432'
basx124 toSci "-345678.5432" -> '-345678.5432'
basx125 toSci "-0345678.5432" -> '-345678.5432'
basx126 toSci "-00345678.5432" -> '-345678.5432'
-- examples
basx127 toSci "5E-6" -> '0.000005'
basx128 toSci "50E-7" -> '0.0000050'
basx129 toSci "5E-7" -> '5E-7'
-- [No exotics as no Unicode]

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of tests uses the same limits as the 8-byte concrete
-- representation, but applies clamping without using format-specific

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- Note that we cannot assume add/subtract tests cover paths adequately,
-- here, because the code might be quite different (comparison cannot

View file

@ -0,0 +1,441 @@
------------------------------------------------------------------------
-- decimal128.decTest -- decimal sixteen-byte format testcases --
-- Copyright (c) IBM Corporation, 2000, 2003. 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.39
-- This set of tests is for the sixteen-byte concrete representation.
-- Its characteristics are:
--
-- 1 bit sign
-- 5 bits combination field
-- 12 bits exponent continuation
-- 110 bits coefficient continuation
--
-- Total exponent length 14 bits
-- Total coefficient length 114 bits (34 digits)
--
-- Elimit = 12287 (maximum encoded exponent)
-- Emax = 6144 (largest exponent value)
-- Emin = -6143 (smallest exponent value)
-- bias = 6176 (subtracted from encoded exponent) = -Etiny
extended: 1
precision: 34
rounding: half_up
maxExponent: 6144
minExponent: -6143
-- General testcases
-- (mostly derived from the Strawman 4 document and examples)
decg001 apply #A20780000000000000000000000003D0 -> -7.50
decg002 apply -7.50 -> #A20780000000000000000000000003D0
-- Normality
decf010 apply 1234567890123456789012345678901234 -> #2608134b9c1e28e56f3c127177823534
decf011 apply 1234567890123456789012345678901234.0 -> #2608134b9c1e28e56f3c127177823534 Rounded
decf012 apply 1234567890123456789012345678901234.1 -> #2608134b9c1e28e56f3c127177823534 Rounded Inexact
decf013 apply -1234567890123456789012345678901234 -> #a608134b9c1e28e56f3c127177823534
decf014 apply -1234567890123456789012345678901234.0 -> #a608134b9c1e28e56f3c127177823534 Rounded
decf015 apply -1234567890123456789012345678901234.1 -> #a608134b9c1e28e56f3c127177823534 Rounded Inexact
-- Nmax and similar
decf022 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
decf023 apply #77ffcff3fcff3fcff3fcff3fcff3fcff -> 9.999999999999999999999999999999999E+6144
decf024 apply 1.234567890123456789012345678901234E+6144 -> #47ffd34b9c1e28e56f3c127177823534
decf025 apply #47ffd34b9c1e28e56f3c127177823534 -> 1.234567890123456789012345678901234E+6144
-- fold-downs (more below)
decf030 apply 1.23E+6144 -> #47ffd300000000000000000000000000 Clamped
decf031 apply #47ffd300000000000000000000000000 -> 1.230000000000000000000000000000000E+6144
decf032 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped
decf033 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144
-- overflows
maxExponent: 9999 -- set high so conversion causes the overflow
minExponent: -9999
decf040 apply 10E+6144 -> #78000000000000000000000000000000 Overflow Rounded Inexact
decf041 apply 1.000000000000000E+6145 -> #78000000000000000000000000000000 Overflow Rounded Inexact
maxExponent: 6144
minExponent: -6143
decf051 apply 12345 -> #220800000000000000000000000049c5
decf052 apply #220800000000000000000000000049c5 -> 12345
decf053 apply 1234 -> #22080000000000000000000000000534
decf054 apply #22080000000000000000000000000534 -> 1234
decf055 apply 123 -> #220800000000000000000000000000a3
decf056 apply #220800000000000000000000000000a3 -> 123
decf057 apply 12 -> #22080000000000000000000000000012
decf058 apply #22080000000000000000000000000012 -> 12
decf059 apply 1 -> #22080000000000000000000000000001
decf060 apply #22080000000000000000000000000001 -> 1
decf061 apply 1.23 -> #220780000000000000000000000000a3
decf062 apply #220780000000000000000000000000a3 -> 1.23
decf063 apply 123.45 -> #220780000000000000000000000049c5
decf064 apply #220780000000000000000000000049c5 -> 123.45
-- Nmin and below
decf071 apply 1E-6143 -> #00084000000000000000000000000001
decf072 apply #00084000000000000000000000000001 -> 1E-6143
decf073 apply 1.000000000000000000000000000000000E-6143 -> #04000000000000000000000000000000
decf074 apply #04000000000000000000000000000000 -> 1.000000000000000000000000000000000E-6143
decf075 apply 1.000000000000000000000000000000001E-6143 -> #04000000000000000000000000000001
decf076 apply #04000000000000000000000000000001 -> 1.000000000000000000000000000000001E-6143
decf077 apply 0.100000000000000000000000000000000E-6143 -> #00000800000000000000000000000000 Subnormal
decf078 apply #00000800000000000000000000000000 -> 1.00000000000000000000000000000000E-6144 Subnormal
decf079 apply 0.000000000000000000000000000000010E-6143 -> #00000000000000000000000000000010 Subnormal
decf080 apply #00000000000000000000000000000010 -> 1.0E-6175 Subnormal
decf081 apply 0.00000000000000000000000000000001E-6143 -> #00004000000000000000000000000001 Subnormal
decf082 apply #00004000000000000000000000000001 -> 1E-6175 Subnormal
decf083 apply 0.000000000000000000000000000000001E-6143 -> #00000000000000000000000000000001 Subnormal
decf084 apply #00000000000000000000000000000001 -> 1E-6176 Subnormal
-- underflows
decf090 apply 1e-6176 -> #00000000000000000000000000000001 Subnormal
decf091 apply 1.9e-6176 -> #00000000000000000000000000000002 Subnormal Underflow Inexact Rounded
decf092 apply 1.1e-6176 -> #00000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf093 apply 1.00000000001e-6176 -> #00000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf094 apply 1.00000000000001e-6176 -> #00000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf095 apply 1.000000000000001e-6176 -> #00000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf096 apply 0.1e-6176 -> #00000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf097 apply 0.00000000001e-6176 -> #00000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf098 apply 0.00000000000001e-6176 -> #00000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf099 apply 0.000000000000001e-6176 -> #00000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf100 apply 999999999999999999999999999999999e-6176 -> #00000ff3fcff3fcff3fcff3fcff3fcff Subnormal
-- same again, negatives
-- Nmax and similar
decf122 apply -9.999999999999999999999999999999999E+6144 -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
decf123 apply #f7ffcff3fcff3fcff3fcff3fcff3fcff -> -9.999999999999999999999999999999999E+6144
decf124 apply -1.234567890123456789012345678901234E+6144 -> #c7ffd34b9c1e28e56f3c127177823534
decf125 apply #c7ffd34b9c1e28e56f3c127177823534 -> -1.234567890123456789012345678901234E+6144
-- fold-downs (more below)
decf130 apply -1.23E+6144 -> #c7ffd300000000000000000000000000 Clamped
decf131 apply #c7ffd300000000000000000000000000 -> -1.230000000000000000000000000000000E+6144
decf132 apply -1E+6144 -> #c7ffc000000000000000000000000000 Clamped
decf133 apply #c7ffc000000000000000000000000000 -> -1.000000000000000000000000000000000E+6144
-- overflows
maxExponent: 9999 -- set high so conversion causes the overflow
minExponent: -9999
decf140 apply -10E+6144 -> #f8000000000000000000000000000000 Overflow Rounded Inexact
decf141 apply -1.000000000000000E+6145 -> #f8000000000000000000000000000000 Overflow Rounded Inexact
maxExponent: 6144
minExponent: -6143
decf151 apply -12345 -> #a20800000000000000000000000049c5
decf152 apply #a20800000000000000000000000049c5 -> -12345
decf153 apply -1234 -> #a2080000000000000000000000000534
decf154 apply #a2080000000000000000000000000534 -> -1234
decf155 apply -123 -> #a20800000000000000000000000000a3
decf156 apply #a20800000000000000000000000000a3 -> -123
decf157 apply -12 -> #a2080000000000000000000000000012
decf158 apply #a2080000000000000000000000000012 -> -12
decf159 apply -1 -> #a2080000000000000000000000000001
decf160 apply #a2080000000000000000000000000001 -> -1
decf161 apply -1.23 -> #a20780000000000000000000000000a3
decf162 apply #a20780000000000000000000000000a3 -> -1.23
decf163 apply -123.45 -> #a20780000000000000000000000049c5
decf164 apply #a20780000000000000000000000049c5 -> -123.45
-- Nmin and below
decf171 apply -1E-6143 -> #80084000000000000000000000000001
decf172 apply #80084000000000000000000000000001 -> -1E-6143
decf173 apply -1.000000000000000000000000000000000E-6143 -> #84000000000000000000000000000000
decf174 apply #84000000000000000000000000000000 -> -1.000000000000000000000000000000000E-6143
decf175 apply -1.000000000000000000000000000000001E-6143 -> #84000000000000000000000000000001
decf176 apply #84000000000000000000000000000001 -> -1.000000000000000000000000000000001E-6143
decf177 apply -0.100000000000000000000000000000000E-6143 -> #80000800000000000000000000000000 Subnormal
decf178 apply #80000800000000000000000000000000 -> -1.00000000000000000000000000000000E-6144 Subnormal
decf179 apply -0.000000000000000000000000000000010E-6143 -> #80000000000000000000000000000010 Subnormal
decf180 apply #80000000000000000000000000000010 -> -1.0E-6175 Subnormal
decf181 apply -0.00000000000000000000000000000001E-6143 -> #80004000000000000000000000000001 Subnormal
decf182 apply #80004000000000000000000000000001 -> -1E-6175 Subnormal
decf183 apply -0.000000000000000000000000000000001E-6143 -> #80000000000000000000000000000001 Subnormal
decf184 apply #80000000000000000000000000000001 -> -1E-6176 Subnormal
-- underflows
decf190 apply -1e-6176 -> #80000000000000000000000000000001 Subnormal
decf191 apply -1.9e-6176 -> #80000000000000000000000000000002 Subnormal Underflow Inexact Rounded
decf192 apply -1.1e-6176 -> #80000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf193 apply -1.00000000001e-6176 -> #80000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf194 apply -1.00000000000001e-6176 -> #80000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf195 apply -1.000000000000001e-6176 -> #80000000000000000000000000000001 Subnormal Underflow Inexact Rounded
decf196 apply -0.1e-6176 -> #80000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf197 apply -0.00000000001e-6176 -> #80000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf198 apply -0.00000000000001e-6176 -> #80000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf199 apply -0.000000000000001e-6176 -> #80000000000000000000000000000000 Subnormal Underflow Inexact Rounded
decf200 apply -999999999999999999999999999999999e-6176 -> #80000ff3fcff3fcff3fcff3fcff3fcff Subnormal
-- zeros
decf400 apply 0E-8000 -> #00000000000000000000000000000000 Clamped
decf401 apply 0E-6177 -> #00000000000000000000000000000000 Clamped
decf402 apply 0E-6176 -> #00000000000000000000000000000000
decf403 apply #00000000000000000000000000000000 -> 0E-6176
decf404 apply 0.000000000000000000000000000000000E-6143 -> #00000000000000000000000000000000
decf405 apply #00000000000000000000000000000000 -> 0E-6176
decf406 apply 0E-2 -> #22078000000000000000000000000000
decf407 apply #22078000000000000000000000000000 -> 0.00
decf408 apply 0 -> #22080000000000000000000000000000
decf409 apply #22080000000000000000000000000000 -> 0
decf410 apply 0E+3 -> #2208c000000000000000000000000000
decf411 apply #2208c000000000000000000000000000 -> 0E+3
decf412 apply 0E+6111 -> #43ffc000000000000000000000000000
decf413 apply #43ffc000000000000000000000000000 -> 0E+6111
-- clamped zeros...
decf414 apply 0E+6112 -> #43ffc000000000000000000000000000 Clamped
decf415 apply #43ffc000000000000000000000000000 -> 0E+6111
decf416 apply 0E+6144 -> #43ffc000000000000000000000000000 Clamped
decf417 apply #43ffc000000000000000000000000000 -> 0E+6111
decf418 apply 0E+8000 -> #43ffc000000000000000000000000000 Clamped
decf419 apply #43ffc000000000000000000000000000 -> 0E+6111
-- negative zeros
decf420 apply -0E-8000 -> #80000000000000000000000000000000 Clamped
decf421 apply -0E-6177 -> #80000000000000000000000000000000 Clamped
decf422 apply -0E-6176 -> #80000000000000000000000000000000
decf423 apply #80000000000000000000000000000000 -> -0E-6176
decf424 apply -0.000000000000000000000000000000000E-6143 -> #80000000000000000000000000000000
decf425 apply #80000000000000000000000000000000 -> -0E-6176
decf426 apply -0E-2 -> #a2078000000000000000000000000000
decf427 apply #a2078000000000000000000000000000 -> -0.00
decf428 apply -0 -> #a2080000000000000000000000000000
decf429 apply #a2080000000000000000000000000000 -> -0
decf430 apply -0E+3 -> #a208c000000000000000000000000000
decf431 apply #a208c000000000000000000000000000 -> -0E+3
decf432 apply -0E+6111 -> #c3ffc000000000000000000000000000
decf433 apply #c3ffc000000000000000000000000000 -> -0E+6111
-- clamped zeros...
decf434 apply -0E+6112 -> #c3ffc000000000000000000000000000 Clamped
decf435 apply #c3ffc000000000000000000000000000 -> -0E+6111
decf436 apply -0E+6144 -> #c3ffc000000000000000000000000000 Clamped
decf437 apply #c3ffc000000000000000000000000000 -> -0E+6111
decf438 apply -0E+8000 -> #c3ffc000000000000000000000000000 Clamped
decf439 apply #c3ffc000000000000000000000000000 -> -0E+6111
-- Specials
decf500 apply Infinity -> #78000000000000000000000000000000
decf501 apply #78787878787878787878787878787878 -> #78000000000000000000000000000000
decf502 apply #78000000000000000000000000000000 -> Infinity
decf503 apply #79797979797979797979797979797979 -> #78000000000000000000000000000000
decf504 apply #79000000000000000000000000000000 -> Infinity
decf505 apply #7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #78000000000000000000000000000000
decf506 apply #7a000000000000000000000000000000 -> Infinity
decf507 apply #7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #78000000000000000000000000000000
decf508 apply #7b000000000000000000000000000000 -> Infinity
decf509 apply NaN -> #7c000000000000000000000000000000
decf510 apply #7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #7c003c7c7c7c7c7c7c7c7c7c7c7c7c7c
decf511 apply #7c000000000000000000000000000000 -> NaN
decf512 apply #7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #7c003d7d7d7d7d7d7d7d7d7d7d7d7d7d
decf513 apply #7d000000000000000000000000000000 -> NaN
decf514 apply #7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #7e003e7e7c7e7e7e7e7c7e7e7e7e7c7e
decf515 apply #7e000000000000000000000000000000 -> sNaN
decf516 apply #7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #7e003f7f7c7f7f7f7f7c7f7f7f7f7c7f
decf517 apply #7f000000000000000000000000000000 -> sNaN
decf518 apply #7fffffffffffffffffffffffffffffff -> sNaN999999999999999999999999999999999
decf519 apply #7fffffffffffffffffffffffffffffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
decf520 apply -Infinity -> #f8000000000000000000000000000000
decf521 apply #f8787878787878787878787878787878 -> #f8000000000000000000000000000000
decf522 apply #f8000000000000000000000000000000 -> -Infinity
decf523 apply #f9797979797979797979797979797979 -> #f8000000000000000000000000000000
decf524 apply #f9000000000000000000000000000000 -> -Infinity
decf525 apply #fa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #f8000000000000000000000000000000
decf526 apply #fa000000000000000000000000000000 -> -Infinity
decf527 apply #fb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #f8000000000000000000000000000000
decf528 apply #fb000000000000000000000000000000 -> -Infinity
decf529 apply -NaN -> #fc000000000000000000000000000000
decf530 apply #fc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #fc003c7c7c7c7c7c7c7c7c7c7c7c7c7c
decf531 apply #fc000000000000000000000000000000 -> -NaN
decf532 apply #fd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #fc003d7d7d7d7d7d7d7d7d7d7d7d7d7d
decf533 apply #fd000000000000000000000000000000 -> -NaN
decf534 apply #fe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #fe003e7e7c7e7e7e7e7c7e7e7e7e7c7e
decf535 apply #fe000000000000000000000000000000 -> -sNaN
decf536 apply #ff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #fe003f7f7c7f7f7f7f7c7f7f7f7f7c7f
decf537 apply #ff000000000000000000000000000000 -> -sNaN
decf538 apply #ffffffffffffffffffffffffffffffff -> -sNaN999999999999999999999999999999999
decf539 apply #ffffffffffffffffffffffffffffffff -> #fe000ff3fcff3fcff3fcff3fcff3fcff
decf540 apply NaN -> #7c000000000000000000000000000000
decf541 apply NaN0 -> #7c000000000000000000000000000000
decf542 apply NaN1 -> #7c000000000000000000000000000001
decf543 apply NaN12 -> #7c000000000000000000000000000012
decf544 apply NaN79 -> #7c000000000000000000000000000079
decf545 apply NaN12345 -> #7c0000000000000000000000000049c5
decf546 apply NaN123456 -> #7c000000000000000000000000028e56
decf547 apply NaN799799 -> #7c0000000000000000000000000f7fdf
decf548 apply NaN799799799799799799799799799799799 -> #7c003dff7fdff7fdff7fdff7fdff7fdf
decf549 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
decf550 apply NaN1234567890123456789012345678901234 -> #7c000000000000000000000000000000 -- too many digits
-- fold-down full sequence
decf600 apply 1E+6145 -> #78000000000000000000000000000000 Overflow Inexact Rounded
decf601 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped
decf602 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144
decf603 apply 1E+6143 -> #43ffc800000000000000000000000000 Clamped
decf604 apply #43ffc800000000000000000000000000 -> 1.00000000000000000000000000000000E+6143
decf605 apply 1E+6142 -> #43ffc100000000000000000000000000 Clamped
decf606 apply #43ffc100000000000000000000000000 -> 1.0000000000000000000000000000000E+6142
decf607 apply 1E+6141 -> #43ffc010000000000000000000000000 Clamped
decf608 apply #43ffc010000000000000000000000000 -> 1.000000000000000000000000000000E+6141
decf609 apply 1E+6140 -> #43ffc002000000000000000000000000 Clamped
decf610 apply #43ffc002000000000000000000000000 -> 1.00000000000000000000000000000E+6140
decf611 apply 1E+6139 -> #43ffc000400000000000000000000000 Clamped
decf612 apply #43ffc000400000000000000000000000 -> 1.0000000000000000000000000000E+6139
decf613 apply 1E+6138 -> #43ffc000040000000000000000000000 Clamped
decf614 apply #43ffc000040000000000000000000000 -> 1.000000000000000000000000000E+6138
decf615 apply 1E+6137 -> #43ffc000008000000000000000000000 Clamped
decf616 apply #43ffc000008000000000000000000000 -> 1.00000000000000000000000000E+6137
decf617 apply 1E+6136 -> #43ffc000001000000000000000000000 Clamped
decf618 apply #43ffc000001000000000000000000000 -> 1.0000000000000000000000000E+6136
decf619 apply 1E+6135 -> #43ffc000000100000000000000000000 Clamped
decf620 apply #43ffc000000100000000000000000000 -> 1.000000000000000000000000E+6135
decf621 apply 1E+6134 -> #43ffc000000020000000000000000000 Clamped
decf622 apply #43ffc000000020000000000000000000 -> 1.00000000000000000000000E+6134
decf623 apply 1E+6133 -> #43ffc000000004000000000000000000 Clamped
decf624 apply #43ffc000000004000000000000000000 -> 1.0000000000000000000000E+6133
decf625 apply 1E+6132 -> #43ffc000000000400000000000000000 Clamped
decf626 apply #43ffc000000000400000000000000000 -> 1.000000000000000000000E+6132
decf627 apply 1E+6131 -> #43ffc000000000080000000000000000 Clamped
decf628 apply #43ffc000000000080000000000000000 -> 1.00000000000000000000E+6131
decf629 apply 1E+6130 -> #43ffc000000000010000000000000000 Clamped
decf630 apply #43ffc000000000010000000000000000 -> 1.0000000000000000000E+6130
decf631 apply 1E+6129 -> #43ffc000000000001000000000000000 Clamped
decf632 apply #43ffc000000000001000000000000000 -> 1.000000000000000000E+6129
decf633 apply 1E+6128 -> #43ffc000000000000200000000000000 Clamped
decf634 apply #43ffc000000000000200000000000000 -> 1.00000000000000000E+6128
decf635 apply 1E+6127 -> #43ffc000000000000040000000000000 Clamped
decf636 apply #43ffc000000000000040000000000000 -> 1.0000000000000000E+6127
decf637 apply 1E+6126 -> #43ffc000000000000004000000000000 Clamped
decf638 apply #43ffc000000000000004000000000000 -> 1.000000000000000E+6126
decf639 apply 1E+6125 -> #43ffc000000000000000800000000000 Clamped
decf640 apply #43ffc000000000000000800000000000 -> 1.00000000000000E+6125
decf641 apply 1E+6124 -> #43ffc000000000000000100000000000 Clamped
decf642 apply #43ffc000000000000000100000000000 -> 1.0000000000000E+6124
decf643 apply 1E+6123 -> #43ffc000000000000000010000000000 Clamped
decf644 apply #43ffc000000000000000010000000000 -> 1.000000000000E+6123
decf645 apply 1E+6122 -> #43ffc000000000000000002000000000 Clamped
decf646 apply #43ffc000000000000000002000000000 -> 1.00000000000E+6122
decf647 apply 1E+6121 -> #43ffc000000000000000000400000000 Clamped
decf648 apply #43ffc000000000000000000400000000 -> 1.0000000000E+6121
decf649 apply 1E+6120 -> #43ffc000000000000000000040000000 Clamped
decf650 apply #43ffc000000000000000000040000000 -> 1.000000000E+6120
decf651 apply 1E+6119 -> #43ffc000000000000000000008000000 Clamped
decf652 apply #43ffc000000000000000000008000000 -> 1.00000000E+6119
decf653 apply 1E+6118 -> #43ffc000000000000000000001000000 Clamped
decf654 apply #43ffc000000000000000000001000000 -> 1.0000000E+6118
decf655 apply 1E+6117 -> #43ffc000000000000000000000100000 Clamped
decf656 apply #43ffc000000000000000000000100000 -> 1.000000E+6117
decf657 apply 1E+6116 -> #43ffc000000000000000000000020000 Clamped
decf658 apply #43ffc000000000000000000000020000 -> 1.00000E+6116
decf659 apply 1E+6115 -> #43ffc000000000000000000000004000 Clamped
decf660 apply #43ffc000000000000000000000004000 -> 1.0000E+6115
decf661 apply 1E+6114 -> #43ffc000000000000000000000000400 Clamped
decf662 apply #43ffc000000000000000000000000400 -> 1.000E+6114
decf663 apply 1E+6113 -> #43ffc000000000000000000000000080 Clamped
decf664 apply #43ffc000000000000000000000000080 -> 1.00E+6113
decf665 apply 1E+6112 -> #43ffc000000000000000000000000010 Clamped
decf666 apply #43ffc000000000000000000000000010 -> 1.0E+6112
decf667 apply 1E+6111 -> #43ffc000000000000000000000000001
decf668 apply #43ffc000000000000000000000000001 -> 1E+6111
decf669 apply 1E+6110 -> #43ff8000000000000000000000000001
decf670 apply #43ff8000000000000000000000000001 -> 1E+6110
-- Selected DPD codes
decf700 apply #22080000000000000000000000000000 -> 0
decf701 apply #22080000000000000000000000000009 -> 9
decf702 apply #22080000000000000000000000000010 -> 10
decf703 apply #22080000000000000000000000000019 -> 19
decf704 apply #22080000000000000000000000000020 -> 20
decf705 apply #22080000000000000000000000000029 -> 29
decf706 apply #22080000000000000000000000000030 -> 30
decf707 apply #22080000000000000000000000000039 -> 39
decf708 apply #22080000000000000000000000000040 -> 40
decf709 apply #22080000000000000000000000000049 -> 49
decf710 apply #22080000000000000000000000000050 -> 50
decf711 apply #22080000000000000000000000000059 -> 59
decf712 apply #22080000000000000000000000000060 -> 60
decf713 apply #22080000000000000000000000000069 -> 69
decf714 apply #22080000000000000000000000000070 -> 70
decf715 apply #22080000000000000000000000000071 -> 71
decf716 apply #22080000000000000000000000000072 -> 72
decf717 apply #22080000000000000000000000000073 -> 73
decf718 apply #22080000000000000000000000000074 -> 74
decf719 apply #22080000000000000000000000000075 -> 75
decf720 apply #22080000000000000000000000000076 -> 76
decf721 apply #22080000000000000000000000000077 -> 77
decf722 apply #22080000000000000000000000000078 -> 78
decf723 apply #22080000000000000000000000000079 -> 79
decf730 apply #2208000000000000000000000000029e -> 994
decf731 apply #2208000000000000000000000000029f -> 995
decf732 apply #220800000000000000000000000002a0 -> 520
decf733 apply #220800000000000000000000000002a1 -> 521
-- DPD: one of each of the huffman groups
decf740 apply #220800000000000000000000000003f7 -> 777
decf741 apply #220800000000000000000000000003f8 -> 778
decf742 apply #220800000000000000000000000003eb -> 787
decf743 apply #2208000000000000000000000000037d -> 877
decf744 apply #2208000000000000000000000000039f -> 997
decf745 apply #220800000000000000000000000003bf -> 979
decf746 apply #220800000000000000000000000003df -> 799
decf747 apply #2208000000000000000000000000006e -> 888
-- DPD all-highs cases (includes the 24 redundant codes)
decf750 apply #2208000000000000000000000000006e -> 888
decf751 apply #2208000000000000000000000000016e -> 888
decf752 apply #2208000000000000000000000000026e -> 888
decf753 apply #2208000000000000000000000000036e -> 888
decf754 apply #2208000000000000000000000000006f -> 889
decf755 apply #2208000000000000000000000000016f -> 889
decf756 apply #2208000000000000000000000000026f -> 889
decf757 apply #2208000000000000000000000000036f -> 889
decf760 apply #2208000000000000000000000000007e -> 898
decf761 apply #2208000000000000000000000000017e -> 898
decf762 apply #2208000000000000000000000000027e -> 898
decf763 apply #2208000000000000000000000000037e -> 898
decf764 apply #2208000000000000000000000000007f -> 899
decf765 apply #2208000000000000000000000000017f -> 899
decf766 apply #2208000000000000000000000000027f -> 899
decf767 apply #2208000000000000000000000000037f -> 899
decf770 apply #220800000000000000000000000000ee -> 988
decf771 apply #220800000000000000000000000001ee -> 988
decf772 apply #220800000000000000000000000002ee -> 988
decf773 apply #220800000000000000000000000003ee -> 988
decf774 apply #220800000000000000000000000000ef -> 989
decf775 apply #220800000000000000000000000001ef -> 989
decf776 apply #220800000000000000000000000002ef -> 989
decf777 apply #220800000000000000000000000003ef -> 989
decf780 apply #220800000000000000000000000000fe -> 998
decf781 apply #220800000000000000000000000001fe -> 998
decf782 apply #220800000000000000000000000002fe -> 998
decf783 apply #220800000000000000000000000003fe -> 998
decf784 apply #220800000000000000000000000000ff -> 999
decf785 apply #220800000000000000000000000001ff -> 999
decf786 apply #220800000000000000000000000002ff -> 999
decf787 apply #220800000000000000000000000003ff -> 999

View file

@ -0,0 +1,385 @@
------------------------------------------------------------------------
-- decimal32.decTest -- decimal four-byte format testcases --
-- Copyright (c) IBM Corporation, 2000, 2003. 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.39
-- This set of tests is for the four-byte concrete representation.
-- Its characteristics are:
--
-- 1 bit sign
-- 5 bits combination field
-- 6 bits exponent continuation
-- 20 bits coefficient continuation
--
-- Total exponent length 8 bits
-- Total coefficient length 24 bits (7 digits)
--
-- Elimit = 191 (maximum encoded exponent)
-- Emax = 96 (largest exponent value)
-- Emin = -95 (smallest exponent value)
-- bias = 101 (subtracted from encoded exponent) = -Etiny
extended: 1
precision: 7
rounding: half_up
maxExponent: 96
minExponent: -95
-- General testcases
-- (mostly derived from the Strawman 4 document and examples)
decd001 apply #A23003D0 -> -7.50
decd002 apply -7.50 -> #A23003D0
-- Normality
decd010 apply 1234567 -> #2654d2e7
decd011 apply 1234567.0 -> #2654d2e7 Rounded
decd012 apply 1234567.1 -> #2654d2e7 Rounded Inexact
decd013 apply -1234567 -> #a654d2e7
decd014 apply -1234567.0 -> #a654d2e7 Rounded
decd015 apply -1234567.1 -> #a654d2e7 Rounded Inexact
-- Nmax and similar
decd022 apply 9.999999E+96 -> #77f3fcff
decd023 apply #77f3fcff -> 9.999999E+96
decd024 apply 1.234567E+96 -> #47f4d2e7
decd025 apply #47f4d2e7 -> 1.234567E+96
-- fold-downs (more below)
decd030 apply 1.23E+96 -> #47f4c000 Clamped
decd031 apply #47f4c000 -> 1.230000E+96
decd032 apply 1E+96 -> #47f00000 Clamped
decd033 apply #47f00000 -> 1.000000E+96
-- overflows
maxExponent: 999 -- set high so conversion causes the overflow
minExponent: -999
decd040 apply 10E+96 -> #78000000 Overflow Rounded Inexact
decd041 apply 1.000000E+97 -> #78000000 Overflow Rounded Inexact
maxExponent: 96
minExponent: -95
decd051 apply 12345 -> #225049c5
decd052 apply #225049c5 -> 12345
decd053 apply 1234 -> #22500534
decd054 apply #22500534 -> 1234
decd055 apply 123 -> #225000a3
decd056 apply #225000a3 -> 123
decd057 apply 12 -> #22500012
decd058 apply #22500012 -> 12
decd059 apply 1 -> #22500001
decd060 apply #22500001 -> 1
decd061 apply 1.23 -> #223000a3
decd062 apply #223000a3 -> 1.23
decd063 apply 123.45 -> #223049c5
decd064 apply #223049c5 -> 123.45
-- Nmin and below
decd071 apply 1E-95 -> #00600001
decd072 apply #00600001 -> 1E-95
decd073 apply 1.000000E-95 -> #04000000
decd074 apply #04000000 -> 1.000000E-95
decd075 apply 1.000001E-95 -> #04000001
decd076 apply #04000001 -> 1.000001E-95
decd077 apply 0.100000E-95 -> #00020000 Subnormal
decd07x apply 1.00000E-96 -> 1.00000E-96 Subnormal
decd078 apply #00020000 -> 1.00000E-96 Subnormal
decd079 apply 0.000010E-95 -> #00000010 Subnormal
decd080 apply #00000010 -> 1.0E-100 Subnormal
decd081 apply 0.000001E-95 -> #00000001 Subnormal
decd082 apply #00000001 -> 1E-101 Subnormal
decd083 apply 1e-101 -> #00000001 Subnormal
decd084 apply #00000001 -> 1E-101 Subnormal
decd08x apply 1e-101 -> 1E-101 Subnormal
-- underflows
decd090 apply 1e-101 -> #00000001 Subnormal
decd091 apply 1.9e-101 -> #00000002 Subnormal Underflow Inexact Rounded
decd092 apply 1.1e-101 -> #00000001 Subnormal Underflow Inexact Rounded
decd093 apply 1.001e-101 -> #00000001 Subnormal Underflow Inexact Rounded
decd094 apply 1.000001e-101 -> #00000001 Subnormal Underflow Inexact Rounded
decd095 apply 1.0000001e-101 -> #00000001 Subnormal Underflow Inexact Rounded
decd096 apply 0.1e-101 -> #00000000 Subnormal Underflow Inexact Rounded
decd097 apply 0.001e-101 -> #00000000 Subnormal Underflow Inexact Rounded
decd098 apply 0.000001e-101 -> #00000000 Subnormal Underflow Inexact Rounded
decd099 apply 0.0000001e-101 -> #00000000 Subnormal Underflow Inexact Rounded
-- same again, negatives --
-- Nmax and similar
decd122 apply -9.999999E+96 -> #f7f3fcff
decd123 apply #f7f3fcff -> -9.999999E+96
decd124 apply -1.234567E+96 -> #c7f4d2e7
decd125 apply #c7f4d2e7 -> -1.234567E+96
-- fold-downs (more below)
decd130 apply -1.23E+96 -> #c7f4c000 Clamped
decd131 apply #c7f4c000 -> -1.230000E+96
decd132 apply -1E+96 -> #c7f00000 Clamped
decd133 apply #c7f00000 -> -1.000000E+96
-- overflows
maxExponent: 999 -- set high so conversion causes the overflow
minExponent: -999
decd140 apply -10E+96 -> #f8000000 Overflow Rounded Inexact
decd141 apply -1.000000E+97 -> #f8000000 Overflow Rounded Inexact
maxExponent: 96
minExponent: -95
decd151 apply -12345 -> #a25049c5
decd152 apply #a25049c5 -> -12345
decd153 apply -1234 -> #a2500534
decd154 apply #a2500534 -> -1234
decd155 apply -123 -> #a25000a3
decd156 apply #a25000a3 -> -123
decd157 apply -12 -> #a2500012
decd158 apply #a2500012 -> -12
decd159 apply -1 -> #a2500001
decd160 apply #a2500001 -> -1
decd161 apply -1.23 -> #a23000a3
decd162 apply #a23000a3 -> -1.23
decd163 apply -123.45 -> #a23049c5
decd164 apply #a23049c5 -> -123.45
-- Nmin and below
decd171 apply -1E-95 -> #80600001
decd172 apply #80600001 -> -1E-95
decd173 apply -1.000000E-95 -> #84000000
decd174 apply #84000000 -> -1.000000E-95
decd175 apply -1.000001E-95 -> #84000001
decd176 apply #84000001 -> -1.000001E-95
decd177 apply -0.100000E-95 -> #80020000 Subnormal
decd178 apply #80020000 -> -1.00000E-96 Subnormal
decd179 apply -0.000010E-95 -> #80000010 Subnormal
decd180 apply #80000010 -> -1.0E-100 Subnormal
decd181 apply -0.000001E-95 -> #80000001 Subnormal
decd182 apply #80000001 -> -1E-101 Subnormal
decd183 apply -1e-101 -> #80000001 Subnormal
decd184 apply #80000001 -> -1E-101 Subnormal
-- underflows
decd190 apply -1e-101 -> #80000001 Subnormal
decd191 apply -1.9e-101 -> #80000002 Subnormal Underflow Inexact Rounded
decd192 apply -1.1e-101 -> #80000001 Subnormal Underflow Inexact Rounded
decd193 apply -1.001e-101 -> #80000001 Subnormal Underflow Inexact Rounded
decd194 apply -1.000001e-101 -> #80000001 Subnormal Underflow Inexact Rounded
decd195 apply -1.0000001e-101 -> #80000001 Subnormal Underflow Inexact Rounded
decd196 apply -0.1e-101 -> #80000000 Subnormal Underflow Inexact Rounded
decd197 apply -0.001e-101 -> #80000000 Subnormal Underflow Inexact Rounded
decd198 apply -0.000001e-101 -> #80000000 Subnormal Underflow Inexact Rounded
decd199 apply -0.0000001e-101 -> #80000000 Subnormal Underflow Inexact Rounded
-- zeros
decd400 apply 0E-400 -> #00000000 Clamped
decd401 apply 0E-101 -> #00000000
decd402 apply #00000000 -> 0E-101
decd403 apply 0.000000E-95 -> #00000000
decd404 apply #00000000 -> 0E-101
decd405 apply 0E-2 -> #22300000
decd406 apply #22300000 -> 0.00
decd407 apply 0 -> #22500000
decd408 apply #22500000 -> 0
decd409 apply 0E+3 -> #22800000
decd410 apply #22800000 -> 0E+3
decd411 apply 0E+90 -> #43f00000
decd412 apply #43f00000 -> 0E+90
-- clamped zeros...
decd413 apply 0E+91 -> #43f00000 Clamped
decd414 apply #43f00000 -> 0E+90
decd415 apply 0E+96 -> #43f00000 Clamped
decd416 apply #43f00000 -> 0E+90
decd417 apply 0E+400 -> #43f00000 Clamped
decd418 apply #43f00000 -> 0E+90
-- negative zeros
decd420 apply -0E-400 -> #80000000 Clamped
decd421 apply -0E-101 -> #80000000
decd422 apply #80000000 -> -0E-101
decd423 apply -0.000000E-95 -> #80000000
decd424 apply #80000000 -> -0E-101
decd425 apply -0E-2 -> #a2300000
decd426 apply #a2300000 -> -0.00
decd427 apply -0 -> #a2500000
decd428 apply #a2500000 -> -0
decd429 apply -0E+3 -> #a2800000
decd430 apply #a2800000 -> -0E+3
decd431 apply -0E+90 -> #c3f00000
decd432 apply #c3f00000 -> -0E+90
-- clamped zeros...
decd433 apply -0E+91 -> #c3f00000 Clamped
decd434 apply #c3f00000 -> -0E+90
decd435 apply -0E+96 -> #c3f00000 Clamped
decd436 apply #c3f00000 -> -0E+90
decd437 apply -0E+400 -> #c3f00000 Clamped
decd438 apply #c3f00000 -> -0E+90
-- Specials
decd500 apply Infinity -> #78000000
decd501 apply #78787878 -> #78000000
decd502 apply #78000000 -> Infinity
decd503 apply #79797979 -> #78000000
decd504 apply #79000000 -> Infinity
decd505 apply #7a7a7a7a -> #78000000
decd506 apply #7a000000 -> Infinity
decd507 apply #7b7b7b7b -> #78000000
decd508 apply #7b000000 -> Infinity
decd509 apply #7c7c7c7c -> #7c0c7c7c
decd510 apply NaN -> #7c000000
decd511 apply #7c000000 -> NaN
decd512 apply #7d7d7d7d -> #7c0d7d7d
decd513 apply #7d000000 -> NaN
decd514 apply #7e7e7e7e -> #7e0e7c7e
decd515 apply #7e000000 -> sNaN
decd516 apply #7f7f7f7f -> #7e0f7c7f
decd517 apply #7f000000 -> sNaN
decd518 apply #7fffffff -> sNaN999999
decd519 apply #7fffffff -> #7e03fcff
decd520 apply -Infinity -> #f8000000
decd521 apply #f8787878 -> #f8000000
decd522 apply #f8000000 -> -Infinity
decd523 apply #f9797979 -> #f8000000
decd524 apply #f9000000 -> -Infinity
decd525 apply #fa7a7a7a -> #f8000000
decd526 apply #fa000000 -> -Infinity
decd527 apply #fb7b7b7b -> #f8000000
decd528 apply #fb000000 -> -Infinity
decd529 apply -NaN -> #fc000000
decd530 apply #fc7c7c7c -> #fc0c7c7c
decd531 apply #fc000000 -> -NaN
decd532 apply #fd7d7d7d -> #fc0d7d7d
decd533 apply #fd000000 -> -NaN
decd534 apply #fe7e7e7e -> #fe0e7c7e
decd535 apply #fe000000 -> -sNaN
decd536 apply #ff7f7f7f -> #fe0f7c7f
decd537 apply #ff000000 -> -sNaN
decd538 apply #ffffffff -> -sNaN999999
decd539 apply #ffffffff -> #fe03fcff
-- diagnostic NaNs
decd540 apply NaN -> #7c000000
decd541 apply NaN0 -> #7c000000
decd542 apply NaN1 -> #7c000001
decd543 apply NaN12 -> #7c000012
decd544 apply NaN79 -> #7c000079
decd545 apply NaN12345 -> #7c0049c5
decd546 apply NaN123456 -> #7c028e56
decd547 apply NaN799799 -> #7c0f7fdf
decd548 apply NaN999999 -> #7c03fcff
decd549 apply NaN1234567 -> #7c000000 -- too many digits
-- fold-down full sequence
decd601 apply 1E+96 -> #47f00000 Clamped
decd602 apply #47f00000 -> 1.000000E+96
decd603 apply 1E+95 -> #43f20000 Clamped
decd604 apply #43f20000 -> 1.00000E+95
decd605 apply 1E+94 -> #43f04000 Clamped
decd606 apply #43f04000 -> 1.0000E+94
decd607 apply 1E+93 -> #43f00400 Clamped
decd608 apply #43f00400 -> 1.000E+93
decd609 apply 1E+92 -> #43f00080 Clamped
decd610 apply #43f00080 -> 1.00E+92
decd611 apply 1E+91 -> #43f00010 Clamped
decd612 apply #43f00010 -> 1.0E+91
decd613 apply 1E+90 -> #43f00001
decd614 apply #43f00001 -> 1E+90
-- Selected DPD codes
decd700 apply #22500000 -> 0
decd701 apply #22500009 -> 9
decd702 apply #22500010 -> 10
decd703 apply #22500019 -> 19
decd704 apply #22500020 -> 20
decd705 apply #22500029 -> 29
decd706 apply #22500030 -> 30
decd707 apply #22500039 -> 39
decd708 apply #22500040 -> 40
decd709 apply #22500049 -> 49
decd710 apply #22500050 -> 50
decd711 apply #22500059 -> 59
decd712 apply #22500060 -> 60
decd713 apply #22500069 -> 69
decd714 apply #22500070 -> 70
decd715 apply #22500071 -> 71
decd716 apply #22500072 -> 72
decd717 apply #22500073 -> 73
decd718 apply #22500074 -> 74
decd719 apply #22500075 -> 75
decd720 apply #22500076 -> 76
decd721 apply #22500077 -> 77
decd722 apply #22500078 -> 78
decd723 apply #22500079 -> 79
decd730 apply #2250029e -> 994
decd731 apply #2250029f -> 995
decd732 apply #225002a0 -> 520
decd733 apply #225002a1 -> 521
-- DPD: one of each of the huffman groups
decd740 apply #225003f7 -> 777
decd741 apply #225003f8 -> 778
decd742 apply #225003eb -> 787
decd743 apply #2250037d -> 877
decd744 apply #2250039f -> 997
decd745 apply #225003bf -> 979
decd746 apply #225003df -> 799
decd747 apply #2250006e -> 888
-- DPD all-highs cases (includes the 24 redundant codes)
decd750 apply #2250006e -> 888
decd751 apply #2250016e -> 888
decd752 apply #2250026e -> 888
decd753 apply #2250036e -> 888
decd754 apply #2250006f -> 889
decd755 apply #2250016f -> 889
decd756 apply #2250026f -> 889
decd757 apply #2250036f -> 889
decd760 apply #2250007e -> 898
decd761 apply #2250017e -> 898
decd762 apply #2250027e -> 898
decd763 apply #2250037e -> 898
decd764 apply #2250007f -> 899
decd765 apply #2250017f -> 899
decd766 apply #2250027f -> 899
decd767 apply #2250037f -> 899
decd770 apply #225000ee -> 988
decd771 apply #225001ee -> 988
decd772 apply #225002ee -> 988
decd773 apply #225003ee -> 988
decd774 apply #225000ef -> 989
decd775 apply #225001ef -> 989
decd776 apply #225002ef -> 989
decd777 apply #225003ef -> 989
decd780 apply #225000fe -> 998
decd781 apply #225001fe -> 998
decd782 apply #225002fe -> 998
decd783 apply #225003fe -> 998
decd784 apply #225000ff -> 999
decd785 apply #225001ff -> 999
decd786 apply #225002ff -> 999
decd787 apply #225003ff -> 999

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.28
version: 2.39
-- This set of tests is for the eight-byte concrete representation.
-- Its characteristics are:
@ -234,6 +234,7 @@ dece451 apply -0E+500 -> #c3fc000000000000 Clamped
dece452 apply #c3fc000000000000 -> -0E+369
-- Specials
dece500 apply Infinity -> #7800000000000000
dece501 apply #7878787878787878 -> #7800000000000000
dece502 apply #7800000000000000 -> Infinity
dece503 apply #7979797979797979 -> #7800000000000000
@ -242,15 +243,20 @@ dece505 apply #7a7a7a7a7a7a7a7a -> #7800000000000000
dece506 apply #7a00000000000000 -> Infinity
dece507 apply #7b7b7b7b7b7b7b7b -> #7800000000000000
dece508 apply #7b00000000000000 -> Infinity
dece509 apply #7c7c7c7c7c7c7c7c -> #7dffffffffffffff
dece510 apply #7c00000000000000 -> NaN
dece511 apply #7d7d7d7d7d7d7d7d -> #7dffffffffffffff
dece512 apply #7d00000000000000 -> NaN
dece513 apply #7e7e7e7e7e7e7e7e -> #7fffffffffffffff
dece514 apply #7e00000000000000 -> sNaN
dece515 apply #7f7f7f7f7f7f7f7f -> #7fffffffffffffff
dece516 apply #7f00000000000000 -> sNaN
dece509 apply NaN -> #7c00000000000000
dece510 apply #7c7c7c7c7c7c7c7c -> #7c007c7c7c7c7c7c
dece511 apply #7c00000000000000 -> NaN
dece512 apply #7d7d7d7d7d7d7d7d -> #7c017d7d7d7d7d7d
dece513 apply #7d00000000000000 -> NaN
dece514 apply #7e7e7e7e7e7e7e7e -> #7e007e7e7e7e7c7e
dece515 apply #7e00000000000000 -> sNaN
dece516 apply #7f7f7f7f7f7f7f7f -> #7e007f7f7f7f7c7f
dece517 apply #7f00000000000000 -> sNaN
dece518 apply #7fffffffffffffff -> sNaN999999999999999
dece519 apply #7fffffffffffffff -> #7e00ff3fcff3fcff
dece520 apply -Infinity -> #f800000000000000
dece521 apply #f878787878787878 -> #f800000000000000
dece522 apply #f800000000000000 -> -Infinity
dece523 apply #f979797979797979 -> #f800000000000000
@ -259,14 +265,31 @@ dece525 apply #fa7a7a7a7a7a7a7a -> #f800000000000000
dece526 apply #fa00000000000000 -> -Infinity
dece527 apply #fb7b7b7b7b7b7b7b -> #f800000000000000
dece528 apply #fb00000000000000 -> -Infinity
dece529 apply #fc7c7c7c7c7c7c7c -> #7dffffffffffffff
dece530 apply #fc00000000000000 -> NaN
dece531 apply #fd7d7d7d7d7d7d7d -> #7dffffffffffffff
dece532 apply #fd00000000000000 -> NaN
dece533 apply #fe7e7e7e7e7e7e7e -> #7fffffffffffffff
dece534 apply #fe00000000000000 -> sNaN
dece535 apply #ff7f7f7f7f7f7f7f -> #7fffffffffffffff
dece536 apply #ff00000000000000 -> sNaN
dece529 apply -NaN -> #fc00000000000000
dece530 apply #fc7c7c7c7c7c7c7c -> #fc007c7c7c7c7c7c
dece531 apply #fc00000000000000 -> -NaN
dece532 apply #fd7d7d7d7d7d7d7d -> #fc017d7d7d7d7d7d
dece533 apply #fd00000000000000 -> -NaN
dece534 apply #fe7e7e7e7e7e7e7e -> #fe007e7e7e7e7c7e
dece535 apply #fe00000000000000 -> -sNaN
dece536 apply #ff7f7f7f7f7f7f7f -> #fe007f7f7f7f7c7f
dece537 apply #ff00000000000000 -> -sNaN
dece538 apply #ffffffffffffffff -> -sNaN999999999999999
dece539 apply #ffffffffffffffff -> #fe00ff3fcff3fcff
-- diagnostic NaNs
dece540 apply NaN -> #7c00000000000000
dece541 apply NaN0 -> #7c00000000000000
dece542 apply NaN1 -> #7c00000000000001
dece543 apply NaN12 -> #7c00000000000012
dece544 apply NaN79 -> #7c00000000000079
dece545 apply NaN12345 -> #7c000000000049c5
dece546 apply NaN123456 -> #7c00000000028e56
dece547 apply NaN799799 -> #7c000000000f7fdf
dece548 apply NaN799799799799799 -> #7c03dff7fdff7fdf
dece549 apply NaN999999999999999 -> #7c00ff3fcff3fcff
dece550 apply NaN1234567890123456 -> #7c00000000000000 -- too many digits
-- fold-down full sequence
dece601 apply 1E+384 -> #47fc000000000000 Clamped

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- we assume that base comparison is tested in compare.decTest, so
-- these mainly cover special cases and rounding
@ -60,24 +60,36 @@ maxx030 max 0 0 -> 0
maxx031 max 0 -0 -> 0
maxx032 max 0 -0.0 -> 0
maxx033 max 0 0.0 -> 0
maxx034 max -0 0 -> -0 -- note: -0 = 0
maxx034 max -0 0 -> 0 -- note: -0 = 0, but 0 chosen
maxx035 max -0 -0 -> -0
maxx036 max -0 -0.0 -> -0
maxx037 max -0 0.0 -> -0
maxx038 max 0.0 0 -> 0.0
maxx036 max -0 -0.0 -> -0.0
maxx037 max -0 0.0 -> 0.0
maxx038 max 0.0 0 -> 0
maxx039 max 0.0 -0 -> 0.0
maxx040 max 0.0 -0.0 -> 0.0
maxx041 max 0.0 0.0 -> 0.0
maxx042 max -0.0 0 -> -0.0
maxx042 max -0.0 0 -> 0
maxx043 max -0.0 -0 -> -0.0
maxx044 max -0.0 -0.0 -> -0.0
maxx045 max -0.0 0.0 -> -0.0
maxx045 max -0.0 0.0 -> 0.0
maxx046 max -0E1 0E2 -> -0E+1
maxx047 max 0E2 0E1 -> 0E+2
maxx048 max 0E1 0E2 -> 0E+1
maxx049 max -0E3 -0E2 -> -0E+3
maxx050 max -0E1 0E1 -> 0E+1
maxx051 max -0E2 0E2 -> 0E+2
maxx052 max -0E2 0E1 -> 0E+1
maxx053 max -0E1 0E2 -> 0E+2
maxx054 max 0E1 -0E1 -> 0E+1
maxx055 max 0E2 -0E2 -> 0E+2
maxx056 max 0E2 -0E1 -> 0E+2
maxx057 max 0E1 -0E2 -> 0E+1
maxx058 max 0E1 0E1 -> 0E+1
maxx059 max 0E2 0E2 -> 0E+2
maxx060 max 0E2 0E1 -> 0E+2
maxx061 max 0E1 0E2 -> 0E+2
maxx062 max -0E1 -0E1 -> -0E+1
maxx063 max -0E2 -0E2 -> -0E+2
maxx064 max -0E2 -0E1 -> -0E+1
maxx065 max -0E1 -0E2 -> -0E+1
-- Specials
precision: 9
@ -115,23 +127,24 @@ maxx133 max 1 -Inf -> 1
maxx134 max 1000 -Inf -> 1000
maxx135 max Inf -Inf -> Infinity
maxx141 max NaN -Inf -> NaN
maxx142 max NaN -1000 -> NaN
maxx143 max NaN -1 -> NaN
maxx144 max NaN -0 -> NaN
maxx145 max NaN 0 -> NaN
maxx146 max NaN 1 -> NaN
maxx147 max NaN 1000 -> NaN
maxx148 max NaN Inf -> NaN
-- 2004.08.02 754r chooses number over NaN in mixed cases
maxx141 max NaN -Inf -> -Infinity
maxx142 max NaN -1000 -> -1000
maxx143 max NaN -1 -> -1
maxx144 max NaN -0 -> -0
maxx145 max NaN 0 -> 0
maxx146 max NaN 1 -> 1
maxx147 max NaN 1000 -> 1000
maxx148 max NaN Inf -> Infinity
maxx149 max NaN NaN -> NaN
maxx150 max -Inf NaN -> NaN
maxx151 max -1000 NaN -> NaN
maxx152 max -1 NaN -> NaN
maxx153 max -0 NaN -> NaN
maxx154 max 0 NaN -> NaN
maxx155 max 1 NaN -> NaN
maxx156 max 1000 NaN -> NaN
maxx157 max Inf NaN -> NaN
maxx150 max -Inf NaN -> -Infinity
maxx151 max -1000 NaN -> -1000
maxx152 max -1 NaN -> -1
maxx153 max -0 NaN -> -0
maxx154 max 0 NaN -> 0
maxx155 max 1 NaN -> 1
maxx156 max 1000 NaN -> 1000
maxx157 max Inf NaN -> Infinity
maxx161 max sNaN -Inf -> NaN Invalid_operation
maxx162 max sNaN -1000 -> NaN Invalid_operation
@ -154,13 +167,18 @@ maxx178 max Inf sNaN -> NaN Invalid_operation
maxx179 max NaN sNaN -> NaN Invalid_operation
-- propagating NaNs
maxx181 max NaN9 -Inf -> NaN9
maxx182 max NaN8 9 -> NaN8
maxx183 max -NaN7 Inf -> -NaN7
maxx184 max NaN6 NaN5 -> NaN6
maxx185 max -Inf NaN4 -> NaN4
maxx186 max -9 -NaN3 -> -NaN3
maxx187 max Inf NaN2 -> NaN2
maxx181 max NaN9 -Inf -> -Infinity
maxx182 max NaN8 9 -> 9
maxx183 max -NaN7 Inf -> Infinity
maxx184 max -NaN1 NaN11 -> -NaN1
maxx185 max NaN2 NaN12 -> NaN2
maxx186 max -NaN13 -NaN7 -> -NaN13
maxx187 max NaN14 -NaN5 -> NaN14
maxx188 max -Inf NaN4 -> -Infinity
maxx189 max -9 -NaN3 -> -9
maxx190 max Inf NaN2 -> Infinity
maxx191 max sNaN99 -Inf -> NaN99 Invalid_operation
maxx192 max sNaN98 -1 -> NaN98 Invalid_operation
@ -218,8 +236,9 @@ maxx238 max 1 -1234567896 -> 1
-- from examples
maxx280 max '3' '2' -> '3'
maxx281 max '-10' '3' -> '3'
maxx282 max '1.0' '1' -> '1.0'
maxx282 max '1.0' '1' -> '1'
maxx283 max '1' '1.0' -> '1'
maxx284 max '7' 'NaN' -> '7'
-- overflow and underflow tests ...
maxExponent: 999999999
@ -255,42 +274,99 @@ maxx356 max 1e-777777777 -1e-411111111 -> 1E-777777777
maxx357 max -1e-777777777 1e-411111111 -> 1E-411111111
maxx358 max -1e-777777777 -1e-411111111 -> -1E-777777777
-- expanded list from min/max 754r purple prose
-- [explicit tests for exponent ordering]
maxx401 max Inf 1.1 -> Infinity
maxx402 max 1.1 1 -> 1.1
maxx403 max 1 1.0 -> 1
maxx404 max 1.0 0.1 -> 1.0
maxx405 max 0.1 0.10 -> 0.1
maxx406 max 0.10 0.100 -> 0.10
maxx407 max 0.10 0 -> 0.10
maxx408 max 0 0.0 -> 0
maxx409 max 0.0 -0 -> 0.0
maxx410 max 0.0 -0.0 -> 0.0
maxx411 max 0.00 -0.0 -> 0.00
maxx412 max 0.0 -0.00 -> 0.0
maxx413 max 0 -0.0 -> 0
maxx414 max 0 -0 -> 0
maxx415 max -0.0 -0 -> -0.0
maxx416 max -0 -0.100 -> -0
maxx417 max -0.100 -0.10 -> -0.100
maxx418 max -0.10 -0.1 -> -0.10
maxx419 max -0.1 -1.0 -> -0.1
maxx420 max -1.0 -1 -> -1.0
maxx421 max -1 -1.1 -> -1
maxx423 max -1.1 -Inf -> -1.1
-- same with operands reversed
maxx431 max 1.1 Inf -> Infinity
maxx432 max 1 1.1 -> 1.1
maxx433 max 1.0 1 -> 1
maxx434 max 0.1 1.0 -> 1.0
maxx435 max 0.10 0.1 -> 0.1
maxx436 max 0.100 0.10 -> 0.10
maxx437 max 0 0.10 -> 0.10
maxx438 max 0.0 0 -> 0
maxx439 max -0 0.0 -> 0.0
maxx440 max -0.0 0.0 -> 0.0
maxx441 max -0.0 0.00 -> 0.00
maxx442 max -0.00 0.0 -> 0.0
maxx443 max -0.0 0 -> 0
maxx444 max -0 0 -> 0
maxx445 max -0 -0.0 -> -0.0
maxx446 max -0.100 -0 -> -0
maxx447 max -0.10 -0.100 -> -0.100
maxx448 max -0.1 -0.10 -> -0.10
maxx449 max -1.0 -0.1 -> -0.1
maxx450 max -1 -1.0 -> -1.0
maxx451 max -1.1 -1 -> -1
maxx453 max -Inf -1.1 -> -1.1
-- largies
maxx460 max 1000 1E+3 -> 1E+3
maxx461 max 1E+3 1000 -> 1E+3
maxx462 max 1000 -1E+3 -> 1000
maxx463 max 1E+3 -1000 -> 1E+3
maxx464 max -1000 1E+3 -> 1E+3
maxx465 max -1E+3 1000 -> 1000
maxx466 max -1000 -1E+3 -> -1000
maxx467 max -1E+3 -1000 -> -1000
-- overflow tests
maxexponent: 999999999
minexponent: -999999999
precision: 3
maxx400 max 9.999E+999999999 0 -> Infinity Inexact Overflow Rounded
maxx401 max -9.999E+999999999 0 -> 0
maxx500 max 9.999E+999999999 0 -> Infinity Inexact Overflow Rounded
maxx501 max -9.999E+999999999 0 -> 0
-- subnormals and underflow
precision: 3
maxexponent: 999
minexponent: -999
maxx410 max 1.00E-999 0 -> 1.00E-999
maxx411 max 0.1E-999 0 -> 1E-1000 Subnormal
maxx412 max 0.10E-999 0 -> 1.0E-1000 Subnormal
maxx413 max 0.100E-999 0 -> 1.0E-1000 Subnormal Rounded
maxx414 max 0.01E-999 0 -> 1E-1001 Subnormal
maxx510 max 1.00E-999 0 -> 1.00E-999
maxx511 max 0.1E-999 0 -> 1E-1000 Subnormal
maxx512 max 0.10E-999 0 -> 1.0E-1000 Subnormal
maxx513 max 0.100E-999 0 -> 1.0E-1000 Subnormal Rounded
maxx514 max 0.01E-999 0 -> 1E-1001 Subnormal
-- next is rounded to Emin
maxx415 max 0.999E-999 0 -> 1.00E-999 Inexact Rounded Subnormal Underflow
maxx416 max 0.099E-999 0 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
maxx417 max 0.009E-999 0 -> 1E-1001 Inexact Rounded Subnormal Underflow
maxx418 max 0.001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx419 max 0.0009E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx420 max 0.0001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx515 max 0.999E-999 0 -> 1.00E-999 Inexact Rounded Subnormal Underflow
maxx516 max 0.099E-999 0 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
maxx517 max 0.009E-999 0 -> 1E-1001 Inexact Rounded Subnormal Underflow
maxx518 max 0.001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx519 max 0.0009E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx520 max 0.0001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow
maxx430 max -1.00E-999 0 -> 0
maxx431 max -0.1E-999 0 -> 0
maxx432 max -0.10E-999 0 -> 0
maxx433 max -0.100E-999 0 -> 0
maxx434 max -0.01E-999 0 -> 0
maxx435 max -0.999E-999 0 -> 0
maxx436 max -0.099E-999 0 -> 0
maxx437 max -0.009E-999 0 -> 0
maxx438 max -0.001E-999 0 -> 0
maxx439 max -0.0009E-999 0 -> 0
maxx440 max -0.0001E-999 0 -> 0
maxx530 max -1.00E-999 0 -> 0
maxx531 max -0.1E-999 0 -> 0
maxx532 max -0.10E-999 0 -> 0
maxx533 max -0.100E-999 0 -> 0
maxx534 max -0.01E-999 0 -> 0
maxx535 max -0.999E-999 0 -> 0
maxx536 max -0.099E-999 0 -> 0
maxx537 max -0.009E-999 0 -> 0
maxx538 max -0.001E-999 0 -> 0
maxx539 max -0.0009E-999 0 -> 0
maxx540 max -0.0001E-999 0 -> 0
-- Null tests
maxx900 max 10 # -> NaN Invalid_operation

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- we assume that base comparison is tested in compare.decTest, so
-- these mainly cover special cases and rounding
@ -57,26 +57,28 @@ mnmx026 min 2 2 -> 2
-- extended zeros
mnmx030 min 0 0 -> 0
mnmx031 min 0 -0 -> 0
mnmx032 min 0 -0.0 -> 0
mnmx033 min 0 0.0 -> 0
mnmx031 min 0 -0 -> -0
mnmx032 min 0 -0.0 -> -0.0
mnmx033 min 0 0.0 -> 0.0
mnmx034 min -0 0 -> -0
mnmx035 min -0 -0 -> -0
mnmx036 min -0 -0.0 -> -0
mnmx037 min -0 0.0 -> -0
mnmx038 min 0.0 0 -> 0.0
mnmx039 min 0.0 -0 -> 0.0
mnmx040 min 0.0 -0.0 -> 0.0
mnmx039 min 0.0 -0 -> -0
mnmx040 min 0.0 -0.0 -> -0.0
mnmx041 min 0.0 0.0 -> 0.0
mnmx042 min -0.0 0 -> -0.0
mnmx043 min -0.0 -0 -> -0.0
mnmx043 min -0.0 -0 -> -0
mnmx044 min -0.0 -0.0 -> -0.0
mnmx045 min -0.0 0.0 -> -0.0
mnmx046 min -0E1 0E2 -> -0E+1
mnmx047 min 0E2 0E1 -> 0E+2
mnmx048 min 0E1 0E2 -> 0E+1
mnmx049 min -0E3 -0E2 -> -0E+3
mnmx046 min 0E1 -0E1 -> -0E+1
mnmx047 min -0E1 0E2 -> -0E+1
mnmx048 min 0E2 0E1 -> 0E+1
mnmx049 min 0E1 0E2 -> 0E+1
mnmx050 min -0E3 -0E2 -> -0E+3
mnmx051 min -0E2 -0E3 -> -0E+3
-- Specials
precision: 9
@ -114,23 +116,24 @@ mnmx133 min 1 -Inf -> -Infinity
mnmx134 min 1000 -Inf -> -Infinity
mnmx135 min Inf -Inf -> -Infinity
mnmx141 min NaN -Inf -> NaN
mnmx142 min NaN -1000 -> NaN
mnmx143 min NaN -1 -> NaN
mnmx144 min NaN -0 -> NaN
mnmx145 min NaN 0 -> NaN
mnmx146 min NaN 1 -> NaN
mnmx147 min NaN 1000 -> NaN
mnmx148 min NaN Inf -> NaN
-- 2004.08.02 754r chooses number over NaN in mixed cases
mnmx141 min NaN -Inf -> -Infinity
mnmx142 min NaN -1000 -> -1000
mnmx143 min NaN -1 -> -1
mnmx144 min NaN -0 -> -0
mnmx145 min NaN 0 -> 0
mnmx146 min NaN 1 -> 1
mnmx147 min NaN 1000 -> 1000
mnmx148 min NaN Inf -> Infinity
mnmx149 min NaN NaN -> NaN
mnmx150 min -Inf NaN -> NaN
mnmx151 min -1000 NaN -> NaN
mnmx152 min -1 -NaN -> -NaN
mnmx153 min -0 NaN -> NaN
mnmx154 min 0 -NaN -> -NaN
mnmx155 min 1 NaN -> NaN
mnmx156 min 1000 NaN -> NaN
mnmx157 min Inf NaN -> NaN
mnmx150 min -Inf NaN -> -Infinity
mnmx151 min -1000 NaN -> -1000
mnmx152 min -1 -NaN -> -1
mnmx153 min -0 NaN -> -0
mnmx154 min 0 -NaN -> 0
mnmx155 min 1 NaN -> 1
mnmx156 min 1000 NaN -> 1000
mnmx157 min Inf NaN -> Infinity
mnmx161 min sNaN -Inf -> NaN Invalid_operation
mnmx162 min sNaN -1000 -> NaN Invalid_operation
@ -153,17 +156,22 @@ mnmx178 min Inf sNaN -> NaN Invalid_operation
mnmx179 min NaN sNaN -> NaN Invalid_operation
-- propagating NaNs
mnmx181 min NaN9 -Inf -> NaN9
mnmx182 min -NaN8 9990 -> -NaN8
mnmx183 min NaN71 Inf -> NaN71
mnmx184 min NaN6 NaN51 -> NaN6
mnmx185 min -Inf NaN41 -> NaN41
mnmx186 min -9999 -NaN33 -> -NaN33
mnmx187 min Inf NaN2 -> NaN2
mnmx181 min NaN9 -Inf -> -Infinity
mnmx182 min -NaN8 9990 -> 9990
mnmx183 min NaN71 Inf -> Infinity
mnmx184 min NaN1 NaN54 -> NaN1
mnmx185 min NaN22 -NaN53 -> NaN22
mnmx186 min -NaN3 NaN6 -> -NaN3
mnmx187 min -NaN44 NaN7 -> -NaN44
mnmx188 min -Inf NaN41 -> -Infinity
mnmx189 min -9999 -NaN33 -> -9999
mnmx190 min Inf NaN2 -> Infinity
mnmx191 min sNaN99 -Inf -> NaN99 Invalid_operation
mnmx192 min sNaN98 -11 -> NaN98 Invalid_operation
mnmx193 min -sNaN97 NaN -> -NaN97 Invalid_operation
mnmx193 min -sNaN97 NaN8 -> -NaN97 Invalid_operation
mnmx194 min sNaN69 sNaN94 -> NaN69 Invalid_operation
mnmx195 min NaN95 sNaN93 -> NaN93 Invalid_operation
mnmx196 min -Inf sNaN92 -> NaN92 Invalid_operation
@ -218,7 +226,8 @@ mnmx238 min 1 1234567896 -> 1
mnmx280 min '3' '2' -> '2'
mnmx281 min '-10' '3' -> '-10'
mnmx282 min '1.0' '1' -> '1.0'
mnmx283 min '1' '1.0' -> '1'
mnmx283 min '1' '1.0' -> '1.0'
mnmx284 min '7' 'NaN' -> '7'
-- overflow and underflow tests .. subnormal results [inputs] now allowed
maxExponent: 999999999
@ -254,42 +263,99 @@ mnmx356 min -1e-777777777 +1e-411111111 -> -1E-777777777
mnmx357 min +1e-777777777 -1e-411111111 -> -1E-411111111
mnmx358 min +1e-777777777 +1e-411111111 -> 1E-777777777
-- expanded list from min/max 754r purple prose
-- [explicit tests for exponent ordering]
mnmx401 min Inf 1.1 -> 1.1
mnmx402 min 1.1 1 -> 1
mnmx403 min 1 1.0 -> 1.0
mnmx404 min 1.0 0.1 -> 0.1
mnmx405 min 0.1 0.10 -> 0.10
mnmx406 min 0.10 0.100 -> 0.100
mnmx407 min 0.10 0 -> 0
mnmx408 min 0 0.0 -> 0.0
mnmx409 min 0.0 -0 -> -0
mnmx410 min 0.0 -0.0 -> -0.0
mnmx411 min 0.00 -0.0 -> -0.0
mnmx412 min 0.0 -0.00 -> -0.00
mnmx413 min 0 -0.0 -> -0.0
mnmx414 min 0 -0 -> -0
mnmx415 min -0.0 -0 -> -0
mnmx416 min -0 -0.100 -> -0.100
mnmx417 min -0.100 -0.10 -> -0.10
mnmx418 min -0.10 -0.1 -> -0.1
mnmx419 min -0.1 -1.0 -> -1.0
mnmx420 min -1.0 -1 -> -1
mnmx421 min -1 -1.1 -> -1.1
mnmx423 min -1.1 -Inf -> -Infinity
-- same with operands reversed
mnmx431 min 1.1 Inf -> 1.1
mnmx432 min 1 1.1 -> 1
mnmx433 min 1.0 1 -> 1.0
mnmx434 min 0.1 1.0 -> 0.1
mnmx435 min 0.10 0.1 -> 0.10
mnmx436 min 0.100 0.10 -> 0.100
mnmx437 min 0 0.10 -> 0
mnmx438 min 0.0 0 -> 0.0
mnmx439 min -0 0.0 -> -0
mnmx440 min -0.0 0.0 -> -0.0
mnmx441 min -0.0 0.00 -> -0.0
mnmx442 min -0.00 0.0 -> -0.00
mnmx443 min -0.0 0 -> -0.0
mnmx444 min -0 0 -> -0
mnmx445 min -0 -0.0 -> -0
mnmx446 min -0.100 -0 -> -0.100
mnmx447 min -0.10 -0.100 -> -0.10
mnmx448 min -0.1 -0.10 -> -0.1
mnmx449 min -1.0 -0.1 -> -1.0
mnmx450 min -1 -1.0 -> -1
mnmx451 min -1.1 -1 -> -1.1
mnmx453 min -Inf -1.1 -> -Infinity
-- largies
mnmx460 min 1000 1E+3 -> 1000
mnmx461 min 1E+3 1000 -> 1000
mnmx462 min 1000 -1E+3 -> -1E+3
mnmx463 min 1E+3 -1000 -> -1000
mnmx464 min -1000 1E+3 -> -1000
mnmx465 min -1E+3 1000 -> -1E+3
mnmx466 min -1000 -1E+3 -> -1E+3
mnmx467 min -1E+3 -1000 -> -1E+3
-- overflow tests
maxexponent: 999999999
minexponent: -999999999
precision: 3
mnmx400 min 9.999E+999999999 0 -> 0
mnmx401 min -9.999E+999999999 0 -> -Infinity Inexact Overflow Rounded
mnmx500 min 9.999E+999999999 0 -> 0
mnmx501 min -9.999E+999999999 0 -> -Infinity Inexact Overflow Rounded
-- subnormals and underflow
precision: 3
maxexponent: 999
minexponent: -999
mnmx410 min 1.00E-999 0 -> 0
mnmx411 min 0.1E-999 0 -> 0
mnmx412 min 0.10E-999 0 -> 0
mnmx413 min 0.100E-999 0 -> 0
mnmx414 min 0.01E-999 0 -> 0
mnmx415 min 0.999E-999 0 -> 0
mnmx416 min 0.099E-999 0 -> 0
mnmx417 min 0.009E-999 0 -> 0
mnmx418 min 0.001E-999 0 -> 0
mnmx419 min 0.0009E-999 0 -> 0
mnmx420 min 0.0001E-999 0 -> 0
mnmx510 min 1.00E-999 0 -> 0
mnmx511 min 0.1E-999 0 -> 0
mnmx512 min 0.10E-999 0 -> 0
mnmx513 min 0.100E-999 0 -> 0
mnmx514 min 0.01E-999 0 -> 0
mnmx515 min 0.999E-999 0 -> 0
mnmx516 min 0.099E-999 0 -> 0
mnmx517 min 0.009E-999 0 -> 0
mnmx518 min 0.001E-999 0 -> 0
mnmx519 min 0.0009E-999 0 -> 0
mnmx520 min 0.0001E-999 0 -> 0
mnmx430 min -1.00E-999 0 -> -1.00E-999
mnmx431 min -0.1E-999 0 -> -1E-1000 Subnormal
mnmx432 min -0.10E-999 0 -> -1.0E-1000 Subnormal
mnmx433 min -0.100E-999 0 -> -1.0E-1000 Subnormal Rounded
mnmx434 min -0.01E-999 0 -> -1E-1001 Subnormal
mnmx530 min -1.00E-999 0 -> -1.00E-999
mnmx531 min -0.1E-999 0 -> -1E-1000 Subnormal
mnmx532 min -0.10E-999 0 -> -1.0E-1000 Subnormal
mnmx533 min -0.100E-999 0 -> -1.0E-1000 Subnormal Rounded
mnmx534 min -0.01E-999 0 -> -1E-1001 Subnormal
-- next is rounded to Emin
mnmx435 min -0.999E-999 0 -> -1.00E-999 Inexact Rounded Subnormal Underflow
mnmx436 min -0.099E-999 0 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
mnmx437 min -0.009E-999 0 -> -1E-1001 Inexact Rounded Subnormal Underflow
mnmx438 min -0.001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
mnmx439 min -0.0009E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
mnmx440 min -0.0001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
mnmx535 min -0.999E-999 0 -> -1.00E-999 Inexact Rounded Subnormal Underflow
mnmx536 min -0.099E-999 0 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
mnmx537 min -0.009E-999 0 -> -1E-1001 Inexact Rounded Subnormal Underflow
mnmx538 min -0.001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
mnmx539 min -0.0009E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
mnmx540 min -0.0001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow
-- Null tests

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of tests primarily tests the existence of the operator.
-- Subtraction, rounding, and more overflows are tested elsewhere.

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of tests primarily tests the existence of the operator.
-- Addition and rounding, and most overflows, are tested elsewhere.

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of testcases tests raising numbers to an integer power only.
-- If arbitrary powers were supported, 1 ulp differences would be

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- Most of the tests here assume a "regular pattern", where the
-- sign and coefficient are +1.

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- These testcases test calculations at precisions 31, 32, and 33, to
-- exercise the boundaries around 2**5

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
maxexponent: 999999999

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -1,6 +1,6 @@
------------------------------------------------------------------------
-- rescale.decTest -- decimal rescale operation --
-- Copyright (c) IBM Corporation, 1981, 2003. All rights reserved. --
-- Copyright (c) IBM Corporation, 1981, 2004. All rights reserved. --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases" --
-- at http://www2.hursley.ibm.com/decimal for the description of --
@ -17,10 +17,12 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.35
version: 2.39
-- [obsolete] Quantize.decTest has the improved version
-- 2004.03.15 Underflow for quantize is suppressed
extended: 1
precision: 9
rounding: half_up
@ -498,12 +500,12 @@ resx553 rescale 1E-999 -1006 -> NaN Invalid_operation
resx554 rescale 1E-999 -1007 -> NaN Invalid_operation
-- related subnormal rounding
resx555 rescale 1.666666E-999 -1005 -> 1.666666E-999
resx556 rescale 1.666666E-1000 -1005 -> 1.66667E-1000 Underflow Subnormal Inexact Rounded
resx557 rescale 1.666666E-1001 -1005 -> 1.6667E-1001 Underflow Subnormal Inexact Rounded
resx558 rescale 1.666666E-1002 -1005 -> 1.667E-1002 Underflow Subnormal Inexact Rounded
resx559 rescale 1.666666E-1003 -1005 -> 1.67E-1003 Underflow Subnormal Inexact Rounded
resx560 rescale 1.666666E-1004 -1005 -> 1.7E-1004 Underflow Subnormal Inexact Rounded
resx561 rescale 1.666666E-1005 -1005 -> 2E-1005 Underflow Subnormal Inexact Rounded
resx556 rescale 1.666666E-1000 -1005 -> 1.66667E-1000 Subnormal Inexact Rounded
resx557 rescale 1.666666E-1001 -1005 -> 1.6667E-1001 Subnormal Inexact Rounded
resx558 rescale 1.666666E-1002 -1005 -> 1.667E-1002 Subnormal Inexact Rounded
resx559 rescale 1.666666E-1003 -1005 -> 1.67E-1003 Subnormal Inexact Rounded
resx560 rescale 1.666666E-1004 -1005 -> 1.7E-1004 Subnormal Inexact Rounded
resx561 rescale 1.666666E-1005 -1005 -> 2E-1005 Subnormal Inexact Rounded
resx562 rescale 1.666666E-1006 -1005 -> 0E-1005 Inexact Rounded
resx563 rescale 1.666666E-1007 -1005 -> 0E-1005 Inexact Rounded
@ -626,9 +628,9 @@ resx713 rescale 0.100E-999 -1000 -> 1E-1000 Subnormal Rounded
resx714 rescale 0.01E-999 -1001 -> 1E-1001 Subnormal
-- next is rounded to Emin
resx715 rescale 0.999E-999 -999 -> 1E-999 Inexact Rounded
resx716 rescale 0.099E-999 -1000 -> 1E-1000 Inexact Rounded Subnormal Underflow
resx716 rescale 0.099E-999 -1000 -> 1E-1000 Inexact Rounded Subnormal
resx717 rescale 0.009E-999 -1001 -> 1E-1001 Inexact Rounded Subnormal Underflow
resx717 rescale 0.009E-999 -1001 -> 1E-1001 Inexact Rounded Subnormal
resx718 rescale 0.001E-999 -1001 -> 0E-1001 Inexact Rounded
resx719 rescale 0.0009E-999 -1001 -> 0E-1001 Inexact Rounded
resx720 rescale 0.0001E-999 -1001 -> 0E-1001 Inexact Rounded
@ -652,7 +654,7 @@ resx743 rescale -0.100E-999 -1000 -> -1E-1000 Subnormal Rounded
resx744 rescale -0.01E-999 -1000 -> -0E-1000 Inexact Rounded
-- next is rounded to Emin
resx745 rescale -0.999E-999 -1000 -> -1.0E-999 Inexact Rounded
resx746 rescale -0.099E-999 -1000 -> -1E-1000 Inexact Rounded Subnormal Underflow
resx746 rescale -0.099E-999 -1000 -> -1E-1000 Inexact Rounded Subnormal
resx747 rescale -0.009E-999 -1000 -> -0E-1000 Inexact Rounded
resx748 rescale -0.001E-999 -1000 -> -0E-1000 Inexact Rounded
resx749 rescale -0.0001E-999 -1000 -> -0E-1000 Inexact Rounded
@ -664,8 +666,8 @@ resx753 rescale -0.100E-999 -1001 -> -1.0E-1000 Subnormal Rounded
resx754 rescale -0.01E-999 -1001 -> -1E-1001 Subnormal
-- next is rounded to Emin
resx755 rescale -0.999E-999 -1001 -> -1.00E-999 Inexact Rounded
resx756 rescale -0.099E-999 -1001 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
resx757 rescale -0.009E-999 -1001 -> -1E-1001 Inexact Rounded Subnormal Underflow
resx756 rescale -0.099E-999 -1001 -> -1.0E-1000 Inexact Rounded Subnormal
resx757 rescale -0.009E-999 -1001 -> -1E-1001 Inexact Rounded Subnormal
resx758 rescale -0.001E-999 -1001 -> -0E-1001 Inexact Rounded
resx759 rescale -0.0001E-999 -1001 -> -0E-1001 Inexact Rounded

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- These tests require that implementations take account of residues in
-- order to get correct results for some rounding modes. Rather than

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
extended: 1
precision: 9

View file

@ -1,6 +1,6 @@
------------------------------------------------------------------------
-- testall.decTest -- run all general decimal arithmetic testcases --
-- Copyright (c) IBM Corporation, 1981, 2003. All rights reserved. --
-- Copyright (c) IBM Corporation, 1981, 2004. All rights reserved. --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases" --
-- at http://www2.hursley.ibm.com/decimal for the description of --
@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.35
version: 2.39
-- core tests (using Extended: 1) --------------------------------------
dectest: base
@ -54,5 +54,5 @@ dectest: decimal128
-- General 31->33-digit boundary tests
dectest: randomBound32
dectest: randombound32

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.38
version: 2.39
-- This set of tests tests the extended specification 'round-to-integral
-- value' operation (from IEEE 854, later modified in 754r).

View file

@ -17,7 +17,7 @@
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.35
version: 2.39
extended: 1
precision: 9