+
    i                         R t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt RR	R
RRR	RR	RR	RR	RR	/t] ! R R]	]]4      4       t]! 4       tR# )z3Implementation of :class:`ExpressionDomain` class. )sympifySympifyError)DomainElement)CharacteristicZero)Field)SimpleDomain)PicklableWithSlots)publicdeepFmulT	power_exp
power_basebasicmultinomiallogc                   "  a  ] tR t^t o RtR;tt ! R R]]4      t	]	t
]	! ^ 4      t]	! ^4      tRtRtRtR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R t&R t'R t(R  t)R! t*R" t+R# t,R$t-V t.R%# )&ExpressionDomainz#A class for arbitrary expressions. Tc                      a  ] tR t^t o RtRtR tR tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t Rt!V t"R# )ExpressionDomain.ExpressionzAn arbitrary expression. c                    \        WP                  4      '       g   \        V4      V n        R # VP                  V n        R # N)
isinstance	__class__r   ex)selfr   s   &&ڄ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/polys/domains/expressiondomain.py__init__$ExpressionDomain.Expression.__init__   s'    b..11!"+%%    c                :    R \        V P                  4      ,          # zEX(%s))reprr   fs   &r   __repr__$ExpressionDomain.Expression.__repr__    s    d144j((r   c                :    R \        V P                  4      ,          # r    )strr   r"   s   &r   __str__#ExpressionDomain.Expression.__str__#   s    c!$$i''r   c                X    \        V P                  P                  V P                  34      # r   )hashr   __name__r   r   s   &r   __hash__$ExpressionDomain.Expression.__hash__&   s     00$'':;;r   c                    \         # r   EXr-   s   &r   parent"ExpressionDomain.Expression.parent)   s    Ir   c                    V P                   # r   r   r"   s   &r   as_expr#ExpressionDomain.Expression.as_expr,   s    44Kr   c                b    V P                  V P                  P                  4       ^ ,          4      # )    r   r   as_numer_denomr"   s   &r   numer!ExpressionDomain.Expression.numer/   #    ;;qtt224Q788r   c                b    V P                  V P                  P                  4       ^,          4      #    r;   r"   s   &r   denom!ExpressionDomain.Expression.denom2   r?   r   c                h    V P                  VP                  4       P                  ! R/ \        B 4      # )N )r   cancelexpandeflags)r#   r   s   &&r   simplify$ExpressionDomain.Expression.simplify5   s%    ;;ryy{11;F;<<r   c                J    V P                  \        V P                  4      4      # r   )r   absr   r"   s   &r   __abs__#ExpressionDomain.Expression.__abs__8   s    ;;s144y))r   c                :    V P                  V P                  ) 4      # r   )r   r   r"   s   &r   __neg__#ExpressionDomain.Expression.__neg__;   s    ;;u%%r   c                J     V P                  V4      #   \         d     R # i ; ir   )r   r   r#   gs   &&r   _to_ex"ExpressionDomain.Expression._to_ex>   s'    {{1~% s    ""c                l    V P                   P                  4       VP                   P                  4       8  # r   )r   sort_keyrT   s   &&r   __lt__"ExpressionDomain.Expression.__lt__D   s!    44==?QTT]]_44r   c                    V P                  V4      pVf   \        # V\        P                  8X  d   V # V \        P                  8X  d   V# V P	                  V P
                  VP
                  ,           4      # r   rV   NotImplementedr2   zerorJ   r   rT   s   &&r   __add__#ExpressionDomain.Expression.__add__G   sU    Ay%%bggbggzz!$$+..r   c                x    V P                  V P                  V4      P                  V P                  ,           4      # r   rJ   r   r   rT   s   &&r   __radd__$ExpressionDomain.Expression.__radd__S   (    ::akk!n//!$$677r   c                    V P                  V4      pVf   \        # V\        P                  8X  d   V # V \        P                  8X  d   V) # V P	                  V P
                  VP
                  ,
          4      # r   r]   rT   s   &&r   __sub__#ExpressionDomain.Expression.__sub__V   sW    Ay%%bggbggr	zz!$$+..r   c                x    V P                  V P                  V4      P                  V P                  ,
          4      # r   rc   rT   s   &&r   __rsub__$ExpressionDomain.Expression.__rsub__b   rf   r   c                   V P                  V4      pVf   \        # \        P                  W39   d   \        P                  # V P                  P
                  '       dI   VP                  P
                  '       d-   V P                  V P                  VP                  ,          4      # V P                  V P                  VP                  ,          4      # r   )rV   r^   r2   r_   r   	is_Numberr   rJ   rT   s   &&r   __mul__#ExpressionDomain.Expression.__mul__e   s    Ay%%ww1& wwADDNNN{{1449--::add144i((r   c                x    V P                  V P                  V4      P                  V P                  ,          4      # r   rc   rT   s   &&r   __rmul__$ExpressionDomain.Expression.__rmul__r   (    ::akk!n//455r   c                    V P                  V4      pVe-   V P                  V P                  VP                  ,          4      # \        # r   rV   rJ   r   r^   )r#   ns   &&r   __pow__#ExpressionDomain.Expression.__pow__u   s5    A}zz!$$*--%%r   c                    V P                  V4      pVe-   V P                  V P                  VP                  ,          4      # \        # r   rv   rT   s   &&r   __truediv__'ExpressionDomain.Expression.__truediv__}   s5    A}zz!$$qtt),,%%r   c                x    V P                  V P                  V4      P                  V P                  ,          4      # r   rc   rT   s   &&r   __rtruediv__(ExpressionDomain.Expression.__rtruediv__   rt   r   c                R    V P                   V P                  V4      P                   8H  # r   )r   r   rT   s   &&r   __eq__"ExpressionDomain.Expression.__eq__   s    441;;q>,,,,r   c                    W8X  * # r   rF   rT   s   &&r   __ne__"ExpressionDomain.Expression.__ne__   s
    :r   c                8    V P                   P                  '       * # r   )r   is_zeror"   s   &r   __bool__$ExpressionDomain.Expression.__bool__   s    tt||##r   c                    ^ RI Hp V P                  V! V P                  V P                  V4      P                  4      4      # )r:   )gcd)sympy.polysr   r   r   )r#   rU   r   s   && r   r   ExpressionDomain.Expression.gcd   -    ';;s144Q):):;<<r   c                    ^ RI Hp V P                  V! V P                  V P                  V4      P                  4      4      # )r:   lcm)r   r   r   r   )r#   rU   r   s   && r   r   ExpressionDomain.Expression.lcm   r   r   r6   N)#r,   
