HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/files.wb-cloud.nl/private_html/3rdparty/kornrunner/blurhash/src/AC.php
<?php

namespace kornrunner\Blurhash;

final class AC {

    public static function encode(array $value, float $max_value): float {
        $quant_r = static::quantise($value[0] / $max_value);
        $quant_g = static::quantise($value[1] / $max_value);
        $quant_b = static::quantise($value[2] / $max_value);
        return $quant_r * 19 * 19 + $quant_g * 19 + $quant_b;
    }

    public static function decode(int $value, float $max_value): array {
        $quant_r = intdiv($value, 19 * 19);
        $quant_g = intdiv($value, 19) % 19;
        $quant_b = $value % 19;

        return [
            static::signPow(($quant_r - 9) / 9, 2) * $max_value,
            static::signPow(($quant_g - 9) / 9, 2) * $max_value,
            static::signPow(($quant_b - 9) / 9, 2) * $max_value
        ];
    }

    private static function quantise(float $value): float {
        return floor(max(0, min(18, floor(static::signPow($value, 0.5) * 9 + 9.5))));
    }

    private static function signPow(float $base, float $exp): float {
        $sign = $base <=> 0;
        return $sign * pow(abs($base), $exp);
    }
}