SO vec_length answer
update
update