round and truncate in Maxima



Agreed that Lisp functions such as ?round and ?truncate shouldn't be
documented in the Maxima manual.

Wouldn't it be better to define round and truncate with the help of floor
> and ceiling?
>

Well, there are two issues here:

1) What definition to use for round?  Round towards zero or towards minf?
Towards nearest even (numerical analysts' definition) or simply
truncate(x+1/2) (traditional defn)?

2) Do we want autonomous simplifying functions round/truncate, or do we want
them defined in terms of existing functions? The advantage of autonomous
functions is that the user gets back what s/he put in, e.g.
truncate(x)=>truncate(x); the advantage of definition in terms of existing
functions is automatic simplifications, e.g. truncate(x)/floor(abs(x)) =>
signum(x)*floor(abs(x))/floor(abs(x)) => signum(x).  From this perspective,
the best definition of ceiling would be -floor(-x), for example.

             -s