Heron approximation refines an estimate x of the reciprocal 1/a by repeatedly multiplying it by (2 − a×x). The loop stops when a×x is sufficiently close to 1, with ε defining the required precision. section 3.2
Iterating to a reciprocal
With a = 34.0 and x = 0.5, a while loop tests fabs(1.0 − a*x) >= ε, then updates x *= (2.0 − a*x). A do loop performs the update once before testing; break can separate the product calculation, stopping test, and update. section 3.2

