mirror of
https://github.com/golang/go
synced 2024-11-19 11:54:57 -07:00
math/big: clarify comment on lehmerGCD overflow
A clarifying comment was added to indicate that overflow of a single Word is not possible in the single digit calculation. Lehmer's paper includes a proof of the bounds on the size of the cosequences (u0, u1, u2, v0, v1, v2). Change-Id: I98127a07aa8f8fe44814b74b2bc6ff720805194b Reviewed-on: https://go-review.googlesource.com/77451 Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
5ea2360b66
commit
2955a8a6cc
@ -581,7 +581,10 @@ func (z *Int) lehmerGCD(a, b *Int) *Int {
|
||||
u0, u1, u2 = 0, 1, 0
|
||||
v0, v1, v2 = 0, 0, 1
|
||||
|
||||
// calculate the quotient and cosequences using Collins' stopping condition
|
||||
// Calculate the quotient and cosequences using Collins' stopping condition.
|
||||
// Note that overflow of a Word is not possible when computing the remainder
|
||||
// sequence and cosequences since the cosequence size is bounded by the input size.
|
||||
// See section 4.2 of Jebelean for details.
|
||||
for a2 >= v2 && a1-a2 >= v1+v2 {
|
||||
q := a1 / a2
|
||||
a1, a2 = a2, a1-q*a2
|
||||
|
Loading…
Reference in New Issue
Block a user