Code:
namespace calcbench;
type
Matr = array[0..1000-1,0..1000-1] of real;
Program = class
public
const nx = 1000;
class method Mult1(const a,b: Matr; var c: Matr; n: integer);
begin
var i,j,k: integer;
var cc: real;
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
cc := 0.0;
for k:=0 to n-1 do
cc := cc + a[i,k]*b[k,j];
c[i,j] := cc;
end;
end;
class method Main(args: array of String): Int32;
begin
var i,j: integer;
var a,b,c: Matr;
for i:=0 to nx-1 do
for j:=0 to nx-1 do
begin
a[i,j] := rtl.Random * 0.1 + 1.0;
b[i,j] := rtl.Random * 0.1 + 1.0;
end;
var t := datetime.now.ticks;
Mult1(a,b,var c,nx);
writeln((datetime.Now.Ticks - t) div datetime.TicksPerMillisecond);
end;
end;
end.