Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

230 lines
2.7 KiB

// Set of benchmarks
sysSetDesiredMemoryUsageHard(16 * 1024, 1);
sysSetDesiredMemoryUsageSoft(sysGetDesiredMemoryUsageHard());
//
//
// ACKERMAN
//
//
print("*** ACKERMAN ***");
global Ack = function(M, N)
{
if (M == 0)
{
N=N+1;
return(N);
}
if (N == 0)
{
M=M-1;
return(Ack(M, 1));
}
N=N-1;
return (Ack(M-1, Ack(M, N)));
};
NUM = 8;
TICK(); //GD Used to be clock() what was that matt?
print(Ack(3,NUM));
print("time = ", TICK());
//
//
// FIB
//
//
print("*** FIB ***");
global fib = function(n)
{
if (n < 2) { return(1); }
return fib(n-2) + fib(n-1);
};
N = 32;
TICK();
print(fib(N));
print("time = ", TICK());
//
//
// MATRIX
//
//
print("*** MATRIX ***");
local n = 300;
local size = 30;
mkmatrix = function(rows, cols)
{
count = 1;
mx = table();
for(i=0; i < rows; i=i+1)
{
row = table();
for(j = 0; j < cols; j=j+1)
{
row[j] = count;
count=count+1;
}
mx[i] = row;
}
return mx;
};
mmult = function(rows, cols, m1, m2)
{
m3 = table();
for(i = 0; i < rows; i=i+1)
{
m3[i] = table();
m1_i = m1[i];
for(j = 0; j < cols; j=j+1)
{
rowj = 0;
for(k = 0; k < cols; k=k+1)
{
rowj = rowj + m1_i[k] * m2[k][j];
}
m3[i][j] = rowj;
}
}
return m3;
};
TICK();
m1 = mkmatrix(size, size);
m2 = mkmatrix(size, size);
for(i = 0; i < n; i=i+1)
{
mm = mmult(size, size, m1, m2);
}
t = TICK();
print(mm[0][0], mm[2][3], mm[3][2], mm[4][4]);
print("time = ", t);
//
//
// HASH
//
//
print("*** HASH ***");
local n = 80000;
TICK();
X=table();
for(i=1; i <= n; i=i+1)
{
//print(format("%x", i), i);
X[format("%x", i)] = i;
}
c = 0;
for(i=n; i>=1; i=i-1)
{
if(X[i+""])
{
c=c+1;
}
}
print(c);
print("time = ", TICK());
//
//
// HEAPSORT
//
//
print("*** HEAPSORT ***");
global IM = 139968.;
global IA = 3877.;
global IC = 29573.;
global LAST = 42.;
gen_random = function(max)
{
global LAST = (LAST * IA + IC) % IM;
return ((max * LAST) / IM);
};
heapsort = function(n, ra)
{
l = n/2 + 1;
ir = n;
for(;;)
{
if(l > 1)
{
l=l-1;
rra = ra[l];
}
else
{
rra = ra[ir];
ra[ir] = ra[1];
ir=ir-1;
if(ir == 1)
{
ra[1] = rra;
return;
}
}
i = l;
j = l * 2;
while(j <= ir)
{
if(j < ir and ra[j] < ra[j+1])
{
j=j+1;
}
if(rra < ra[j])
{
ra[i] = ra[j];
i = j;
j = j + i;
}
else
{
j = ir + 1;
}
}
ra[i] = rra;
}
};
TICK();
local ary = table();
local N = 80000;
for(i = 0; i < N; i=i+1)
{
ary[i] = gen_random(1.0);
}
heapsort(N, ary);
print(ary[N-1]);
print("time = ", TICK());