Session p. 36/37

H[{a_, b_}]:=9(({{(b^2) - (a^2), -2 a b}, {-2 a b, (a^2) - (b^2)}}));
p = 
      N[{1/2, 1/10}, 36]; v = {1, 0}; 
    tRem  =  10;
While[tRem > 0, m = Round[p + 2  v/3]; 
      s = Min[Cases[
            t /. Solve[(p + t v - m) . (p + t v - m) == 1/9, 
                t], _?Positive]]; 
If[s < tRem, p += s v; 
        v = H[p - m] . v, s = Min[tRem, 2/3]; 
        p += s v]; 
tRem  -= s]; 
answer = 
      Norm[p]

Precision[answer]

Varying the precision of the initial values

{p, v} = N[{{1/2, 1/10}, {1, 0}}, 50]; 
    tRem  =  10;
While[tRem > 0, m = Round[p + 2  v/3]; 
        s = Min[Cases[
              t /. Solve[(p + t v - m) . (p + t v - m) == 
                    1/9, t], _?Positive]]; 
If[s < tRem, 
          p += s v; v = H[p - m] . v, s = Min[tRem, 2/3]; 
          p += s v]; 
tRem  -= 
          s];
answer = Norm[p]

{p, v} = N[{{1/2, 1/10}, {1, 0}}, 100]; 
    tRem  =  10;
While[tRem > 0, m = Round[p + 2  v/3]; 
        s = Min[Cases[
              t /. Solve[(p + t v - m) . (p + t v - m) == 
                    1/9, t], _?Positive]]; 
If[s < tRem, 
          p += s v; v = H[p - m] . v, s = Min[tRem, 2/3]; 
          p += s v]; 
tRem  -= 
          s];
answer = Norm[p]

{p, v} = N[{{1/2, 1/10}, {1, 0}}, 120]; v = {1, 0}; 
    tRem  =  10;
While[tRem > 0, m = Round[p + 2  v/3]; 
        s = Min[Cases[
              t /. Solve[(p + t v - m) . (p + t v - m) == 
                    1/9, t], _?Positive]]; 
If[s < tRem, 
          p += s v; v = H[p - m] . v, s = Min[tRem, 2/3]; 
          p += s v]; 
tRem  -= 
          s];
answer = Norm[p]