Maths.php 494 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. /**
  3. * Pythagorean Theorem:.
  4. *
  5. * a = 3
  6. * b = 4
  7. * r = sqrt(square(a) + square(b))
  8. * r = 5
  9. *
  10. * r = sqrt(a^2 + b^2) without under/overflow.
  11. *
  12. * @param mixed $a
  13. * @param mixed $b
  14. *
  15. * @return float
  16. */
  17. function hypo($a, $b)
  18. {
  19. if (abs($a) > abs($b)) {
  20. $r = $b / $a;
  21. $r = abs($a) * sqrt(1 + $r * $r);
  22. } elseif ($b != 0) {
  23. $r = $a / $b;
  24. $r = abs($b) * sqrt(1 + $r * $r);
  25. } else {
  26. $r = 0.0;
  27. }
  28. return $r;
  29. }