home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / lib / test / decimaltestdata / decimal32.decTest < prev    next >
Text File  |  2004-08-17  |  17KB  |  386 lines

  1. ------------------------------------------------------------------------
  2. -- decimal32.decTest -- decimal four-byte format testcases            --
  3. -- Copyright (c) IBM Corporation, 2000, 2003.  All rights reserved.   --
  4. ------------------------------------------------------------------------
  5. -- Please see the document "General Decimal Arithmetic Testcases"     --
  6. -- at http://www2.hursley.ibm.com/decimal for the description of      --
  7. -- these testcases.                                                   --
  8. --                                                                    --
  9. -- These testcases are experimental ('beta' versions), and they       --
  10. -- may contain errors.  They are offered on an as-is basis.  In       --
  11. -- particular, achieving the same results as the tests here is not    --
  12. -- a guarantee that an implementation complies with any Standard      --
  13. -- or specification.  The tests are not exhaustive.                   --
  14. --                                                                    --
  15. -- Please send comments, suggestions, and corrections to the author:  --
  16. --   Mike Cowlishaw, IBM Fellow                                       --
  17. --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
  18. --   mfc@uk.ibm.com                                                   --
  19. ------------------------------------------------------------------------
  20. version: 2.39
  21.  
  22. -- This set of tests is for the four-byte concrete representation.
  23. -- Its characteristics are:
  24. --
  25. --  1 bit  sign
  26. --  5 bits combination field
  27. --  6 bits exponent continuation
  28. -- 20 bits coefficient continuation
  29. --
  30. -- Total exponent length 8 bits
  31. -- Total coefficient length 24 bits (7 digits)
  32. --
  33. -- Elimit =  191 (maximum encoded exponent)
  34. -- Emax   =   96 (largest exponent value)
  35. -- Emin   =  -95 (smallest exponent value)
  36. -- bias   =  101 (subtracted from encoded exponent) = -Etiny
  37.  
  38. extended:    1
  39. precision:   7
  40. rounding:    half_up
  41. maxExponent: 96
  42. minExponent: -95
  43.  
  44. -- General testcases
  45. -- (mostly derived from the Strawman 4 document and examples)
  46. decd001 apply   #A23003D0          -> -7.50
  47. decd002 apply   -7.50              -> #A23003D0
  48.  
  49. -- Normality
  50. decd010 apply   1234567            -> #2654d2e7
  51. decd011 apply   1234567.0          -> #2654d2e7 Rounded
  52. decd012 apply   1234567.1          -> #2654d2e7 Rounded Inexact
  53. decd013 apply  -1234567            -> #a654d2e7
  54. decd014 apply  -1234567.0          -> #a654d2e7 Rounded
  55. decd015 apply  -1234567.1          -> #a654d2e7 Rounded Inexact
  56.  
  57.  
  58. -- Nmax and similar
  59. decd022 apply   9.999999E+96            -> #77f3fcff
  60. decd023 apply   #77f3fcff               -> 9.999999E+96
  61. decd024 apply   1.234567E+96            -> #47f4d2e7
  62. decd025 apply   #47f4d2e7               -> 1.234567E+96
  63. -- fold-downs (more below)
  64. decd030 apply   1.23E+96                -> #47f4c000 Clamped
  65. decd031 apply   #47f4c000               -> 1.230000E+96
  66. decd032 apply   1E+96                   -> #47f00000 Clamped
  67. decd033 apply   #47f00000               -> 1.000000E+96
  68.  
  69. -- overflows
  70. maxExponent: 999   -- set high so conversion causes the overflow
  71. minExponent: -999
  72. decd040 apply   10E+96                  -> #78000000 Overflow Rounded Inexact
  73. decd041 apply   1.000000E+97            -> #78000000 Overflow Rounded Inexact
  74. maxExponent: 96
  75. minExponent: -95
  76.  
  77. decd051 apply   12345                   -> #225049c5
  78. decd052 apply   #225049c5               -> 12345
  79. decd053 apply   1234                    -> #22500534
  80. decd054 apply   #22500534               -> 1234
  81. decd055 apply   123                     -> #225000a3
  82. decd056 apply   #225000a3               -> 123
  83. decd057 apply   12                      -> #22500012
  84. decd058 apply   #22500012               -> 12
  85. decd059 apply   1                       -> #22500001
  86. decd060 apply   #22500001               -> 1
  87. decd061 apply   1.23                    -> #223000a3
  88. decd062 apply   #223000a3               -> 1.23
  89. decd063 apply   123.45                  -> #223049c5
  90. decd064 apply   #223049c5               -> 123.45
  91.  
  92. -- Nmin and below
  93. decd071 apply   1E-95                   -> #00600001
  94. decd072 apply   #00600001               -> 1E-95
  95. decd073 apply   1.000000E-95            -> #04000000
  96. decd074 apply   #04000000               -> 1.000000E-95
  97. decd075 apply   1.000001E-95            -> #04000001
  98. decd076 apply   #04000001               -> 1.000001E-95
  99.  
  100. decd077 apply   0.100000E-95            -> #00020000     Subnormal
  101. decd07x apply   1.00000E-96             -> 1.00000E-96   Subnormal
  102. decd078 apply   #00020000               -> 1.00000E-96   Subnormal
  103. decd079 apply   0.000010E-95            -> #00000010     Subnormal
  104. decd080 apply   #00000010               -> 1.0E-100      Subnormal
  105. decd081 apply   0.000001E-95            -> #00000001     Subnormal
  106. decd082 apply   #00000001               -> 1E-101        Subnormal
  107. decd083 apply   1e-101                  -> #00000001     Subnormal
  108. decd084 apply   #00000001               -> 1E-101        Subnormal
  109. decd08x apply   1e-101                  -> 1E-101        Subnormal
  110.  
  111. -- underflows
  112. decd090 apply   1e-101                  -> #00000001  Subnormal
  113. decd091 apply   1.9e-101                -> #00000002  Subnormal Underflow Inexact Rounded
  114. decd092 apply   1.1e-101                -> #00000001  Subnormal Underflow Inexact Rounded
  115. decd093 apply   1.001e-101              -> #00000001  Subnormal Underflow Inexact Rounded
  116. decd094 apply   1.000001e-101           -> #00000001  Subnormal Underflow Inexact Rounded
  117. decd095 apply   1.0000001e-101          -> #00000001  Subnormal Underflow Inexact Rounded
  118. decd096 apply   0.1e-101                -> #00000000  Subnormal Underflow Inexact Rounded
  119. decd097 apply   0.001e-101              -> #00000000  Subnormal Underflow Inexact Rounded
  120. decd098 apply   0.000001e-101           -> #00000000  Subnormal Underflow Inexact Rounded
  121. decd099 apply   0.0000001e-101          -> #00000000  Subnormal Underflow Inexact Rounded
  122.  
  123. -- same again, negatives --
  124.  
  125. -- Nmax and similar
  126. decd122 apply  -9.999999E+96            -> #f7f3fcff
  127. decd123 apply   #f7f3fcff               -> -9.999999E+96
  128. decd124 apply  -1.234567E+96            -> #c7f4d2e7
  129. decd125 apply   #c7f4d2e7               -> -1.234567E+96
  130. -- fold-downs (more below)
  131. decd130 apply  -1.23E+96                -> #c7f4c000 Clamped
  132. decd131 apply   #c7f4c000               -> -1.230000E+96
  133. decd132 apply  -1E+96                   -> #c7f00000 Clamped
  134. decd133 apply   #c7f00000               -> -1.000000E+96
  135.  
  136. -- overflows
  137. maxExponent: 999   -- set high so conversion causes the overflow
  138. minExponent: -999
  139. decd140 apply  -10E+96                  -> #f8000000 Overflow Rounded Inexact
  140. decd141 apply  -1.000000E+97            -> #f8000000 Overflow Rounded Inexact
  141. maxExponent: 96
  142. minExponent: -95
  143.  
  144. decd151 apply  -12345                   -> #a25049c5
  145. decd152 apply   #a25049c5               -> -12345
  146. decd153 apply  -1234                    -> #a2500534
  147. decd154 apply   #a2500534               -> -1234
  148. decd155 apply  -123                     -> #a25000a3
  149. decd156 apply   #a25000a3               -> -123
  150. decd157 apply  -12                      -> #a2500012
  151. decd158 apply   #a2500012               -> -12
  152. decd159 apply  -1                       -> #a2500001
  153. decd160 apply   #a2500001               -> -1
  154. decd161 apply  -1.23                    -> #a23000a3
  155. decd162 apply   #a23000a3               -> -1.23
  156. decd163 apply  -123.45                  -> #a23049c5
  157. decd164 apply   #a23049c5               -> -123.45
  158.  
  159. -- Nmin and below
  160. decd171 apply  -1E-95                   -> #80600001
  161. decd172 apply   #80600001               -> -1E-95
  162. decd173 apply  -1.000000E-95            -> #84000000
  163. decd174 apply   #84000000               -> -1.000000E-95
  164. decd175 apply  -1.000001E-95            -> #84000001
  165. decd176 apply   #84000001               -> -1.000001E-95
  166.  
  167. decd177 apply  -0.100000E-95            -> #80020000     Subnormal
  168. decd178 apply   #80020000               -> -1.00000E-96  Subnormal
  169. decd179 apply  -0.000010E-95            -> #80000010     Subnormal
  170. decd180 apply   #80000010               -> -1.0E-100     Subnormal
  171. decd181 apply  -0.000001E-95            -> #80000001     Subnormal
  172. decd182 apply   #80000001               -> -1E-101       Subnormal
  173. decd183 apply  -1e-101                  -> #80000001     Subnormal
  174. decd184 apply   #80000001               -> -1E-101       Subnormal
  175.  
  176. -- underflows
  177. decd190 apply  -1e-101                  -> #80000001  Subnormal
  178. decd191 apply  -1.9e-101                -> #80000002  Subnormal Underflow Inexact Rounded
  179. decd192 apply  -1.1e-101                -> #80000001  Subnormal Underflow Inexact Rounded
  180. decd193 apply  -1.001e-101              -> #80000001  Subnormal Underflow Inexact Rounded
  181. decd194 apply  -1.000001e-101           -> #80000001  Subnormal Underflow Inexact Rounded
  182. decd195 apply  -1.0000001e-101          -> #80000001  Subnormal Underflow Inexact Rounded
  183. decd196 apply  -0.1e-101                -> #80000000  Subnormal Underflow Inexact Rounded
  184. decd197 apply  -0.001e-101              -> #80000000  Subnormal Underflow Inexact Rounded
  185. decd198 apply  -0.000001e-101           -> #80000000  Subnormal Underflow Inexact Rounded
  186. decd199 apply  -0.0000001e-101          -> #80000000  Subnormal Underflow Inexact Rounded
  187.  
  188. -- zeros
  189. decd400 apply   0E-400                  -> #00000000  Clamped
  190. decd401 apply   0E-101                  -> #00000000
  191. decd402 apply   #00000000               -> 0E-101
  192. decd403 apply   0.000000E-95            -> #00000000
  193. decd404 apply   #00000000               -> 0E-101
  194. decd405 apply   0E-2                    -> #22300000
  195. decd406 apply   #22300000               -> 0.00
  196. decd407 apply   0                       -> #22500000
  197. decd408 apply   #22500000               -> 0
  198. decd409 apply   0E+3                    -> #22800000
  199. decd410 apply   #22800000               -> 0E+3
  200. decd411 apply   0E+90                   -> #43f00000
  201. decd412 apply   #43f00000               -> 0E+90
  202. -- clamped zeros...
  203. decd413 apply   0E+91                   -> #43f00000  Clamped
  204. decd414 apply   #43f00000               -> 0E+90
  205. decd415 apply   0E+96                   -> #43f00000  Clamped
  206. decd416 apply   #43f00000               -> 0E+90
  207. decd417 apply   0E+400                  -> #43f00000  Clamped
  208. decd418 apply   #43f00000               -> 0E+90
  209.  
  210. -- negative zeros
  211. decd420 apply   -0E-400                 -> #80000000  Clamped
  212. decd421 apply   -0E-101                 -> #80000000
  213. decd422 apply   #80000000               -> -0E-101
  214. decd423 apply   -0.000000E-95           -> #80000000
  215. decd424 apply   #80000000               -> -0E-101
  216. decd425 apply   -0E-2                   -> #a2300000
  217. decd426 apply   #a2300000               -> -0.00
  218. decd427 apply   -0                      -> #a2500000
  219. decd428 apply   #a2500000               -> -0
  220. decd429 apply   -0E+3                   -> #a2800000
  221. decd430 apply   #a2800000               -> -0E+3
  222. decd431 apply   -0E+90                  -> #c3f00000
  223. decd432 apply   #c3f00000               -> -0E+90
  224. -- clamped zeros...
  225. decd433 apply   -0E+91                  -> #c3f00000  Clamped
  226. decd434 apply   #c3f00000               -> -0E+90
  227. decd435 apply   -0E+96                  -> #c3f00000  Clamped
  228. decd436 apply   #c3f00000               -> -0E+90
  229. decd437 apply   -0E+400                 -> #c3f00000  Clamped
  230. decd438 apply   #c3f00000               -> -0E+90
  231.  
  232. -- Specials
  233. decd500 apply   Infinity  -> #78000000
  234. decd501 apply   #78787878 -> #78000000
  235. decd502 apply   #78000000 -> Infinity
  236. decd503 apply   #79797979 -> #78000000
  237. decd504 apply   #79000000 -> Infinity
  238. decd505 apply   #7a7a7a7a -> #78000000
  239. decd506 apply   #7a000000 -> Infinity
  240. decd507 apply   #7b7b7b7b -> #78000000
  241. decd508 apply   #7b000000 -> Infinity
  242. decd509 apply   #7c7c7c7c -> #7c0c7c7c
  243.  
  244. decd510 apply   NaN       -> #7c000000
  245. decd511 apply   #7c000000 -> NaN
  246. decd512 apply   #7d7d7d7d -> #7c0d7d7d
  247. decd513 apply   #7d000000 -> NaN
  248. decd514 apply   #7e7e7e7e -> #7e0e7c7e
  249. decd515 apply   #7e000000 -> sNaN
  250. decd516 apply   #7f7f7f7f -> #7e0f7c7f
  251. decd517 apply   #7f000000 -> sNaN
  252. decd518 apply   #7fffffff -> sNaN999999
  253. decd519 apply   #7fffffff -> #7e03fcff
  254.  
  255. decd520 apply   -Infinity -> #f8000000
  256. decd521 apply   #f8787878 -> #f8000000
  257. decd522 apply   #f8000000 -> -Infinity
  258. decd523 apply   #f9797979 -> #f8000000
  259. decd524 apply   #f9000000 -> -Infinity
  260. decd525 apply   #fa7a7a7a -> #f8000000
  261. decd526 apply   #fa000000 -> -Infinity
  262. decd527 apply   #fb7b7b7b -> #f8000000
  263. decd528 apply   #fb000000 -> -Infinity
  264.  
  265. decd529 apply   -NaN      -> #fc000000
  266. decd530 apply   #fc7c7c7c -> #fc0c7c7c
  267. decd531 apply   #fc000000 -> -NaN
  268. decd532 apply   #fd7d7d7d -> #fc0d7d7d
  269. decd533 apply   #fd000000 -> -NaN
  270. decd534 apply   #fe7e7e7e -> #fe0e7c7e
  271. decd535 apply   #fe000000 -> -sNaN
  272. decd536 apply   #ff7f7f7f -> #fe0f7c7f
  273. decd537 apply   #ff000000 -> -sNaN
  274. decd538 apply   #ffffffff -> -sNaN999999
  275. decd539 apply   #ffffffff -> #fe03fcff
  276.  
  277. -- diagnostic NaNs
  278. decd540 apply   NaN       -> #7c000000
  279. decd541 apply   NaN0      -> #7c000000
  280. decd542 apply   NaN1      -> #7c000001
  281. decd543 apply   NaN12     -> #7c000012
  282. decd544 apply   NaN79     -> #7c000079
  283. decd545 apply   NaN12345   -> #7c0049c5
  284. decd546 apply   NaN123456  -> #7c028e56
  285. decd547 apply   NaN799799  -> #7c0f7fdf
  286. decd548 apply   NaN999999  -> #7c03fcff
  287. decd549 apply   NaN1234567 -> #7c000000  -- too many digits
  288.  
  289.  
  290. -- fold-down full sequence
  291. decd601 apply   1E+96                   -> #47f00000 Clamped
  292. decd602 apply   #47f00000               -> 1.000000E+96
  293. decd603 apply   1E+95                   -> #43f20000 Clamped
  294. decd604 apply   #43f20000               -> 1.00000E+95
  295. decd605 apply   1E+94                   -> #43f04000 Clamped
  296. decd606 apply   #43f04000               -> 1.0000E+94
  297. decd607 apply   1E+93                   -> #43f00400 Clamped
  298. decd608 apply   #43f00400               -> 1.000E+93
  299. decd609 apply   1E+92                   -> #43f00080 Clamped
  300. decd610 apply   #43f00080               -> 1.00E+92
  301. decd611 apply   1E+91                   -> #43f00010 Clamped
  302. decd612 apply   #43f00010               -> 1.0E+91
  303. decd613 apply   1E+90                   -> #43f00001
  304. decd614 apply   #43f00001               -> 1E+90
  305.  
  306.  
  307. -- Selected DPD codes
  308. decd700 apply   #22500000       -> 0
  309. decd701 apply   #22500009       -> 9
  310. decd702 apply   #22500010       -> 10
  311. decd703 apply   #22500019       -> 19
  312. decd704 apply   #22500020       -> 20
  313. decd705 apply   #22500029       -> 29
  314. decd706 apply   #22500030       -> 30
  315. decd707 apply   #22500039       -> 39
  316. decd708 apply   #22500040       -> 40
  317. decd709 apply   #22500049       -> 49
  318. decd710 apply   #22500050       -> 50
  319. decd711 apply   #22500059       -> 59
  320. decd712 apply   #22500060       -> 60
  321. decd713 apply   #22500069       -> 69
  322. decd714 apply   #22500070       -> 70
  323. decd715 apply   #22500071       -> 71
  324. decd716 apply   #22500072       -> 72
  325. decd717 apply   #22500073       -> 73
  326. decd718 apply   #22500074       -> 74
  327. decd719 apply   #22500075       -> 75
  328. decd720 apply   #22500076       -> 76
  329. decd721 apply   #22500077       -> 77
  330. decd722 apply   #22500078       -> 78
  331. decd723 apply   #22500079       -> 79
  332.  
  333. decd730 apply   #2250029e       -> 994
  334. decd731 apply   #2250029f       -> 995
  335. decd732 apply   #225002a0       -> 520
  336. decd733 apply   #225002a1       -> 521
  337.  
  338. -- DPD: one of each of the huffman groups
  339. decd740 apply   #225003f7       -> 777
  340. decd741 apply   #225003f8       -> 778
  341. decd742 apply   #225003eb       -> 787
  342. decd743 apply   #2250037d       -> 877
  343. decd744 apply   #2250039f       -> 997
  344. decd745 apply   #225003bf       -> 979
  345. decd746 apply   #225003df       -> 799
  346. decd747 apply   #2250006e       -> 888
  347.  
  348.  
  349. -- DPD all-highs cases (includes the 24 redundant codes)
  350. decd750 apply   #2250006e       -> 888
  351. decd751 apply   #2250016e       -> 888
  352. decd752 apply   #2250026e       -> 888
  353. decd753 apply   #2250036e       -> 888
  354. decd754 apply   #2250006f       -> 889
  355. decd755 apply   #2250016f       -> 889
  356. decd756 apply   #2250026f       -> 889
  357. decd757 apply   #2250036f       -> 889
  358.  
  359. decd760 apply   #2250007e       -> 898
  360. decd761 apply   #2250017e       -> 898
  361. decd762 apply   #2250027e       -> 898
  362. decd763 apply   #2250037e       -> 898
  363. decd764 apply   #2250007f       -> 899
  364. decd765 apply   #2250017f       -> 899
  365. decd766 apply   #2250027f       -> 899
  366. decd767 apply   #2250037f       -> 899
  367.  
  368. decd770 apply   #225000ee       -> 988
  369. decd771 apply   #225001ee       -> 988
  370. decd772 apply   #225002ee       -> 988
  371. decd773 apply   #225003ee       -> 988
  372. decd774 apply   #225000ef       -> 989
  373. decd775 apply   #225001ef       -> 989
  374. decd776 apply   #225002ef       -> 989
  375. decd777 apply   #225003ef       -> 989
  376.  
  377. decd780 apply   #225000fe       -> 998
  378. decd781 apply   #225001fe       -> 998
  379. decd782 apply   #225002fe       -> 998
  380. decd783 apply   #225003fe       -> 998
  381. decd784 apply   #225000ff       -> 999
  382. decd785 apply   #225001ff       -> 999
  383. decd786 apply   #225002ff       -> 999
  384. decd787 apply   #225003ff       -> 999
  385.  
  386.