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