§
    fŠtj…K  ã                   óü  — d dl Zd dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d dlmZmZmZ d dlmZmZmZ d dlmZ g d¢ZddgZd	„ Zej                             d
¦  «        ej                             d¦  «        ej                             d¦  «         ee¦  «         G d„ d¦  «        ¦   «         ¦   «         ¦   «         ¦   «         Z ee¦  «         G d„ d¦  «        ¦   «         Z ee¦  «         G d„ d¦  «        ¦   «         ZdS )é    N)Úis_array_api_strictÚmake_xp_test_caseÚxp_default_dtypeÚ	xp_device)Úxp_assert_equalÚxp_assert_closeÚxp_assert_less)Úlog_softmaxÚ	logsumexpÚsoftmax)Ú_wrap_radians)Úfloat32Úfloat64Úint32Úint64Ú	complex64Ú
complex128r   r   c                 ó‚  — |                       t          j         dz
  t          j         dddddt          j        t          j        dz   g	¦  «        }|                       t          j        dz
  t          j        dddddt          j        t          j         dz   g	¦  «        }t          || ¬¦  «        }t	          ||d¬¦  «         d S )Né   éÿÿÿÿgYóøÂn¥�r   gYóøÂn¥)Úxp)Úatol)ÚasarrayÚmathÚpir   r   )r   ÚxÚrefÚress       ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/special/tests/test_logsumexp.pyÚtest_wrap_radiansr       s«   € Ø
�
Š
•T”W�H˜Q‘J¥¤ ¨"¨gØ�v˜q¥$¤'­4¬7°1©9ð6ñ 	7ô 	7€Aà
�*Š*•d”g˜a‘i¥¤¨"¨gØ�v˜q¥$¤'­D¬G¨8°A©:ð7ñ 8ô 8€Cå
˜˜bÐ
!Ñ
!Ô
!€CÝ�C˜ 1Ð%Ñ%Ô%Ð%Ð%Ð%ó    z/ignore:invalid value encountered:RuntimeWarningz0ignore:divide by zero encountered:RuntimeWarningz*ignore:overflow encountered:RuntimeWarningc                   óN  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                             d
dg d¢f¦  «        d„ ¦   «         Zd„ Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Zej                             d ej        ej         ej         eej         d¦  «         eej         d¦  «         eej         ej        ¦  «         eej         ej         ¦  «         eej        d¦  «         eej        d¦  «         eej        ej        ¦  «         eej        ej         ¦  «         eej         d¦  «         eej         d¦  «         eej         d¦  «         eej         d¦  «         eej        d¦  «         eej        d¦  «         eej        d¦  «         eej        d¦  «        gd ¬!¦  «        ¦  «        d"„ ¦   «         Zd#„ Zej                             d$d%d&g g¦  «        d'„ ¦   «         Zd(„ Zej                             d)ej        gd*d%fej        gd+gd+fg¦  «        d,„ ¦   «         Z d*S )-ÚTestLogSumExpc                 ó´  — |                      g ¦  «        }|                      |j         ¦  «        }t          t          |¦  «        |¦  «         |                     d|j        ¬¦  «        }|                     |                     |                     |¦  «        ¦  «        ¦  «        }t          t          |¦  «        |¦  «         |                      ddg¦  «        }|                      dt          j        d¦  «        z   ¦  «        }t          t          |¦  «        |¦  «         d}|                     |fd¦  «        }|                      dt          j        |¦  «        z   ¦  «        }t          t          |¦  «        |¦  «         |                      dgd	z  ¦  «        }|                     |¦  «        }|                     ||g¦  «        }|                     ||g¦  «        }	t          |                     t          |	¦  «        ¦  «        |                     |¦  «        ¦  «         t          |                     t          |	d
¬¦  «        ¦  «        |                     |d
¬¦  «        ¦  «         t          |                     t          |	d¬¦  «        ¦  «        |                     |d¬¦  «        ¦  «         |                      |j        g¦  «        }
|                      |j        g¦  «        }t          t          |
¦  «        |
d
         ¦  «         t          t          |
 ¦  «        |
d
          ¦  «         t          t          |¦  «        |d
         ¦  «         t          t          |                      |j         |j         g¦  «        ¦  «        |
