rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

und not propagated through functions #4128

Open rtoy opened 1 month ago

rtoy commented 1 month ago

Imported from SourceForge on 2024-07-09 16:43:07 Created by robert_dodier on 2006-07-01 06:30:50 Original: https://sourceforge.net/p/maxima/bugs/951


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.

rtoy commented 1 month ago

Imported from SourceForge on 2024-07-09 16:43:08 Created by willisbl on 2006-07-02 09:39:26 Original: https://sourceforge.net/p/maxima/bugs/951/#0bcb


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