The Developer Utilities Package contains several functions that look interesting:

  • BesselSimplify
  • GammaSimplify
  • PolyGammaSimplify
  • ZetaSimplify
  • PolyLogSimplify
  • and TrigToRadicals

However for each of them the Details Section informs that they are used inside FullSimplify and FunctionExpand.

My question is: can you give examples of such a use of these functions, where, say, FullSimplify is not applicable, or not efficient, while this function is?


1 Answer 1


Yes, in some rare cases it is indeed convenient to use the individual simplification functions, even though they are used inside FullSimplify. I think the general idea is that FullSimplify may not use the desired simplification at the exact step during the simplification where you want it to be used. This (probably) happens when the expression has so many leaves (i.e., sub-parts) that FullSimplify doesn't get to the desired order of simplifications before finding a locally optimal simplification.

Here is an example for Developer`GammaSimplify, boiled down from a real calculation I did:

FullSimplify[((1/ Gamma[1 - n + ℓ] + ((-(1/n))^(-1 + n - ℓ)) 
  Gamma[1 + n + ℓ]) Gamma[1 + n + ℓ])/Gamma[n - ℓ]]

==> ((-(1/n))^(-1 + n - ℓ) + Gamma[1 + n + ℓ]/
 Gamma[1 - n + ℓ])/Gamma[n - ℓ]

The Gamma functions have not been combined in the right-hand term. This is because of the additional sub-parts of the numerator.

If I want the simplification to go further, I have to focus on the Gamma simplification explicitly:

Developer`GammaSimplify[((1/ Gamma[1 - n + ℓ] + ((-(1/n))^(-1 + n - ℓ)) /
    Gamma[1 + n + ℓ]) Gamma[1 + n + ℓ])/ Gamma[n - ℓ]]

==> (-(1/n))^(-1 + n - ℓ)/Gamma[n - ℓ] + (
 Gamma[1 + n + ℓ] Sin[n Pi - Pi ℓ])/Pi

Now the second term was also simplified, even though I started with the same expression.


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.