The symbol und, which I guess stands for undefined,
isn't propagated through functions, e.g.,
[sin(und), sqrt(und), log(und), und^2, exp(und)]
=> [sin(und),sqrt(und),log(und),und^2,%e^und]
An example found in the wild:
limit(atan(tan(x)^2),x,inf); => atan(und)
Not sure what's the right answer for foo(und) in
general, but it seems like atan(und) is probably not
the best answer in this particular case.
Logged In: YES
user_id=895922
The one variable limit function cleans up all of these:
(%i8) map('limit, [sin(und), log(und), sqrt(und), und^2,
exp(und)]);
(%o8) [und, und, und, und, und]
(%i9) limit(atan(tan(x)^2),x,inf);
(%o9) atan(und)
(%i10) limit(%);
(%o10) und
(1) Should limit be required to clean up such things or
should it be automatic? I think it would be OK if they
were, but I'm not certain that it would be a good thing.
Sometimes cos(und) carries more information than does just
'und.'
(2) I think (%o10) is OK, but maybe it should be 'ind'
instead (indefinite but bounded).
(3) With 5.9.2, cos(und) --> `sign' called on `und'. This
was a bug that got fixed when we changed the code for
applying reflection identities.
(4) limit doesn't clean up stuff like sin(ind), but maybe it
should: limit(sin(ind)) --> ind.
Barton
Logged In: YES
user_id=588346
There are two issues here: the handling of "und" in general
(which I think has been discussed in various bug reports)
and the particular case where limit returns an embedded und.
As far as I know, the only part of Maxima that knows
anything about und is the limit package, which outputs it.
The rest of Maxima feels free to do nonsensical things with
und, e.g. und-und = 0 (should be und) etc. Und is also a
rather blunt instrument. Anyway, that is another discussion.
As for limit itself, it should never return an embedded und.
You might want to check if this particular case has been
reported before -- I think it has.