I forgot to send this mail to the list.
---------- Mensaje reenviado ----------
Subject: Re: [Maxima] Maxima integration bug
Date: Sat, 20 Apr 2002 06:01:39 +0200
From: Juan Pablo Hierro Álvarez <BUSCAIDEAS at terra>
To: Phroexus@aol.com
El Sáb 20 Abr 2002 00:25, escribió:
> when you enter integrate(diff(f(x,y),x,1,y,1),y) into maxima you get f(x,y)
> - a fix for this had been worked out for commercial macsyma but I do not
> have it - can someone help out?
>
> note that integrate(diff(f(x,y),x,1,y,1),x) returns the correct result
Try the following patch
___________________
371c371,374
< expr ;single
---
> (if (null old-wrt)
> expr ;single
> `((%derivative), expr ;partial in old-wrt
> ,.(nreverse old-wrt)))
_____________________
in file sin.lisp
The line numbers may be changed in your file as I have already applied
Jenkner's patch. Anyway, the problem lies in the function checkderiv1 and the
patch begins in its sixth line.
It is very instructive to make
to_lisp();
(trace sinint checkderiv1)
and look at what is happening with maxima compiled with cmucl18d because gcl
hides a recursive call in checkderiv1. On the other hand, to realize that the
problem was inside checkderiv1, I had to trace the algorithm with gcl, as
cmucl does not like to trace many functions of maxima.
I think now that the use of different compilers to test maxima code is one of
the best tools to debug it, as each one covers up the troubles of the other.
--
Juan Pablo Hierro Álvarez
hierro en ideafix punto litec punto csic punto es
Clave pública: 0xA8707ADF en pgp.rediris.es
-------------------------------------------------------