Menu

#951 und not propagated through functions

open
nobody
Lisp Core (457)
3
2012-11-18
2006-07-01
No

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.

Discussion

  • Barton Willis

    Barton Willis - 2006-07-02

    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

     
  • Stavros Macrakis

    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.

     

Log in to post a comment.