d
          ¦  «         |                      ddgdt          j         gg¦  «        }|                      ddg¦  «        }t          t          |d¬¦  «        |¦  «         |                     |d¬¦  «        }t          t          |dd¬¦  «        |¦  «         t          t          |d¬¦  «        |                      d¦  «        ¦  «         d S )Nç      i@©Údtypeç     @�@ç       @éè  é'  g     ˆÃ@çœWw'&l¡7i@B r   ©Úaxisr   g    _ Bg»½×Ùß|Û=g    _ Âr   T)r.   Úkeepdims)r   éþÿÿÿ)r   Úinfr   r   Úaranger   ÚlogÚsumÚexpr   r   ÚfullÚstackÚnanÚnpÚexpand_dims)Úselfr   ÚaÚdesiredÚbÚnr   ÚlogxÚXÚlogXr1   r8   r   s                r   Útest_logsumexpzTestLogSumExp.test_logsumexp%   s”  € à�JŠJ�r‰NŒNˆØ—*’*˜bœf˜WÑ%Ô%ˆÝ�	 !™œ gÑ.Ô.Ð.ð �IŠI�d "¤*ˆIÑ-Ô-ˆØ—&’&˜Ÿš §¢ q¡	¤	Ñ*Ô*Ñ+Ô+ˆÝ�	 !™œ gÑ.Ô.Ð.ð �JŠJ˜˜u�~Ñ&Ô&ˆØ—*’*˜V¥d¤h¨s¡m¤mÑ3Ñ4Ô4ˆÝ�	 !™œ gÑ.Ô.Ð.àˆØ�GŠG�Q�D˜%Ñ Ô ˆØ—*’*˜W¥t¤x°¡{¤{Ñ2Ñ3Ô3ˆÝ�	 !™œ gÑ.Ô.Ð.à�JŠJ˜�w Ñ(Ñ)Ô)ˆØ�vŠv�a‰yŒyˆØ�HŠH�a˜�VÑÔˆØ�xŠx˜˜t˜Ñ%Ô%ˆÝ˜Ÿš�y¨™œÑ/Ô/°·²¸±´Ñ;Ô;Ð;Ý˜Ÿš�y¨°AÐ6Ñ6Ô6Ñ7Ô7¸¿ºÀÈ¸Ñ9JÔ9JÑKÔKÐKÝ˜Ÿš�y¨°AÐ6Ñ6Ô6Ñ7Ô7¸¿ºÀÈ¸Ñ9JÔ9JÑKÔKÐKð �jŠj˜"œ&˜Ñ"Ô"ˆØ�jŠj˜"œ&˜Ñ"Ô"ˆÝ�	 #™œ¨¨A¬Ñ/Ô/Ð/Ý�	 3 $™œ¨#¨a¬&¨Ñ1Ô1Ð1Ý�	 #™œ¨¨A¬Ñ/Ô/Ð/Ý�	 "§*¢*¨r¬v¨g¸¼°wÐ-?Ñ"@Ô"@ÑAÔAÀCÈÄFÀ7ÑKÔKÐKð �JŠJ˜˜u˜Ø¥¤ Ð(ð*ñ +ô +ˆà�jŠj˜$ ˜Ñ'Ô'ˆÝ�	 !¨"Ð-Ñ-Ô-¨sÑ3Ô3Ð3ð �nŠn˜S rˆnÑ*Ô*ˆÝ�	 !¨"°tÐ<Ñ<Ô<¸cÑBÔBÐBõ 	�	 !¨(Ð3Ñ3Ô3°R·Z²ZÀÑ5EÔ5EÑFÔFÐFÐFÐFr!   c           	      óä  — |                      d|j        ¬¦  «        }|                      ddd¦  «        }|                     |                     ||                     |¦  «        z  ¦  «        ¦  «        }t          t          ||¬¦  «        |¦  «         |                     ddg¦  «        }|                     ddg¦  «        }|                     dt          j        d¦  «        z   ¦  «        }t          t          ||¬¦  «        |¦  «         |                     d	gd
z  ¦  «        }| 	                    ddd
¦  «        }|                     |¦  «        }| 
                    ||f¦  «        }| 
                    ||f¦  «        }| 
                    ||f¦  «        }	t          |                     t          ||	¬¦  «        ¦  «        |                     |	|z  ¦  «        ¦  «         t          |                     t          ||	d¬¦  «        ¦  «        |                     |	|z  d¬¦  «        ¦  «         t          |                     t          ||	d¬¦  «        ¦  «        |                     |	|z  d¬¦  «        ¦  «         d S )Nr%   r&   ç        ç      ð¿©r>   r*   g333333ó?g333333@r,   i † r   r   )r>   r.   r-   )r2   r   r3   r4   r5   r   r   r   r   Úlinspacer7   )
r;   r   r<   r>   r=   r   r@   rA   rB   ÚBs
             r   Útest_logsumexp_bzTestLogSumExp.test_logsumexp_bW   s  € Ø�IŠI�d "¤*ˆIÑ-Ô-ˆØ�IŠI�d˜B Ñ$Ô$ˆØ—&’&˜Ÿš  "§&¢&¨¡)¤)¡Ñ,Ô,Ñ-Ô-ˆÝ�	 ! qÐ)Ñ)Ô)¨7Ñ3Ô3Ð3à�JŠJ˜˜d�|Ñ$Ô$ˆØ�JŠJ˜˜S�zÑ"Ô"ˆØ—*’*˜T¥D¤H¨WÑ$5Ô$5Ñ5Ñ6Ô6ˆÝ�	 ! qÐ)Ñ)Ô)¨7Ñ3Ô3Ð3à�JŠJ˜�w Ñ'Ñ(Ô(ˆØ�KŠK˜˜4 Ñ(Ô(ˆØ�vŠv�a‰yŒyˆØ�HŠH�a˜�VÑÔˆØ�xŠx˜˜t˜Ñ%Ô%ˆØ�HŠH�a˜�VÑÔˆÝ˜Ÿš�y¨°Ð3Ñ3Ô3Ñ4Ô4°b·f²f¸QÀ¹U±m´mÑDÔDÐDÝ˜Ÿš�y¨°¸Ð;Ñ;Ô;Ñ<Ô<¸b¿fºfÀQÈÁUÐQR¸fÑ>SÔ>SÑTÔTÐTÝ˜Ÿš�y¨°¸Ð;Ñ;Ô;Ñ<Ô<¸b¿fºfÀQÈÁUÐQR¸fÑ>SÔ>SÑTÔTÐTÐTÐTr!   c                 ó  — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||d¬¦  «        \  }}t          ||                      d¦  «        ¦  «         t          ||                      d¦  «        ¦  «         d S )N)r   r   r   )r   r   r   T©r>   Úreturn_signç      ð?rF   )r   r   r   r   ©r;   r   r<   r>   ÚrÚss         r   Útest_logsumexp_signz!TestLogSumExp.test_logsumexp_signl   s~   € Ø�JŠJ�y�y�yÑ!Ô!ˆØ�JŠJ�{�{�{Ñ#Ô#ˆå˜˜a¨TÐ2Ñ2Ô2‰ˆˆ1Ý˜˜2Ÿ:š: b™>œ>Ñ*Ô*Ð*Ý˜˜2Ÿ:š: c™?œ?Ñ+Ô+Ð+Ð+Ð+r!   c                 ó  — |                      ddg¦  «        }|                      ddg¦  «        }t          ||d¬¦  «        \  }}|                     |¦  «        rJ ‚|                     |¦  «        rJ ‚|dk     sJ ‚|dk    sJ ‚d S )Nr   r   TrL   r   )r   r   ÚisfiniteÚisnanrO   s         r   Útest_logsumexp_sign_zeroz&TestLogSumExp.test_logsumexp_sign_zerot   s�   € Ø�JŠJ˜˜1�vÑÔˆØ�JŠJ˜˜2�wÑÔˆå˜˜a¨TÐ2Ñ2Ô2‰ˆˆ1Ø—;’;˜q‘>”>Ð!Ð!Ð!Ø—8’8˜A‘;”;ÐÐˆØ�1ŠuˆuˆuˆuØ�AŠvˆvˆvˆvˆvˆvr!   c                 ó  — |                      d¦  «        }|                     |¦  «        }t          |d|d¬¦  «        \  }}|j        |j        cxk    rdk    sn J ‚t          |d|d¬¦  «        \  }}|j        |j        cxk    rdk    sn J ‚d S )N©r   é   é   é   rY   T)r.   r>   rM   ©r   rY   r[   ©r   rZ   ©ÚonesÚ	ones_liker   ÚshaperO   s         r   Útest_logsumexp_sign_shapez'TestLogSumExp.test_logsumexp_sign_shape~   s®   € Ø�GŠG�LÑ!Ô!ˆØ�LŠL˜‰OŒOˆå˜  a°TÐ:Ñ:Ô:‰ˆˆ1ØŒw˜!œ'Ð.Ð.Ò.Ð. YÒ.Ð.Ð.Ð.Ð.Ð.å˜ ¨1¸$Ð?Ñ?Ô?‰ˆˆ1ØŒw˜!œ'Ð*Ð*Ò*Ð* UÒ*Ð*Ð*Ð*Ð*Ð*Ð*Ð*r!   c                 óH  — |                      g d¢¦  «        }t          |d¬¦  «        \  }}|                     |                     |¦  «        ¦  «        }||                     |¦  «        z  }t          ||¦  «         t          ||                     |¦  «        z  |¦  «         d S )N)y      ð?      ð?y       @      ð¿y       À      @T)rM   )r   r   r4   r5   Úabsr   )r;   r   r<   rP   rQ   Úexpected_sumexpÚexpected_signs          r   Útest_logsumexp_complex_signz)TestLogSumExp.test_logsumexp_complex_signˆ   s•   € Ø�JŠJÐ0Ð0Ð0Ñ1Ô1ˆå˜¨Ð-Ñ-Ô-‰ˆˆ1àŸ&š& §¢¨¡¤Ñ+Ô+ˆà'¨"¯&ª&°Ñ*AÔ*AÑAˆå˜˜=Ñ)Ô)Ð)Ý˜˜BŸFšF 1™IœI™ Ñ7Ô7Ð7Ð7Ð7r!   c                 óÖ   — |                      d¦  «        }|                     |¦  «        }t          |d|¬¦  «        }|j        dk    sJ ‚t          |d|¬¦  «        }|j        dk    sJ ‚d S )NrX   rY   )r.   r>   r\   r]   r^   )r;   r   r<   r>   rP   s        r   Útest_logsumexp_shapez"TestLogSumExp.test_logsumexp_shape”   sv   € Ø�GŠG�LÑ!Ô!ˆØ�LŠL˜‰OŒOˆå�a˜a 1Ð%Ñ%Ô%ˆØŒw˜)Ò#Ð#Ð#Ð#å�a˜f¨Ð*Ñ*Ô*ˆØŒw˜&Ò Ð Ð Ð Ð Ð r!   c                 óÆ   — |                      ddg¦  «        }|                      ddg¦  «        }t          t          ||¬¦  «        |                      d¦  «        ¦  «         d S )Nr   r+   r   rG   rN   )r   r   r   ©r;   r   r<   r>   s       r   Útest_logsumexp_b_zeroz#TestLogSumExp.test_logsumexp_b_zerož   sY   € Ø�JŠJ˜˜5�zÑ"Ô"ˆØ�JŠJ˜˜1�vÑÔˆå�	 ! qÐ)Ñ)Ô)¨2¯:ª:°b©>¬>Ñ:Ô:Ð:Ð:Ð:r!   c                 ó|   — |                      d¦  «        }|                     d¦  «        }t          ||¬¦  «         d S )N)r[   r   rY   r   )rZ   r   é   rG   )Úzerosr_   r   rk   s       r   Útest_logsumexp_b_shapez$TestLogSumExp.test_logsumexp_b_shape¤   s=   € Ø�HŠH�\Ñ"Ô"ˆØ�GŠG�IÑÔˆå�!�qÐÑÔÐÐÐr!   Úargr   )r   rY   rZ   c                 ó’   — t          |¦  «        t          t          j        t          j        |¦  «        ¦  «        ¦  «        k    sJ ‚d S ©N)r   r9   r   Ú
atleast_1d)r;   rq   s     r   Útest_xp_invalid_inputz#TestLogSumExp.test_xp_invalid_inputª   s;   € å˜‰~Œ~¥­2¬:µb´mÀCÑ6HÔ6HÑ+IÔ+IÑ!JÔ!JÒJÐJÐJÐJÐJÐJr!   c                 óš   — ddg}t          j        dt          j        d¦  «        z   ¦  «        }t	          t          |¦  «        |¦  «         d S )Nr*   r(   r)   )r9   r   r   r3   r   r   )r;   r<   r=   s      r   Útest_array_likezTestLogSumExp.test_array_like®   sC   € Ø�4ˆLˆÝ”*˜V¥d¤h¨s¡m¤mÑ3Ñ4Ô4ˆÝ�	 !™œ gÑ.Ô.Ð.Ð.Ð.r!   r'   c                 óN  — t          ||¦  «        }|                     ddg|¬¦  «        }|                     |d¦  «        r|                     d¦  «        j        n|}|                     dt	          j        d¦  «        z   |¬¦  «        }t          t          |¦  «        |¦  «         d S )Nr(   r&   ÚintegralrN   r)   )Úgetattrr   Úisdtyper'   r   r3   r   r   )r;   r'   r   r<   Údesired_dtyper=   s         r   Útest_dtypes_azTestLogSumExp.test_dtypes_a³   s˜   € å˜˜EÑ"Ô"ˆØ�JŠJ˜˜u�~¨UˆJÑ3Ô3ˆØ13·²¸EÀ:Ñ1NÔ1Nð $˜Ÿš B™œÔ-Ð-Ø#ð 	à—*’*˜V¥d¤h¨s¡m¤mÑ3¸=�*ÑIÔIˆÝ�	 !™œ gÑ.Ô.Ð.Ð.Ð.r!   Údtype_aÚdtype_bc                 óÔ  ‡— t          ‰|¦  «        }t          ‰|¦  «        }‰                     ddg|¬¦  «        }‰                     ddg|¬¦  «        }t          ‰¦  «        r[ˆfd„||fD ¦   «         }t          |¦  «        dk     r-|                     ‰                     d¦  «        j        ¦  «          ‰j        |Ž }	n;‰                     ||¦  «        }	‰                     |	d¦  «        rt          ‰¦  «        }	‰                     t          j
        t          j        d¦  «        t          j        d¦  «        z
  ¦  «        |	¬¦  «        }
