"trigrat" caught in infinite loop - depending on how you call it



Trigrat locally sets gcd to subres. Due to bugs in subres, we changed the default gcd to spmod some time ago (I think).
Changing trigrat to use spmod allows

  (%i2) e : 2*x/(sqrt(y)+x) - (x^2/((sqrt(y)+x)^2));
  (%o2) (2*x)/(sqrt(y)+x)-x^2/(sqrt(y)+x)^2

  (%i3) ( trigrat(e), trigrat(xthru(e)));
     << Expression too long to display! >>

to finish, but the result is a ridiculously large mess (didn't attempt to check if it is correct).

--Barton