I've been in the process of profiling my code (using google perftools), and I've noticed that a function called __gmpn_invert_limb has been taking more than 18% of the CPU time of my code. What does this function do, and why is it so expensive? Is there a way to cut back on its usage?