From: Robert Griesemer Date: Sun, 15 Feb 2015 05:29:37 +0000 (-0800) Subject: math/big: implement fast path in Float.SetRat if argument is integer X-Git-Tag: go1.5beta1~1984 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=61c9c3ddc4f972cef41aad8e78bdc1746d5c5a4a;p=gostls13.git math/big: implement fast path in Float.SetRat if argument is integer Change-Id: Ib82500e198b86e9fade278c7eea7a4b0c6b0b2e1 Reviewed-on: https://go-review.googlesource.com/4921 Reviewed-by: Rob Pike --- diff --git a/src/math/big/float.go b/src/math/big/float.go index 739d30f7ad..877379c901 100644 --- a/src/math/big/float.go +++ b/src/math/big/float.go @@ -582,7 +582,9 @@ func (z *Float) SetInt(x *Int) *Float { // If z's precision is 0, it is changed to the largest of a.BitLen(), // b.BitLen(), or 64; with x = a/b. func (z *Float) SetRat(x *Rat) *Float { - // TODO(gri) can be more efficient if x is an integer + if x.IsInt() { + return z.SetInt(x.Num()) + } var a, b Float a.SetInt(x.Num()) b.SetInt(x.Denom())