code 41522;
real procedure FISHERINV(PROB, DF1, DF2);
value PROB, DF1, DF2; real PROB, DF1, DF2;
begin
if PROB < 10-10 ∨ PROB > 1 - 10-10
then STATAL3 ERROR(“FISHERINV”, 1, PROB)
else if DF1 ≤ 0
then STATAL3 ERROR(“FISHERINV”, 2, DF1)
else if DF2 ≤ 0
then STATAL3 ERROR(“FISHERINV”, 3, DF2)
else
begin real X;
X:= if PROB ≤ .5 then .5 else
if DF2 ≤ 4 then 1 else
DF2 / (DF2 - 2) + PHINV(PROB) ×
SQRT(2 × DF2 × DF2 × (DF1 + DF2 - 2) /
(DF1 × (DF2 - 4) × (DF2- 2) × (DF2 - 2)));
FISHERINV:=
INVERSE(X, FISHER(X, DF1, DF2), PROB, 10-10)
end
end FISHERINV;
eop