|  | ANSI Common Lisp  12 Numbers  12.2 Dictionary of Numbers 
 
 Syntax:
abs
number
   absolute-value 
Arguments and Values:
number - a number.
absolute-value - a non-negative real.
 
Description:
abs returns the absolute value of number.
If number is 
a real,
the result is  of the same type as number.
 
If number is a complex, 
the result is a positive 
real
with
the same magnitude as number.  
The result can be a float 
even if number's components are rationals 
and an exact rational result
would have been possible.
Thus the result of (abs #c(3 4)) can be either 5 or 5.0,
depending on the implementation.
 
Examples:
 (abs 0)  0
 (abs 12/13)  12/13
 (abs -1.09)  1.09
 (abs #c(5.0 -5.0))  7.071068
 (abs #c(5 5))  7.071068
 (abs #c(3/5 4/5))  1 or approximately 1.0
 (eql (abs -0.0) -0.0)  true 
See Also:
Section 12.1.3.3 Rule of Float Substitutability
Notes:
If number is a complex, 
the result is equivalent to the following: 
(sqrt (+ (expt (realpart number) 2)  (expt (imagpart number) 2)))
 
An implementation should not use this formula directly
for all complexes
but should handle very large or very small components specially
to avoid intermediate overflow or underflow.
 
Allegro CL Implementation Details:
 None. |