MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

share|cite|improve this question
try – 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


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

share|cite|improve this answer
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

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.