/* SF bug #3826: "limit returns temp variable expression" */

(kill (q, a, x),
 ctxt: newcontext (),
 assume (q > 0),
 limit(x^q/(a*x^q- 1),x,inf));
'limit(1/(a- 1/x^q),x,inf);

tlimit(x^q/(a*x^q- 1),x,inf);
'limit(1/(a- 1/x^q),x,inf);

(assume (a > 0),
 declare (q, integer),
 limit(x^q/(a*x^q- 1),x,inf));
1/a;

(remove (q, integer),
 declare (q, noninteger),
 limit(x^q/(a*x^q- 1),x,inf));
1/a;

(remove (q, noninteger),
 killcontext (ctxt));
done;

/* additional code to test lexer */

xyz: expand ((u - h*v)^4);
print ("foo.mac: xyz =", xyz);
'integrate (xyz, u, minf, inf);
LL: [1234, 5678, 9012];
for x:2 thru n - 3
    do while (L: readline (S)) # false
           do push (L, LL);
if abc < 123 and (def > -123 or zyx < 234)
    then X[k]: Y[j, k]*%pi - gamma;

print ("foo.mac: test different kinds of floats") $
blurf (a, b, c) :=
    mumble (a*123.45/b, b*0.12345e6/c, c*1.2345b-8/a)) $
