CLCS
Function

abs

abs numberabsolute-value

Arguments and Values

numbera number.
absolute-valuea 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

[Reviewer Note by Barmar: Single-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

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.