# [erlang-questions] Calculate PI in Erlang faster than in Matlab

Jilani Khaldi <>
Thu Apr 3 09:22:21 CEST 2008

```> Are you Free Pascal version uses N=1000000 steps? Maybe you have some
> epsilon-optimization, like Jeff suggested before? Can you send me your FP
> code?
Sure.

program pi;
{\$mode delphi} {\$H+}

uses
sysutils;

const
N = 1000000;
DX = 1/N;
kPI = 3.14159;

var
i: integer;
x, p, dp: double;
HH, MM, SS1, MS1, SS2, MS2: Word;
st: string;
begin
p := 0;
x := 0;
DeCodeTime(Time,HH,MM,SS1,MS1);
for i := 1 to N do
begin
dp := 4*DX/(1+x*x);
p := p + dp;
x := x + DX;
end;
DeCodeTime (Time,HH,MM,SS2,MS2);
SS2 := SS2 - SS1;
MS2 := MS2 - MS1;
st := Format('PI = %1.8f; Seconds = %d; MSeconds = %d', [p, SS2, MS2]);
writeln(st);

// Now looping till we to reach 3.14159
p := 0;
x := 0;
i := 0; // Just to know how many loops
DeCodeTime(Time,HH,MM,SS1,MS1);
while p < kPI do
begin
dp := 4*DX/(1+x*x);
p := p + dp;
x := x + DX;
inc(i);
end;
DeCodeTime (Time,HH,MM,SS2,MS2);
SS2 := SS2 - SS1;
MS2 := MS2 - MS1;
st := Format('Loops Nr = %d; PI = %1.8f; Seconds = %d; MSeconds =
%d', [i, p, SS2, MS2]);
writeln(st);
end.

--
***
T E M A
http://www.dotpas.org

```