How to determine if an integral is unevaluated?



integrate(exp(-sqrt(x^2-1)),x);
if op(%)=nounify('integrate) then true;


"Billinghurst, David (CALCRTS)" wrote:

> I am writing some ode code and want to determine if maxima has evaluated
> an integral in closed form, or it has returned the integral unevaluated.
>
> My attempts using "is(op(i)='integrate);" or similar are given below.
> Any ideas
>
> (C1)  build_info();
>
> Maxima version: 5.9.0.1cvs
> Maxima build date: 12:36 4/29/2004
> host type: i686-pc-cygwin
> lisp-implementation-type: CLISP
> lisp-implementation-version: 2.33 (2004-03-17) (built 3288490609) (memory 3292195019)
>
> (D1)
> (C2) i:integrate(1/(x^3+x+1),x);
>                                 /
>                                 [     1
> (D2)                            I ---------- dx
>                                 ]  3
>                                 / x  + x + 1
> (C3) part(i,0);
> (D3)                               INTEGRATE
> (C4) op(i);
> (D4)                               INTEGRATE
> (C5) is(op(i)=integrate);
> (D5)                                 FALSE
> (C6) is(op(i)='integrate);
> (D6)                                 FALSE
> (C7) is(op(i)="integrate");
> (D7)                                 FALSE
> (C8) is(op(i)=INTEGRATE);
> (D8)                                 FALSE
> (C9) is(op(i)='INTEGRATE);
> (D9)                                 FALSE
> (C10) is(op(i)="INTEGRATE");
> (D10)                                FALSE
> (C11) op_i:op(i);
> (D11)                              INTEGRATE
> (C12) is(op(i)=op_i);
> (D12)                                TRUE
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima