May I also change this way the SSE2 optimizations? Because doing so I'll handle them the same way, avoiding conditional compilation on certain blocks of code.

And because I'm doing a small refactoring: is there any reason we're using ```struct```s with the ```()``` operator overloaded instead of functions and pointers to them to represent vectorized operations? Because this could reduce a bit from that file.

Thanks!