add gmp function