Note that while the above formulation avoids catastrophic cancellation between formula_15 and formula_41, there remains a form of cancellation between the terms formula_42 and formula_43 of the discriminant, which can still lead to loss of up to half of correct significant digits. The discriminant formula_44 needs to be computed in arithmetic of twice the precision of the result to avoid this (e.g. quad precision if the final result is to be accurate to full double precision). This can be in the form of a fused multiply-add operation.