When ?defint isn't able to find the value
of a definite integral, it returns false, and
it's the job of $defint to return a correct
noun form. Maxima allows false to be used
as an identifer -- this allows $defint to get
mixed up; for example
(C1) defint(false,x,0,1);
(D1) 'INTEGRATE(FALSE,x,0,1)
(C2) defint(false,x,0,2);
(D2) 2*FALSE
(C3) build_info();
Maxima version: 5.9.0
Maxima build date: 19:10 2/9/2003
host type: i686-pc-mingw32
lisp-implementation-type: Kyoto Common Lisp
lisp-implementation-version: GCL-2-5.0
This bug may not be worth fixing; it might be
better to disallow true, false, und, ... to be
used this way.
Barton
Logged In: YES
user_id=588346
The true/false and ind/und/inf cases are different.
integrate(true,...) doesn't make sense, because true is a
boolean constant, and there is no good reason to arbitrarily
convert boolean functions to real functions (e.g. false=0). So
either a noun form or an error or even (b-a)*true seem like
perfectly OK (non-)results. Sure, it would be nice if it were
perfectly consistent, but....
The ind/und/inf cases, on the other hand, are not even
Integrate issues. Integrate(nnn,x,a,b) where nnn is one of
those is = (b-a)*nnn. If the simplifier gets that right, then
Integrate will get that right. So integrate(inf,a,0,1)=>inf,
integrate(inf,a,0,0)=inf*0=und, integrate(ind,a,0,1)
=ind*1=ind, integrate(ind,a,0,0)=ind*0=0, integrate
(ind,a,0,inf)=ind*inf=und, etc.
But currently the simplifier does NOT get simplifications
involving non-standard numbers (inf, minf, infinity, ind, und)
right.