1// Copyright 2012 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package runtime_test
6
7import (
8	"math/cmplx"
9	"testing"
10)
11
12var result complex128
13
14func BenchmarkComplex128DivNormal(b *testing.B) {
15	d := 15 + 2i
16	n := 32 + 3i
17	res := 0i
18	for i := 0; i < b.N; i++ {
19		n += 0.1i
20		res += n / d
21	}
22	result = res
23}
24
25func BenchmarkComplex128DivNisNaN(b *testing.B) {
26	d := cmplx.NaN()
27	n := 32 + 3i
28	res := 0i
29	for i := 0; i < b.N; i++ {
30		n += 0.1i
31		res += n / d
32	}
33	result = res
34}
35
36func BenchmarkComplex128DivDisNaN(b *testing.B) {
37	d := 15 + 2i
38	n := cmplx.NaN()
39	res := 0i
40	for i := 0; i < b.N; i++ {
41		d += 0.1i
42		res += n / d
43	}
44	result = res
45}
46
47func BenchmarkComplex128DivNisInf(b *testing.B) {
48	d := 15 + 2i
49	n := cmplx.Inf()
50	res := 0i
51	for i := 0; i < b.N; i++ {
52		d += 0.1i
53		res += n / d
54	}
55	result = res
56}
57
58func BenchmarkComplex128DivDisInf(b *testing.B) {
59	d := cmplx.Inf()
60	n := 32 + 3i
61	res := 0i
62	for i := 0; i < b.N; i++ {
63		n += 0.1i
64		res += n / d
65	}
66	result = res
67}
68