Issue #3449: Update decimal module to use most recent specification
(v. 1.68) and tests (v. 2.58) from IBM.
diff --git a/Lib/test/decimaltestdata/ddMultiply.decTest b/Lib/test/decimaltestdata/ddMultiply.decTest
index f506ea2..09097d2 100644
--- a/Lib/test/decimaltestdata/ddMultiply.decTest
+++ b/Lib/test/decimaltestdata/ddMultiply.decTest
@@ -1,6 +1,6 @@
 ------------------------------------------------------------------------

 -- ddMultiply.decTest -- decDouble multiplication                     --

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

+-- 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      --

@@ -17,7 +17,7 @@
 --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

 --   mfc@uk.ibm.com                                                   --

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

-version: 2.57

+version: 2.58

 

 -- This set of tests are for decDoubles only; all arguments are

 -- representable in a decDouble

@@ -167,6 +167,8 @@
 -- tryzeros cases

 ddmul504  multiply  0E-260 1000E-260  -> 0E-398 Clamped

 ddmul505  multiply  100E+260 0E+260   -> 0E+369 Clamped

+-- 65K-1 case

+ddmul506 multiply 77.1 850 -> 65535.0

 

 -- mixed with zeros

 ddmul541 multiply  0    -1     -> -0

@@ -441,18 +443,28 @@
 --                                                        1 234567890123456

 ddmul900 multiply  0.3000000000E-191 0.3000000000E-191 -> 9.00000000000000E-384 Subnormal Rounded

 ddmul901 multiply  0.3000000001E-191 0.3000000001E-191 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded

-ddmul902 multiply  9.999999999999999E-383  0.0999999999999         -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded

-ddmul903 multiply  9.999999999999999E-383  0.09999999999999        -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded

-ddmul904 multiply  9.999999999999999E-383  0.099999999999999       -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded

-ddmul905 multiply  9.999999999999999E-383  0.0999999999999999      -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded

--- prove operands are exact

-ddmul906 multiply  9.999999999999999E-383  1                       -> 9.999999999999999E-383

-ddmul907 multiply                       1  0.09999999999999999     -> 0.09999999999999999

--- the next rounds to Nmin

-ddmul908 multiply  9.999999999999999E-383  0.09999999999999999     -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

+ddmul902 multiply  9.999999999999999E-383  0.0999999999999    -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded

+ddmul903 multiply  9.999999999999999E-383  0.09999999999999   -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded

+ddmul904 multiply  9.999999999999999E-383  0.099999999999999  -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded

+ddmul905 multiply  9.999999999999999E-383  0.0999999999999999 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded

+-- The next rounds to Nmin (b**emin); this is the distinguishing case

+-- for detecting tininess (before or after rounding) -- if after

+-- rounding then the result would be the same, but the Underflow flag

+-- would not be set

+ddmul906 multiply  9.999999999999999E-383  0.09999999999999999     -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

+-- prove those operands were exact

+ddmul907 multiply  9.999999999999999E-383  1                       -> 9.999999999999999E-383

+ddmul908 multiply                       1  0.09999999999999999     -> 0.09999999999999999

+

+-- reducing tiniest

+ddmul910 multiply 1e-398 0.99 -> 1E-398 Subnormal Inexact Rounded Underflow

+ddmul911 multiply 1e-398 0.75 -> 1E-398 Subnormal Inexact Rounded Underflow

+ddmul912 multiply 1e-398 0.5  -> 0E-398 Subnormal Inexact Rounded Underflow Clamped

+ddmul913 multiply 1e-398 0.25 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped

+ddmul914 multiply 1e-398 0.01 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped

 

 -- hugest

-ddmul909 multiply  9999999999999999 9999999999999999 -> 9.999999999999998E+31 Inexact Rounded

+ddmul920 multiply  9999999999999999 9999999999999999 -> 9.999999999999998E+31 Inexact Rounded

 

 -- power-of-ten edge cases

 ddmul1001 multiply  1      10               -> 10

@@ -535,12 +547,7 @@
 ddmul1098 multiply  10000   99999999999     ->  999999999990000

 

 

-

-

 -- Null tests

 ddmul9990 multiply 10  # -> NaN Invalid_operation

 ddmul9991 multiply  # 10 -> NaN Invalid_operation

 

-

-

-