Is there a reason that you use Gamma here and below you use lgam for essentially the same calculation?  Maybe compute these gamma functions only once?