`where(test, a, b)` selects `a` where test is True and `b` where test is False so this line creates an array which is 1. where m==0 and sqrt(2) otherwise, then multiplies real_sh by that array. I believe that's consistent with the docs. Does anyone know of a cleaner way to do this?