• Adam Langley's avatar
    math/big: save some copies in binaryGCD. · 133cdb67
    Adam Langley authored
    This patch resulted from a bit of quick optimisation in response to a
    golang-nuts post. It looks like one could save a couple other copies in
    this function, but this addresses the inner loop and is fairly simple.
    
    benchmark                    old ns/op    new ns/op    delta
    BenchmarkGCD10x10                 1964         1711  -12.88%
    BenchmarkGCD10x100                2019         1736  -14.02%
    BenchmarkGCD10x1000               2471         2171  -12.14%
    BenchmarkGCD10x10000              6040         5778   -4.34%
    BenchmarkGCD10x100000            43204        43025   -0.41%
    BenchmarkGCD100x100              11004         8520  -22.57%
    BenchmarkGCD100x1000             11820         9446  -20.08%
    BenchmarkGCD100x10000            23846        21382  -10.33%
    BenchmarkGCD100x100000          133691       131505   -1.64%
    BenchmarkGCD1000x1000           120041        95591  -20.37%
    BenchmarkGCD1000x10000          136887       113600  -17.01%
    BenchmarkGCD1000x100000         295370       273912   -7.26%
    BenchmarkGCD10000x10000        2556126      2205198  -13.73%
    BenchmarkGCD10000x100000       3159512      2808038  -11.12%
    BenchmarkGCD100000x100000    150543094    139986045   -7.01%
    
    R=gri, remyoudompheng
    CC=bradfitz, gobot, golang-dev, gri
    https://golang.org/cl/9424043
    133cdb67
Name
Last commit
Last update
..
big Loading commit data...
cmplx Loading commit data...
rand Loading commit data...
abs.go Loading commit data...
abs_386.s Loading commit data...
abs_amd64.s Loading commit data...
abs_arm.s Loading commit data...
acosh.go Loading commit data...
all_test.go Loading commit data...
asin.go Loading commit data...
asin_386.s Loading commit data...
asin_amd64.s Loading commit data...
asin_arm.s Loading commit data...
asinh.go Loading commit data...
atan.go Loading commit data...
atan2.go Loading commit data...
atan2_386.s Loading commit data...
atan2_amd64.s Loading commit data...
atan2_arm.s Loading commit data...
atan_386.s Loading commit data...
atan_amd64.s Loading commit data...
atan_arm.s Loading commit data...
atanh.go Loading commit data...
bits.go Loading commit data...
cbrt.go Loading commit data...
const.go Loading commit data...
copysign.go Loading commit data...
dim.go Loading commit data...
dim_386.s Loading commit data...
dim_amd64.s Loading commit data...
dim_arm.s Loading commit data...
erf.go Loading commit data...
exp.go Loading commit data...
exp2_386.s Loading commit data...
exp2_amd64.s Loading commit data...
exp2_arm.s Loading commit data...
exp_386.s Loading commit data...
exp_amd64.s Loading commit data...
exp_arm.s Loading commit data...
expm1.go Loading commit data...
expm1_386.s Loading commit data...
expm1_amd64.s Loading commit data...
expm1_arm.s Loading commit data...
export_test.go Loading commit data...
floor.go Loading commit data...
floor_386.s Loading commit data...
floor_amd64.s Loading commit data...
floor_arm.s Loading commit data...
fltasm_amd64.s Loading commit data...
frexp.go Loading commit data...
frexp_386.s Loading commit data...
frexp_amd64.s Loading commit data...
frexp_arm.s Loading commit data...
gamma.go Loading commit data...
hypot.go Loading commit data...
hypot_386.s Loading commit data...
hypot_amd64.s Loading commit data...
hypot_arm.s Loading commit data...
j0.go Loading commit data...
j1.go Loading commit data...
jn.go Loading commit data...
ldexp.go Loading commit data...
ldexp_386.s Loading commit data...
ldexp_amd64.s Loading commit data...
ldexp_arm.s Loading commit data...
lgamma.go Loading commit data...
log.go Loading commit data...
log10.go Loading commit data...
log10_386.s Loading commit data...
log10_amd64.s Loading commit data...
log10_arm.s Loading commit data...
log1p.go Loading commit data...
log1p_386.s Loading commit data...
log1p_amd64.s Loading commit data...
log1p_arm.s Loading commit data...
log_386.s Loading commit data...
log_amd64.s Loading commit data...
log_arm.s Loading commit data...
logb.go Loading commit data...
mod.go Loading commit data...
mod_386.s Loading commit data...
mod_amd64.s Loading commit data...
mod_arm.s Loading commit data...
modf.go Loading commit data...
modf_386.s Loading commit data...
modf_amd64.s Loading commit data...
modf_arm.s Loading commit data...
nextafter.go Loading commit data...
pow.go Loading commit data...
pow10.go Loading commit data...
remainder.go Loading commit data...
remainder_386.s Loading commit data...
remainder_amd64.s Loading commit data...
remainder_arm.s Loading commit data...
signbit.go Loading commit data...
sin.go Loading commit data...
sin_386.s Loading commit data...
sin_amd64.s Loading commit data...
sin_arm.s Loading commit data...
sincos.go Loading commit data...
sincos_386.s Loading commit data...
sincos_amd64.s Loading commit data...
sincos_arm.s Loading commit data...
sinh.go Loading commit data...
sqrt.go Loading commit data...
sqrt_386.s Loading commit data...
sqrt_amd64.s Loading commit data...
sqrt_arm.s Loading commit data...
tan.go Loading commit data...
tan_386.s Loading commit data...
tan_amd64.s Loading commit data...
tan_arm.s Loading commit data...
tanh.go Loading commit data...
unsafe.go Loading commit data...