#488 integrands involving false


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);
(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.



  • Stavros Macrakis

    Logged In: YES

    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)

  • Robert Dodier

    Robert Dodier - 2006-04-10
    • labels: --> Lisp Core - Integration

Log in to post a comment.