# Just Launched: You can now import projects and releases from Google Code onto SourceForge

We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps.

## #171 scanmap factor problem

open
nobody
5
2006-09-09
2002-10-22
Stavros Macrakis
No

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) =&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.

## Discussion

• Robert Dodier
2006-07-01

• labels: --> 460522

• Robert Dodier
2006-09-09

• labels: 460522 --> Lisp Core - Polynomials