Fix negative underflow and rounding issues with fix_mul