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