mul, double, div and halve procedures