(1) address more b.c.s symmetically; (2) fix misunderstanding: transpose of [px; py] is [-ux,-vy] NOT [ux,vy]