code 41531;
real procedure STUDENTINV(PROB, DF);
value PROB, DF; real PROB, DF;
begin
if PROB < 10-10 ∨ PROB > 1 - 10-10
then STATAL3 ERROR(“STUDENTINV”, 1, PROB)
else if DF ≤ 0
then STATAL3 ERROR(“STUDENTINV”, 2, DF)
else
begin real X, U, U2;
U:= PHINV(PROB); U2:= U × U;
X:= U × (1 + (U2 + 1) / 4 / DF +
(3 + U2 × (U2 × 5 + 16)) / 96 / DF / DF);
STUDENTINV:= INVERSE(X, STUDENT(X, DF), PROB, 10-10)
end
end STUDENTINV;
eop