function CalcCJ(X,Y,Z,Sg3) { var A1={Re:undefined, Im: undefined}; var B1={Re:undefined, Im: undefined}; var A2={Re:undefined, Im: undefined}; var B2={Re:undefined, Im: undefined}; A = {X:undefined,Y:undefined,R:undefined} A.R=true; if ((X.OB=="P") && (Y.OB=="P") && (Z.OB=="O")) { // if TOLine(Z).Null then begin CalcCJFALSE; Exit end; U=CalcPF(X.X,X.Y,Z); A1=U.A; B1=U.B; U=CalcPF(Y.X,Y.Y,Z); A2=U.A; B2=U.B; D=CompSqrt(CompSum(CompSqr(CompSub(A1,A2)),CompSqr(CompSub(B1,B2)) )); if (Math.abs(D.Re)Eps) { C=Math.sign((A2.Re-A1.Re)/(Z.X1.Re-Z.X2.Re)); } else if (Math.abs(B2.Re-B1.Re)>Eps) { C=Math.sign((B2.Re-B1.Re)/(Z.Y1.Re-Z.Y2.Re)); } else {A.R=false;} A.X=D.Re*C*Sg3; A.Y=0; } return A; } // CalcCJ function EExecCJ(Out_Prm,X,Y,Z,Att,Sg1,Sg2,Sg3) { if ((X.OB==undefined) || (Y.OB==undefined) || (Z.OB==undefined)) return false; if ((X.OB=="P") && (Y.OB=="P") && (Z.OB =="O")) if (IsSobstv(X) && IsSobstv(Y) && IsSobstv(Z)) if (IsReal(X) && IsReal(Y) && IsReal(Z)) { A=CalcCJ(X,Y,Z,Sg3); if (A.R) { TOChisl_Create(Out_Prm,MCompl(A.X,A.Y),Att); return true; } } if (Att.Chk==1) TOEmpty_Create(Out_Prm,Att); return true; } // EExecCJ