// (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);