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