§
    «³ÙgA  ã                   óà   — 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 dl
mZmZ ddœd„Zej        d	z  Z ee¦  «        Zddœd
„Zddœd„Zddœd„Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚAddÚArgumentIndexErrorÚFunction)ÚPow)ÚS)Údefault_sort_key)ÚexpÚlogT©Úevaluatec          	      ó|   — t          t          t          | |¬¦  «        t          ||¬¦  «        |¬¦  «        ¦  «        S ©Nr   )r
   r   r	   ©Úx1Úx2r   s      úO/granary/edev/quantum/lib/python3.11/site-packages/sympy/codegen/numpy_nodes.pyÚ
_logaddexpr      s:   € Ý�s•3�r HÐ-Ñ-Ô-­s°2ÀÐ/IÑ/IÔ/IÐT\Ð]Ñ]Ô]Ñ^Ô^Ð^ó    é   c                ó4   — t          | |¬¦  «        t          z  S r   )r
   Ú_ln2©Úxr   s     r   Ú_lbr      s   € Ýˆq˜8Ð$Ñ$Ô$¥TÑ)Ð)r   c                ó0   — t          t          | |¬¦  «        S r   )r   Ú_twor   s     r   Ú_exp2r      s   € Ý�t�Q Ð*Ñ*Ô*Ð*r   c          	      ó|   — t          t          t          | |¬¦  «        t          ||¬¦  «        |¬¦  «        ¦  «        S r   )r   r   r   r   s      r   Ú_logaddexp2r      sL   € Ý�s•5˜ hÐ/Ñ/Ô/Ý˜ hÐ/Ñ/Ô/¸(ðDñ Dô Dñ Eô Eð Er   c                   ó6   — e Zd ZdZdZd„ Zd
d„Zd„ Zd„ Zd„ Z	d	S )Ú	logaddexpzÖ Logarithm of the sum of exponentiations of the inputs.

    Helper class for use with e.g. numpy.logaddexp

    See Also
    ========

    https://numpy.org/doc/stable/reference/generated/numpy.logaddexp.html
    r   c                 óN   — t          j        | gt          |t          ¬¦  «        ¢R Ž S ©N)Úkey©r   Ú__new__Úsortedr   ©ÚclsÚargss     r   r&   zlogaddexp.__new__)   ó)   € ÝÔ ÐI¥f¨TÕ7GÐ&HÑ&HÔ&HÐIÐIÐIÐIr   é   c                 ó¾   — |dk    r| j         \  }}n!|dk    r| j         \  }}nt          | |¦  «        ‚t          j        t          j        t	          ||z
  ¦  «        z   z  S ©z@
        Returns the first derivative of this function.
        r,   r   )r*   r   r   ÚOner	   ©ÚselfÚargindexÚwrtÚothers       r   Úfdiffzlogaddexp.fdiff,   s^   € ð �qŠ=ˆ=Øœ‰JˆC��Ø˜Š]ˆ]Øœ‰JˆE�3�3å$ T¨8Ñ4Ô4Ð4ÝŒu•a”e�c %¨¡)™nœnÑ,Ñ-Ð-r   c                 ó"   — t          ||¦  «        S ©N)r   ©r1   r   r   Úkwargss       r   Ú_eval_rewrite_as_logzlogaddexp._eval_rewrite_as_log8   s   € Ý˜"˜bÑ!Ô!Ð!r   c                 óL   —  |                       t          ¦  «        j        |i |¤ŽS r7   ©Úrewriter
   Úevalf©r1   r*   r9   s      r   Ú_eval_evalfzlogaddexp._eval_evalf;   ó&   € Ø&ˆt�|Š|�CÑ Ô Ô&¨Ð7°Ð7Ð7Ð7r   c                 ó    ‡— ˆfd„| j         D ¦   «         \  }}t          ||¦  «        }|t          ||d¬¦  «        k    r|S t          ||¦  «        S )Nc              3   ó2   •K  — | ]} |j         di ‰¤ŽV — Œd S ©N© )Úsimplify©Ú.0r   r9   s     €r   ú	<genexpr>z+logaddexp._eval_simplify.<locals>.<genexpr>?   s5   øè è € Ð8Ð8¨�
