Hmm, the more compact evaluation felt like reading a regular expression to me.  Hard to understand the whole thing without understanding how each piece evaluates.  It's also really hard to set a breakpoint in the debugger or step through!

I prefer the spread-out style with comments next to what each operation represents.  My reason is maintainability: adding an additional step to the algorithm or removing one becomes less complicated when each step is chunked by comments. With the old mathematical evaluation, you've gotta interpret each piece of logic and decide where a new one should be inserted!  

I'm not too worried about extra computation.  Computers process any O(1) algorithm quickly!