K idZddlmZmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZd d d d d d d d ZeGd d e ee ZeZy)z3Implementation of :class:`ExpressionDomain` class. )sympify SympifyError) DomainElement)CharacteristicZero)Field) SimpleDomain)PicklableWithSlots)publicFT)deepmul power_exp power_basebasic multinomiallogceZdZdZdxZZGddeeZeZ edZ edZ dZ dZ dZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)d$Z*d%Z+y&)'ExpressionDomainz#A class for arbitrary expressions. TceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)ExpressionDomain.ExpressionzAn arbitrary expression. exctt||jst||_y|j|_yN) isinstance __class__rr)selfrs j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/domains/expressiondomain.py__init__z$ExpressionDomain.Expression.__init__s&b$..1!"+%%c2dt|jzSNzEX(%s))reprrfs r__repr__z$ExpressionDomain.Expression.__repr__ sd144j( (rc2dt|jzSr!)strrr#s r__str__z#ExpressionDomain.Expression.__str__#sc!$$i' 'rcXt|jj|jfSr)hashr__name__rrs r__hash__z$ExpressionDomain.Expression.__hash__&s 00$'':; ;rctSr)EXr,s rparentz"ExpressionDomain.Expression.parent)sIrc|jSrrr#s ras_exprz#ExpressionDomain.Expression.as_expr,s 44KrcZ|j|jjdS)Nrrras_numer_denomr#s rnumerz!ExpressionDomain.Expression.numer/#;;qtt224Q78 8rcZ|j|jjdSNr4r#s rdenomz!ExpressionDomain.Expression.denom2r7rch|j|jjditS)N)rcancelexpandeflags)r$rs rsimplifyz$ExpressionDomain.Expression.simplify5s(;;1ryy{11;F;< s' {{1~%  s  cl|jj|jjkSr)rsort_keyrHs r__lt__z"ExpressionDomain.Expression.__lt__Ds!44==?QTT]]_4 4rc|j|}|tS|tjk(r|S|tjk(r|S|j |j |j zSrrJNotImplementedr/zerorArrHs r__add__z#ExpressionDomain.Expression.__add__GsU Ay%%bggbggzz!$$+..rcp|j|j|j|jzSrrArrrHs r__radd__z$ExpressionDomain.Expression.__radd__S(::akk!n//!$$67 7rc|j|}|tS|tjk(r|S|tjk(r| S|j |j |j z SrrOrHs r__sub__z#ExpressionDomain.Expression.__sub__VsW Ay%%bggbggr zz!$$+..rcp|j|j|j|jz SrrTrHs r__rsub__z$ExpressionDomain.Expression.__rsub__brVrct|j|}|tStj||fvrtjS|jj r>|jj r(|j |j|jzS|j|j|jzSr)rJrPr/rQr is_NumberrrArHs r__mul__z#ExpressionDomain.Expression.__mul__es~ Ay%%ww1a& wwADDNN{{1449--::add144i( (rcp|j|j|j|jzSrrTrHs r__rmul__z$ExpressionDomain.Expression.__rmul__r(::akk!n//45 5rc|j|}|(|j|j|jzStSrrJrArrP)r$ns r__pow__z#ExpressionDomain.Expression.__pow__us5 A}zz!$$*--%%rc|j|}|(|j|j|jz StSrrbrHs r __truediv__z'ExpressionDomain.Expression.__truediv__}s5 A}zz!$$qtt),,%%rcp|j|j|j|jz SrrTrHs r __rtruediv__z(ExpressionDomain.Expression.__rtruediv__r`rcR|j|j|jk(Sr)rrrHs r__eq__z"ExpressionDomain.Expression.__eq__s441;;q>,,, ,rc||k( Srr=rHs r__ne__z"ExpressionDomain.Expression.__ne__sAv: rc0|jj Sr)ris_zeror#s r__bool__z$ExpressionDomain.Expression.__bool__stt||# #rcddlm}|j||j|j|jS)Nr)gcd) sympy.polysrqrr)r$rIrqs rrqzExpressionDomain.Expression.gcd- ';;s144Q):):;< rse9-;E+94"5U5 BCu0,CCLr