customFunctions.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. if (!function_exists('arraycopy')) {
  3. function arraycopy($srcArray, $srcPos, $destArray, $destPos, $length)
  4. {
  5. $srcArrayToCopy = array_slice($srcArray, $srcPos, $length);
  6. array_splice($destArray, $destPos, $length, $srcArrayToCopy);
  7. return $destArray;
  8. }
  9. }
  10. if (!function_exists('hashCode')) {
  11. function hashCode($s)
  12. {
  13. $h = 0;
  14. $len = strlen((string) $s);
  15. for ($i = 0; $i < $len; $i++) {
  16. $h = (31 * $h + ord($s[$i]));
  17. }
  18. return $h;
  19. }
  20. }
  21. if (!function_exists('numberOfTrailingZeros')) {
  22. function numberOfTrailingZeros($i)
  23. {
  24. if ($i == 0) {
  25. return 32;
  26. }
  27. $num = 0;
  28. while (($i & 1) == 0) {
  29. $i >>= 1;
  30. $num++;
  31. }
  32. return $num;
  33. }
  34. }
  35. if (!function_exists('uRShift')) {
  36. function uRShift($a, $b)
  37. {
  38. static $mask = (8 * PHP_INT_SIZE - 1);
  39. if ($b === 0) {
  40. return $a;
  41. }
  42. return ($a >> $b) & ~(1 << $mask >> ($b - 1));
  43. }
  44. }
  45. /*
  46. function sdvig3($num,$count=1){//>>> 32 bit
  47. $s = decbin($num);
  48. $sarray = str_split($s,1);
  49. $sarray = array_slice($sarray,-32);//32bit
  50. for($i=0;$i<=1;$i++) {
  51. array_pop($sarray);
  52. array_unshift($sarray, '0');
  53. }
  54. return bindec(implode($sarray));
  55. }
  56. */
  57. if (!function_exists('sdvig3')) {
  58. function sdvig3($a, $b)
  59. {
  60. if ($a >= 0) {
  61. return bindec(decbin($a >> $b)); //simply right shift for positive number
  62. }
  63. $bin = decbin($a >> $b);
  64. $bin = substr($bin, $b); // zero fill on the left side
  65. return bindec($bin);
  66. }
  67. }
  68. if (!function_exists('floatToIntBits')) {
  69. function floatToIntBits($float_val)
  70. {
  71. $int = unpack('i', pack('f', $float_val));
  72. return $int[1];
  73. }
  74. }
  75. if (!function_exists('fill_array')) {
  76. function fill_array($index, $count, $value)
  77. {
  78. if ($count <= 0) {
  79. return [0];
  80. }
  81. return array_fill($index, $count, $value);
  82. }
  83. }