make vmag^2 return NonNegReal and add type for vmag