Home | History | Annotate | Download | only in runtime
      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 
      5 package runtime_test
      6 
      7 import (
      8 	"math/cmplx"
      9 	"testing"
     10 )
     11 
     12 var result complex128
     13 
     14 func 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 
     25 func 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 
     36 func 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 
     47 func 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 
     58 func 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