normalized

Unit vector; zero stays zero. Double intermediates avoid Float magnitude overflow.