Fix unit cancellation so it actually works

I'm annoyed that doing it the way I wanted to ultimately proved impossible (checking whether it was possible to skip calculations was, in every case, slower than just doing them and ignoring the result). But this way makes the code a *lot* simpler.