# (lispkit math util)

Library `(lispkit math util)` implements mathematical utility functions.

(sgn x) Implements the sign/signum function. Returns -1 if x is negative, 0 (or a signed zero, when inexact) if x is zero, and 1 if x is a positive number. `sgn` fails if x is not a real number.
(numbers lo hi) (numbers lo hi f) (numbers lo hi guard f)
Returns a list of numbers by iterating from integer lo to integer hi (both inclusive) and applying function f to each integer in the range for which guard returns true. The default guard always returns true. The default for f is `identity`.
(sum xs) Returns the sum of all numbers of list xs. This procedure fails if there is an element in xs which is not a number.
(product xs) Returns the product of all numbers of list xs. This procedure fails if there is an element in xs which is not a number.
(minimum xs) Returns the minimum of all numbers of list xs. This procedure fails if there is an element in xs which is not a number.
(maximum xs) Returns the maximum of all numbers of list xs. This procedure fails if there is an element in xs which is not a number.
(conjugate x) Conjugates number x. For real numbers x, `conjugate` returns x, otherwise x is being returned with the opposite sign for the imaginary part.  (prime? n) Returns `#t` if integer n is a prime number, `#f` otherwise. Returns a NaN whose sign bit is equal to neg (`#t` for negative, `#f` for positive), whose quiet bit is equal to quiet (`#t` for quiet, `#f` for signaling), and whose payload is the positive exact integer payload. It is an error if payload is larger than a NaN can hold.
(nan-negative? x) Returns `#t` if the sign bit of x is 1 and `#f` otherwise.
(nan-quiet? x) Returns `#t` if x is a quiet NaN.  Returns `#t` if x and y have the same sign, quiet bit, and payload; and `#f` otherwise.