Probably the tolerance (and also the number of digits to use with n()) should be computed from the original coefficients somehow. This might be a nontrivial numerical analysis, though.