Ë
    7^(hR  ã                   óL   — d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 d„ Zd„ Zy)	zS Optimizations of the expression tree representation for better CSE
opportunities.
é    )ÚAddÚBasicÚMul)ÚS)Údefault_sort_key)Úpreorder_traversalc                 óž  — | j                  t        «      D �cg c]  }|j                  «       sŒ|‘Œ }}i }t        «       }|D ]K  }| }|j                  r|j                  |«       Œ$t        j                  t        j                  |g«      ||<   ŒM | j                  |«      } t        | t        «      r—i }t        | j                  t        «      t        ¬«      D ]]  }||v rŒ||v r	||   ||<   Œ|j                  «       sŒ&t        j                  t        j                  t        j                  | g«      ||<   Œ_ | j                  |«      } | S c c}w )zD Replace y - x with -(x - y) if -1 can be extracted from y - x.
    )Úkey)Úatomsr   Úcould_extract_minus_signÚsetÚis_MulÚaddr   Ú
_from_argsr   ÚNegativeOneÚxreplaceÚ
isinstancer   Úsortedr   ÚOne)ÚeÚaÚaddsÚrepsÚignoreÚnaÚnegss          úU/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/simplify/cse_opts.pyÚsub_prer   
   s&  € ð —w‘wœs“|ÖD�! q×'AÑ'AÕ'CŠAÐD€DÐDØ€DÜ‹U€FØò 6ˆØˆRˆØ�9Š9Ø�J‰J�qŒMØÜ—.‘.¤!§-¡-°Ð!4Ó5ˆˆQŠð6ð 	
�
‰
�4Ó€Aô �!”UÔØˆÜ˜Ÿ™¤›Ô*:Ô;ò 	EˆAØ�F‰{ØØ�D‰yØ˜q™'��Q’Ø×+Ñ+Õ-ÜŸ.™.¬!¯%©%´·±ÀÀÐ)CÓD��Q’ð	Eð �J‰J�tÓˆØ€Hùò1 Es
   ˜E
®E
c           	      ón  — g }t        | «      D ]‡  }t        |t        «      sŒ|j                  d   t        j
                  u sŒ4|j                  d   t        j                  u sŒT|j                  |t        j                  |j                  dd «       f«       Œ‰ |D ]  \  }}| j                  ||i«      } Œ | S )z Replace 1*-1*x with -x.
    r   é   é   N)
r   r   r   Úargsr   r   r   Úappendr   r   )r   ÚreplacementsÚnodeÚreplacements       r   Úsub_postr'   )   s©   € ð €LÜ" 1Ó%ò HˆÜ�dœCÕ Ø�I‰I�a‰LœAŸE™EÒ! d§i¡i°¡l´a·m±mÒ&CØ×Ñ ¬¯©°t·y±yÀÀ°}Ó(EÐ'EÐ FÕGðHð *ò ,ÑˆˆkØ�J‰J˜˜kÐ*Ó+‰ð,ð €Hó    N)Ú__doc__Ú
sympy.corer   r   r   Úsympy.core.singletonr   Úsympy.core.sortingr   Úsympy.core.traversalr   r   r'   © r(   r   ú<module>r/      s%   ðñ÷ 'Ñ &Ý "Ý /Ý 3òó>r(   