{{ message }}
Repository navigation
Commit 5382a22
committed
Corrections in the implementation of '%' for floats.
The multiplication (m*b) used to test whether 'm' is non-zero and
'm' and 'b' have different signs can underflow for very small numbers,
giving a wrong result. The use of explicit comparisons solves this
problem. This commit also adds several new tests for '%' (both for
floats and for integers) to exercise more corner cases, such as
very large and very small values.1 parent 8c8a91f commit 5382a22
5 files changed
Lines changed: 87 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
| 109 | + | |
114 | 110 | | |
115 | 111 | | |
116 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
655 | 655 | | |
656 | 656 | | |
657 | 657 | | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
658 | 668 | | |
659 | 669 | | |
660 | 670 | | |
| |||
1142 | 1152 | | |
1143 | 1153 | | |
1144 | 1154 | | |
1145 | | - | |
1146 | 1155 | | |
1147 | | - | |
1148 | | - | |
| 1156 | + | |
1149 | 1157 | | |
1150 | 1158 | | |
1151 | 1159 | | |
| |||
1370 | 1378 | | |
1371 | 1379 | | |
1372 | 1380 | | |
1373 | | - | |
1374 | | - | |
1375 | | - | |
| 1381 | + | |
1376 | 1382 | | |
1377 | 1383 | | |
1378 | 1384 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
119 | 120 | | |
120 | 121 | | |
121 | 122 | | |
| |||

0 commit comments