K i |dZddlmZddlmZmZmZmZ m Z m Z m Z ddl mZddlmZddlmZeGddeZy ) z4Implementation of :class:`PythonIntegerRing` class. ) int_valued) PythonInteger SymPyIntegersqrt factorial python_gcdex python_gcd python_lcm) IntegerRing)CoercionFailed)publicceZdZdZeZedZedZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZy)PythonIntegerRingzInteger ring based on Python's ``int`` type. This will be used as :ref:`ZZ` if ``gmpy`` and ``gmpy2`` are not installed. Elements are instances of the standard Python ``int`` type. r ZZ_pythoncy)z$Allow instantiation of this domain. N)selfs k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/domains/pythonintegerring.py__init__zPythonIntegerRing.__init__sct|S)z!Convert ``a`` to a SymPy object. )rras rto_sympyzPythonIntegerRing.to_sympys Arc|jrt|jSt|rtt |St d|z)z&Convert SymPy's Integer to ``dtype``. zexpected an integer, got %s) is_Integerrprintr rs r from_sympyzPythonIntegerRing.from_sympy!s? << % % ] Q( ( !>!BC Crc$|j|S)z5Convert ``ModularInteger(int)`` to Python's ``int``. )to_intK1rK0s rfrom_FF_pythonz PythonIntegerRing.from_FF_python*syy|rc|S)z.Convert Python's ``int`` to Python's ``int``. rr#s rfrom_ZZ_pythonz PythonIntegerRing.from_ZZ_python.src:|jdk(r |jSyz3Convert Python's ``Fraction`` to Python's ``int``. rN denominator numeratorr#s rfrom_QQzPythonIntegerRing.from_QQ2 ==A ;;  rc:|jdk(r |jSyr*r+r#s rfrom_QQ_pythonz PythonIntegerRing.from_QQ_python7r/rc6t|j|S)z5Convert ``ModularInteger(mpz)`` to Python's ``int``. )rr"r#s r from_FF_gmpyzPythonIntegerRing.from_FF_gmpy<sRYYq\**rct|S)z,Convert GMPY's ``mpz`` to Python's ``int``. )rr#s r from_ZZ_gmpyzPythonIntegerRing.from_ZZ_gmpy@s Qrc\|jdk(rt|jSy)z,Convert GMPY's ``mpq`` to Python's ``int``. rN)denomrnumerr#s r from_QQ_gmpyzPythonIntegerRing.from_QQ_gmpyDs% 779> + + rcL|j|\}}|dk(r t|Sy)z.Convert mpmath's ``mpf`` to Python's ``int``. rN) to_rationalr)r$rr%rqs rfrom_RealFieldz PythonIntegerRing.from_RealFieldIs+~~a 1 6 # # rct||S)z)Compute extended GCD of ``a`` and ``b``. )rrrbs rgcdexzPythonIntegerRing.gcdexPsAq!!rct||S)z Compute GCD of ``a`` and ``b``. )r r?s rgcdzPythonIntegerRing.gcdT!Qrct||S)z Compute LCM of ``a`` and ``b``. )r r?s rlcmzPythonIntegerRing.lcmXrDrct|S)zCompute square root of ``a``. ) python_sqrtrs rrzPythonIntegerRing.sqrt\s 1~rct|S)zCompute factorial of ``a``. )python_factorialrs rrzPythonIntegerRing.factorial`s ""rN)__name__ __module__ __qualname____doc__rdtypezeroonealiasrrr r&r(r.r1r3r5r9r=rArCrFrrrrrrr sv E 8D (C E3D  + , $"  #rrN)rNsympy.core.numbersrsympy.polys.domains.groundtypesrrrrHrrJrr r sympy.polys.domains.integerringr sympy.polys.polyerrorsr sympy.utilitiesr rrrrrXsC:*81"T# T#T#r