A1 - efficiency

> gcc -0 my_prog.exe my_code.c -o{x}
for (i = 0; i < N; i++) {
	x[i] = 2.0 * p * (float) i / k1;
	y[i] = 2.0 * p * (float) i / k2;
}

// remove repetition of 2 * p * i (compiler will do this)
for (i = 0; i < N; i++) {
	t1 = 2.0 * p * (float) i;
	x[i] = t1 / k1;
	y[i] = t1 / k2;
}

// remove invariant from the loop (compiler should do this)
t2 = 2.0 * p;
for (i = 0; i < N; i++) {
	t1 = t1 * (float) i;
	x[i] = t1 / k1;
	y[i] = t1 / k2;
}

// store k1 and k2 as inverse (compiler might do this)
t1 = 2.0 * p / k1;
t2 = 2.0 * p / k2;
for (i = 0; i < N; i++) {
	x[i] = t1 * (float) i;
	y[i] = t2 * (float) i;
}
for (i = 0; i < N; i++) {
	E[i] = A[i] / B[i] + C[i] / D[i];
}
// 2 divides and 1 add per iteration

for (i = 0; i < N; i++) {
	t1 = 1.0 / (B[i] * D[i]);
	E[i] = t1 * (A[i] * D[i] + C[i] * B[i] ) ;
}
// 1 divide, 4 multiplies and 1 add per iteration