         Edinburgh IMP77 Compiler - Version 8.4

    1  %realfn sqrt(%real x)
    2    %constreal c1 = 0.70710680,  { 1/sqrt(2)}
    3+              c2 = 0.590162067,
    4+              c3 = 1.4142135    { sqrt(2)  }
    5    %real s
    6    %integer e
    7    !%if x > 0.0 %then UNPK(x, e)
    8    s = c2 * (x+c1)
    9    s = s +         x/s;
   10    s = 0.25 *  s + x/s;
   11    s = 0.5  * (s + x/s);
   12    !%if ODD(e) %then s = c3*s {%and PACK(s, e DIV 2)} %else s = 0.0
   13    %result = s
   14  %end { sqrt }
?E unused
?C3 unused
   15  
   16  %endoffile

   11 Statements compiled
