ó
    Š*£hR  ã                   óL   • S r SSKJrJrJr  SSKJr  SSKJr  SSK	J
r
  S rS rg)	zROptimizations of the expression tree representation for better CSE
opportunities.
é    )ÚAddÚBasicÚMul)ÚS)Údefault_sort_key)Úpreorder_traversalc                 óÖ  • U R                  [        5       Vs/ s H  oR                  5       (       d  M  UPM     nn0 n[        5       nU HR  nU* nUR                  (       a  UR                  U5        M*  [        R                  " [        R                  U/5      X1'   MT     U R                  U5      n [        U [        5      (       až  0 n[        U R                  [        5      [        S9 Hf  nX;   a  M
  X;   a  X1   Xa'   M  UR                  5       (       d  M.  [        R                  " [        R                  [        R                  U* /5      Xa'   Mh     U R                  U5      n U $ s  snf )zCReplace 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          ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/simplify/cse_opts.pyÚsub_prer   
   s  € ð —w‘wœs”|ÓD’|�!×'AÑ'A×'C�A‘|€DÐDØ€DÜ‹U€FÛˆØˆRˆØ�9�9Ø�J‰J�qŒMÙÜ—.’.¤!§-¡-°Ð!4Ó5ˆ‹ñ ð 	
�
‰
�4Ó€Aô �!”U×ÑØˆÜ˜Ÿ™¤›Ô*:Ô;ˆAØ‹{ÙØ‹yØ™'�“Ø×+Ñ+×-Ó-ÜŸ.š.¬!¯%©%´·±ÀÀÐ)CÓD�“ñ <ð �J‰J�tÓˆØ€Hùò1 Es
   ˜E&´E&c           	      óˆ  • / n[        U 5       H“  n[        U[        5      (       d  M  UR                  S   [        R
                  L d  M<  UR                  S   [        R                  L d  M^  UR                  U[        R                  " UR                  SS 5      * 45        M•     U H  u  p#U R                  X#05      n M     U $ )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Ö%ˆÜ�dœC× Ó Ø�I‰I�a‰LœAŸE™EÔ! d§i¡i°¡l´a·m±mÔ&CØ×Ñ ¬¯ª°t·y±yÀÀ°}Ó(EÐ'EÐ FÖGñ &ó *ÑˆØ�J‰J˜Ð*Ó+Šñ *ð €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(   