Solving Rational Functions