"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"