sign non-forgetfulness



Barton,

The scope of temporary facts is by default one command-line interaction.
This is definitely intentional!  You don't want to ask the user the same
thing multiple times, especially since she/he doesn't have any context to
determine what they mean!

There is a mechanism for defining contexts -- I haven't used it in a long
while, but it is documented (not superbly, but...).

                -s

On Tue, Jul 27, 2010 at 00:26, Barton Willis <willisb at unk.edu> wrote:

> Apparently csign (and sign) temporarily place facts in the fact database,
> but
> the temporary facts aren't removed immediately. An example:
>
> A simple-minded function that calls csign:
>
> (%i1) possible_singular_pts(e) := block([inflag : true],
>  e : factor(e),
>  if mapatom(e) then set()
>  else if op(e) = "^" and csign(second(e)) # 'pos and not
> constantp(first(e)) then set(first(e))
>  else xreduce('union, map('possible_singular_pts, args(e))))$
>
> Some tests:
>
>  (%i2) e : integrate(exp(a^2*x^2+b*x),x)$
>
> All is well:
>
>  (%i3) possible_singular_pts(e);
>  (%o3) {a}
>
>  (%i4) facts(a);
>  (%o4) []
>
> Same calculation, but inside a function larry:
>
>  (%i5) larry(e) := (possible_singular_pts(e), facts(a))$
>
> After the call to possible_singular_pts, notequal(a,0) is still in the fact
> database:
>
>  (%i6) larry(e);
>  (%o6) [notequal(a,0)]
>
> But after larry exits, notequal(a,0) isn't in the fact database:
>
>  (%i7) facts(a);
>  (%o7) []
>
> It's not difficult to workaround this (putative) bug, but it make me :(
>
> --Barton
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>