ó
    ‹*£hÇ
  ã                   óN   • S r S rS rS rSS jrS rS rS rS	 rS
 r	S r
S rg)z%Generic SymPy-Independent Strategies c              #   ó   #   • U v •  g 7f©N© )Úxs    ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/strategies/branch/core.pyÚidentityr      s
   é € Ø
ƒGùs   ‚c                 ó   ^ ^• U U4S jmT$ )z9Apply a branching rule repeatedly until it has no effect c              3   óœ   >#   • U 1nT" U 5       H+  nX!;  d  M
  UR                  U5        T" U5       S h  v•N   M-     X1:X  a  U v •  g g  N7fr   )Úadd)ÚexprÚseenÚnexprÚbruleÚexhaust_brls      €€r   r   Úexhaust.<locals>.exhaust_brl
   sR   øé € ØˆvˆÙ˜4–[ˆEØÕ Ø—‘˜”Ù& uÓ-×-Ò-ñ !ð �6‹>Ø‹Jð ñ .ùs   ƒA™AµA
¶Ar   )r   r   s   `@r   Úexhaustr      s   ù€ öð Ðó    c                 ó   ^ ^• U U4S jnU$ )Nc              3   óP   >#   • T" U 5       H  nX:w  a	  T" TX5        Uv •  M     g 7fr   r   )r   Úresultr   Úfns     €€r   Úonaction_brlÚonaction.<locals>.onaction_brl   s(   øé € Ù˜D–kˆFØ‹~Ù�5˜$Ô'ØŒLò "ùs   ƒ#&r   )r   r   r   s   `` r   Úonactionr      s   ù€ öð
 Ðr   Nc                 óD   ^• T(       d  SSK Jn  UmU4S jn[        X5      $ )z@Print the input and output expressions at each rule application é    )Ústdoutc                 óv   >• TR                  SU R                  -  5        TR                  SU< SU< S35        g )Nz	Rule: %s
zIn: z
Out: z

)ÚwriteÚ__name__)Úbrlr   r   Úfiles      €r   r   Údebug.<locals>.write$   s)   ø€ Ø�
‰
�< #§,¡,Ñ.Ô/Ø�
Š
«D³&Ð9Õ:r   )Úsysr   r   )r   r!   r   r   s    `  r   Údebugr$      s    ø€ æÝØˆõ;ô �EÓ!Ð!r   c                  ó   ^ • U 4S jnU$ )z(Multiplex many branching rules into one c              3   óŠ   >#   • [        5       nT H.  nU" U 5       H  nX1;  d  M
  UR                  U5        Uv •  M!     M0     g 7fr   )Úsetr
   )r   r   r    r   Úbruless       €r   Úmultiplex_brlÚ multiplex.<locals>.multiplex_brl-   s;   øé € Ü‹uˆÛˆCÙ˜Tž�ØÕ$Ø—H‘H˜U”OØ”Kó #ò ùs
   ƒA¥Ar   )r(   r)   s   ` r   Ú	multiplexr+   +   s   ø€ õ ð Ðr   c                 ó   ^ ^• UU 4S jnU$ )z/Only apply branching rule if condition is true c              3   óN   >#   • T" U 5      (       a  T" U 5       S h  v•N   g g  N7fr   r   )r   r   Úconds    €€r   Úconditioned_brlÚ"condition.<locals>.conditioned_brl9   s$   øé € Ù��:‰:Ù˜T“{×"Ñ"àñ #ùs   ƒ%œ#�%r   )r.   r   r/   s   `` r   Ú	conditionr1   7   s   ù€ öð
 Ðr   c                 ó   ^ ^• UU 4S jnU$ )z5Yield only those results which satisfy the predicate c              3   óF   >#   • [        TT" U 5      5       S h  v•N   g  N7fr   )Úfilter)r   r   Úpreds    €€r   Úfiltered_brlÚsfilter.<locals>.filtered_brlC   s   øé € Ü˜$¡ d£Ó,×,Ó,ùs   ƒ!™š!r   )r5   r   r6   s   `` r   Úsfilterr8   A   s   ù€ ö-àÐr   c                 ó   ^ • U 4S jnU$ )Nc              3   óT   >#   • SnT" U 5       H	  nSnUv •  M     U(       d  U v •  g g 7f©NFTr   )r   Úyieldedr   r   s      €r   Únotempty_brlÚnotempty.<locals>.notempty_brlI   s2   øé € ØˆÙ˜4–[ˆEØˆGØŒKñ !ö Ø‹Jð ùs   ƒ%(r   )r   r=   s   ` r   Únotemptyr?   H   s   ø€ õð Ðr   c                  ó   ^ • U 4S jnU$ )z#Execute one of the branching rules c              3   ó`   >#   • SnT H!  nU" U 5       H	  nSnUv •  M     U(       d  M!    g    g 7fr;   r   )r   r<   r    r   r(   s       €r   Ú
do_one_brlÚdo_one.<locals>.do_one_brlU   s7   øé € ØˆÛˆCÙ˜Tž�Ø�Ø”ñ #÷ ˆwÙò ùs   ƒ".©.r   )r(   rB   s   ` r   Údo_onerD   S   s   ø€ õð Ðr   c                  ó   ^ • U 4S jnU$ )zJ
Compose a sequence of brules so that they apply to the expr sequentially
c              3   ó†   >#   • T(       d  U v •  g TS   TSS  p!U" U 5       H  n[        U6 " U5       S h  v•N   M     g  N	7f)Nr   é   )Úchain)r   ÚheadÚtailr   r(   s       €r   Ú	chain_brlÚchain.<locals>.chain_brld   sE   øé € ÞØŠJØà˜A‘Y  q r 
ˆdÙ˜$–ZˆEÜ˜d‘| EÓ*×*Ò*ò  Ù*ùs   ƒ2Aµ?¶
Ar   )r(   rK   s   ` r   rH   rH   `   s   ø€ õ+ð Ðr   c                 ó   ^ • U 4S jnU$ )z"Turn a rule into a branching rule c              3   ó"   >#   • T" U 5      v •  g 7fr   r   )r   Úrls    €r   r    Úyieldify.<locals>.brlr   s   øé € Ù�‹h‹ùs   ƒr   )rO   r    s   ` r   ÚyieldifyrQ   p   s   ø€ õà€Jr   r   )Ú__doc__r   r   r   r$   r+   r1   r8   r?   rD   rH   rQ   r   r   r   Ú<module>rS      s?   ðÙ ,òò
òô
"ò	òòòò
òó r   