public static Float2 AddScale(Float2 a, Float2 b, float s) { return(ToFloat2(a.x + s * b.x, a.y + s * b.y)); }
public static Float2 Sub(Float2 a, Float2 b) { return(ToFloat2(a.x - b.x, a.y - b.y)); }
public static Float2 Add(Float2 a, Float2 b) { return(ToFloat2(a.x + b.x, a.y + b.y)); }
public static float Cross(Float2 a, Float2 b) { return(a.x * b.y - a.y * b.x); }
public static float NormSq(Float2 a) { return(Dot(a, a)); }
public static float Norm(Float2 a) { return((float)(Math.Sqrt(Dot(a, a)))); }
public static float Dot(Float2 a, Float2 b) { return(a.x * b.x + a.y * b.y); }
public static Float2 Mult(Float2 a, float s) { return(ToFloat2(a.x * s, a.y * s)); }