�”
Ð$Ð$˜VÐ$Ð$Ð8Ð8Ð8Ð8Ð8Ð8r   Fr   )r*   r   r!   ©r1   r*   r9   ÚaÚbÚ	candidates     `   r   Ú_eval_simplifyzlogaddexp._eval_simplify>   s_   ø€ Ø8Ð8Ð8Ð8¨d¬iÐ8Ñ8Ô8‰ˆˆ1Ý˜q !Ñ$Ô$ˆ	Ø�
 1 a°%Ð8Ñ8Ô8Ò8Ð8ØÐå˜Q ‘?”?Ð"r   N©r,   ©
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únargsr&   r5   r:   r@   rN   rE   r   r   r!   r!      sx   € € € € € ðð ð €EðJð Jð Jð
.ð 
.ð 
.ð 
.ð"ð "ð "ð8ð 8ð 8ð#ð #ð #ð #ð #r   r!   c                   ó6   — e Zd ZdZdZd„ Zd
d„Zd„ Zd„ Zd„ Z	d	S )Ú
logaddexp2zâ Logarithm of the sum of exponentiations of the inputs in base-2.

    Helper class for use with e.g. numpy.logaddexp2

    See Also
    ========

    https://numpy.org/doc/stable/reference/generated/numpy.logaddexp2.html
    r   c                 óN   — t          j        | gt          |t          ¬¦  «        ¢R Ž S r#   r%   r(   s     r   r&   zlogaddexp2.__new__S   r+   r   r,   c                 ó¾   — |dk    r| j         \  }}n!|dk    r| j         \  }}nt          | |¦  «        ‚t          j        t          j        t	          ||z
  ¦  «        z   z  S r.   )r*   r   r   r/   r   r0   s       r   r5   zlogaddexp2.fdiffV   s`   € ð �qŠ=ˆ=Øœ‰JˆC��Ø˜Š]ˆ]Øœ‰JˆE�3�3å$ T¨8Ñ4Ô4Ð4ÝŒu•a”e�e E¨#¡IÑ.Ô.Ñ.Ñ/Ð/r   c                 ó"   — t          ||¦  «        S r7   )r   r8   s       r   r:   zlogaddexp2._eval_rewrite_as_logb   s   € Ý˜2˜rÑ"Ô"Ð"r   c                 óL   —  |                       t          ¦  «        j        |i |¤ŽS r7   r<   r?   s      r   r@   zlogaddexp2._eval_evalfe   rA   r   c                 ó    ‡— ˆfd„| j         D ¦   «         \  }}t          ||¦  «        }|t          ||d¬¦  «        k    r|S t          ||¦  «        S )Nc              3   óV   •K  — | ]#} |j         di ‰¤Ž                     ¦   «         V — Œ$d S rD   )rF   ÚfactorrG   s     €r   rI   z,logaddexp2._eval_simplify.<locals>.<genexpr>i   sA   øè è € ÐAÐA°!�
�”
Ð$Ð$˜VÐ$Ð$×+Ò+Ñ-Ô-ÐAÐAÐAÐAÐAÐAr   Fr   )r*   r   rW   rJ   s     `   r   rN   zlogaddexp2._eval_simplifyh   sa   ø€ ØAÐAÐAÐA°t´yÐAÑAÔA‰ˆˆ1Ý  1Ñ%Ô%ˆ	Ø� A q°5Ð9Ñ9Ô9Ò9Ð9ØÐå˜a Ñ#Ô#Ð#r   NrO   rP   rE   r   r   rW   rW   G   sx   € € € € € ðð ð €EðJð Jð Jð
0ð 
0ð 
0ð 
0ð#ð #ð #ð8ð 8ð 8ð$ð $ð $ð $ð $r   rW   N)Úsympy.core.functionr   r   r   Úsympy.core.powerr   Úsympy.core.singletonr   Úsympy.core.sortingr   Ú&sympy.functions.elementary.exponentialr	   r
   r   r/   r   r   r   r   r   r!   rW   rE   r   r   ú<module>rd      sl  ðØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ  Ð  Ð  Ð  Ð  Ð  Ø "Ð "Ð "Ð "Ð "Ð "Ø /Ð /Ð /Ð /Ð /Ð /Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ð $(ð _ð _ð _ð _ð _ð 	„uˆQ�w€Ø
€sˆ4�y„y€ð ð *ð *ð *ð *ð *ð ð +ð +ð +ð +ð +ð %)ð Eð Eð Eð Eð Eð
'#ð '#ð '#ð '#ð '#�ñ '#ô '#ð '#ðT'$ð '$ð '$ð '$ð '$�ñ '$ô '$ð '$ð '$ð '$r   