You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			358 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			358 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
------------------------------------------------------------------------
 | 
						|
-- ddCanonical.decTest -- test decDouble canonical results            --
 | 
						|
-- 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
 | 
						|
 | 
						|
-- This file tests that copy operations leave uncanonical operands
 | 
						|
-- unchanged, and vice versa
 | 
						|
-- All operands and results are decDoubles.
 | 
						|
precision:   16
 | 
						|
maxExponent: 384
 | 
						|
minExponent: -383
 | 
						|
extended:    1
 | 
						|
clamp:       1
 | 
						|
rounding:    half_even
 | 
						|
 | 
						|
-- Uncanonical declets are: abc, where:
 | 
						|
--   a=1,2,3
 | 
						|
--   b=6,7,e,f
 | 
						|
--   c=e,f
 | 
						|
 | 
						|
-- assert some standard (canonical) values; this tests that FromString
 | 
						|
-- produces canonical results (many more in decimalNN)
 | 
						|
ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
 | 
						|
ddcan002 apply 0                      -> #2238000000000000
 | 
						|
ddcan003 apply 1                      -> #2238000000000001
 | 
						|
ddcan004 apply -1                     -> #a238000000000001
 | 
						|
ddcan005 apply Infinity               -> #7800000000000000
 | 
						|
ddcan006 apply -Infinity              -> #f800000000000000
 | 
						|
ddcan007 apply -NaN                   -> #fc00000000000000
 | 
						|
ddcan008 apply -sNaN                  -> #fe00000000000000
 | 
						|
ddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff
 | 
						|
ddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff
 | 
						|
decan011 apply  9999999999999999      -> #6e38ff3fcff3fcff
 | 
						|
ddcan012 apply 7.50                   -> #22300000000003d0
 | 
						|
ddcan013 apply 9.99                   -> #22300000000000ff
 | 
						|
 | 
						|
-- Base tests for canonical encodings (individual operator
 | 
						|
-- propagation is tested later)
 | 
						|
 | 
						|
-- Finites: declets in coefficient
 | 
						|
ddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
 | 
						|
ddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
 | 
						|
ddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff
 | 
						|
ddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff
 | 
						|
 | 
						|
-- NaN: declets in payload
 | 
						|
ddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff
 | 
						|
ddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
 | 
						|
-- NaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
ddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff
 | 
						|
 | 
						|
-- sNaN: declets in payload
 | 
						|
ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff
 | 
						|
ddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
 | 
						|
-- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
ddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff
 | 
						|
 | 
						|
-- Inf: exponent continuation bits
 | 
						|
ddcan140 canonical  #7800000000000000  -> #7800000000000000
 | 
						|
ddcan141 canonical  #7900000000000000  -> #7800000000000000
 | 
						|
ddcan142 canonical  #7a00000000000000  -> #7800000000000000
 | 
						|
ddcan143 canonical  #7880000000000000  -> #7800000000000000
 | 
						|
ddcan144 canonical  #7840000000000000  -> #7800000000000000
 | 
						|
ddcan145 canonical  #7820000000000000  -> #7800000000000000
 | 
						|
ddcan146 canonical  #7810000000000000  -> #7800000000000000
 | 
						|
ddcan147 canonical  #7808000000000000  -> #7800000000000000
 | 
						|
ddcan148 canonical  #7804000000000000  -> #7800000000000000
 | 
						|
 | 
						|
-- Inf: coefficient continuation bits (first, last, and a few others)
 | 
						|
ddcan150 canonical  #7800000000000000  -> #7800000000000000
 | 
						|
ddcan151 canonical  #7802000000000000  -> #7800000000000000
 | 
						|
ddcan152 canonical  #7800000000000001  -> #7800000000000000
 | 
						|
ddcan153 canonical  #7801000000000000  -> #7800000000000000
 | 
						|
ddcan154 canonical  #7800200000000000  -> #7800000000000000
 | 
						|
ddcan155 canonical  #7800080000000000  -> #7800000000000000
 | 
						|
ddcan156 canonical  #7800002000000000  -> #7800000000000000
 | 
						|
ddcan157 canonical  #7800000400000000  -> #7800000000000000
 | 
						|
ddcan158 canonical  #7800000040000000  -> #7800000000000000
 | 
						|
ddcan159 canonical  #7800000008000000  -> #7800000000000000
 | 
						|
ddcan160 canonical  #7800000000400000  -> #7800000000000000
 | 
						|
ddcan161 canonical  #7800000000020000  -> #7800000000000000
 | 
						|
