Could you please elaborate a little bit more, about why “cannot safely write a = merge(sqrt(b), 0.0, b >= 0) with b real”? and why it is safe to write a = (b >= 0 ? sqrt(b) : 0.0)? Thanks!
a = merge(sqrt(b), 0.0, b >= 0)
b
a = (b >= 0 ? sqrt(b) : 0.0)
PS. I know a topic about merge() is below for example,