add more 2D math functions