from .math_rational_rational import rational_parts from .math_rational_types import Rational def compare_rational(a: Rational, b: Rational) -> int: """-1, 0 or 1. Exact: cross-multiplied, never through a float.""" an, ad = rational_parts(a) bn, bd = rational_parts(b) left = an * bd right = bn * ad return -1 if left < right else 1 if left > right else 0