code 34611;
    procedure CHSH2(A1R,A1I,A2R,A2I,C,SR,SI);
    value A1R,A1I,A2R,A2I;real A1R,A1I,A2R,A2I,C,SR,SI;
    begin real R;
    if A2R^=0 or A2I^=0 then 
    begin if A1R^=0 or A1I^=0 then 
        begin R:=SQRT(A1R*A1R+A1I*A1I);C:=R;
            SR:=(A1R*A2R+A1I*A2I)/R;SI:=(A1R*A2I-A1I*A2R)/R;
            R:=SQRT(C*C+SR*SR+SI*SI);C:=C/R;SR:=SR/R;SI:=SI/R
        end else 
        begin SI:=C:=0;SR:=1 end 
    end else begin C:=1;SR:=SI:=0 end 
    end CHSH2;
         eop