just curious: given the non-trivial way in which `ws_n` is computed, is it really the case that callers of the function could provide a different value?

on a related note, would it make sense to provide a function for users to calculate this norm?