102 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
if (!function_exists('arraycopy')) {
 | 
						|
    function arraycopy($srcArray, $srcPos, $destArray, $destPos, $length)
 | 
						|
    {
 | 
						|
        $srcArrayToCopy = array_slice($srcArray, $srcPos, $length);
 | 
						|
        array_splice($destArray, $destPos, $length, $srcArrayToCopy);
 | 
						|
 | 
						|
        return $destArray;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (!function_exists('hashCode')) {
 | 
						|
    function hashCode($s)
 | 
						|
    {
 | 
						|
        $h   = 0;
 | 
						|
        $len = strlen($s);
 | 
						|
        for ($i = 0; $i < $len; $i++) {
 | 
						|
            $h = (31 * $h + ord($s[$i]));
 | 
						|
        }
 | 
						|
 | 
						|
        return $h;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (!function_exists('numberOfTrailingZeros')) {
 | 
						|
    function numberOfTrailingZeros($i)
 | 
						|
    {
 | 
						|
        if ($i == 0) return 32;
 | 
						|
        $num = 0;
 | 
						|
        while (($i & 1) == 0) {
 | 
						|
            $i >>= 1;
 | 
						|
            $num++;
 | 
						|
        }
 | 
						|
 | 
						|
        return $num;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (!function_exists('uRShift')) {
 | 
						|
    function uRShift($a, $b)
 | 
						|
    {
 | 
						|
        static $mask = (8 * PHP_INT_SIZE - 1);
 | 
						|
        if ($b === 0) {
 | 
						|
            return $a;
 | 
						|
        }
 | 
						|
 | 
						|
        return ($a >> $b) & ~(1 << $mask >> ($b - 1));
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
function sdvig3($num,$count=1){//>>> 32 bit
 | 
						|
    $s = decbin($num);
 | 
						|
 | 
						|
    $sarray  = str_split($s,1);
 | 
						|
    $sarray = array_slice($sarray,-32);//32bit
 | 
						|
 | 
						|
    for($i=0;$i<=1;$i++) {
 | 
						|
        array_pop($sarray);
 | 
						|
        array_unshift($sarray, '0');
 | 
						|
    }
 | 
						|
    return bindec(implode($sarray));
 | 
						|
}
 | 
						|
*/
 | 
						|
 | 
						|
if (!function_exists('sdvig3')) {
 | 
						|
    function sdvig3($a, $b)
 | 
						|
    {
 | 
						|
        if ($a >= 0) {
 | 
						|
            return bindec(decbin($a >> $b)); //simply right shift for positive number
 | 
						|
        }
 | 
						|
 | 
						|
        $bin = decbin($a >> $b);
 | 
						|
 | 
						|
        $bin = substr($bin, $b); // zero fill on the left side
 | 
						|
 | 
						|
        return bindec($bin);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (!function_exists('floatToIntBits')) {
 | 
						|
    function floatToIntBits($float_val)
 | 
						|
    {
 | 
						|
        $int = unpack('i', pack('f', $float_val));
 | 
						|
 | 
						|
        return $int[1];
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
if (!function_exists('fill_array')) {
 | 
						|
    function fill_array($index, $count, $value)
 | 
						|
    {
 | 
						|
        if ($count <= 0) {
 | 
						|
            return [0];
 | 
						|
        }
 | 
						|
 | 
						|
        return array_fill($index, $count, $value);
 | 
						|
    }
 | 
						|
}
 |