Analytic functions with blackbody

See #3077 
`nan_to_num()` does not replace all with zeroes, so not exactly what I want. Maybe I'll just let the function return NaNs, then users can do whatever they want with the data.