[Overview][Constants][Types][Classes][Procedures and functions][Index] Reference for unit 'Math' (#rtl)

# Variance

Return variance of values

## Declaration

Source position: math.pp line 517

 function Variance( const data: array of Single ):Float;function Variance( const data: PSingle; const N: Integer ):Float;function Variance( const data: array of Double ):Float;function Variance( const data: PDouble; const N: Integer ):Float;function Variance( const data: array of Extended ):Float;function Variance( const data: PExtended; const N: Integer ):Float;

## Description

Variance returns the variance of the values in the data array. It returns zero if there is only one value.

The second form of the function accepts a pointer to an array of N values.

## Errors

None.

 totalvariance Return total variance of values stddev Return standard deviation of data mean Return mean value of array

## Example

```Program Example50;

{ Program to demonstrate the Variance function. }
{ @ should return typed pointer }
{\$T+}

Uses math;

Var
I : 1..100;
ExArray : Array[1..100] of Float;
V : float;

begin
Randomize;
for I:=low(ExArray) to high(ExArray) do
ExArray[i]:=(Random-Random)*100;
V:=Variance(ExArray);
Writeln('Variance     : ',V:8:4);
V:=Variance(@ExArray[1],100);
Writeln('Variance (b) : ',V:8:4);
end.
```

## Example

```Program Example51;

{
Program to demonstrate the Variance function.
It demonstrates the absence of large errors in the calculation.
}

Uses math;

const
Size = 1000000;

var
dataS: array of Single;
dataE: array of Extended;
i,n: longint;

begin
WriteLn('Each run should return a value near unity.');
WriteLn('Single:');
SetLength( dataS, Size );
for n := 1 to 4 do
begin
for i := 0 to Size - 1 do
begin
dataS[i] := 10000000 + RandG(0,1);
end;
WriteLn( Math.Variance( dataS ):5:3 );
end;

WriteLn('Double:');
for n := 1 to 4 do
begin
for i := 0 to Size - 1 do
begin
end;
end;

WriteLn('Extended:');
SetLength( dataE, Size );
for n := 1 to 4 do
begin
for i := 0 to Size - 1 do
begin
dataE[i] := 1000000000000000000 + RandG(0,1);
end;
WriteLn( Math.Variance( dataE ):5:3 );
end;
end.
```