vector decomposition