I have been playing with various equations involving amount of permutations in relatively large sets. Easiest way to look at these is something like Log[10, bignumber!] . Often expressions, even indirect ones like Sum[Log[2,x], {x,1,2^32}] expand to forms involving Log[Gamma[...]] . This is problematic, since Gamma quickly grows past machine-representable numbers. OTOH, Mathematica knows this (for non-negative reals):

FullSimplify[Log[Gamma[x]] == LogGamma[x], x > 0]

(* True *)

It also knows that LogGamma can be split to Log[Gamma[...]]:

FullSimplify[LogGamma[x], x > 0, 
 ComplexityFunction -> (2 Count[#, _LogGamma, {0, Infinity}] + 
     LeafCount[#] &)]

(* Log[Gamma[x]] *)

... but for what I really want, the reverse, it's not particularly forthcoming:

FullSimplify[Log[Gamma[x]], x > 0, 
 ComplexityFunction -> (1000 Count[#, _Gamma, {0, Infinity}] + 
     LeafCount[#] &)]

(* Log[Gamma[x]] *)

Yes, I know that I can do the transformation with rather trivial rule myself. Yet, I'm left to wonder a) why this transformation doesn't occur automatically even with above vigorous hint, b) is there an actual, good reason for the observed behaviour, and c) is there a non-manual way around it. I can only guess that similar condition applies to many other forms, too.

  • 5
    $\begingroup$ Because LogGamma[] simplifies to Log[Gamma[]] (use FunctionExpand), you can't (automatically) have it both ways! One of them has to be considered "simpler" than the other in order for the simplification to terminate. $\endgroup$ – whuber Oct 24 '12 at 16:32
  • $\begingroup$ You could always use TransformationFunctions. $\endgroup$ – Chip Hurst Aug 23 '16 at 18:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.