#!/usr/local/bin/cz --
use b
def N 1000000
def buf_size 40960

gen_rand_file(cstr file):
	bm_start()
	int out = Open(file, O_WRONLY|O_CREAT|O_TRUNC);
	int buf[buf_size]
	int i = N
	while i:
		int c = i<buf_size ? i : buf_size
		for(j, 0, c):
			buf[j] = Randi()
		Write(out, buf, c*sizeof(int))
		i -= c
	Close(out)
	bm("create random file", N)

Main:
	each(file, (cstr)"A.bin", "B.bin"):
		if !exists(file):
			gen_rand_file(file)

	repeat(3):
		test3()

int bufA[buf_size]
int bufB[buf_size]
int bufC[buf_size]

test3():
	int A = Open("A.bin", O_RDONLY);
	int B = Open("B.bin", O_RDONLY);
	int C = Open("C.bin", O_WRONLY|O_CREAT);
	bm_start()
	repeat:
		int n = Read(A, bufA, buf_size*sizeof(int))
		if !n:
			break
		Read(B, bufB, n)
		for(i, 0, n/sizeof(int))
			bufC[i] = bufA[i] + bufB[i]
		Write(C, bufC, n)
	bm("adding", N)
	each(x, A, B, C)
		Close(x)
