**Syntax:**

**max** * &rest reals+* =>

**min** * &rest reals+* =>

**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

**Side Effects:** None.

**Affected By:** None.

**Exceptional Situations:**

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

**See Also:** None.

**Notes:** None.