Recent changes to 171: scanmap factor problemhttps://sourceforge.net/p/maxima/bugs/171/2002-10-22T09:30:31Zscanmap factor problem2002-10-22T09:30:31Z2002-10-22T09:30:31ZStavros Macrakishttps://sourceforge.net/u/macrakis/https://sourceforge.net5e10ae585b36c9f7e86414c903cf6c81e0b71003expr:
%I\*LOG\(
\( x^4/\(\(x^2-1\)^2+2\*x^2\)
-4\*x^2/\(\(x^2-1\)^2+2\*x^2\)
+1/\(\(x^2-1\)^2+2\*x^2\)
\)^2
\+
\( 2\*SQRT\(2\)\*x^3/\(\(x^2-1\)^2+2\*x^2\)
-2\*SQRT\(2\)\*x/\(\(x^2-1\)^2+2\*x^2\)
\)^2
\);
scexpr:
scanmap\(factor,expr\) =&gt;
%I\*LOG\(\(x^8+2\*x^4+1\)/\(x^4+1\)^2\)
This looks OK, except that the inside rational
expression is not factored \(it is actually equal to 1\). So
let's try scanmap/factoring it again:
scanmap\(factor, scexpr\) =&gt; No change\!
On the other hand, if we enter the expression from
scratch:
entered: %I\*LOG\(\(x^8+2\*x^4+1\)/\(x^4+1\)^2\)
we find that it does factor nicely
scanmap\(factor,entered\) =&gt; 0
The reason is that the internal form of scexpr is marked
Factored and Irreducible:
\(\(MTIMES SIMP\) $%I
\(\(%LOG SIMP\)
\(\(MTIMES SIMP FACTORED\)
\(\(MEXPT SIMP\)
\(\(MPLUS SIMP IRREDUCIBLE\) 1 \(\(MEXPT SIMP
RATSIMP\) |$x| 4\)\) -2\)
\(\(MPLUS SIMP IRREDUCIBLE\) 1
\(\(MTIMES SIMP\) 2 \(\(MEXPT SIMP RATSIMP\) |$x| 4\)\)
\(\(MEXPT SIMP RATSIMP\) |$x| 8\)\)\)\)\)
I see two issue here.
First of all, I'd have expected the scanmap/factor to go
directly to the fully factored form, namely 0.
Secondly, if it doesn't, it should at least not mismark the
result as factored/irreducible.
The incomplete factoring is arguably part of the
semantics of Scanmap, inherent in top-down
scanning, . And indeed Scanmap/bottomup does get
the simplest form \(after patching subst0 as reported in
the previous bug note\).
On the other hand, I don't see any excuse for
mismarking. If something isn't factored or irreducible, it
shouldn't be marked as factored or irreducible.
Note that Factor actually has a special case for
Scanmap \(the scanmapp flag\). I suspect that this is to
force incomplete factoring, and that mismarking comes
as an undesired side-effect.