Bug Report



Here it is.

Launch wxMaxima to a blank state.  Type this in the input bar with or without a semicolon at the end

:lisp (defun $makesimp (op ex) (cons (list ($verbify op) 'simp) (reverse (cdr ex))))

You get 

"Maxima is calculating" in the bottom right in the status bar.

Forever.

Rich


bug_report()

The Maxima bug database is available at    http://sourceforge.net/tracker/?atid=104933&group_id=4933&func=browse
Submit bug reports by following the 'Submit New' link on that page.
Please include the following build information with your bug report:
-------------------------------------------------------------
Maxima version: 5.15.0
Maxima build date: 17:36 4/20/2008
host type: i686-pc-mingw32
lisp-implementation-type: GNU Common Lisp (GCL)lisp-implementation-version: GCL 2.6.8 -------------------------------------------------------------
The above information is also available from the Maxima function build_info().



Sorry I am using 5.15.0.

Rich




 ------------Original Message------------
From: "Richard Hennessy"<rvh2007 at comcast.net>
To: "Stavros Macrakis" <macrakis at alum.mit.edu>
Cc: "Maxima List" <maxima at math.utexas.edu>, "S. Newhouse" <sen1 at math.msu.edu>
Date: Mon, Apr-21-2008 6:24 PM
Subject: Re: [Maxima] Feature request

Here it is.

Launch wxMaxima to a blank state.  Type this in the input bar

:lisp (defun $makesimp (op ex) (cons (list ($verbify op) 'simp) (reverse (cdr ex))))

You get 

"Maxima is calculating" in the bottom right in the status bar.

Forever.

Rich


------------Original Message------------
From: "Stavros Macrakis" <macrakis at alum.mit.edu>
To: "Richard Hennessy" <rvh2007 at comcast.net>
Cc: "S. Newhouse" <sen1 at math.msu.edu>, "Maxima List" <maxima at math.utexas.edu>
Date: Mon, Apr-21-2008 3:31 PM
Subject: Re: [Maxima] Feature request
Richard,

As Harald points out, it is easy enough to generate exactly the output you want if you turn off simplification.

The reason you can't do this during normal formula manipulation is that Maxima takes advantage of the quasi-canonical form of formulae to make its internal operations faster.  If some additions were of the form x^2+y+y^2 and others of the form y^2+x+x^2, it would be more work to find corresponding terms.


On Mon, Apr 21, 2008 at 3:08 PM, Richard Hennessy <rvh2007 at comcast.net> wrote:

Why is there no commute command?  I would like to
commute(b*y^2+d*x*y+a*x^2);
and get
a*x^2+d*x*y+b*y^2


Very easy to *print out* the latter form:

print_reversed(ex):= block([simp:false], if mapatom(ex) then print(ex)
   else print(funmake(op(ex),reverse(args(ex))))$

There are tricks to make Maxima accept the reversed form as though it were simplified, but you will run into trouble when you try manipulating it:

     Warning: this will break many things in Maxima!
:lisp (defun $makesimp (op ex) (cons (list ($verbify op) 'simp) (reverse (cdr ex))))
     Warning: no error checking!
     Warning: pseudo-simplified result!

qq_reversed(ex):= block([simp:false], if mapatom(ex) then ex
   else makesimp(op(ex),reverse(args(ex)))$

but now Maxima's simplification algorithms no longer work in general:

  qq_reversed(x+1)-1
      => 1+x-1

As for associativity, again, you can construct pseudo-simplified expressions:

   makesimp("+",[a,makesimp("+",[b,c]))

but Maxima's simplifications will no longer work.

           -s


  

          -s

_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima