rtoy / maxima

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

scanmap factor problem #990

Open rtoy opened 3 months ago

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-03 21:25:03 Created by macrakis on 2002-10-22 09:30:31 Original: https://sourceforge.net/p/maxima/bugs/171


expr: %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) => %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) => 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) => 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.

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-03 21:25:04 Created by robert_dodier on 2006-07-01 02:55:38 Original: https://sourceforge.net/p/maxima/bugs/171/#aa22


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-03 21:25:07 Created by robert_dodier on 2006-09-09 14:52:59 Original: https://sourceforge.net/p/maxima/bugs/171/#0763