|
From: Stavros M. <mac...@us...> - 2026-06-01 22:40:42
|
Maxima is not very consistent about all this. For example, we have the ``domain=real/complex`` variable which sounds very powerful, but in fact the only thing it affects is the simplification of ``(a^b)^c`` as far as I can tell. One pragmatic definition of ``kind(z,complex)`` is that ``imagpart(z)`` returns the nounform ``'imagpart(z)`` and not 0. Grepping through the code, it looks as though there are three ways that the declaration is used: ``kindp, decl-complexp, featurep``. These are used for ``real/complex/imaginary`` in the files ``compar (sign-any), conjugate (manifestly-XXX-p), rpart, simp``. But I haven't looked at the transitive closure of function calls.... --- **[bugs:#4749] Declaring a symbol both real and complex or real and imaginary** **Status:** open **Group:** None **Labels:** declare rectform featurep csign **Created:** Mon Jun 01, 2026 07:19 AM UTC by David Scherfgen **Last Updated:** Mon Jun 01, 2026 09:19 PM UTC **Owner:** nobody Maxima allows declaring a symbol both `real` and `complex` and even both `real` and `imaginary`. I think that in the second case, it should at least issue a warning, if not an error. For the first case, where a symbol is declared both `real` and `complex`, Maxima behaves differently across `csign`, `rectform` and `featurep`: ~~~ (%i1) declare(x, real, x, complex); (%o1) done (%i2) csign(x); (%o2) complex (%i3) rectform(x); (%o3) x (%i4) featurep(x, real); (%o4) true (%i5) featurep(x, complex); (%o5) true ~~~ These functions all have a different concept ... --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |