code 35021;
    procedure ERRORFUNCTION(X, ERF, ERFC);
    value X; real X, ERF, ERFC;
    if X > 26   then begin ERF:=  1; ERFC:= 0 end else 
    if X < -5.5 then begin ERF:= -1; ERFC:= 2 end else 
    begin real ABSX, C, P, Q;

        ABSX:= ABS(X);
        if ABSX <= 0.5 then 
        begin C:= X * X;         P:= ((-0.35609 84370 18154"-1  * C +
            0.69963 83488 61914"+1) * C + 0.21979 26161 82942"+2) * C +
            0.24266 79552 30532"+3;
            Q:= ((C +
            0.15082 79763 04078"+2) * C + 0.91164 90540 45149"+2) * C +
            0.21505 88758 69861"+3;
            ERF:=  X * P / Q; ERFC:= 1 - ERF
        end else 
        begin ERFC:= EXP(-X * X) * NONEXPERFC(ABSX);
            ERF:= 1 - ERFC;
            if X < 0 then 
            begin ERF:= -ERF; ERFC:= 2 - ERFC end 
        end 
    end ERRORFUNCTION;
        eop