Age | Commit message (Collapse) | Author |
|
The change corrects the values of the largest float32 value (f1) and the
value of the halfway point between f1 and the next, overflow value (f2).
Fixes #17012
Change-Id: Idaf9997b69d61fafbffdb980d751c9857732e14d
Reviewed-on: https://go-review.googlesource.com/29171
Reviewed-by: Robert Griesemer <gri@golang.org>
|
|
Follows suit with https://go-review.googlesource.com/#/c/20111.
Generated by running
$ grep -R 'Go Authors. All' * | cut -d":" -f1 | while read F;do perl -pi -e 's/Go
Authors. All/Go Authors. All/g' $F;done
The code in cmd/internal/unvendor wasn't changed.
Fixes #15213
Change-Id: I4f235cee0a62ec435f9e8540a1ec08ae03b1a75f
Reviewed-on: https://go-review.googlesource.com/21819
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
|
|
Noted by gri in CL 100660044 review but I missed them.
TBR=gri
CC=golang-codereviews
https://golang.org/cl/97570049
|
|
Add larger comment explaining testing methodology,
and derive tests arithmetically.
(These tests are checking rounding again; the derived
tests they replace were checking exact values.)
LGTM=r, gri
R=gri, r
CC=golang-codereviews
https://golang.org/cl/100660044
|
|
LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/95480045
|
|
These constants pass go/types constant conversions as well.
LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/91590047
|
|
The float32 const conversion used to round to float64
and then use the hardware to round to float32.
Even though there was a range check before this
conversion, the double rounding introduced inaccuracy:
the round to float64 might round the value further away
from the float32 range, reaching a float64 value that
could not actually be rounded to float32. The hardware
appears to give us 0 in that case, but it is probably undefined.
Double rounding also meant that the wrong value might
be used for certain border cases.
Do the rounding the float32 ourselves, just as we already
did the rounding to float64. This makes the conversion
precise and also makes the conversion match the range check.
Finally, add some code to print very large (bigger than float64)
floating point constants in decimal floating point notation instead
of falling back to the precise but human-unreadable binary floating
point notation.
Fixes #8015.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews, r
https://golang.org/cl/100580044
|