code 41514;
real procedure GAMMAINV(PROB,ALPHA,SCALE);
value PROB,ALPHA,SCALE; real PROB,ALPHA,SCALE;
begin real X,TOL;

  TOL:= 10-10;
  if ALPHA ≤ 0 then
      STATAL3 ERROR(“GAMMAINV”,2,ALPHA) else
  if SCALE ≤ 0 then
      STATAL3 ERROR(“GAMMAINV”,3,SCALE) else
  if PROB ≤ TOL ∨ PROB ≥ 1 - TOL then
      STATAL3 ERROR(“GAMMAINV”,1,PROB);
  X:= ALPHA × SCALE;
  GAMMAINV:= INVERSE(X,GAMMA(X,ALPHA,SCALE),PROB, TOL)
end GAMMAINV;
eop