code 41525;
real procedure NCFISHER(X,DF1,DF2,DELTA);
value X,DF1,DF2,DELTA; real X,DF1,DF2,DELTA;
begin integer J; real XX,FAKTOR1,FAKTOR2,EPS,SUM;
if DF1 ≤ 0 then STATAL3 ERROR(“NCFISHER”,2,DF1)
else
if DF2 ≤ 0 then STATAL3 ERROR(“NCFISHER”,3,DF2)
else
if DELTA < 0 then
STATAL3 ERROR(“NCFISHER”,4,DELTA)
else if X ≤ 0 then NCFISHER:= 0 else
begin XX:= (DF1 × X) / (DF1 × X + DF2); EPS:= 10-12;
DF1:= DF1 / 2; DF2:= DF2 / 2; DELTA:= DELTA / 2;
FAKTOR1:= 1;
FAKTOR2:= SUM:= INCOMPLETE BETA(XX,DF1,DF2,EPS);
if DELTA = 0 then goto UIT;
J:= 0; for J:= J + 1 while FAKTOR2 > EPS do
begin FAKTOR1:= FAKTOR1 × DELTA / J;
FAKTOR2:= FAKTOR1 ×
INCOMPLETE BETA(XX,DF1 + J,DF2,EPS);
SUM:= SUM + FAKTOR2
end;
UIT: NCFISHER:= EXP(-DELTA) × SUM
end
end NCFISHER;
eop