// (v1 | v2) が 0 なら直角 public bool AreOrthogonal(Vector2d v) => Tolerance.IsIgnorable(DotProduct(this, v));
// Norm( v1 )^{2} Norm( v2 )^{2} - (v1 | v2)^{2} が 0 なら平行 public bool AreParallel(Vector2d v) { return(Tolerance.IsIgnorable( (Norm * Norm) * (v.Norm * v.Norm) - DotProduct(this, v) * DotProduct(this, v))); }
public static bool operator ==(Vector2d v0, Vector2d v1) => Tolerance.IsIgnorable(v0.X - v1.X) && Tolerance.IsIgnorable(v0.Y - v1.Y);