add with_added_precision and use it to implement exp, as suggested by #5