ddcan162 canonical  #7800000000008000  -> #7800000000000000
 | 
						|
ddcan163 canonical  #7800000000000200  -> #7800000000000000
 | 
						|
ddcan164 canonical  #7800000000000040  -> #7800000000000000
 | 
						|
ddcan165 canonical  #7800000000000008  -> #7800000000000000
 | 
						|
 | 
						|
 | 
						|
-- Now the operators -- trying to check paths that might fail to
 | 
						|
-- canonicalize propagated operands
 | 
						|
 | 
						|
----- Add:
 | 
						|
-- Finites: neutral 0
 | 
						|
ddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
 | 
						|
ddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
 | 
						|
-- tiny zero
 | 
						|
ddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded
 | 
						|
ddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
 | 
						|
-- tiny non zero
 | 
						|
ddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded
 | 
						|
ddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
 | 
						|
-- NaN: declets in payload
 | 
						|
ddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
 | 
						|
-- NaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
 | 
						|
-- sNaN: declets in payload
 | 
						|
ddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- Inf: exponent continuation bits
 | 
						|
ddcan220 add  0  #7880000000000000      -> #7800000000000000
 | 
						|
ddcan221 add     #7880000000000000  0   -> #7800000000000000
 | 
						|
-- Inf: coefficient continuation bits
 | 
						|
ddcan222 add  0  #7802000000000000     -> #7800000000000000
 | 
						|
ddcan223 add     #7802000000000000  0  -> #7800000000000000
 | 
						|
ddcan224 add  0  #7800000000000001     -> #7800000000000000
 | 
						|
ddcan225 add     #7800000000000001  0  -> #7800000000000000
 | 
						|
ddcan226 add  0  #7800002000000000     -> #7800000000000000
 | 
						|
ddcan227 add     #7800002000000000  0  -> #7800000000000000
 | 
						|
 | 
						|
----- Class: [does not return encoded]
 | 
						|
 | 
						|
----- Compare:
 | 
						|
ddcan231 compare -Inf   1     ->  #a238000000000001
 | 
						|
ddcan232 compare -Inf  -Inf   ->  #2238000000000000
 | 
						|
ddcan233 compare  1    -Inf   ->  #2238000000000001
 | 
						|
ddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff
 | 
						|
ddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
 | 
						|
 | 
						|
----- CompareSig:
 | 
						|
ddcan241 comparesig -Inf   1     ->  #a238000000000001
 | 
						|
ddcan242 comparesig -Inf  -Inf   ->  #2238000000000000
 | 
						|
ddcan243 comparesig  1    -Inf   ->  #2238000000000001
 | 
						|
ddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
 | 
						|
ddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
 | 
						|
 | 
						|
----- Copy: [does not usually canonicalize]
 | 
						|
-- finites
 | 
						|
ddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff
 | 
						|
ddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff
 | 
						|
-- NaNs
 | 
						|
ddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff
 | 
						|
ddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff
 | 
						|
ddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff
 | 
						|
ddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff
 | 
						|
-- sNaN
 | 
						|
ddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff
 | 
						|
ddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff
 | 
						|
-- Inf
 | 
						|
ddcan258 copy  #7a00000000000000  -> #7a00000000000000
 | 
						|
ddcan259 copy  #7800200000000000  -> #7800200000000000
 | 
						|
 | 
						|
----- CopyAbs: [does not usually canonicalize]
 | 
						|
-- finites
 | 
						|
ddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff
 | 
						|
ddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff
 | 
						|
-- NaNs
 | 
						|
ddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff
 | 
						|
ddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff
 | 
						|
ddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff
 | 
						|
ddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff
 | 
						|
-- sNaN
 | 
						|
ddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff
 | 
						|
ddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff
 | 
						|
-- Inf
 | 
						|
ddcan268 copyabs  #fa00000000000000  -> #7a00000000000000
 | 
						|
ddcan269 copyabs  #f800200000000000  -> #7800200000000000
 | 
						|
 | 
						|
----- CopyNegate: [does not usually canonicalize]
 | 
						|
-- finites
 | 
						|
ddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff
 | 
						|
ddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff
 | 
						|
-- NaNs
 | 
						|
ddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff
 | 
						|
ddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff
 | 
						|
ddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff
 | 
						|
ddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff
 | 
						|
-- sNaN
 | 
						|
ddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff
 | 
						|
ddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff
 | 
						|
-- Inf
 | 
						|
ddcan278 copynegate  #7a00000000000000  -> #fa00000000000000
 | 
						|
