public static M Average <M, R>(this IVectorspace <M, R> v, IEnumerable <M> source) { var baseField = v.BaseField; var sum = v.Zero(); var count = 0; foreach (var value in source) { sum = v.Add(sum, value); count++; } var embeddedCount = baseField.EmbedFrom(count); var scalar = baseField.Inverse(embeddedCount); return(v.ScalarMult(scalar, sum)); }
public static M Average <M, R>(this IVectorspace <M, R> v, params M[] source) { return(v.Average(source.ToList())); }