public double Dot(Vec o) => X * o.X + Y * o.Y;
public Vec Sub(Vec o) => new Vec(X - o.X, Y - o.Y);
public Vec Div(Vec o) => new Vec(X / o.X, Y / o.Y);
public Vec Add(Vec o) => new Vec(X + o.X, Y + o.Y);
public Vec Mul(Vec o) => new Vec(X * o.X, Y * o.Y);