# LispKit Math Util

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

(sgn x) [procedure]

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) [procedure]
(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) [procedure]

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) [procedure]

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) [procedure]

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) [procedure]

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) [procedure]

Conjugates number x. For real numbers x, `conjugate` returns x, otherwise x is being returned with the opposite sign for the imaginary part.

(degrees->radians x) [procedure]

Converts degrees into radians.

(radians->degrees x) [procedure]

Converts radians into degrees.

(prime? n) [procedure]

Returns `#t` if integer n is a prime number, `#f` otherwise.

(make-nan neg quiet payload) [procedure]

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) [procedure]

Returns `#t` if the sign bit of x is 1 and `#f` otherwise.

(nan-quiet? x) [procedure]

Returns `#t` if x is a quiet NaN.

(nan-payload x) [procedure]

Returns the payload bits of floating-point number x as a positive exact integer.

(nan=? x y) [procedure]

Returns `#t` if x and y have the same sign, quiet bit, and payload; and `#f` otherwise.