updated floating point adder