-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.Simplify() seems confusing or inconvenient #7
Comments
I think that for full support of printing, perhaps I agree, however, that it should be a base |
Exploring it a bit more, there may be certain scenarios where But, I think the library would be faster if it weren't simplifying all of the time. I may be able to set up some benchmarks. |
Just for the record, automatic simplification to a well-defined standard form is common practice and massively simplifies code almost everywhere if you can safely assume it always has standard structure. We do this as well in Math.NET Symbolics, and to my understanding most full CAS do this. |
It would also facilitate testing a bit better if we could be certain that the desired functionality was actually taking place. For instance, we can't properly test the Consider this test:
If the It seems we need a concept of structural equivalence as well. |
I agree. Simplification is needed to compare expressions. Specifically computational of the canonical form is needed. However automatically simplification cases issues with the expected MathObject you get back, which is a problem for testing. The solution here I believe is to remove the automatic simplification. But rather call into a function to do the simplification step. |
I find .Simplify() method quite inconvenient: it is not a part
MathObject, it is a part of Sum and Product classes (and maybe some
others). It'd be more convenient to call it through general interface.
On the other hand, .Simplify() is not needed usually because Symbolism
simplifies automatically. It is needed if one changes .elts list
directly (there may be an Exception on following manipulations without
the simplification). Moving it to the interface may cause assumptions
that it is intended for regular use.
This bug report shares my concerns and documents observations. I don't
insist that it is a defect.
The text was updated successfully, but these errors were encountered: