finding subterms in a bigger term



Perhaps a better simplification for the following term

--------------------------------------------------------------------------
(%o13) ((gamma (a + 1) gamma (b + 1) gamma (b + a + 3)
           2             2
 + (- gamma (a + 1) gamma (b + 2) + 2 gamma(a + 1) gamma(a + 2) gamma(b +
1)
                     2             2              2
 gamma(b + 2) - gamma (a + 2) gamma (b + 1)) gamma (b + a + 2))
      2                    2
 gamma (b + a + 4) + (gamma (a + 1) gamma(b + 1) gamma(b + 3)
 - 2 gamma(a + 1) gamma(a + 2) gamma(b + 1) gamma(b + 2)
                                  2                               2
 + gamma(a + 1) gamma(a + 3) gamma (b + 1)) gamma(b + a + 2) gamma (b + a
+ 3)
 gamma(b + a + 4)) gamma(b + a + 5)
--------------------------------------------------------------------------

could be to simplify with the binomial theorem,
if that's the correct english term for

(x+y)^n = \sum\limits_{k=0}^{n} {n \choose k} x^{n-k} y^k

then 

(- gamma(a + 1)^2 gamma(b + 2)^2
 + 2 gamma(a + 1) gamma(a + 2) gamma(b + 1) gamma(b + 2)
 - gamma(a + 2)^2 gamma (b + 1)^2)

would be little bit nicer which I did by hand.

Is there some maxima functionality for this?

Andre


> >
> >Question:
> >
> >How can I find minimal n1, n2, n3 such that
> >
> >gamma(a+n1), gamma(b+n2) and gamma(a+b+n3)
> >
> >are appearing in the above term?
> >
> >I want to use gamma(x+1) = x*gamma(x)
>
> Before you write your own code to do this, try using the functions
> 'makefact' and
> 'minfactorial.' For example
>
>  (%i12) gamma (a + 1) * gamma (b + 1)  * gamma (b + a + 3) / (gamma(a) *
>  gamma(b) * gamma(a+b))$
>  (%i13) makefact(%)$
>  (%i14) minfactorial(%);
>  (%o14) a*b*(b+a)*(b+a+1)*(b+a+2)
>
> If this doesn't work, there are other approaches.

Sorry if I was unclear, i want to exactly imitate my calculation by hand,

factor(minfactorial(makefact(%o13))

yields a much more complex result than the one obtained by my calculation by 
hand.

Is it really so difficult to find every occurences of a gamma term and inspect 
it further, sorry for being perhaps ignorant but I haven't done
'advanced' term manipulation within a CAS, yet.

Regards Andre