Comment #8 on issue 3814 by [email protected]: Relations on MatrixElements
are broken.
http://code.google.com/p/sympy/issues/detail?id=3814
Definitely yes in the second case. The first one is really MatrixElement(m,
0, 0) and the second is MatrixElement(m, i, 0).
Free symbols are just those symbols that are not bound. So I guess the real
question here is if it should consider a MatrixSymbol to be a Symbol. It is
(confusingly) not a subclass of Symbol. So given that, it probably
shouldn't be (though, really, it should be a subclass of Symbol).
But there is probably room for wiggle either way on this. Unlike Atom, the
free_symbols is mathematical in nature.
The motivation for it is that a lot of code was checking
expr.atoms(Symbol), or expr.has(x), when really it only cared if the
expression mathematically depended on it (usually, it was checking if it
was a constant). So for example, Poly(Integral(f(x), (x, 0, 1))*x, x) makes
perfect sense, even though the Integral is not a polynomial in x, because
the Integral does not *really* depend on x.
The only issue I see with letting MatrixSymbol be in free_symbols but not
be a subclass of Symbol is that it adds some confusion to the fact that all
the bound symbols are expr.atoms(Symbol) - expr.free_symbols (something
that I don't even think any code uses anyway; knowing the bound symbols is
rarely important; knowing the free ones is almost always what you want).
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy-issues?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.