An inline would be helpful and I might do something like this:

```
# see if Add.flatten detects any problems
check = Add(*[Float._new(t[0], 1) for t in terms])
if check in (S.NaN, S.Infinity, S.NegativeInfinity):
    r =  evalf(check, prec+4, {})
    return r[0], r[2]
```