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