__module____qualname____firstlineno____doc__	__slots__r   r$   r(   r.   r3   r7   r=   rC   rJ   rN   rQ   rV   rZ   r`   rd   rh   rk   ro   rr   rx   r{   r~   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   
Expressionr      s     '		 	)	(	<			9	9	=	*	&		5
	/	8
	/	8	)	6	&	&	6	-		$	=	= 	=r   r   r2   Fc                    R # r   rF   r-   s   &r   r   ExpressionDomain.__init__   s    r   c                >    \        V\        4      '       d   R # \        # )T)r   r   r^   )r   others   &&r   r   ExpressionDomain.__eq__   s    e-..!!r   c                    \        R 4      # r1   )r+   r-   s   &r   r.   ExpressionDomain.__hash__   s    Dzr   c                "    VP                  4       # )z!Convert ``a`` to a SymPy object. )r7   r   as   &&r   to_sympyExpressionDomain.to_sympy   s    yy{r   c                $    V P                  V4      # )z)Convert SymPy's expression to ``dtype``. )dtyper   s   &&r   
from_sympyExpressionDomain.from_sympy   s    zz!}r   c                0    V ! VP                  V4      4      # z.Convert a Python ``int`` object to ``dtype``. r   K1r   K0s   &&&r   from_ZZExpressionDomain.from_ZZ       "++a.!!r   c                0    V ! VP                  V4      4      # r   r   r   s   &&&r   from_ZZ_pythonExpressionDomain.from_ZZ_python   r   r   c                0    V ! VP                  V4      4      # z3Convert a Python ``Fraction`` object to ``dtype``. r   r   s   &&&r   from_QQExpressionDomain.from_QQ   r   r   c                0    V ! VP                  V4      4      # r   r   r   s   &&&r   from_QQ_pythonExpressionDomain.from_QQ_python   r   r   c                0    V ! VP                  V4      4      # )z,Convert a GMPY ``mpz`` object to ``dtype``. r   r   s   &&&r   from_ZZ_gmpyExpressionDomain.from_ZZ_gmpy   r   r   c                0    V ! VP                  V4      4      # )z,Convert a GMPY ``mpq`` object to ``dtype``. r   r   s   &&&r   from_QQ_gmpyExpressionDomain.from_QQ_gmpy   r   r   c                0    V ! VP                  V4      4      # z4Convert a ``GaussianRational`` object to ``dtype``. r   r   s   &&&r   from_GaussianIntegerRing)ExpressionDomain.from_GaussianIntegerRing   r   r   c                0    V ! VP                  V4      4      # r   r   r   s   &&&r   from_GaussianRationalField+ExpressionDomain.from_GaussianRationalField   r   r   c                0    V ! VP                  V4      4      # )z(Convert an ``ANP`` object to ``dtype``. r   r   s   &&&r   from_AlgebraicField$ExpressionDomain.from_AlgebraicField   r   r   c                0    V ! VP                  V4      4      # )z.Convert a mpmath ``mpf`` object to ``dtype``. r   r   s   &&&r   from_RealFieldExpressionDomain.from_RealField   r   r   c                0    V ! VP                  V4      4      # )z.Convert a mpmath ``mpc`` object to ``dtype``. r   r   s   &&&r   from_ComplexField"ExpressionDomain.from_ComplexField   r   r   c                0    V ! VP                  V4      4      # )z'Convert a ``DMP`` object to ``dtype``. r   r   s   &&&r   from_PolynomialRing$ExpressionDomain.from_PolynomialRing   r   r   c                0    V ! VP                  V4      4      # )z'Convert a ``DMF`` object to ``dtype``. r   r   s   &&&r   from_FractionField#ExpressionDomain.from_FractionField   r   r   c                    V# )z&Convert a ``EX`` object to ``dtype``. rF   r   s   &&&r   from_ExpressionDomain&ExpressionDomain.from_ExpressionDomain   s    r   c                    V # )z)Returns a ring associated with ``self``. rF   r-   s   &r   get_ringExpressionDomain.get_ring       r   c                    V # )z*Returns a field associated with ``self``. rF   r-   s   &r   	get_fieldExpressionDomain.get_field   r   r   c                X    VP                   P                  4       ^ ,          P                  # )z#Returns True if ``a`` is positive. )r   as_coeff_mulis_positiver   s   &&r   r   ExpressionDomain.is_positive   s     tt  "1%111r   c                6    VP                   P                  4       # )z#Returns True if ``a`` is negative. )r   could_extract_minus_signr   s   &&r   is_negativeExpressionDomain.is_negative   s    tt,,..r   c                X    VP                   P                  4       ^ ,          P                  # )z'Returns True if ``a`` is non-positive. )r   r   is_nonpositiver   s   &&r   r   ExpressionDomain.is_nonpositive        tt  "1%444r   c                X    VP                   P                  4       ^ ,          P                  # )z'Returns True if ``a`` is non-negative. )r   r   is_nonnegativer   s   &&r   r   ExpressionDomain.is_nonnegative  r   r   c                "    VP                  4       # )zReturns numerator of ``a``. )r=   r   s   &&r   r=   ExpressionDomain.numer      wwyr   c                "    VP                  4       # )zReturns denominator of ``a``. )rC   r   s   &&r   rC   ExpressionDomain.denom  r   r   c                    V ! ^4      # rA   rF   r   r   bs   &&&r   r   ExpressionDomain.gcd  s    Awr   c                $    VP                  V4      # r   r   r   s   &&&r   r   ExpressionDomain.lcm  s    uuQxr   rF   N)/r,   r   r   r   r   is_SymbolicDomainis_EXr   r   r   r   r_   onerephas_assoc_Ringhas_assoc_Fieldr   r   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r=   rC   r   r   r   r   r   s   @r   r   r      s     - $$B=]$6 B=H Ea=D
Q-C
CNO""""""""""""""2/55 r   r   N)r   
sympy.corer   r   !sympy.polys.domains.domainelementr   &sympy.polys.domains.characteristiczeror   sympy.polys.domains.fieldr    sympy.polys.domains.simpledomainr   sympy.polys.polyutilsr   sympy.utilitiesr	   rI   r   r2   rF   r   r   <module>r     ss    9 - ; E + 9 4 "
%k5,umUE5
B Cu0, C CL r   