> I think we do. Maxima sessions can have so much state that it's nice to keep > them separate to ensure consistency of the calculus modules. Also, that > means you won't be accidently clobbering your calculus variables, functions, > etc. >
I think I agree in principle, but maybe not in practice. For the user who knows nothing about Maxima, they're definitely not going to try to do anything via maxima("...") themselves, so I think it doesn't matter for them. On the other hand, our use of Maxima clearly isn't perfect -- if someone knows enough about Maxima to be able to fix the problem they're having on the Maxima side, it would be nice if that were a little easier. Since integrate() and friends often comes back with an error message talking about what we need to tell Maxima first, it'd be nice if it were easier to do that. I guess I'm saying that I think the benefits outweigh the dangers -- someone making calls via maxima("...") probably realizes the prospect of clobbering variables, unless maybe they were just copy-pasting someone else's code that does it. > Eventually (if not already) assumptions and the like will need to be > recorded and used at a higher level than the maxima interpreter process, so > I don't think we could always count on the above working. > I agree -- ultimately the user should never need to know that we're using Maxima, and in theory we could one day be using some completely different backend for integrals. But right now, lots of integrals end in tracebacks like this: TypeError: Computation failed since Maxima requested additional constraints (try the command 'assume(sin(x+%pi/3)>0)' before integral or limit evaluation, for example): Is sin(x+%pi/3) positive, negative, or zero? Using assume or maxima.assume doesn't help, but using sage.calculus.calculus.maxima.assume *does* fix it. I just tested, and the first three problems on sage-support about maxima and assume I looked at were all fixed by using sage.calculus.calculus.maxima.assume instead. I agree that it's not the solution we want in the long term, but either (1) unifying the two maxima sessions or (2) making the assume() command available at top-level point to sage.calculus.calculus.maxima.assume *would* make it so that the user could easily compute the integral that's frustrating them. (I know that the one time I've run into this, I tried an integral, got a traceback about assume, tried maxima("assume(...)"), which didn't fix it -- so I gave up and just did the integral by hand.) -cc
-- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org