-
Bug
-
Resolution: Fixed
-
P3
-
8
-
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
-