-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P3
-
Affects Version/s: 8
-
Component/s: core-libs
-
b120
-
Not verified
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
|---|---|---|---|---|---|---|
| JDK-8030332 | 8u5 | Brian Burkhalter | P3 | Resolved | Fixed | b01 |
Currently Burnikel-Ziegler division is selected if
(dividend.length < BURNIKEL_ZIEGLER_THRESHOLD || divisor.length < BURNIKEL_ZIEGLER_THRESHOLD)
is FALSE. This causes significant performance regression (up to about 100%) for cases where dividend.length - divisor.length < OFFSET where 0 < OFFSET <= 2*BURNIKEL_ZIEGLER_THRESHOLD. A better algorithm selection heuristic is to select B-Z division if
(divisor.length < BURNIKEL_ZIEGLER_THRESHOLD || dividend.length - divisor.length < BURNIKEL_ZIEGLER_OFFSET)
is FALSE, i.e., to require that the int-length of the dividend exceed that of the divisor by a given minimum value.
(dividend.length < BURNIKEL_ZIEGLER_THRESHOLD || divisor.length < BURNIKEL_ZIEGLER_THRESHOLD)
is FALSE. This causes significant performance regression (up to about 100%) for cases where dividend.length - divisor.length < OFFSET where 0 < OFFSET <= 2*BURNIKEL_ZIEGLER_THRESHOLD. A better algorithm selection heuristic is to select B-Z division if
(divisor.length < BURNIKEL_ZIEGLER_THRESHOLD || dividend.length - divisor.length < BURNIKEL_ZIEGLER_OFFSET)
is FALSE, i.e., to require that the int-length of the dividend exceed that of the divisor by a given minimum value.
- backported by
-
JDK-8030332 BigInteger division algorithm selection heuristic is incorrect
-
- Resolved
-
- relates to
-
JDK-8058505 BigIntegerTest does not exercise Burnikel-Ziegler division
-
- Closed
-
-
JDK-8029425 Review BigInteger algorithm crossover thresholds
-
- Open
-
-
JDK-8022181 Tune algorithm crossover thresholds in BigInteger
-
- Closed
-