#### 12.2.29 abs [Function] ¶

`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

[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

#### See Also:: ¶

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.