# Computer algebra system (CAS) with good re-presenting or transformation support

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

-
–  Will Jagy Sep 14 '12 at 2:31
@WillJagy Do you propose to move my question or to re-ask it there? –  Guest Here Sep 14 '12 at 3:14
We do not have any way to move questions. –  Will Jagy Sep 14 '12 at 3:18

In Maple, (2) is obtained with

convert((1), parfrac, x);

(3) is

expand((1));

However, as far as I know there is no easy way to reorder summations in Maple.

-
Are you sure? It seems to me, that to make (3), CAS need to know variable name (that is, "a"). Without such a variable name, even a simple expression like $a+ab+b$ has 2 forms: $(b+1)a+b$ and $(a+1)b+a$ –  Guest Here Sep 14 '12 at 3:47
expand will distribute products over sums. So $(a+b)/(p+q+r)$ becomes $a/(p+q+r) + b/(p+q+r)$. Perhaps what you're thinking about is collect(..., a). –  Robert Israel Sep 14 '12 at 7:13