Analytic functions with blackbody

See #3077 
Better to use a context manager [1], `with np.errstate(...)`, so a badly timed exception/ctrl-c doesn't leave the numpy error state differently.  

[1] http://docs.scipy.org/doc/numpy/reference/generated/numpy.errstate.html