public static double AngleBetween(this IVector a, IVector b) { if (a.Count != b.Count) throw new ArgumentException(); return Math.Acos(a.Dot(b) / (a.Length() * b.Length())); }