From: Filippo Valsorda Date: Fri, 31 Jan 2020 22:49:11 +0000 (-0800) Subject: math/big: simplify GCD docs X-Git-Tag: go1.14rc1~14 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cdb7fd6b06937aa38a7a4921f567697144448073;p=gostls13.git math/big: simplify GCD docs We don't usually document past behavior (like "As of Go 1.14 ...") and in isolation the current docs made it sound like a and b could only be negative or zero. Change-Id: I0d3c2b8579a9c01159ce528a3128b1478e99042a Reviewed-on: https://go-review.googlesource.com/c/go/+/217302 Reviewed-by: Ian Lance Taylor --- diff --git a/src/math/big/int.go b/src/math/big/int.go index 019af616d7..bec0a81b20 100644 --- a/src/math/big/int.go +++ b/src/math/big/int.go @@ -504,11 +504,14 @@ func (z *Int) Exp(x, y, m *Int) *Int { // GCD sets z to the greatest common divisor of a and b and returns z. // If x or y are not nil, GCD sets their value such that z = a*x + b*y. -// As of Go 1.14, a and b may be zero or negative (before Go 1.14 both -// a and b had to be > 0). +// +// a and b may be positive, zero or negative. // Regardless of the signs of a and b, z is always >= 0. +// // If a == b == 0, GCD sets z = x = y = 0. +// // If a == 0 and b != 0, GCD sets z = |b|, x = 0, y = sign(b) * 1. +// // If a != 0 and b == 0, GCD sets z = |a|, x = sign(a) * 1, y = 0. func (z *Int) GCD(x, y, a, b *Int) *Int { if len(a.abs) == 0 || len(b.abs) == 0 {