vec4 math stuff