<?php
function convertNew($input)
{
$oldMin = 0;
$oldMax = 1;
$newMin = 127;
$newMax = 0;
return ceil(((($input- $oldMin) * ($newMax - $newMin)) / ($oldMax - $oldMin)) + $newMin);
}
function convertOld($input)
{
$range_input = range(1, 0, 1/127);
$range_output = range(0, 127);
foreach ($range_input as $key => $value) {
if ($value <= $input) {
return $range_output[$key];
}
}
return 127;
}
// Simple benchmark for OLD alpha2gd conversion
$start = microtime(1);
foreach (range(0,1,1/1000) as $input) { convertOld($input); }
$diffOld = microtime(1) - $start;
echo "Old time: $diffOld\n";
// Simple benchmark for NEW alpha2gd conversion
$start = microtime(1);
foreach (range(0,1,1/1000) as $input) { convertNew($input); }
$diffNew = microtime(1) - $start;
echo "New time: $diffNew\n";
echo ($diffNew/$diffOld*100)."% faster\n";
// Iterate through a whole bunch of floats
$warnings = array();
foreach (range(0,1,1/10000) as $input) {
if (convertOld($input) != convertNew($input)) $warnings[] = $input;
}
if (count($warnings)) {
echo "Warning, value mismatches at ".implode(", ", $warnings)."\n";
} else {
echo "All values passed!\n";
}
preferences:
36.39 ms | 402 KiB | 5 Q