function EExecAQ(OOO,X,Y,Att,Sg1,Sg2) { var S={Re:undefined, Im:undefined} /* OOONIL; if (X is TOBreak) or (Y is TOBreak) then begin OOO(TOBreak.Create([nil],OW)); Exit; end; if ((X is TOChislU) and ((Y is TOChislU)) then begin DualDiv(TOChislU(X).C,TOChislU(Y).C,S,Prizn); if Prizn then OOOTOChislU.Create(S,tc_Variable,Att,OW,c_ord) else if Att.Chk=1 then OOOTOEmpty.Create([X,Y],OW); end else */ if ((X.OB==undefined) || (Y.OB==undefined)) return false; if ((X.OB=="C") && (Y.OB=="C")) { VV=Sqr(Y.C.Re)+Sqr(Y.C.Im); S.Re=(X.C.Re*Sg1*Y.C.Re*Sg2+X.C.Im*Sg1*Y.C.Im*Sg2)/VV; S.Im=(X.C.Im*Sg1*Y.C.Re*Sg2-X.C.Re*Sg1*Y.C.Im*Sg2)/VV; TOChisl_Create(OOO,S,Att); } else if ((X.OB=="D") && (Y.OB=="D")) { VV=Sqr(Y.R.Re)+Sqr(Y.R.Im); S.Re=(X.R.Re*Sg1*Y.R.Re*Sg2+X.R.Im*Sg1*Y.R.Im*Sg2)/VV; S.Im=(X.R.Im*Sg1*Y.R.Re*Sg2-X.R.Re*Sg1*Y.R.Im*Sg2)/VV; TOChisl_Create(OOO,S,Att); } else if ((X.OB=="V") && (Y.OB=="C") && (IsReal(Y)) && !(Y.C.Re==0)) { XX.Re=(X.X2.Re-X.X1.Re)/Y.C.Re*Sg1*Sg2; XX.Im=0; YY.Re=(X.Y2.Re-X.Y1.Re)/Y.C.Re*Sg1*Sg2; YY.Im=0; // OOOTOVektor.Create(MCompl(TOVektor(X).X1.Re,0),MCompl(TOVektor(X).Y1.Re,0),MCompl(TOVektor(X).X1.Re+XX.Re,0),MCompl(TOVektor(X).Y1.Re+YY.Re,0),Att,OW); } else { if (Att.Chk==1) { TOEmpty.Create(OOO,Att);} } return true; } // EExecAQ