all algorithms now support rationals