Function: math-hypot
math-hypot is an autoloaded and byte-compiled function defined in
calc-math.el.gz.
Signature
(math-hypot A B)
Aliases
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-math.el.gz
;;; This implementation could be improved, accuracy-wise.
(defun math-hypot (a b)
(cond ((Math-zerop a) (math-abs b))
((Math-zerop b) (math-abs a))
((not (Math-scalarp a))
(if (math-infinitep a)
(if (math-infinitep b)
(if (equal a b)
a
'(var nan var-nan))
a)
(calc-record-why 'scalarp a)
(list 'calcFunc-hypot a b)))
((not (Math-scalarp b))
(if (math-infinitep b)
b
(calc-record-why 'scalarp b)
(list 'calcFunc-hypot a b)))
((and (Math-numberp a) (Math-numberp b))
(math-with-extra-prec 1
(math-sqrt (math-add (calcFunc-abssqr a) (calcFunc-abssqr b)))))
((eq (car-safe a) 'hms)
(if (eq (car-safe b) 'hms) ; this helps sdev's of hms forms
(math-to-hms (math-hypot (math-from-hms a 'deg)
(math-from-hms b 'deg)))
(math-to-hms (math-hypot (math-from-hms a 'deg) b))))
((eq (car-safe b) 'hms)
(math-to-hms (math-hypot a (math-from-hms b 'deg))))
(t nil)))