fix comp_op
make_unit now throws in case of zero vector