"CODE"34343;
"PROCEDURE" COMSQRT(AR,AI,PR,PI);
"VALUE" AR,AI; "REAL" AR,AI,PR,PI;
"IF" AR=0 & AI= 0 "THEN" PR:= PI:=0 "ELSE"
"BEGIN" "REAL" BR,BI,H;
BR:= ABS(AR); BI:= ABS(AI);
H:= "IF" BI < BR "THEN"
("IF" BR<1 "THEN" SQRT((SQRT((BI/BR)**2+1)*.5+.5)*BR)
"ELSE" SQRT((SQRT((BI/BR)**2+1)*.125+.125)*BR)*2)
"ELSE" "IF" BI<1 "THEN" SQRT((SQRT((BR/BI)**2+1)*BI+BR)*2)*.5
"ELSE" "IF" BR+1= 1 "THEN" SQRT(BI*.5)
"ELSE" SQRT(SQRT((BR/BI)**2+1)*BI*.125+BR*.125)*2;
"IF" AR >= 0 "THEN"
"BEGIN" PR:= H; PI:= AI/H*.5 "END"
"ELSE" "BEGIN" PI:= "IF" AI >= 0 "THEN" H "ELSE" -H;
PR:= BI/H*.5
"END"
"END" COMSQRT;
        "EOP"