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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |