I suspect that you are using a front end like wxmaxima that
(unfortunately) does not follow the convention that all CRE expressions
are displayed with a /R/ on the left side. It doesn't matter which
lisp you are using. It only matters which front end.
A CRE is a ratio of polynomials. If the denominator is 1, then it is
not displayed and it is fair to say that what remains "IS"
a polynomial.
One way of encouraging the use of CRE form is to start with variables in
CRE form, e.g.
x:rat(x);
Whether this "turns on" CRE for everything depends on what you do with x.
If you definitely do not want CRE form, you can always do
totaldisrep(expression) instead of expression.
As for having to do this in some ad hoc way, why not do it everywhere.
e.g. for every program xxx that
you use, define Oliverxxx such that Oliverxxx calls xxx(totaldisrep
...))
RJF
Oliver Kullmann wrote:
> Hi,
>
> is there a possibility to completely turn off
> this internal CRE business? It causes just a
> never-ending stream of problems. (Just remember
> the apparently forgotten gf-package, which is
> in its most important functions not working because
> of CRE-problems.)
>
> Now we got rid off the gf-package, but Maxima is
> apparently fully under-specified w.r.t. handling
> of polynomials. On the main documentation page
> for polynomials one finds the empty sentence
>
> Polynomials are stored in Maxima either in General Form or as Cannonical Rational Expressions (CRE) form.
> The latter is a standard form, and is used internally by operations such as factor, ratsimp, and so on.
>
>
> In other words, no information is available when a polynomial suddenly becomes a CRE-vampire (looks
> like a polynomial, but is not really a polynomial)?
>
> I guess the whole thing is historical baggage?
>
> Apparently there are no flags to force Maxima to always use just one representation?
>
> By the way, the nice idea of showing with the output what type it is, doesn't
> work and has never worked: The documentation of for example gcdex says
>
> (%i1) gcdex (x*(y + 1), y^2 - 1, x);
> 1
> (%o1)/R/ [0, ------, 1]
> 2
> y - 1
>
> but I have never seen such output-annotations (neither with CLisp nor with Ecl).
>
> So apparently the only possibility is to use totaldisrep at some places,
> until the current problem goes away, and to wait until the next problem shows up,
> where then some further totaldisrep have to be placed somewhere, and so on?
>
> Seems to be the case, but I wanted to be sure, and also wanted
> to mention this problem.
>
> Oliver
>
>