use shift-and-or rather than mul-and-add in