From aa45e52e74f37e39a5a8234071742d50b87b7b2c Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Fri, 11 May 2012 03:09:14 +0800 Subject: [PATCH] runtime: fix complex division benchmarks we can't add the division result to n during iteration, because it might turn n into NaN or Inf. R=golang-dev, rsc, iant, iant CC=golang-dev https://golang.org/cl/6197045 --- src/pkg/runtime/complex_test.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/pkg/runtime/complex_test.go b/src/pkg/runtime/complex_test.go index ebe2d59124..f41e6a3570 100644 --- a/src/pkg/runtime/complex_test.go +++ b/src/pkg/runtime/complex_test.go @@ -14,44 +14,54 @@ var result complex128 func BenchmarkComplex128DivNormal(b *testing.B) { d := 15 + 2i n := 32 + 3i + res := 0i for i := 0; i < b.N; i++ { - n += n / d + n += 0.1i + res += n / d } - result = n + result = res } func BenchmarkComplex128DivNisNaN(b *testing.B) { d := cmplx.NaN() n := 32 + 3i + res := 0i for i := 0; i < b.N; i++ { - n += n / d + n += 0.1i + res += n / d } - result = n + result = res } func BenchmarkComplex128DivDisNaN(b *testing.B) { d := 15 + 2i n := cmplx.NaN() + res := 0i for i := 0; i < b.N; i++ { - n += n / d + d += 0.1i + res += n / d } - result = n + result = res } func BenchmarkComplex128DivNisInf(b *testing.B) { d := 15 + 2i n := cmplx.Inf() + res := 0i for i := 0; i < b.N; i++ { - n += n / d + d += 0.1i + res += n / d } - result = n + result = res } func BenchmarkComplex128DivDisInf(b *testing.B) { d := cmplx.Inf() n := 32 + 3i + res := 0i for i := 0; i < b.N; i++ { - n += n / d + n += 0.1i + res += n / d } - result = n + result = res } -- 2.48.1