Too much of a slowdown - trying to split it down the middle now, and added a tiny optimization to the math during init