From: SourceForge.net <no...@so...> - 2006-08-15 14:26:44
|
Bugs item #1515430, was opened at 2006-07-01 02:30 Message generated for change (Comment added) made by macrakis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1515430&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Lisp Core Group: None Status: Open Resolution: None Priority: 3 Submitted By: Robert Dodier (robert_dodier) Assigned to: Nobody/Anonymous (nobody) Summary: und not propagated through functions Initial Comment: 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. ---------------------------------------------------------------------- >Comment By: Stavros Macrakis (macrakis) Date: 2006-08-15 10:26 Message: 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. ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2006-07-02 05:39 Message: 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 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1515430&group_id=4933 |