§
    µ³Ùg³0  ã                   óè  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZmZ d dlmZmZ d dlmZ g d¢Zd	d
gZeej                             d¦  «        ej                             dd¬¦  «        d„ ¦   «         ¦   «         ¦   «         Zeej                             d¦  «        ej                             dd¬¦  «         G d„ d¦  «        ¦   «         ¦   «         ¦   «         Z G d„ d¦  «        ZdS )é    N)Úassert_allclose)Úarray_api_compatible)Úarray_namespaceÚis_array_api_strict)Úxp_assert_equalÚxp_assert_closeÚxp_assert_less)Ú	logsumexpÚsoftmax)Ú_wrap_radians)Úfloat32Úfloat64Úint32Úint64Ú	complex64Ú
complex128r   r   Úskip_xp_backendsz	jax.numpyz)JAX arrays do not support item assignment)Úreasonc                 ó€  — |                       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¥)Úatol)ÚasarrayÚmathÚpir   r   )ÚxpÚxÚrefÚress       úX/granary/edev/quantum/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å
˜˜2Ñ
Ô
€CÝ�C˜ 1Ð%Ñ%Ô%Ð%Ð%Ð%ó    c                   óJ  — 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¦  «        ej                             d¬¦  «        d„ ¦   «         ¦   «         Zej                             dd¬¦  «        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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¬¦  «        |¦  «         t          |¦  «        }|                     |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Únpr   Úexpand_dims)Úselfr   ÚaÚdesiredÚbÚnr   ÚlogxÚXÚlogXr2   r9   r   Úxp_tests                 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õ " !Ñ$Ô$ˆØ×!Ò! #¨BÐ!Ñ/Ô/ˆÝ�	 !¨"°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.   )r3   r   r4   r5   r6   r   r
   r   r   Úlinspacer8   )
