source code
<?php
/* The Computer Language Benchmarks Game
https://salsa.debian.org/benchmarksgame-team/benchmarksgame/
contributed by Thomas GODART (based on Greg Buchholz's C program)
modified by anon
*/
ob_implicit_flush(1);
ob_start(NULL, 4096);
$h = ($argc == 2) ? ((int)$argv[1]) : 600;
$w = $h;
printf ("P4\n%d %d\n", $w, $h);
$bit_num = 128;
$byte_acc = 0;
$yfac = 2.0 / $h;
$xfac = 2.0 / $w;
for ($y = 0 ; $y < $h ; ++$y)
{
$result = array('c*');
$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 < 50 ; ++$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 ($bit_num === 1) {
$result[] = $byte_acc;
$bit_num = 128;
$byte_acc = 0;
} else {
$bit_num >>= 1;
}
}
if ($bit_num !== 128) {
$result[] = $byte_acc;
$bit_num = 128;
$byte_acc = 0;
}
echo call_user_func_array('pack', $result);
}
notes, command-line, and program output
NOTES:
64-bit Ubuntu quad core
PHP 8.3.11 (cli)
(built: Sep 5 2024 12:34:23) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.11,
with Zend OPcache v8.3.11,
Copyright (c) Zend Technologies
Thu, 05 Sep 2024 20:47:30 GMT
COMMAND LINE:
/opt/src/php-8.3.11/bin/php -dzend_extension=/opt/src/php-8.3.11/lib/php/extensions/no-debug-non-zts-20230831/opcache.so -dopcache.enable_cli=1 -dopcache.jit_buffer_size=64M -n mandelbrot.php 16000
(BINARY) PROGRAM OUTPUT NOT SHOWN