Rachel-Mikel ArceJaeger, 26.05.2011 17:46:
A couple small things that will help improve memory management

Rather than avg = sumall / count; return avg; Just return sumall/count
instead. Then you don't have to waste a register or assignment
operation.

Division is expensive. Avoid it when you can.

Here, for (a=0; a != count; a++) { temp =
PyFloat_AsDouble(PySequence_Fast_GET_ITEM(seq,a)); sumall += temp;
Again, save variables and operations. Write this as:

for (a=0; a != count; a++) { sumall +=
PyFloat_AsDouble(PySequence_Fast_GET_ITEM(seq,a));

Similar corrections in var()

It's cheaper when you're using powers of two to just right or
left-shift:>>  or<<. Since you want to increase by a power of two, do:

(avg - PyFloat_AsDouble(PySequence_Fast_GET_ITEM(seq,a)<<  1;     // This
means (...)^(2^1)

Division by powers of two is>>. Note that these only works for powers of
two.

Oh please! You are seriously insulting my C compiler here. Believe me, it's a *lot* smarter than this.

None of this is even faintly necessary.

Stefan

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to