r<   r   r=   r?   r>   r   rA   rB   rC   ÚBs
             r    Útest_logsumexp_bzTestLogSumExp.test_logsumexp_bY   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ç      ð?rH   )r   r
   r   r   ©r<   r   r=   r?   ÚrÚss         r    Útest_logsumexp_signz!TestLogSumExp.test_logsumexp_signn   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   TrN   r   )r   r
   ÚisfiniteÚisnanrQ   s         r    Útest_logsumexp_sign_zeroz&TestLogSumExp.test_logsumexp_sign_zerov   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   é   é   é   r[   T)r/   r?   rO   ©r   r[   r]   ©r   r\   ©ÚonesÚ	ones_liker
   ÚshaperQ   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)rO   )r   r
   r5   r6   Úabsr   )r<   r   r=   rR   rS   Ú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 )NrZ   r[   )r/   r?   r^   r_   r`   )r<   r   r=   r?   rR   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   rI   rP   )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   r[   r   )r\   r   é   rI   )Úzerosra   r
   rm   s       r    Útest_logsumexp_b_shapez$TestLogSumExp.test_logsumexp_b_shape¦   s=   € Ø�HŠH�\Ñ"Ô"ˆØ�GŠG�IÑÔˆå�!�qÐÑÔÐÐÐr"   Úargr   )r   r[   r\   T)Únp_onlyc                 ó’   — t          |¦  «        t          t          j        t          j        |¦  «        ¦  «        ¦  «        k    sJ ‚d S )N)r
   r:   r   Ú
atleast_1d)r<   rs   r   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"   z#Lists correspond with NumPy backend)rt   r   c                 ó´   — ddg}|                      dt          j        d¦  «        z   t          j        ¬¦  «        }t          t          |¦  «        |¦  «         d S )Nr+   r)   r*   r'   )r   r   r4   r:   r   r   r
   )r<   r   r=   r>   s       r    Ú	test_listzTestLogSumExp.test_list±   sM   € ð �4ˆLˆØ—*’*˜V¥d¤h¨s¡m¤mÑ3½2¼:�*ÑFÔFˆÝ�	 !™œ gÑ.Ô.Ð.Ð.Ð.r"   r(   c                 ól  — t          ||¦  «        }|                     ddg|¬¦  «        }t          |¦  «        }|                     |d¦  «        r|                     d¦  «        j        n|}|                     dt          j        d¦  «        z   |¬¦  «        }t          t          |¦  «        |¦  «         d S )Nr)   r'   ÚintegralrP   r*   )	Úgetattrr   r   Úisdtyper(   r   r4   r   r
   )r<   r(   r   r=   rD   Údesired_dtyper>   s          r    Útest_dtypes_azTestLogSumExp.test_dtypes_a¸   s¥   € å˜˜EÑ"Ô"ˆØ�JŠJ˜˜u�~¨UˆJÑ3Ô3ˆÝ! !Ñ$Ô$ˆØ18·²ÀÈ
Ñ1SÔ1Sð $˜Ÿš 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          ||¦  «        Št          |¦  «        r[ˆfd„||fD ¦   «         }t	          |¦  «        dk     r-|                     |                     d¦  «        j        ¦  «          ‰j        |Ž }	n‰                     |||j        ¦  «        }	|                     t          j
        t          j        d¦  «        t          j        d¦  «        z
  ¦  «        |	¬¦  «        }
t          t          ||¬¦  «        |
¦  «         d S )Nr[   r   r'   r   c                 ó@   •— g | ]}‰                      |d ¦  «        °|‘ŒS )r{   )r}   )Ú.0r(   rD   s     €r    ú
<listcomp>z0TestLogSumExp.test_dtypes_ab.<locals>.<listcomp>Ë   sB   ø€ ð Jð Jð J¨Ø&-§o¢o°e¸ZÑ&HÔ&HðJ˜uð Jð Jð Jr"   rP   rI   )r|   r   r   r   ÚlenÚappendr(   Úresult_typer   r   r4   r6   r   r
   )r<   r€   r�   r   Ú
xp_dtype_aÚ
xp_dtype_br=   r?   Úxp_float_dtypesr~   r>   rD   s              @r    Útest_dtypes_abzTestLogSumExp.test_dtypes_abÂ   s_  ø€ õ ˜R Ñ)Ô)ˆ
Ý˜R Ñ)Ô)ˆ
Ø�JŠJ˜˜1�v ZˆJÑ0Ô0ˆØ�JŠJ˜˜2�w jˆJÑ1Ô1ˆÝ! ! QÑ'Ô'ˆÝ˜rÑ"Ô"ð 	TðJð Jð Jð J°:¸zÐ2Jð Jñ Jô JˆOå�?Ñ#Ô# aÒ'Ð'Ø×&Ò& r§z¢z°"¡~¤~Ô';Ñ<Ô<Ð<Ø/˜GÔ/°ÐAˆMˆMð $×/Ò/°
¸JÈÌ
ÑSÔSˆMØ—*’*�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 )NrG   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                 óF  — 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   é(   y              ð?r'   r.   T)rO   r/   )r:   ÚrandomÚdefault_rngr|   Úuniformr   r
   r4   r5   r6   Ú	full_likeÚimagr   r	   rf   r   Úreal)r<   r   r(   Úrngrc   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™<œ<¨¯ª°B´EÑ):Ô):Ñ;Ô;ˆÝ�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"   N)Ú__name__Ú
__module__Ú__qualname__rE   rL   rT   rX   rd   ri   rk   rn   rr   ÚpytestÚmarkÚparametrizer   rw   ry   Údtypesr   rŒ   r�   rž   r¡   © r"   r    r$   r$   !   s  € € € € € ð
1Gð 1Gð 1GðfUð Uð Uð*,ð ,ð ,ðð ð ð+ð +ð +ð
8ð 
8ð 
8ð!ð !ð !ð;ð ;ð ;ðð ð ð „[×Ò˜U Q¨	¨	¨	 NÑ3Ô3Ø„[×!Ò!¨$Ð!Ñ/Ô/ðKð Kñ 0Ô/ñ 4Ô3ðKð „[×!Ò!¨$Ø)Nð "ñ Pô Pð/ð /ñPô Pð/ð
 „[×Ò˜W fÑ-Ô-ð/ð /ñ .Ô-ð/ð „[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜Y¨Ñ/Ô/ð4ð 4ñ 0Ô/ñ 0Ô/ð4ð$"ð "ð "ð „[×Ò˜W {°LÐ&AÑBÔBð.ð .ñ CÔBð.ð0Hð Hð Hð Hð Hr"   r$   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestSoftmaxc                 óÜ  — t          t          g d¢¦  «        t          j        g d¢¦  «        d¬¦  «         t          t          ddg¦  «        t          j        ddg¦  «        d¬¦  «         t          t          ddg¦  «        t          j        dt          j        g¦  «        dt          j        z   z  d¬¦  «         t          j        d¦  «        }t          j        g d	¢¦  «        }t          t          |¦  «        |d¬¦  «         t          t          |d
z   ¦  «        |d¬¦  «         t          t          |                     dd¦  «        ¦  «        |                     dd¦  «        d¬¦  «         d S )N)r+   r   r   r   )r   r   r   r   ç‚vIhÂ%<=©r    r   ç      à?r   r]   )g*lI9üi ?g™{O¶?gW-RÎ?gI³ôòšä?r’   r[   )r   r   r:   ÚarrayÚer3   Úreshape)r<   r   Úexpecteds      r    Útest_softmax_fixturesz!TestSoftmax.test_softmax_fixtures  sg  € Ý�   Ñ0Ô0µ"´(¸<¸<¸<Ñ2HÔ2HØ"ð	$ñ 	$ô 	$ð 	$å�  A ™œ­¬°2°r°(Ñ);Ô);À%ÐHÑHÔHÐHÝ�  A ™œ­¬°1µb´d°)Ñ)<Ô)<¸aÅ"Ä$¹hÑ)GØ"ð	$ñ 	$ô 	$ð 	$õ
 ŒI�a‰LŒLˆÝ”8ð 0ð 0ð 0ñ 1ô 1ˆõ
 	� ™
œ
 H°5Ð9Ñ9Ô9Ð9õ 	�  C¡Ñ(Ô(¨(¸Ð?Ñ?Ô?Ð?õ 	� §	¢	¨!¨Q¡¤Ñ0Ô0°(×2BÒ2BÀ1ÀaÑ2HÔ2HØ"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r"   c                 óœ  — t          t          ddgddggd¬¦  «        t          j        ddgddgg¦  «        d¬¦  «         t          t          ddgddggd¬¦  «        t          j        ddgddgg¦  «        d¬¦  «         t          j        g d¢g d	¢g¦  «        }t          j        g d
¢g d¢g¦  «        }t          t          |d¬¦  «        |d¬¦  «         t          t          |j        d¬¦  «        |j        d¬¦  «         |                     ddd¦  «        }t          t          |d¬¦  «        |                     ddd¦  «        d¬¦  «         d S )Nr+   r   r.   r¯   r­   r®   r   )içÿÿÿr   é   é2   )r   iE  ií  iî  )g£×Ù	Ñ+9g.K|T}%m;gÕð]¤7Š®=g\þÿÿÿï?)rG   g‘pk´&•g†ºTV6Ñ?g¼¢ÕõÔdç?r[   )r   r[   )r   r   r:   r°   ÚTr²   )r<   r   r³   Úx3ds       r    Útest_softmax_multi_axesz#TestSoftmax.test_softmax_multi_axes!  s®  € Ý� $¨ ¨T°1¨IÐ 6¸QÐ?Ñ?Ô?Ýœ 2 r (¨R°¨HÐ!5Ñ6Ô6¸Uð	Dñ 	Dô 	Dð 	Då� $¨ ¨T°1¨IÐ 6¸QÐ?Ñ?Ô?Ýœ 1 a &¨1¨a¨&Ð!1Ñ2Ô2¸ð	@ñ 	@ô 	@ð 	@õ
 ŒHÐ&Ð&Ð&Ø&Ð&Ð&ð(ñ )ô )ˆå”8ð /ð /ð /ð0ð 0ð 0ð	1ñ 2ô 2ˆõ 	� ¨Ð*Ñ*Ô*¨H¸5ÐAÑAÔAÐAÝ� ¤¨!Ð,Ñ,Ô,¨h¬j¸uÐEÑEÔEÐEð �iŠi˜˜1˜aÑ Ô ˆÝ� ¨&Ð1Ñ1Ô1°8×3CÒ3CÀAÀqÈ!Ñ3LÔ3LØ"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r"   N)r¢   r£   r¤   r´   rº   r©   r"   r    r«   r«     s2   € € € € € ð$ð $ð $ð6$ð $ð $ð $ð $r"   r«   )r   r¥   Únumpyr:   Únumpy.testingr   Úscipy.conftestr   Úscipy._lib._array_apir   r   Úscipy._lib._array_api_no_0dr   r   r	   Úscipy.specialr
   r   Úscipy.special._logsumexpr   r¨   Úintegral_dtypesr¦   Úusefixturesr   r!   r$   r«   r©   r"   r    ú<module>rÄ      sû  ðØ €€€Ø €€€à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à /Ð /Ð /Ð /Ð /Ð /Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð 
MÐ	LÐ	L€Ø˜GÐ$€ð Ø„×ÒÐ+Ñ,Ô,Ø„×Ò˜kØ%Pð ñ Rô Rð&ð &ñRô Rñ -Ô,ñ Ôð&ð Ø„×ÒÐ+Ñ,Ô,Ø„×Ò˜kØ%Pð ñ Rô Rð]Hð ]Hð ]Hð ]Hð ]Hñ ]Hô ]HñRô Rñ -Ô,ñ Ôð]Hð@4$ð 4$ð 4$ð 4$ð 4$ñ 4$ô 4$ð 4$ð 4$ð 4$r"   