#### 12.2.16 max, min [Function]

`max` &rest reals^+ ⇒ max-real

`min` &rest reals^+ ⇒ min-real

#### Arguments and Values::

real—a real.

max-real, min-real—a real.

#### Description::

max returns the real that is greatest (closest to positive infinity). min returns the real that is least (closest to negative infinity).

For max, the implementation has the choice of returning the largest argument as is or applying the rules of floating-point contagion, taking all the arguments into consideration for contagion purposes. Also, if one or more of the arguments are =, then any one of them may be chosen as the value to return. For example, if the reals are a mixture of rationals and floats, and the largest argument is a rational, then the implementation is free to produce either that rational or its float approximation; if the largest argument is a float of a smaller format than the largest format of any float argument, then the implementation is free to return the argument in its given format or expanded to the larger format. Similar remarks apply to min (replacing “largest argument” by “smallest argument”).

#### Examples::

     (max 3) ⇒  3
     (min 3) ⇒  3
     (max 6 12) ⇒  12
     (min 6 12) ⇒  6
     (max -6 -12) ⇒  -6
     (min -6 -12) ⇒  -12
     (max 1 3 2 -7) ⇒  3
     (min 1 3 2 -7) ⇒  -7
     (max -2 3 0 7) ⇒  7
     (min -2 3 0 7) ⇒  -2
     (max 5.0 2) ⇒  5.0
     (min 5.0 2)
    ⇒  2
    OR⇒ 2.0
     (max 3.0 7 1)
    ⇒  7
    OR⇒ 7.0
     (min 3.0 7 1)
    ⇒  1
    OR⇒ 1.0
     (max 1.0s0 7.0d0) ⇒  7.0d0
     (min 1.0s0 7.0d0)
    ⇒  1.0s0
    OR⇒ 1.0d0
     (max 3 1 1.0s0 1.0d0)
    ⇒  3
    OR⇒ 3.0d0
     (min 3 1 1.0s0 1.0d0)
    ⇒  1
    OR⇒ 1.0s0
    OR⇒ 1.0d0

#### Exceptional Situations::

Should signal an error of type type-error if any number is not a real.