Does it makes sense to pollute Rational with public methods for different algorithms?

I don't think so.  Please, use e.g. `egypt` method with optional argument to specify algorithm (implement them as private helpers, e.g. `_egypt_greedy` or internal functions in the `egypt` method).