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 / clamp.decTest < prev    next >
Text File  |  2004-08-23  |  11KB  |  198 lines

  1. ------------------------------------------------------------------------
  2. -- clamp.decTest -- clamped exponent tests (format-independent)       --
  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 uses the same limits as the 8-byte concrete
  23. -- representation, but applies clamping without using format-specific
  24. -- conversions.
  25.  
  26. extended:    1
  27. precision:   16
  28. rounding:    half_even
  29. maxExponent: 384
  30. minExponent: -383
  31. clamp:       1
  32.  
  33. -- General testcases
  34.  
  35. -- Normality
  36. clam010 apply   1234567890123456   ->  1234567890123456
  37. clam011 apply   1234567890123456.0 ->  1234567890123456 Rounded
  38. clam012 apply   1234567890123456.1 ->  1234567890123456 Rounded Inexact
  39. clam013 apply  -1234567890123456   -> -1234567890123456
  40. clam014 apply  -1234567890123456.0 -> -1234567890123456 Rounded
  41. clam015 apply  -1234567890123456.1 -> -1234567890123456 Rounded Inexact
  42.  
  43.  
  44. -- Nmax and similar
  45. clam022 apply   9.999999999999999E+384  -> 9.999999999999999E+384
  46. clam024 apply   1.234567890123456E+384  -> 1.234567890123456E+384
  47. -- fold-downs (more below)
  48. clam030 apply   1.23E+384               -> 1.230000000000000E+384 Clamped
  49. clam032 apply   1E+384                  -> 1.000000000000000E+384 Clamped
  50.  
  51. clam051 apply   12345                   -> 12345
  52. clam053 apply   1234                    -> 1234
  53. clam055 apply   123                     -> 123
  54. clam057 apply   12                      -> 12
  55. clam059 apply   1                       -> 1
  56. clam061 apply   1.23                    -> 1.23
  57. clam063 apply   123.45                  -> 123.45
  58.  
  59. -- Nmin and below
  60. clam071 apply   1E-383                  -> 1E-383
  61. clam073 apply   1.000000000000000E-383  -> 1.000000000000000E-383
  62. clam075 apply   1.000000000000001E-383  -> 1.000000000000001E-383
  63.  
  64. clam077 apply   0.100000000000000E-383  -> 1.00000000000000E-384  Subnormal
  65. clam079 apply   0.000000000000010E-383  -> 1.0E-397               Subnormal
  66. clam081 apply   0.00000000000001E-383   -> 1E-397                 Subnormal
  67. clam083 apply   0.000000000000001E-383  -> 1E-398                 Subnormal
  68.  
  69. -- underflows
  70. clam090 apply   1e-398                  -> #0000000000000001  Subnormal
  71. clam091 apply   1.9e-398                -> #0000000000000002  Subnormal Underflow Inexact Rounded
  72. clam092 apply   1.1e-398                -> #0000000000000001  Subnormal Underflow Inexact Rounded
  73. clam093 apply   1.00000000001e-398      -> #0000000000000001  Subnormal Underflow Inexact Rounded
  74. clam094 apply   1.00000000000001e-398   -> #0000000000000001  Subnormal Underflow Inexact Rounded
  75. clam095 apply   1.000000000000001e-398  -> #0000000000000001  Subnormal Underflow Inexact Rounded
  76. clam096 apply   0.1e-398                -> #0000000000000000  Subnormal Underflow Inexact Rounded
  77. clam097 apply   0.00000000001e-398      -> #0000000000000000  Subnormal Underflow Inexact Rounded
  78. clam098 apply   0.00000000000001e-398   -> #0000000000000000  Subnormal Underflow Inexact Rounded
  79. clam099 apply   0.000000000000001e-398  -> #0000000000000000  Subnormal Underflow Inexact Rounded
  80.  
  81. -- Same again, negatives
  82. -- Nmax and similar
  83. clam122 apply  -9.999999999999999E+384  -> -9.999999999999999E+384
  84. clam124 apply  -1.234567890123456E+384  -> -1.234567890123456E+384
  85. -- fold-downs (more below)
  86. clam130 apply  -1.23E+384               -> -1.230000000000000E+384 Clamped
  87. clam132 apply  -1E+384                  -> -1.000000000000000E+384 Clamped
  88.  
  89. clam151 apply  -12345                   -> -12345
  90. clam153 apply  -1234                    -> -1234
  91. clam155 apply  -123                     -> -123
  92. clam157 apply  -12                      -> -12
  93. clam159 apply  -1                       -> -1
  94. clam161 apply  -1.23                    -> -1.23
  95. clam163 apply  -123.45                  -> -123.45
  96.  
  97. -- Nmin and below
  98. clam171 apply  -1E-383                  -> -1E-383
  99. clam173 apply  -1.000000000000000E-383  -> -1.000000000000000E-383
  100. clam175 apply  -1.000000000000001E-383  -> -1.000000000000001E-383
  101.  
  102. clam177 apply  -0.100000000000000E-383  -> -1.00000000000000E-384  Subnormal
  103. clam179 apply  -0.000000000000010E-383  -> -1.0E-397               Subnormal
  104. clam181 apply  -0.00000000000001E-383   -> -1E-397                 Subnormal
  105. clam183 apply  -0.000000000000001E-383  -> -1E-398                 Subnormal
  106.  
  107. -- underflows
  108. clam189 apply   -1e-398                 -> #8000000000000001  Subnormal
  109. clam190 apply   -1.0e-398               -> #8000000000000001  Subnormal Rounded
  110. clam191 apply   -1.9e-398               -> #8000000000000002  Subnormal Underflow Inexact Rounded
  111. clam192 apply   -1.1e-398               -> #8000000000000001  Subnormal Underflow Inexact Rounded
  112. clam193 apply   -1.00000000001e-398     -> #8000000000000001  Subnormal Underflow Inexact Rounded
  113. clam194 apply   -1.00000000000001e-398  -> #8000000000000001  Subnormal Underflow Inexact Rounded
  114. clam195 apply   -1.000000000000001e-398 -> #8000000000000001  Subnormal Underflow Inexact Rounded
  115. clam196 apply   -0.1e-398               -> #8000000000000000  Subnormal Underflow Inexact Rounded
  116. clam197 apply   -0.00000000001e-398     -> #8000000000000000  Subnormal Underflow Inexact Rounded
  117. clam198 apply   -0.00000000000001e-398  -> #8000000000000000  Subnormal Underflow Inexact Rounded
  118. clam199 apply   -0.000000000000001e-398 -> #8000000000000000  Subnormal Underflow Inexact Rounded
  119.  
  120. -- zeros
  121. clam401 apply   0E-500                  -> 0E-398  Clamped
  122. clam402 apply   0E-400                  -> 0E-398  Clamped
  123. clam403 apply   0E-398                  -> 0E-398
  124. clam404 apply   0.000000000000000E-383  -> 0E-398
  125. clam405 apply   0E-2                    ->  0.00
  126. clam406 apply   0                       -> 0
  127. clam407 apply   0E+3                    -> 0E+3
  128. clam408 apply   0E+369                  -> 0E+369
  129. -- clamped zeros...
  130. clam410 apply   0E+370                  -> 0E+369 Clamped
  131. clam411 apply   0E+384                  -> 0E+369 Clamped
  132. clam412 apply   0E+400                  -> 0E+369 Clamped
  133. clam413 apply   0E+500                  -> 0E+369 Clamped
  134.  
  135. -- negative zeros
  136. clam420 apply   -0E-500                 -> -0E-398 Clamped
  137. clam421 apply   -0E-400                 -> -0E-398 Clamped
  138. clam422 apply   -0E-398                 -> -0E-398
  139. clam423 apply   -0.000000000000000E-383 -> -0E-398
  140. clam424 apply   -0E-2                   -> -0.00
  141. clam425 apply   -0                      -> -0
  142. clam426 apply   -0E+3                   -> -0E+3
  143. clam427 apply   -0E+369                 -> -0E+369
  144. -- clamped zeros...
  145. clam431 apply   -0E+370                 -> -0E+369 Clamped
  146. clam432 apply   -0E+384                 -> -0E+369 Clamped
  147. clam433 apply   -0E+400                 -> -0E+369 Clamped
  148. clam434 apply   -0E+500                 -> -0E+369 Clamped
  149.  
  150. -- fold-down full sequence
  151. clam601 apply   1E+384                  -> 1.000000000000000E+384 Clamped
  152. clam603 apply   1E+383                  -> 1.00000000000000E+383 Clamped
  153. clam605 apply   1E+382                  -> 1.0000000000000E+382 Clamped
  154. clam607 apply   1E+381                  -> 1.000000000000E+381 Clamped
  155. clam609 apply   1E+380                  -> 1.00000000000E+380 Clamped
  156. clam611 apply   1E+379                  -> 1.0000000000E+379 Clamped
  157. clam613 apply   1E+378                  -> 1.000000000E+378 Clamped
  158. clam615 apply   1E+377                  -> 1.00000000E+377 Clamped
  159. clam617 apply   1E+376                  -> 1.0000000E+376 Clamped
  160. clam619 apply   1E+375                  -> 1.000000E+375 Clamped
  161. clam621 apply   1E+374                  -> 1.00000E+374 Clamped
  162. clam623 apply   1E+373                  -> 1.0000E+373 Clamped
  163. clam625 apply   1E+372                  -> 1.000E+372 Clamped
  164. clam627 apply   1E+371                  -> 1.00E+371 Clamped
  165. clam629 apply   1E+370                  -> 1.0E+370 Clamped
  166. clam631 apply   1E+369                  -> 1E+369
  167. clam633 apply   1E+368                  -> 1E+368
  168. -- same with 9s
  169. clam641 apply   9E+384                  -> 9.000000000000000E+384 Clamped
  170. clam643 apply   9E+383                  -> 9.00000000000000E+383 Clamped
  171. clam645 apply   9E+382                  -> 9.0000000000000E+382 Clamped
  172. clam647 apply   9E+381                  -> 9.000000000000E+381 Clamped
  173. clam649 apply   9E+380                  -> 9.00000000000E+380 Clamped
  174. clam651 apply   9E+379                  -> 9.0000000000E+379 Clamped
  175. clam653 apply   9E+378                  -> 9.000000000E+378 Clamped
  176. clam655 apply   9E+377                  -> 9.00000000E+377 Clamped
  177. clam657 apply   9E+376                  -> 9.0000000E+376 Clamped
  178. clam659 apply   9E+375                  -> 9.000000E+375 Clamped
  179. clam661 apply   9E+374                  -> 9.00000E+374 Clamped
  180. clam663 apply   9E+373                  -> 9.0000E+373 Clamped
  181. clam665 apply   9E+372                  -> 9.000E+372 Clamped
  182. clam667 apply   9E+371                  -> 9.00E+371 Clamped
  183. clam669 apply   9E+370                  -> 9.0E+370 Clamped
  184. clam671 apply   9E+369                  -> 9E+369
  185. clam673 apply   9E+368                  -> 9E+368
  186.  
  187. -- example from documentation
  188. precision:   7
  189. rounding:    half_even
  190. maxExponent: +96
  191. minExponent: -95
  192.  
  193. clamp:       0
  194. clam700 apply   1.23E+96                -> 1.23E+96
  195.  
  196. clamp:       1
  197. clam701 apply   1.23E+96                -> 1.230000E+96 Clamped
  198.