code 34345;
procedure COMKWD(PR,PI,QR,QI,GR,GI,KR,KI);
value PR,PI,QR,QI;real PR,PI,QR,QI,GR,GI,KR,KI;
begin 
if QR=0 & QI = 0 then 
begin KR:=KI:=0 ;GR:=PR*2;GI:=PI*2 end else 
if PR=0 & PI= 0 then 
begin COMSQRT(QR,QI,GR,GI);KR:=-GR;KI:=-GI end else 
begin real HR,HI;
if ABS(PR) > 1 or ABS(PI) >1 then begin 
COMDIV(QR,QI,PR,PI,HR,HI);
COMDIV(HR,HI,PR,PI,HR,HI);
COMSQRT(1+HR,HI,HR,HI);
COMMUL(PR,PI,HR+1,HI,GR,GI);
end else begin COMSQRT(QR+(PR+PI)*(PR-PI),QI+ PR*PI*2,HR,HI);
       if PR * HR + PI * HI > 0 then 
       begin GR := PR + HR;GI := PI + HI end else 
       begin GR := PR - HR;GI:= PI - HI end;
end;
COMDIV(-QR,-QI,GR,GI,KR,KI);
end 
end COMKWD;
        eop