fork(1) download
  1. <?php
  2. function hsum($a, $b, $p) {
  3. $hs = $a ^ $b;
  4. $hp = $a & $b;
  5. $p <<= 1;
  6. return [$hs ^ $p, $hp | ($hs & $p)];
  7. }
  8.  
  9. function hsum_rec($a, $b, $p) {
  10. list($s, $newp) = hsum($a, $b, $p);
  11. if ($newp == $p) {
  12. return [$s, $newp];
  13. } else {
  14. return hsum_rec($a, $b, $newp);
  15. }
  16. }
  17.  
  18. function sum2($a, $b) {
  19. list($s, $p) = hsum_rec($a, $b, 0);
  20. return $s;
  21. }
  22.  
  23. for($i = 0; $i < 16; $i++) {
  24. for($j = 0; $j < 16; $j++) {
  25. if(sum2($i,$j) != $i + $j) {
  26. $k = sum2($i,$j);
  27. echo "Error: $i, $j, $k\n";
  28. }
  29. }
  30. }
Success #stdin #stdout 0.03s 26256KB
stdin
Standard input is empty
stdout
Standard output is empty