gambas-source-code/benchmark/mandelbrot.gbs
gambas 6fc6a48818 Compute the duration of JIT Gambas code without JIT compilation time.
[BENCHMARKS]
* NEW: Compute the duration of JIT Gambas code without JIT compilation time.
2018-07-03 00:54:34 +02:00

80 lines
1.3 KiB
Text
Executable file

#!/usr/bin/env gbs3
Private Const MAXITER As Integer = 50
Private Const LIMIT As Float = 4.0
Sub Mandelbrot(W As Integer, H As Integer)
Dim XMin As Float = -1.5
Dim YMin As Float = -1
Dim InvN As Float = 2.0 / W
Dim CheckNext As Boolean = True
Dim X, Y, K As Integer
Dim Cr, Ci, Zr, Zi, {Tr}, Ti, T As Float
For Y = 0 To H - 1
Ci = Y * InvN + YMin
For X = 0 To W - 1
Zr = 0
Zi = 0
{Tr} = 0
Ti = 0
Cr = X * InvN + XMin
If CheckNext Then
For K = 1 To MAXITER
Zi = 2.0 * Zr * Zi + Ci
Zr = {Tr} - Ti + Cr
Ti = Zi * Zi
{Tr} = Zr * Zr
T = {Tr} + Ti
If IsNan(T) Or If T > LIMIT Then Break
Next
If K > MAXITER Then
Print "1";
CheckNext = False
Else
Print "0";
Endif
Else
For K = 1 To MAXITER
Zi = 2.0 * Zr * Zi + Ci
Zr = {Tr} - Ti + Cr
Ti = Zi * Zi
{Tr} = Zr * Zr
Next
T = {Tr} + Ti
If IsNan(T) Or If T > LIMIT Then
Print "0";
CheckNext = True
Else
Print "1";
Endif
Endif
Next
Print
Next
End
Dim I As Integer
For I = 1 To 20
Mandelbrot(200, 200)
Next
Error CStr(Jit.Time)