Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: issues with expression manipulation functions
Replies: 1   Last Post: Oct 3, 2012 11:39 PM

 Messages: [ Previous | Next ]
 Alex Krasnov Posts: 15 Registered: 10/3/12
issues with expression manipulation functions
Posted: Oct 3, 2012 3:12 AM

In the process of learning Mathematica, I discovered several items of
unusual behavior. I would appreciate any clarification.

(0) Several expression manipulation functions behave correctly with
HoldComplete subexpressions but not with Hold subexpressions. Example:

In: Together[1/x+HoldComplete[1]/x]
Out: (1 + HoldComplete[1])/x

In: Together[1/x+Hold[1]/x]
Out: x^(-1) + Hold[1]/x

Another example:

In: Factor[3+3*HoldComplete[x]+HoldComplete[x]^2, Extension -> {Sqrt[3], I}]
Out: ((-3*I + Sqrt[3] - (2*I)*HoldComplete[x])*(3*I + Sqrt[3] + (2*I)*HoldComplete[x]))/4

In: Factor[3+3*Hold[x]+Hold[x]^2, Extension -> {Sqrt[3], I}]
Out: (kernel crash)

Although the last example is clearly a bug, is there some difference in
behavior between HoldComplete and Hold that generally accounts for these
issues? The documentation mentions differences with respect to Sequence,
Unevaluated, Evaluate, and upvalues. Without knowing the internals of the
expression manipulation functions, I fail to see how any of these are
relevant here.

(1) FactorTerms behaves incorrectly if the independent form is more
complex than a symbol and not contained in the expression. Example:

In: FactorTerms[x, x^2]
Out: Sqrt[x]

In my understanding, FactorTerms should always return an equivalent
expression. Is this a bug or some sort of undocumented behavior? Does
FactorTerms require the independent form to be a symbol?

I am using Mathematica 8.0.4 on Windows.

Alex

Date Subject Author
10/3/12 Alex Krasnov
10/3/12 Daniel Lichtblau