Subject: Compatibility for older PHP
Text: Equivalent for versions before 8.0. Handles the sign of zero for INF results.
<?php
if (!function_exists('fdiv')) {
function fdiv(float $a, float $b): float
{
if (is_nan($a) || is_nan($b)) return NAN;
if ($b != 0.0) return $a / $b;
if ($a == 0.0) return NAN;
$check = function ($v) {
if ($v > 0) return 1;
if ($v < 0) return -1;
return pack('d', (float)$v) === pack('d', 0.0) ? 1 : -1;
};
return ($check($a) === $check($b)) ? INF : -INF;
}
}
?>