Closed
Description
Delphi's Math
unit has a Mean
function, but only for Float arrays:
function Mean(const Data: array of Single): Single;
function Mean(const Data: array of Double): Double;
function Mean(const Data: array of Extended): Extended;
So we could define Mean for integers that returns a Double
. Two possible implementations:
function MeanInt(const A: array of Integer): Double;
begin
Result := 0.0;
for var I := Low(A) to High(A) do
Result := Result + A[I] / Length(A);
end;
function MeanInt2(const A: array of Integer): Double;
begin
var Sum: Int64 := 0;
for var Elem in A do
Inc(Sum, Elem);
Result := Sum / Length(A);
end;
The former is less likely to overflow and generalises to 64 bit integes better, while the latter is faster.
This issue was extracted from issue #16
Metadata
Metadata
Assignees
Projects
Status
Completed