ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   12 Numbers   12.2 Dictionary of Numbers

12.2.54 rational, rationalize Function

rational number    rational

rationalize number    rational

Arguments and Values:
number - a real.

rational - a rational.

rational and rationalize convert reals to rationals.

If number is already rational, it is returned.

If number is a float, rational returns a rational that is mathematically equal in value to the float. rationalize returns a rational that approximates the float to the accuracy of the underlying floating-point representation.

rational assumes that the float is completely accurate.

rationalize assumes that the float is accurate only to the precision of the floating-point representation.

 (rational 0)  0
 (rationalize -11/100)  -11/100
 (rational .1)  13421773/134217728 ;implementation-dependent
 (rationalize .1)  1/10

Affected By:
The implementation.

Exceptional Situations:
Should signal an error of type type-error if number is not a real. Might signal arithmetic-error.

It is always the case that

 (float (rational x) x) == x

 (float (rationalize x) x) == x
That is, rationalizing a float by either method and then converting it back to a float of the same format produces the original number.

Allegro CL Implementation Details:

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022-07-25