Rémy Oudompheng
37cd165838
strconv: implement fast path for rounding already short numbers.
...
benchmark old ns/op new ns/op delta
BenchmarkFormatFloatDecimal 3765 1386 -63%
R=rsc
CC=golang-dev, remy
https://golang.org/cl/5494060
2012-01-12 11:34:06 -08:00
Russ Cox
6f77cd2914
strconv: fix round up corner case
...
Comment described the correct condition
but the code did not implement it.
Fixes #2625 .
R=remyoudompheng
CC=golang-dev
https://golang.org/cl/5530082
2012-01-12 11:32:28 -08:00
Ian Lance Taylor
36397814cc
strconv: remove obsolete comment.
...
R=r, rsc
CC=golang-dev
https://golang.org/cl/5490078
2011-12-19 20:57:32 -08:00
Robert Griesemer
2e3bd890c5
strconv: fix documentation
...
Also: minor performance fix for large precision results.
benchmark old ns/op new ns/op delta
strconv_test.BenchmarkFormatFloatDecimal 2734 2734 +0.00%
strconv_test.BenchmarkFormatFloat 3141 3139 -0.06%
strconv_test.BenchmarkFormatFloatExp 8970 8989 +0.21%
strconv_test.BenchmarkFormatFloatBig 3228 3208 -0.62%
Fixes #2535 .
R=rsc
CC=golang-dev
https://golang.org/cl/5435089
2011-12-07 14:45:45 -08:00
Robert Griesemer
127b5a66b1
strconv: faster float conversion
...
- added AppendFloatX benchmarks
- 2% to 13% better performance
- check for illegal bitSize
benchmark old ns/op new ns/op delta
strconv_test.BenchmarkFormatFloatDecimal 2993 2733 -8.69%
strconv_test.BenchmarkFormatFloat 3384 3141 -7.18%
strconv_test.BenchmarkFormatFloatExp 9192 9010 -1.98%
strconv_test.BenchmarkFormatFloatBig 3279 3207 -2.20%
strconv_test.BenchmarkAppendFloatDecimal 2837 2478 -12.65%
strconv_test.BenchmarkAppendFloat 3196 2928 -8.39%
strconv_test.BenchmarkAppendFloatExp 9028 8773 -2.82%
strconv_test.BenchmarkAppendFloatBig 3151 2782 -11.71%
R=rsc, bradfitz
CC=golang-dev
https://golang.org/cl/5448122
2011-12-07 10:30:27 -08:00
Russ Cox
efbeaedb64
strconv: new API
...
R=golang-dev, bradfitz, gri, r, agl
CC=golang-dev
https://golang.org/cl/5434095
2011-12-05 15:48:21 -05:00
Russ Cox
0ed5e6a2be
strconv: make Ftoa faster
...
Make code amenable to escape analysis
so that the decimal values do not escape.
benchmark old ns/op new ns/op delta
strconv_test.BenchmarkAtof64Decimal 229 233 +1.75%
strconv_test.BenchmarkAtof64Float 261 263 +0.77%
strconv_test.BenchmarkAtof64FloatExp 7760 7757 -0.04%
strconv_test.BenchmarkAtof64Big 3086 3053 -1.07%
strconv_test.BenchmarkFtoa64Decimal 6866 2629 -61.71%
strconv_test.BenchmarkFtoa64Float 7211 3064 -57.51%
strconv_test.BenchmarkFtoa64FloatExp 12587 8263 -34.35%
strconv_test.BenchmarkFtoa64Big 7058 2825 -59.97%
json.BenchmarkCodeEncoder 357355200 276528200 -22.62%
json.BenchmarkCodeMarshal 360735200 279646400 -22.48%
json.BenchmarkCodeDecoder 731528600 709460600 -3.02%
json.BenchmarkCodeUnmarshal 754774400 731051200 -3.14%
json.BenchmarkCodeUnmarshalReuse 713379000 704218000 -1.28%
json.BenchmarkSkipValue 51594300 51682600 +0.17%
benchmark old MB/s new MB/s speedup
json.BenchmarkCodeEncoder 5.43 7.02 1.29x
json.BenchmarkCodeMarshal 5.38 6.94 1.29x
json.BenchmarkCodeDecoder 2.65 2.74 1.03x
json.BenchmarkCodeUnmarshal 2.57 2.65 1.03x
json.BenchmarkCodeUnmarshalReuse 2.72 2.76 1.01x
json.BenchmarkSkipValue 38.61 38.55 1.00x
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5369111
2011-11-15 12:17:25 -05:00
Russ Cox
cb51fdc007
strconv: put decimal on stack
...
This makes decimal a good test
case for the escape analysis.
With escape analysis:
benchmark old ns/op new ns/op delta
BenchmarkAtof64Decimal 1954 243 -87.56%
BenchmarkAtof64Float 2008 293 -85.41%
BenchmarkAtof64FloatExp 10106 8814 -12.78%
BenchmarkAtof64Big 5113 3486 -31.82%
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/4861042
2011-08-25 17:54:14 -04:00
Rob Pike
a67292f20f
strconv/ftoa: avoid a double shift. (shifts by variables are expensive.)
...
R=rsc, gri, r2
CC=golang-dev
https://golang.org/cl/4169048
2011-02-11 16:06:04 -08:00
Russ Cox
f2b5a07453
delete float, complex - code changes
...
also:
cmplx -> complex
float64(1.0) -> 1.0
float64(1) -> 1.0
R=gri, r, gri1, r2
CC=golang-dev
https://golang.org/cl/3991043
2011-01-19 23:09:00 -05:00
Russ Cox
71793d4b42
strconv: update ftoa comment for 'E' and 'G'
...
Inspired by 3827042.
R=gri, peterGo
CC=golang-dev
https://golang.org/cl/3858042
2011-01-04 13:13:12 -05:00
Russ Cox
8fff9166f6
arm: enable all tests
...
ARM functionality is now completely working.
(Or if it's not, we'll fix it.)
R=ken2
CC=golang-dev
https://golang.org/cl/2738041
2010-10-25 21:25:13 -07:00
Russ Cox
69188ad9bb
arm: prop up software floating point
...
Just enough to make mov instructions work,
which in turn is enough to make strconv work
when it avoids any floating point calculations.
That makes a bunch of other packages pass
their tests.
Should suffice until hardware floating point
is available.
Enable package tests that now pass
(some due to earlier fixes).
Looks like there is a new integer math bug
exposed in the fmt and json tests.
R=ken2
CC=golang-dev
https://golang.org/cl/2638041
2010-10-21 06:56:20 +02:00
Rob Pike
21f8ae8fec
strconv: fix %.2g, 40
...
Fixes #845 .
R=rsc
CC=golang-dev
https://golang.org/cl/1673049
2010-06-29 16:39:17 -07:00
Russ Cox
2d3e47ca10
strconv: add AtofN, FtoaN
...
R=r
CC=golang-dev
https://golang.org/cl/1700043
2010-06-18 22:43:37 -07:00
Robert Griesemer
d65a5cce89
1) Change default gofmt default settings for
...
parsing and printing to new syntax.
Use -oldparser to parse the old syntax,
use -oldprinter to print the old syntax.
2) Change default gofmt formatting settings
to use tabs for indentation only and to use
spaces for alignment. This will make the code
alignment insensitive to an editor's tabwidth.
Use -spaces=false to use tabs for alignment.
3) Manually changed src/exp/parser/parser_test.go
so that it doesn't try to parse the parser's
source files using the old syntax (they have
new syntax now).
4) gofmt -w src misc test/bench
4th set of files.
R=rsc
CC=golang-dev
https://golang.org/cl/180049
2009-12-15 15:40:16 -08:00
Russ Cox
9ac4449cb2
gofmt -r 'α[β:len(α)] -> α[β:]' -w src/cmd src/pkg
...
R=r, gri
CC=golang-dev
https://golang.org/cl/156115
2009-11-20 11:45:05 -08:00
Robert Griesemer
3bb0032cd6
- replaced gofmt expression formatting algorithm with
...
rsc's algorithm
- applied gofmt -w misc src
- partial CL (last chunk)
R=rsc, r
http://go/go-review/1024041
2009-11-09 21:23:52 -08:00
Robert Griesemer
40621d5c0d
remove semis after statements in one-statement statement lists
...
R=rsc, r
http://go/go-review/1025029
2009-11-09 12:07:39 -08:00
Russ Cox
7732d80ceb
misc cleanup
...
R=r
http://go/go-review/1016017
2009-11-01 09:25:55 -08:00
Russ Cox
094f1d5990
more lgtm files from gofmt
...
R=gri
OCL=35485
CL=35488
2009-10-08 15:14:54 -07:00
Russ Cox
a843b4541a
fmt: add verbs:
...
%E - upper case %e
%G - upper case %g
%#v - Go syntax
R=r
DELTA=332 (238 added, 47 deleted, 47 changed)
OCL=34091
CL=34145
2009-08-31 16:38:30 -07:00
Russ Cox
3b864e4195
convert low-level (used by testing) packages to
...
whole-package compilation. new Makefiles,
tests now in separate package
bytes
flag
fmt
io
math
once
os
reflect
strconv
sync
time
utf8
delete import "xxx" in package xxx.
inside package xxx, xxx is not declared
anymore so s/xxx.//g
delete file and package level forward declarations.
note the new internal_test.go and sync
and strconv to provide public access to
internals during testing. the installed version
of the package omits that file and thus does
not open the internals to all clients.
R=r
OCL=33065
CL=33097
2009-08-12 13:18:37 -07:00
Rob Pike
d90e7cbac6
mv src/lib to src/pkg
...
tests: all.bash passes, gobuild still works, godoc still works.
R=rsc
OCL=30096
CL=30102
2009-06-09 09:53:44 -07:00