From 122e43b67927e74dd4238c2f786c67bca0f126a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E5=A4=A9=E5=B3=B0?= Date: Tue, 6 Jan 2026 22:23:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20'examples/bench/test1.php'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/bench/test1.php | 101 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 examples/bench/test1.php diff --git a/examples/bench/test1.php b/examples/bench/test1.php new file mode 100644 index 00000000..1e85a75d --- /dev/null +++ b/examples/bench/test1.php @@ -0,0 +1,101 @@ +)|&IH%*#'; + $pack_format = 'c*'; + + for ($y = 0 ; $y < $h ; ++$y) { + $Ci = $y * $yfac - 1.0; + for ($x = 0 ; $x < $w ; ++$x) { + $Zr = 0; $Zi = 0; $Tr = 0; $Ti = 0.0; + $Cr = $x * $xfac - 1.5; + do { + for ($i = 0; $i < $iter; ++$i) { + $Zi = 2.0 * $Zr * $Zi + $Ci; + $Zr = $Tr - $Ti + $Cr; + $Tr = $Zr * $Zr; + if (($Tr+($Ti = $Zi * $Zi)) > 4.0) break 2; + } + $byte_acc += $bit_num; + } while (false); + + if($bitmap) { + if ($bit_num === 1) { + fwrite($stream, pack($pack_format, $byte_acc)); + $bit_num = 128; + $byte_acc = 0; + } else { + $bit_num >>= 1; + } + } else { + if($i == $iter) { + fwrite($stream, $ochars[0]); + } else { + fwrite($stream, $ochars[($i+1) & 15]); + } + } + } + if($bitmap) { + if ($bit_num !== 128) { + fwrite($stream, pack($pack_format, $byte_acc)); + $bit_num = 128; + $byte_acc = 0; + } + } else { + fwrite($stream, "\n"); + } + } + return true; +} + +function treffynnon_mandelbrot_to_file($filename, $w, $h, $binary_output) { + $file_open_type = 'w'; + if($binary_output) + $file_open_type = 'wb'; + + $stream = fopen((string) $filename, $file_open_type); + if(false === $stream) + return false; + + write_mandelbrot_to_stream((int) $w, (int) $h, $stream, (bool) $binary_output); + fclose($stream); + return true; +} + +function treffynnon_mandelbrot_to_mem($w, $h, $binary_output) { + $file_open_type = 'w+'; + if($binary_output) + $file_open_type = 'w+b'; + + $stream = fopen('php://memory', $file_open_type); + if(false === $stream) + return ''; + + write_mandelbrot_to_stream((int) $w, (int) $h, $stream, (bool) $binary_output); + rewind($stream); + $ret = stream_get_contents($stream); + fclose($stream); + return $ret; +} + +echo treffynnon_mandelbrot_to_mem((int) $argv[1], (int) $argv[1], false); \ No newline at end of file