]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: make complex division c99 compatible
authorMartin Möhrmann <moehrmann@google.com>
Sat, 25 Feb 2017 22:50:56 +0000 (23:50 +0100)
committerRobert Griesemer <gri@golang.org>
Wed, 15 Mar 2017 22:45:17 +0000 (22:45 +0000)
commit16200c73331a679b43efc4699b5806c64a556f09
tree652e78ca9384630ac9411ec6446d9cdaea397fb6
parent4b8f41daa63154949104d27d70acc3857a0b4b0b
runtime: make complex division c99 compatible

- changes tests to check that the real and imaginary part of the go complex
  division result is equal to the result gcc produces for c99
- changes complex division code to satisfy new complex division test
- adds float functions isNan, isFinite, isInf, abs and copysign
  in the runtime package

Fixes #14644.

name                   old time/op  new time/op  delta
Complex128DivNormal-4  21.8ns ± 6%  13.9ns ± 6%  -36.37%  (p=0.000 n=20+20)
Complex128DivNisNaN-4  14.1ns ± 1%  15.0ns ± 1%   +5.86%  (p=0.000 n=20+19)
Complex128DivDisNaN-4  12.5ns ± 1%  16.7ns ± 1%  +33.79%  (p=0.000 n=19+20)
Complex128DivNisInf-4  10.1ns ± 1%  13.0ns ± 1%  +28.25%  (p=0.000 n=20+19)
Complex128DivDisInf-4  11.0ns ± 1%  20.9ns ± 1%  +90.69%  (p=0.000 n=16+19)
ComplexAlgMap-4        86.7ns ± 1%  86.8ns ± 2%     ~     (p=0.804 n=20+20)

Change-Id: I261f3b4a81f6cc858bc7ff48f6fd1b39c300abf0
Reviewed-on: https://go-review.googlesource.com/37441
Reviewed-by: Robert Griesemer <gri@golang.org>
src/runtime/complex.go
src/runtime/fastlog2.go
src/runtime/float.go [new file with mode: 0644]
test/cmplxdivide.c
test/cmplxdivide.go
test/cmplxdivide1.go