// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This benchmark, taken from the shootuot, tests floating point performance. package go1 import "testing" func mandelbrot(n int) int { const Iter = 50 const Zero float64 = 0 const Limit = 2.0 ok := 0 for y := 0; y < n; y++ { for x := 0; x < n; x++ { Zr, Zi, Tr, Ti := Zero, Zero, Zero, Zero Cr := (2*float64(x)/float64(n) - 1.5) Ci := (2*float64(y)/float64(n) - 1.0) for i := 0; i < Iter && (Tr+Ti <= Limit*Limit); i++ { Zi = 2*Zr*Zi + Ci Zr = Tr - Ti + Cr Tr = Zr * Zr Ti = Zi * Zi } if Tr+Ti <= Limit*Limit { ok++ } } } return ok } func BenchmarkMandelbrot200(b *testing.B) { for i := 0; i < b.N; i++ { mandelbrot(200) } }