ddcan279 copynegate  #7800200000000000  -> #f800200000000000
 | 
						|
 | 
						|
----- CopySign: [does not usually canonicalize]
 | 
						|
-- finites
 | 
						|
ddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff
 | 
						|
ddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff
 | 
						|
-- NaNs
 | 
						|
ddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff
 | 
						|
ddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff
 | 
						|
ddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff
 | 
						|
ddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff
 | 
						|
-- sNaN
 | 
						|
ddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff
 | 
						|
ddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff
 | 
						|
-- Inf
 | 
						|
ddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000
 | 
						|
ddcan289 copysign  #7800200000000000  1 -> #7800200000000000
 | 
						|
 | 
						|
----- Multiply:
 | 
						|
-- Finites: neutral 0
 | 
						|
ddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
 | 
						|
ddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff
 | 
						|
-- negative
 | 
						|
ddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
 | 
						|
ddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff
 | 
						|
-- NaN: declets in payload
 | 
						|
ddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
-- NaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
-- sNaN: declets in payload
 | 
						|
ddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- Inf: exponent continuation bits
 | 
						|
ddcan320 multiply  1  #7880000000000000      -> #7800000000000000
 | 
						|
ddcan321 multiply     #7880000000000000  1   -> #7800000000000000
 | 
						|
-- Inf: coefficient continuation bits
 | 
						|
ddcan322 multiply  1  #7802000000000000     -> #7800000000000000
 | 
						|
ddcan323 multiply     #7802000000000000  1  -> #7800000000000000
 | 
						|
ddcan324 multiply  1  #7800000000000001     -> #7800000000000000
 | 
						|
ddcan325 multiply     #7800000000000001  1  -> #7800000000000000
 | 
						|
ddcan326 multiply  1  #7800002000000000     -> #7800000000000000
 | 
						|
ddcan327 multiply     #7800002000000000  1  -> #7800000000000000
 | 
						|
 | 
						|
----- Quantize:
 | 
						|
ddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff
 | 
						|
ddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff
 | 
						|
ddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000
 | 
						|
ddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000
 | 
						|
ddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
ddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
ddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
ddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
 | 
						|
ddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
 | 
						|
----- Subtract:
 | 
						|
-- Finites: neutral 0
 | 
						|
ddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
 | 
						|
ddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
 | 
						|
-- tiny zero
 | 
						|
ddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded
 | 
						|
ddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
 | 
						|
-- tiny non zero
 | 
						|
ddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded
 | 
						|
ddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
 | 
						|
-- NaN: declets in payload
 | 
						|
ddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
 | 
						|
-- NaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
 | 
						|
ddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
 | 
						|
-- sNaN: declets in payload
 | 
						|
ddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
						|
ddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- Inf: exponent continuation bits
 | 
						|
ddcan520 subtract  0  #7880000000000000      -> #f800000000000000
 | 
						|
ddcan521 subtract     #7880000000000000  0   -> #7800000000000000
 | 
						|
-- Inf: coefficient continuation bits
 | 
						|
ddcan522 subtract  0  #7802000000000000     -> #f800000000000000
 | 
						|
ddcan523 subtract     #7802000000000000  0  -> #7800000000000000
 | 
						|
ddcan524 subtract  0  #7800000000000001     -> #f800000000000000
 | 
						|
ddcan525 subtract     #7800000000000001  0  -> #7800000000000000
 | 
						|
ddcan526 subtract  0  #7800002000000000     -> #f800000000000000
 | 
						|
ddcan527 subtract     #7800002000000000  0  -> #7800000000000000
 | 
						|
 | 
						|
----- ToIntegral:
 | 
						|
ddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff
 | 
						|
ddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff
 | 
						|
ddcan603 tointegralx  #7880000000000000 -> #7800000000000000
 | 
						|
ddcan604 tointegralx  #7802000000000000 -> #7800000000000000
 | 
						|
ddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
 | 
						|
ddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
 | 
						|
ddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
 | 
						|
ddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
 | 
						|
ddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
ddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
 | 
						|
-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
 | 
						|
ddcan618 tointegralx  #2238000000000fff -> #2238000000000cff
 | 
						|
ddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded
 | 
						|
ddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded
 | 
						|
ddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded
 | 
						|
ddcan622 tointegralx  #a238000000000fff -> #a238000000000cff
 | 
						|
ddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded
 | 
						|
ddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded
 | 
						|
ddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded
 | 
						|
 | 
						|
 | 
						|
 |