Such heavy-weight transformations as expanding or factoring are provided by most of CAS-es, but what about light-weight, but a useful transformations, like "reorder some terms to make expression more readable by human"? Although a CAS try its best to present calculated symbolic result in a nice, "general purpose" form, often there is a need to re-present the result in another, "special purpose" form.
To be slightly more precise, let us define Computer Algebra System (CAS) to be a GUI program or a pair of command-line program and a correspondent GUI program, such as a pair of (Maxima, wxMaxima). I mostly interested in CAS, suitable for pure mathematicians.
Some more examples of re-presenting or transformation:
Suppose, CAS calculated a result like $\frac{ax^2+1}{x^2-x+1}$ (1); then I may want to re-display it as $a+\frac{ax-a+1}{x^2-x+1}$ (2) or as $a\frac{x^2}{x^2-x+1}+\frac{1}{x^2-x+1}$ (3). Good re-presenting (or transformation) support means that I can accomplish this by a short command, like "
facsum(%,[a])
", and ideally, by a 1-2-3 clicks from context menu.Another case is a possibility to reorder summations. That is to transform $\sum_{i=1}^nf(i)\sum_{j=1}^ig(j)h(i,j)$ into $\sum_{j=1}^ng(j)\sum_{i=j}^nf(i)h(i,j)$ by a command, without copy, paste and editing at the end.
I spent aroud 50 hours working with Maxima/wxMaxima (this includes writing some macros/functions to make my homebrew transformation support). It seems to me, that Maxima lacks some re-presenting functions out of the box, or such functions are buggy and do not do all the work I need. For example, "facsum" function is able to make re-presentation like (3), but only on polynomials, not fractions like $\frac{ax^2+1}{x^2-x+1}$. Also "facsum" do no transformation at all when being called from my functions.
So, the question is: what computer algebra system has good re-presenting or transformation support?
// feel free to correct my english
// hmm... there is no computer-algerbra-system tag here