Binary gcd algorithm