t          t          ||¬¦  «        |
¦  «         d S )	NrY   r   r&   r   c                 ó@   •— g | ]}‰                      |d ¦  «        °|‘ŒS )ry   )r{   )Ú.0r'   r   s     €r   ú
<listcomp>z0TestLogSumExp.test_dtypes_ab.<locals>.<listcomp>Æ   sB   ø€ ð Eð Eð E¨Ø&(§j¢j°¸
Ñ&CÔ&CðE˜uð Eð Eð Er!   rN   ry   rG   )rz   r   r   ÚlenÚappendr'   Úresult_typer{   r   r   r3   r5   r   r   )r;   r~   r   r   Ú
xp_dtype_aÚ
xp_dtype_br<   r>   Úxp_float_dtypesr|   r=   s      `       r   Útest_dtypes_abzTestLogSumExp.test_dtypes_ab¼   si  ø€ õ ˜R Ñ)Ô)ˆ
Ý˜R Ñ)Ô)ˆ
Ø�JŠJ˜˜1�v ZˆJÑ0Ô0ˆØ�JŠJ˜˜2�w jˆJÑ1Ô1ˆÝ˜rÑ"Ô"ð 	4ðEð Eð Eð E°:¸zÐ2Jð Eñ Eô EˆOå�?Ñ#Ô# aÒ'Ð'Ø×&Ò& r§z¢z°"¡~¤~Ô';Ñ<Ô<Ð<Ø*˜BœN¨OÐ<ˆMˆMàŸNšN¨:°zÑBÔBˆMØ�zŠz˜-¨Ñ4Ô4ð 4Ý/°Ñ3Ô3ˆ}Ø—*’*�TœX¥d¤h¨q¡k¤kµD´H¸Q±K´KÑ&?Ñ@Ô@È�*ÑVÔVˆÝ�	 ! qÐ)Ñ)Ô)¨7Ñ3Ô3Ð3Ð3Ð3r!   c                 ó¶   — |                      ddg¦  «        }t          |¦  «        }|                     |d         |d         ¦  «        }t          ||¦  «         d S )NrE   g      DÀr   r   )r   r   Ú	logaddexpr   )r;   r   r<   r   r   s        r   Útest_gh18295zTestLogSumExp.test_gh18295Ò   sU   € ð �JŠJ˜˜U�|Ñ$Ô$ˆÝ˜‰lŒlˆØ�lŠl˜1˜Qœ4  1¤Ñ&Ô&ˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!r!   r   r   c                 ó   — t           j                             d¦  «        }t          ||¦  «        }d}|                     dd|¦  «        d|                     dd|¦  «        z  z   }|                     ||¬¦  «        }t          |d¬¦  «        }|                     |                     | 	                    |¦  «        d¬¦  «        ¦  «        }| 
                    |                     |¦  «        |j        ¦  «        }t          |                     |                     |¦  «        ¦  «        |¦  «         t          ||¦  «         t          |dd¬	¦  «        \  }	}
|                     | 	                    |¦  «        d¬¦  «        }t          |                     |                     |
¦  «        ¦  «        |¦  «         t          |	|                     |                     |¦  «        ¦  «        ¦  «         t          |
||                     |¦  «        z  ¦  «         d S )
Nl   &¦DN$)é
   éd   r   é(   ù              ð?r&   r-   T)rM   r.   )r9   ÚrandomÚdefault_rngrz   Úuniformr   r   r3   r4   r5   Ú	full_likeÚimagr   r	   rd   r   Úreal)r;   r   r'   Úrngra   r   r   r   ÚmaxÚoutÚsgns              r   Útest_gh21610zTestLogSumExp.test_gh21610Ú   s«  € õ Œi×#Ò#Ð$6Ñ7Ô7ˆÝ˜˜EÑ"Ô"ˆØˆØ�KŠK˜˜2˜uÑ%Ô%¨¨c¯kªk¸!¸RÀÑ.GÔ.GÑ(GÑGˆØ�JŠJ�q ˆJÑ&Ô&ˆå˜ Ð"Ñ"Ô"ˆØ�fŠf�R—V’V˜BŸFšF 1™IœI¨A�VÑ.Ô.Ñ/Ô/ˆØ�lŠl˜2Ÿ7š7 3™<œ<¨¬Ñ/Ô/ˆÝ�r—v’v˜bŸgšg c™lœlÑ+Ô+¨SÑ1Ô1Ð1Ý˜˜SÑ!Ô!Ð!å˜Q¨D°qÐ9Ñ9Ô9‰ˆˆSØ�fŠf�R—V’V˜A‘Y”Y QˆfÑ'Ô'ˆÝ�r—v’v˜bŸgšg c™lœlÑ+Ô+¨SÑ1Ô1Ð1Ý˜˜RŸWšW R§V¢V¨C¡[¤[Ñ1Ô1Ñ2Ô2Ð2Ý˜˜S §¢¨¡¤™_Ñ-Ô-Ð-Ð-Ð-r!   c                 óZ  — |                      ddg¦  «        }t          |¦  «        }|                      d¦  «        }t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        dd¬¦  «         d S )Nr   y        š™™™™™y<yï9úþB.æ?š™™™™™i<gVçž¯Ò<)r   Úrtol)r   r   r   r˜   r—   )r;   r   r   r   r   s        r   Útest_gh21709_small_imaginaryz*TestLogSumExp.test_gh21709_small_imaginaryó   s�   € ð �JŠJ˜Ð5Ð6Ñ7Ô7ˆÝ˜‰lŒlˆð
 �jŠjÐCÑDÔDˆÝ˜Ÿš ™œ b§g¢g¨c¡l¤lÑ3Ô3Ð3Ý˜Ÿš ™œ b§g¢g¨c¡l¤l¸ÀÐGÑGÔGÐGÐGÐGr!   zx,yrE   g       €g%ušè?g}®¶bÙ@gÑ"Ûù~j@g’ËH¿ý@rY   )Úrepeatc           
      ó  — t          |                     ||g¦  «        ¦  «        }|                     |                     |                     |                     ||g¦  «        ¦  «        ¦  «        ¦  «        }t          ||¦  «         d S rs   )r   r   r3   r4   r5   r   )r;   r   Úyr   r   r   s         r   Útest_gh22601_infinite_elementsz,TestLogSumExp.test_gh22601_infinite_elements  sp   € õ4 ˜Ÿ
š
 A q 6Ñ*Ô*Ñ+Ô+ˆØ�fŠf�R—V’V˜BŸFšF 2§:¢:¨q°!¨fÑ#5Ô#5Ñ6Ô6Ñ7Ô7Ñ8Ô8ˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!r!   c                 ó6  — |                      ddg¦  «        }|                      ddg¦  «        }t          |¦  «         t          ||¬¦  «         t          ||                      ddg¦  «        ¦  «         t          ||                      ddg¦  «        ¦  «         dS )zFTest that logsumexp doesn't accidentally write back to its parameters.g      @g      @g      @r)   rG   N)r   r   r   rk   s       r   Útest_no_writebackzTestLogSumExp.test_no_writeback  s�   € à�JŠJ˜˜B�xÑ Ô ˆØ�JŠJ˜˜B�xÑ Ô ˆÝ�!‰ŒˆÝ�!�qÐÑÔÐÝ˜˜2Ÿ:š: r¨2 hÑ/Ô/Ñ0Ô0Ð0Ý˜˜2Ÿ:š: r¨2 hÑ/Ô/Ñ0Ô0Ð0Ð0Ð0r!   Úx_rawrN   r’   c                 óþ   — |D ]y}|                      ||¬¦  «        }t          t          |¦  «        ¦  «        t          |¦  «        k    sJ ‚t          t          ||¬¦  «        ¦  «        t          |¦  «        k    sJ ‚ŒzdS )z(Test input device propagation to output.)ÚdevicerG   N)r   r   r   )r;   r§   r   ÚdevicesÚdr   s         r   Útest_devicezTestLogSumExp.test_device(  sŠ   € ð ð 	@ð 	@ˆAØ—
’
˜5¨�
Ñ+Ô+ˆAÝ�Y q™\œ\Ñ*Ô*­i¸©l¬lÒ:Ð:Ð:Ð:Ý�Y q¨AÐ.Ñ.Ô.Ñ/Ô/µ9¸Q±<´<Ò?Ð?Ð?Ð?Ð?ð	@ð 	@r!   c                 óh  — |                      g d¢¦  «        }|                      g d¢¦  «        }t          t          ||¬¦  «        t          ||d¬¦  «        d         ¦  «         |                      g d¢¦  «        }t          t          ||¬¦  «        |                      |j        ¦  «        ¦  «         d S )N)gr¯£ÜCƒ@gå� X××?g™	mÖlÿ@)çª_+™Jþ?çãÌeYæ»@g®|H•4ë¿rG   TrL   r   )r®   r¯   g«R%ÍÀ)r   r   r   r8   rk   s       r   Útest_gh22903zTestLogSumExp.test_gh229030  s°   € ð �JŠJÐ;Ð;Ð;Ñ<Ô<ˆØ�JŠJÐ<Ð<Ð<Ñ=Ô=ˆÝ�	 ! qÐ)Ñ)Ô)­9°Q¸!ÈÐ+NÑ+NÔ+NÈqÔ+QÑRÔRÐRð �JŠJÐ<Ð<Ð<Ñ=Ô=ˆÝ�	 ! qÐ)Ñ)Ô)¨2¯:ª:°b´fÑ+=Ô+=Ñ>Ô>Ð>Ð>Ð>r!   za, b, sign_refNrF   c                 ó   — |                      |¦  «        |�|                      |¦  «        nd }}t          ||d¬¦  «        \  }}|                     |¦  «        sJ ‚t          ||                      |¦  «        ¦  «         d S )NTrL   )r   r   Úisinfr   )r;   r   r<   r>   Úsign_refÚvalÚsigns          r   Útest_gh23548zTestLogSumExp.test_gh23548>  sx   € ð �zŠz˜!‰}Œ}¨q¨}˜bŸjšj¨™mœm˜mÀ$ˆ1ˆÝ˜a 1°$Ð7Ñ7Ô7‰	ˆˆTØ�xŠx˜‰}Œ}ÐÐˆ}Ý˜˜bŸjšj¨Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r!   )!Ú__name__Ú
__module__Ú__qualname__rC   rJ   rR   rV   rb   rg   ri   rl   rp   ÚpytestÚmarkÚparametrizeru   rw   Údtypesr}   rŠ   r�   r�   r    ÚitÚproductr9   r1   Úcomplexr¤   r¦   r¬   r°   r¶   © r!   r   r#   r#       sì  € € € € € ð
0Gð 0Gð 0GðdUð Uð Uð*,ð ,ð ,ðð ð ð+ð +ð +ð
8ð 
8ð 
8ð!ð !ð !ð;ð ;ð ;ðð ð ð „[×Ò˜U Q¨	¨	¨	 NÑ3Ô3ðKð Kñ 4Ô3ðKð/ð /ð /ð
 „[×Ò˜W fÑ-Ô-ð/ð /ñ .Ô-ð/ð „[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜Y¨Ñ/Ô/ð4ð 4ñ 0Ô/ñ 0Ô/ð4ð("ð "ð "ð „[×Ò˜W {°LÐ&AÑBÔBð.ð .ñ CÔBð.ð0Hð Hð Hð „[×Ò˜U J B¤JàŒVˆGØŒFØˆG�R”V�G˜RÑ Ô ØˆG�R”V�G˜SÑ!Ô!ØˆG�R”V�G˜RœVÑ$Ô$ØˆG�R”V�G˜bœf˜WÑ%Ô%ØˆG�B”F˜BÑÔØˆG�B”F˜CÑ Ô ØˆG�B”F˜BœFÑ#Ô#ØˆG�B”F˜RœV˜GÑ$Ô$àˆG�R”V�G˜VÑ$Ô$ØˆG�R”V�G˜VÑ$Ô$ØˆG�R”V�G˜VÑ$Ô$ØˆG�R”V�G˜VÑ$Ô$ØˆG�B”F˜FÑ#Ô#ØˆG�B”F˜FÑ#Ô#ØˆG�B”F˜FÑ#Ô#ØˆG�B”F˜FÑ#Ô#ð'	
ð( ð+%ñ %ô %ñ ô ð."ð "ñ/ô ð."ð1ð 1ð 1ð „[×Ò˜W s¨D°" oÑ6Ô6ð@ð @ñ 7Ô6ð@ð?ð ?ð ?ð „[×ÒÐ-Ø "¤˜x¨¨rÐ2Ø "¤˜x¨#¨°Ð4ð6ñ7ô 7ð4ð 4ñ7ô 7ð4ð 4ð 4r!   r#   c                   óp   — e Zd Zd„ Zd„ Zej                             dd¬¦  «        d„ ¦   «         Zd„ Z	d„ Z
d	S )
ÚTestSoftmaxc                 ót  — t          t          |                     g d¢¦  «        ¦  «        |                     g d¢¦  «        d¬¦  «         t          t          |                     ddg¦  «        ¦  «        |                     ddg¦  «        d¬¦  «         t          t          |                     ddg¦  «        ¦  «        |                     dt          j        g¦  «        dt          j        z   z  d¬¦  «         |                     d	|j        ¬
¦  «        }|                     g d¢|j        ¬
¦  «        }t          t          |¦  «        |d¬¦  «         t          t          |dz   ¦  «        |d¬¦  «         t          t          |                     |d¦  «        ¦  «        |                     |d¦  «        d¬¦  «         d S )N)r(   rE   rE   rE   ©rN   rE   rE   rE   ç‚vIhÂ%<=©rŸ   rN   ç      à?rE   r   r[   r&   )g*lI9üi ?g™{O¶?gW-RÎ?gI³ôòšä?r�   ©rY   rY   )r   r   r   r9   Úer2   r   Úreshape)r;   r   r   Úexpecteds       r   Útest_softmax_fixturesz!TestSoftmax.test_softmax_fixturesL  sÉ  € Ý� §
¢
Ð+>Ð+>Ð+>Ñ ?Ô ?Ñ@Ô@ØŸ
š
Ð#3Ð#3Ð#3Ñ4Ô4¸5ð	Bñ 	Bô 	Bð 	Bå� §
¢
¨B°¨8Ñ 4Ô 4Ñ5Ô5ØŸ
š
 B¨ 8Ñ,Ô,°5ð	:ñ 	:ô 	:ð 	:å� §
¢
¨B°¨8Ñ 4Ô 4Ñ5Ô5ØŸ
š
 B­¬ :Ñ.Ô.°µB´D±Ñ9Ø"ð	$ñ 	$ô 	$ð 	$ð �IŠI�a˜rœzˆIÑ*Ô*ˆØ—:’:ð 3ð 3ð 3ð ;=¼*ð ñ Fô Fˆõ
 	� ™
œ
 H°5Ð9Ñ9Ô9Ð9õ 	�  C¡Ñ(Ô(¨(¸Ð?Ñ?Ô?Ð?õ 	� §
¢
¨1¨fÑ 5Ô 5Ñ6Ô6ØŸ
š
 8¨VÑ4Ô4¸5ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br!   c           	      óì  — t          t          |                     ddgddgg¦  «        d¬¦  «        |                     ddgddgg¦  «        d¬¦  «         t          t          |                     ddgddgg¦  «        d¬¦  «        |                     d	dgd	dgg¦  «        d¬¦  «         |                     g d
¢g d¢g¦  «        }|                     g d¢g d¢g¦  «        }t          t          |d¬¦  «        |d¬¦  «         t          t          |j        d¬¦  «        |j        d¬¦  «         |                     |d¦  «        }t          t          |d¬¦  «        |                     |d¦  «        d¬¦  «         d S )Nr(   rE   r   r-   rÈ   rÆ   rÇ   r   rN   )g      9ÀrE   g      9@g      I@)rN   g     Pt@g     h‡@g     p‡@)g£×Ù	Ñ+9g.K|T}%m;gÕð]¤7Š®=g\þÿÿÿï?)rE   g‘pk´&•g†ºTV6Ñ?g¼¢ÕõÔdç?©rY   rY   rY   ©r   rY   )r   r   r   ÚTrË   )r;   r   r   rÌ   Úx3ds        r   Útest_softmax_multi_axesz#TestSoftmax.test_softmax_multi_axesh  sÎ  € Ý� §
¢
¨U°B¨K¸%À¸Ð+EÑ FÔ FÈQÐOÑOÔOØŸ
š
 R¨ H¨r°2¨hÐ#7Ñ8Ô8¸uð	Fñ 	Fô 	Fð 	Få� §
¢
¨U°B¨K¸%À¸Ð+EÑ FÔ FÈQÐOÑOÔOØŸ
š
 R¨ H¨r°2¨hÐ#7Ñ8Ô8¸uð	Fñ 	Fô 	Fð 	Fð
 �JŠJÐ0Ð0Ð0Ø0Ð0Ð0ð2ñ 3ô 3ˆà—:’:ð  3ð  3ð  3ð 4ð  4ð  4ð	5ñ 6ô 6ˆõ 	� ¨Ð*Ñ*Ô*¨H¸5ÐAÑAÔAÐAÝ� ¤¨!Ð,Ñ,Ô,¨h¬j¸uÐEÑEÔEÐEð �jŠj˜˜IÑ&Ô&ˆÝ� ¨&Ð1Ñ1Ô1ØŸ
š
 8¨YÑ7Ô7¸eð	Eñ 	Eô 	Eð 	Eð 	Eð 	Er!   Úarray_api_strictúint->float promotion©Úreasonc                 ó˜   — t          t          |                     g d¢¦  «        ¦  «        |                     g d¢¦  «        d¬¦  «         d S ©N)r*   r   r   r   rÅ   rÆ   rÇ   )r   r   r   ©r;   r   s     r   Útest_softmax_int_arrayz"TestSoftmax.test_softmax_int_array‚  s[   € å� §
¢
¨?¨?¨?Ñ ;Ô ;Ñ<Ô<ØŸ
š
Ð#3Ð#3Ð#3Ñ4Ô4¸5ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br!   c                 óh   — t          t          d¦  «        t          j        d¦  «        d¬¦  «         d S )Nr*   rN   rÆ   rÇ   ©r   r   r9   r   ©r;   s    r   Útest_softmax_scalarzTestSoftmax.test_softmax_scalar‡  s+   € Ý� ™œ¥r¤z°"¡~¤~¸EÐBÑBÔBÐBÐBÐBr!   c                 óp   — t          t          g d¢¦  «        t          j        g d¢¦  «        d¬¦  «         d S rÙ   rÝ   rÞ   s    r   Útest_softmax_array_likez#TestSoftmax.test_softmax_array_likeŠ  sM   € Ý�   Ñ0Ô0Ýœ
Ð#3Ð#3Ð#3Ñ4Ô4¸5ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br!   N)r·   r¸   r¹   rÍ   rÓ   rº   r»   Úxfail_xp_backendsrÛ   rß   rá   rÁ   r!   r   rÃ   rÃ   J  s•   € € € € € ðBð Bð Bð8Eð Eð Eð4 „[×"Ò"Ð#5Ð>TÐ"ÑUÔUðBð Bñ VÔUðBðCð Cð CðBð Bð Bð Bð Br!   rÃ   c                   ó˜  — e Zd Zd„ Zej                             dd¬¦  «        d„ ¦   «         Zd„ Zd„ Z	e
d„ ¦   «         Ze
d	„ ¦   «         Zej                             d
ddg¦  «        d„ ¦   «         Zd„ Zej                             dd ej        d¦  «         ej        d¦  «        z  fdddgddggfg¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestLogSoftmaxc                 ó˜   — t          t          |                     ddg¦  «        ¦  «        |                     ddg¦  «        d¬¦  «         d S )Nr(   rN   rE   ç     8�ÀrÆ   rÇ   ©r   r
   r   rÚ   s     r   Útest_log_softmax_basicz%TestLogSoftmax.test_log_softmax_basic‘  sR   € Ý� B§J¢J°°r¨{Ñ$;Ô$;Ñ<Ô<ØŸ
š
 B¨ ;Ñ/Ô/°eð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r!   rÔ   rÕ   rÖ   c                 ó˜   — t          t          |                     ddg¦  «        ¦  «        |                     ddg¦  «        d¬¦  «         d S ©Nr*   r   rE   ræ   rÆ   rÇ   rç   rÚ   s     r   Útest_log_softmax_int_arrayz)TestLogSoftmax.test_log_softmax_int_array•  sR   € å� B§J¢J°°a¨yÑ$9Ô$9Ñ:Ô:ØŸ
š
 B¨ ;Ñ/Ô/°eð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r!   c                 óD   — t          t          d¦  «        dd¬¦  «         d S )NrN   rE   rÆ   rÇ   )r   r
   rÞ   s    r   Útest_log_softmax_scalarz&TestLogSoftmax.test_log_softmax_scalarš  s%   € Ý� CÑ(Ô(¨#°EÐ:Ñ:Ô:Ð:Ð:Ð:r!   c                 óp   — t          t          ddg¦  «        t          j        ddg¦  «        d¬¦  «         d S rê   )r   r
   r9   r   rÞ   s    r   Útest_log_softmax_array_likez*TestLogSoftmax.test_log_softmax_array_like�  sD   € Ý� T¨1 IÑ.Ô.Ýœ
 B¨ ;Ñ/Ô/°eð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r!   c                 ó~   — |                       d| j        ¬¦  «        }g d¢}||                      || j        ¬¦  «        fS )Nr[   r&   ©gùÙ:-‚…ÀgùÙ:-‚…Àgò³uZ÷¿gÉÏÖi,Ü¿)r2   r   r   ©r   r   Úexpects      r   Údata_1dzTestLogSoftmax.data_1d¡  sI   € à�IŠI�a˜rœzˆIÑ*Ô*ˆð(ð (ð (ˆð �"—*’*˜V¨2¬:�*Ñ6Ô6Ð6Ð6r!   c                 ó®   — |                       |                      d| j        ¬¦  «        d¦  «        }g d¢g d¢g}||                      || j        ¬¦  «        fS )Né   r&   )rY   r[   rñ   )rË   r2   r   r   rò   s      r   Údata_2dzTestLogSoftmax.data_2d«  sk   € à�JŠJ�r—y’y ¨"¬*�yÑ5Ô5°vÑ>Ô>ˆð)ð )ð )ð)ð )ð )ð	*ˆð �"—*’*˜V¨2¬:�*Ñ6Ô6Ð6Ð6r!   Úoffsetr   r�   c                 ó~   — |                       |¦  «        \  }}||z  }t          t          |¦  «        |d¬¦  «         d S )NrÆ   rÇ   )rô   r   r
   )r;   rø   r   r   ró   s        r   Útest_log_softmax_translationz+TestLogSoftmax.test_log_softmax_translationº  sC   € ð —L’L Ñ$Ô$‰	ˆˆ6Ø	ˆV‰ˆÝ� A™œ¨°UÐ;Ñ;Ô;Ð;Ð;Ð;r!   c                 óÌ   — |                       |¦  «        \  }}|                     |d¦  «        }|                     |d¦  «        }t          t          |¦  «        |d¬¦  «         d S )NrÉ   rÆ   rÇ   )rô   rË   r   r
   ©r;   r   r   ró   s       r   Útest_log_softmax_noneaxisz(TestLogSoftmax.test_log_softmax_noneaxisÂ  s`   € ð —L’L Ñ$Ô$‰	ˆˆ6Ø�JŠJ�q˜&Ñ!Ô!ˆØ—’˜F FÑ+Ô+ˆÝ� A™œ¨°UÐ;Ñ;Ô;Ð;Ð;Ð;r!   zaxis_2d, expected_2drÈ   rÉ   r   rE   ræ   c                 ó²   — |                      ddgddgg¦  «        }t          t          ||¬¦  «        |                      ||j        ¬¦  «        d¬¦  «         d S )Nr(   rN   r-   r&   rÆ   rÇ   )r   r   r
   r'   )r;   Úaxis_2dÚexpected_2dr   r   s        r   Ú	test_axeszTestLogSoftmax.test_axesÊ  so   € ð
 �JŠJ˜ ˜ e¨R [Ð1Ñ2Ô2ˆÝ� A¨GÐ4Ñ4Ô4ØŸ
š
 ;°a´g˜
Ñ>Ô>ÀUð	Lñ 	Lô 	Lð 	Lð 	Lð 	Lr!   c                 óx   — |                       |¦  «        \  }}t          t          |d¬¦  «        |d¬¦  «         d S )Nr   r-   rÆ   rÇ   )r÷   r   r
   rü   s       r   Útest_log_softmax_2d_axis1z(TestLogSoftmax.test_log_softmax_2d_axis1Ó  s?   € Ø—L’L Ñ$Ô$‰	ˆˆ6Ý� A¨AÐ.Ñ.Ô.°¸UÐCÑCÔCÐCÐCÐCr!   c                 óŒ   — |                       |¦  «        \  }}t          t          |j        d¬¦  «        |j        d¬¦  «         d S )Nr   r-   rÆ   rÇ   )r÷   r   r
   rÑ   rü   s       r   Útest_log_softmax_2d_axis0z(TestLogSoftmax.test_log_softmax_2d_axis0×  sC   € Ø—L’L Ñ$Ô$‰	ˆˆ6Ý� A¤C¨aÐ0Ñ0Ô0°&´(ÀÐGÑGÔGÐGÐGÐGr!   c                 óÐ   — |                       |¦  «        \  }}|                     |d¦  «        }|                     |d¦  «        }t          t          |d¬¦  «        |d¬¦  «         d S )NrÏ   rÐ   r-   rÆ   rÇ   )r÷   rË   r   r
   rü   s       r   Útest_log_softmax_3dz"TestLogSoftmax.test_log_softmax_3dÛ  se   € à—L’L Ñ$Ô$‰	ˆˆ6Ø�JŠJ�q˜)Ñ$Ô$ˆØ—’˜F IÑ.Ô.ˆÝ� A¨FÐ3Ñ3Ô3°VÀ%ÐHÑHÔHÐHÐHÐHr!   N)r·   r¸   r¹   rè   rº   r»   râ   rë   rí   rï   Ústaticmethodrô   r÷   r¼   rú   rý   r9   r3   r_   r  r  r  r  rÁ   r!   r   rä   rä   �  s•  € € € € € ð=ð =ð =ð „[×"Ò"Ð#5Ð>TÐ"ÑUÔUð=ð =ñ VÔUð=ð;ð ;ð ;ð=ð =ð =ð ð7ð 7ñ „\ð7ð ð7ð 7ñ „\ð7ð „[×Ò˜X¨¨3 xÑ0Ô0ð<ð <ñ 1Ô0ð<ð<ð <ð <ð „[×ÒÐ3Ø	
ˆFˆBŒF�3‰KŒK˜'˜"œ' &™/œ/Ñ)Ð*Ø	
ˆb�%ˆ[˜2˜u˜+Ð&Ð'ð6ñ ô ðLð Lñ	ô ðLð
Dð Dð DðHð Hð HðIð Ið Ið Ið Ir!   rä   )Ú	itertoolsr¾   r   rº   Únumpyr9   Úscipy._lib._array_apir   r   r   r   Úscipy._lib._array_api_no_0dr   r   r	   Úscipy.specialr
   r   r   Úscipy.special._logsumexpr   r½   Úintegral_dtypesr    r»   Úfilterwarningsr#   rÃ   rä   rÁ   r!   r   ú<module>r     sQ  ðØ Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð ð@ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð 
MÐ	LÐ	L€Ø˜GÐ$€ð&ð &ð &ð „×ÒÐMÑNÔNØ„×ÒÐNÑOÔOØ„×ÒÐHÑIÔIØÐ�9ÑÔðc4ð c4ð c4ð c4ð c4ñ c4ô c4ñ Ôñ JÔIñ PÔOñ OÔNðc4ðL	 Ð�7ÑÔðABð ABð ABð ABð ABñ ABô ABñ ÔðABðH Ð�;ÑÔðPIð PIð PIð PIð PIñ PIô PIñ  ÔðPIð PIð PIr!   