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