1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
------------------------------------------------------------------------
-- nextminus.decTest -- decimal next that is less [754r nextdown] --
-- 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.59
extended: 1
precision: 9
rounding: half_up
maxExponent: 384
minexponent: -383
nextm001 nextminus 0.999999995 -> 0.999999994
nextm002 nextminus 0.999999996 -> 0.999999995
nextm003 nextminus 0.999999997 -> 0.999999996
nextm004 nextminus 0.999999998 -> 0.999999997
nextm005 nextminus 0.999999999 -> 0.999999998
nextm006 nextminus 1.00000000 -> 0.999999999
nextm007 nextminus 1.0 -> 0.999999999
nextm008 nextminus 1 -> 0.999999999
nextm009 nextminus 1.00000001 -> 1.00000000
nextm010 nextminus 1.00000002 -> 1.00000001
nextm011 nextminus 1.00000003 -> 1.00000002
nextm012 nextminus 1.00000004 -> 1.00000003
nextm013 nextminus 1.00000005 -> 1.00000004
nextm014 nextminus 1.00000006 -> 1.00000005
nextm015 nextminus 1.00000007 -> 1.00000006
nextm016 nextminus 1.00000008 -> 1.00000007
nextm017 nextminus 1.00000009 -> 1.00000008
nextm018 nextminus 1.00000010 -> 1.00000009
nextm019 nextminus 1.00000011 -> 1.00000010
nextm020 nextminus 1.00000012 -> 1.00000011
nextm021 nextminus -0.999999995 -> -0.999999996
nextm022 nextminus -0.999999996 -> -0.999999997
nextm023 nextminus -0.999999997 -> -0.999999998
nextm024 nextminus -0.999999998 -> -0.999999999
nextm025 nextminus -0.999999999 -> -1.00000000
nextm026 nextminus -1.00000000 -> -1.00000001
nextm027 nextminus -1.0 -> -1.00000001
nextm028 nextminus -1 -> -1.00000001
nextm029 nextminus -1.00000001 -> -1.00000002
nextm030 nextminus -1.00000002 -> -1.00000003
nextm031 nextminus -1.00000003 -> -1.00000004
nextm032 nextminus -1.00000004 -> -1.00000005
nextm033 nextminus -1.00000005 -> -1.00000006
nextm034 nextminus -1.00000006 -> -1.00000007
nextm035 nextminus -1.00000007 -> -1.00000008
nextm036 nextminus -1.00000008 -> -1.00000009
nextm037 nextminus -1.00000009 -> -1.00000010
nextm038 nextminus -1.00000010 -> -1.00000011
nextm039 nextminus -1.00000011 -> -1.00000012
-- input operand is >precision
nextm041 nextminus 1.00000010998 -> 1.00000010
nextm042 nextminus 1.00000010999 -> 1.00000010
nextm043 nextminus 1.00000011000 -> 1.00000010
nextm044 nextminus 1.00000011001 -> 1.00000011
nextm045 nextminus 1.00000011002 -> 1.00000011
nextm046 nextminus 1.00000011002 -> 1.00000011
nextm047 nextminus 1.00000011052 -> 1.00000011
nextm048 nextminus 1.00000011552 -> 1.00000011
nextm049 nextminus -1.00000010998 -> -1.00000011
nextm050 nextminus -1.00000010999 -> -1.00000011
nextm051 nextminus -1.00000011000 -> -1.00000012
nextm052 nextminus -1.00000011001 -> -1.00000012
nextm053 nextminus -1.00000011002 -> -1.00000012
nextm054 nextminus -1.00000011002 -> -1.00000012
nextm055 nextminus -1.00000011052 -> -1.00000012
nextm056 nextminus -1.00000011552 -> -1.00000012
-- ultra-tiny inputs
nextm060 nextminus 1E-99999 -> 0E-391
nextm061 nextminus 1E-999999999 -> 0E-391
nextm062 nextminus 1E-391 -> 0E-391
nextm063 nextminus -1E-99999 -> -1E-391
nextm064 nextminus -1E-999999999 -> -1E-391
nextm065 nextminus -1E-391 -> -2E-391
-- Zeros
nextm100 nextminus -0 -> -1E-391
nextm101 nextminus 0 -> -1E-391
nextm102 nextminus 0.00 -> -1E-391
nextm103 nextminus -0.00 -> -1E-391
nextm104 nextminus 0E-300 -> -1E-391
nextm105 nextminus 0E+300 -> -1E-391
nextm106 nextminus 0E+30000 -> -1E-391
nextm107 nextminus -0E+30000 -> -1E-391
precision: 9
maxExponent: 999
minexponent: -999
-- specials
nextm150 nextminus Inf -> 9.99999999E+999
nextm151 nextminus -Inf -> -Infinity
nextm152 nextminus NaN -> NaN
nextm153 nextminus sNaN -> NaN Invalid_operation
nextm154 nextminus NaN77 -> NaN77
nextm155 nextminus sNaN88 -> NaN88 Invalid_operation
nextm156 nextminus -NaN -> -NaN
nextm157 nextminus -sNaN -> -NaN Invalid_operation
nextm158 nextminus -NaN77 -> -NaN77
nextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation
-- Nmax, Nmin, Ntiny, subnormals
nextm170 nextminus 9.99999999E+999 -> 9.99999998E+999
nextm171 nextminus 9.99999998E+999 -> 9.99999997E+999
nextm172 nextminus 1E-999 -> 9.9999999E-1000
nextm173 nextminus 1.00000000E-999 -> 9.9999999E-1000
nextm174 nextminus 9E-1007 -> 8E-1007
nextm175 nextminus 9.9E-1006 -> 9.8E-1006
nextm176 nextminus 9.9999E-1003 -> 9.9998E-1003
nextm177 nextminus 9.9999999E-1000 -> 9.9999998E-1000
nextm178 nextminus 9.9999998E-1000 -> 9.9999997E-1000
nextm179 nextminus 9.9999997E-1000 -> 9.9999996E-1000
nextm180 nextminus 0E-1007 -> -1E-1007
nextm181 nextminus 1E-1007 -> 0E-1007
nextm182 nextminus 2E-1007 -> 1E-1007
nextm183 nextminus -0E-1007 -> -1E-1007
nextm184 nextminus -1E-1007 -> -2E-1007
nextm185 nextminus -2E-1007 -> -3E-1007
nextm186 nextminus -10E-1007 -> -1.1E-1006
nextm187 nextminus -100E-1007 -> -1.01E-1005
nextm188 nextminus -100000E-1007 -> -1.00001E-1002
nextm189 nextminus -1.0000E-999 -> -1.00000001E-999
nextm190 nextminus -1.00000000E-999 -> -1.00000001E-999
nextm191 nextminus -1E-999 -> -1.00000001E-999
nextm192 nextminus -9.99999998E+999 -> -9.99999999E+999
nextm193 nextminus -9.99999999E+999 -> -Infinity
-- Null tests
nextm900 nextminus # -> NaN Invalid_operation
|