General performance improvements

Hi Simon,

I have studied the code a bit. I found several spots where a conditional is inside a loop (or several loops), where this could be avoided by using a array to store possible values and accessing the right index by evaluating a boolean expression.

I have marked the spots in the code here. This is not a real "pull request", since I did not change the code logic yet. But if you agree with me that the improvement could be noticeable in the numbers afterwards, I can proceed to change the code accordingly and push the changes afterwards to create a useful pull request. 

Regards,
Diego