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

  • $\begingroup$ try math.stackexchange.com/questions $\endgroup$
    – Will Jagy
    Sep 14, 2012 at 2:31
  • $\begingroup$ @WillJagy Do you propose to move my question or to re-ask it there? $\endgroup$
    – Guest Here
    Sep 14, 2012 at 3:14
  • $\begingroup$ We do not have any way to move questions. $\endgroup$
    – Will Jagy
    Sep 14, 2012 at 3:18

1 Answer 1


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.

  • $\begingroup$ 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$ $\endgroup$
    – Guest Here
    Sep 14, 2012 at 3:47
  • $\begingroup$ 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). $\endgroup$ Sep 14, 2012 at 7:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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