| www.delorie.com/gnu/docs/emacs/cl_42.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These functions perform various arithmetic operations on numbers.
floor function.
It is called floor* to avoid name conflicts with the
simpler floor function built-in to Emacs.
With one argument, floor* returns a list of two numbers:
The argument rounded down (toward minus infinity) to an integer,
and the "remainder" which would have to be added back to the
first return value to yield the argument again. If the argument
is an integer x, the result is always the list (x 0).
If the argument is a floating-point number, the first
result is a Lisp integer and the second is a Lisp float between
0 (inclusive) and 1 (exclusive).
With two arguments, floor* divides number by
divisor, and returns the floor of the quotient and the
corresponding remainder as a list of two numbers. If
(floor* x y) returns (q r),
then q*y + r = x, with r
between 0 (inclusive) and r (exclusive). Also, note
that (floor* x) is exactly equivalent to
(floor* x 1).
This function is entirely compatible with Common Lisp's floor
function, except that it returns the two results in a list since
Emacs Lisp does not support multiple-valued functions.
ceiling function,
which is analogous to floor except that it rounds the
argument or quotient of the arguments up toward plus infinity.
The remainder will be between 0 and minus r.
truncate function,
which is analogous to floor except that it rounds the
argument or quotient of the arguments toward zero. Thus it is
equivalent to floor* if the argument or quotient is
positive, or to ceiling* otherwise. The remainder has
the same sign as number.
round function,
which is analogous to floor except that it rounds the
argument or quotient of the arguments to the nearest integer.
In the case of a tie (the argument or quotient is exactly
halfway between two integers), it rounds to the even integer.
floor.
truncate.
These definitions are compatible with those in the Quiroz `cl.el' package, except that this package appends `*' to certain function names to avoid conflicts with existing Emacs functions, and that the mechanism for returning multiple values is different.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |