Hi, I discovered the mpn_neg function: -- Function: mp_limb_t mpn_neg (mp_limb_t *RP, const mp_limb_t *SP, mp_size_t N) Perform the negation of {SP, N}, and write the result to {RP, N}. Return carry-out. Since mpn only deals with nonnegative numbers, what is "the negation of {SP, N}"? Also, should the carry be a borrow? Paul