Ë
    ÏÍ:jÆ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ej.                  j1                  d	d
¬«      d„ «       Zej.                  j5                  d«      ej.                  j5                  d«      ej.                  j5                  d«       ee«       G d„ d«      «       «       «       «       Z ee«       G d„ d«      «       Z ee«       G d„ d«      «       Zy)é    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   FÚprivate©Úreasonc                 ó   — | j                  t        j                   dz
  t        j                   dddddt        j                  t        j                  dz   g	«      }| j                  t        j                  dz
  t        j                  dddddt        j                  t        j                   dz   g	«      }t        || ¬«      }t	        ||d¬«       y )Né   éÿÿÿÿgYóøÂn¥�r   gYóøÂn¥)Úxp)Úatol)ÚasarrayÚmathÚpir   r   )r   ÚxÚrefÚress       úw/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/special/tests/test_logsumexp.pyÚtest_wrap_radiansr#      sœ   € à
�
‰
”T—W‘W�H˜Q‘J¤§¡ ¨"¨gØ�v˜q¤$§'¡'¬4¯7©7°1©9ð6ó 	7€Aà
�*‰*”d—g‘g˜a‘i¤§¡¨"¨gØ�v˜q¤$§'¡'¬D¯G©G¨8°A©:ð7ó 8€Cä
˜˜bÔ
!€CÜ�C˜ 1Ö%ó    z/ignore:invalid value encountered:RuntimeWarningz0ignore:divide by zero encountered:RuntimeWarningz*ignore:overflow encountered:RuntimeWarningc                   óÌ  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                  j                  d
dg d¢f«      d„ «       Zd„ Zej                  j                  de«      d„ «       Zej                  j                  de«      ej                  j                  de«      d„ «       «       Zd„ Zej                  j                  dddg«      d„ «       Zd„ Zej                  j                  d e ej2                  ej6                   ej6                   eej6                   d«       eej6                   d«       eej6                   ej6                  «       eej6                   ej6                   «       eej6                  d«       eej6                  d«       eej6                  ej6                  «       eej6                  ej6                   «       eej6                   d«       eej6                   d«       eej6                   d«       eej6                   d«       eej6                  d«       eej6                  d«       eej6                  d«       eej6                  d«      gd ¬!«      «      «      d"„ «       Zd#„ Zej                  j                  d$d%d&g g«      d'„ «       Zd(„ Z ej                  j                  d)ej6                  gd*d%fej6                  gd+gd+fg«      d,„ «       Z!y*)-ÚTestLogSumExpc                 ó*  — |j                  g «      }|j                  |j                   «      }t        t        |«      |«       |j	                  d|j
                  ¬«      }|j                  |j                  |j                  |«      «      «      }t        t        |«      |«       |j                  ddg«      }|j                  dt        j                  d«      z   «      }t        t        |«      |«       d}|j                  |fd«      }|j                  dt        j                  |«      z   «      }t        t        |«      |«       |j                  dgd	z  «      }|j                  |«      }|j                  ||g«      }|j                  ||g«      }	t        |j                  t        |	«      «      |j                  |«      «       t        |j                  t        |	d
¬«      «      |j                  |d
¬«      «       t        |j                  t        |	d¬«      «      |j                  |d¬«      «       |j                  |j                  g«      }
|j                  |j                  g«      }t        t        |
«      |
d
   «       t        t        |
 «      |
d
    «       t        t        |«      |d
   «       t        t        |j                  |j                   |j                   g«      «      |
d
    «       |j                  ddgdt        j                   gg«      }|j                  ddg«      }t        t        |d¬«      |«       |j                  |d¬«      }t        t        |dd¬«      |«       t        t        |d¬«      |j                  d«      «       y )Nç      i@©Údtypeç     @�@ç       @éè  é'  g     ˆÃ@çœWw'&l¡7i@B r   ©Úaxisr   g    _ Bg»½×Ùß|Û=g    _ Âr   T)r1   Úkeepdims)r   éþÿÿÿ)r   Úinfr   r   Úaranger   ÚlogÚsumÚexpr   r   ÚfullÚstackÚnanÚnpÚexpand_dims)Úselfr   ÚaÚdesiredÚbÚnr   ÚlogxÚXÚlogXr4   r;   r    s                r"   Útest_logsumexpzTestLogSumExp.test_logsumexp&   sÈ  € à�J‰J�r‹NˆØ—*‘*˜bŸf™f˜WÓ%ˆÜœ	 !› gÔ.ð �I‰I�d "§*¡*ˆIÓ-ˆØ—&‘&˜Ÿ™ §¡ q£	Ó*Ó+ˆÜœ	 !› gÔ.ð �J‰J˜˜u�~Ó&ˆØ—*‘*˜V¤d§h¡h¨s£mÑ3Ó4ˆÜœ	 !› gÔ.àˆØ�G‰G�Q�D˜%Ó ˆØ—*‘*˜W¤t§x¡x°£{Ñ2Ó3ˆÜœ	 !› gÔ.à�J‰J˜�w Ñ(Ó)ˆØ�v‰v�a‹yˆØ�H‰H�a˜�VÓˆØ�x‰x˜˜t˜Ó%ˆÜ˜Ÿ™œy¨›Ó/°·±¸³Ô;Ü˜Ÿ™œy¨°AÔ6Ó7¸¿¹ÀÈ¸Ó9JÔKÜ˜Ÿ™œy¨°AÔ6Ó7¸¿¹ÀÈ¸Ó9JÔKð �j‰j˜"Ÿ&™&˜Ó"ˆØ�j‰j˜"Ÿ&™&˜Ó"ˆÜœ	 #›¨¨A©Ô/Üœ	 3 $›¨#¨a©&¨Ô1Üœ	 #›¨¨A©Ô/Üœ	 "§*¡*¨r¯v©v¨g¸¿¹°wÐ-?Ó"@ÓAÀCÈÁFÀ7ÔKð �J‰J˜˜u˜Ø¤§¡ Ð(ð*ó +ˆà�j‰j˜$ ˜Ó'ˆÜœ	 !¨"Ô-¨sÔ3ð �n‰n˜S rˆnÓ*ˆÜœ	 !¨"°tÔ<¸cÔBô 	œ	 !¨(Ô3°R·Z±ZÀÓ5EÕFr$   c           	      óþ  — |j                  d|j                  ¬«      }|j                  ddd«      }|j                  |j                  ||j	                  |«      z  «      «      }t        t        ||¬«      |«       |j                  ddg«      }|j                  ddg«      }|j                  dt        j                  d«      z   «      }t        t        ||¬«      |«       |j                  d	gd
z  «      }|j                  ddd
«      }|j                  |«      }|j                  ||f«      }|j                  ||f«      }|j                  ||f«      }	t        |j	                  t        ||	¬«      «      |j                  |	|z  «      «       t        |j	                  t        ||	d¬«      «      |j                  |	|z  d¬«      «       t        |j	                  t        ||	d¬«      «      |j                  |	|z  d¬«      «       y )Nr(   r)   ç        ç      ð¿©rA   r-   g333333ó?g333333@r/   i † r   r   )rA   r1   r0   )r5   r   r6   r7   r8   r   r   r   r   Úlinspacer:   )
r>   r   r?   rA   r@   r   rC   rD   rE   ÚBs
             r"   Útest_logsumexp_bzTestLogSumExp.test_logsumexp_bX   s›  € Ø�I‰I�d "§*¡*ˆIÓ-ˆØ�I‰I�d˜B Ó$ˆØ—&‘&˜Ÿ™  "§&¡&¨£)¡Ó,Ó-ˆÜœ	 ! qÔ)¨7Ô3à�J‰J˜˜d�|Ó$ˆØ�J‰J˜˜S�zÓ"ˆØ—*‘*˜T¤D§H¡H¨WÓ$5Ñ5Ó6ˆÜœ	 ! qÔ)¨7Ô3à�J‰J˜�w Ñ'Ó(ˆØ�K‰K˜˜4 Ó(ˆØ�v‰v�a‹yˆØ�H‰H�a˜�VÓˆØ�x‰x˜˜t˜Ó%ˆØ�H‰H�a˜�VÓˆÜ˜Ÿ™œy¨°Ô3Ó4°b·f±f¸QÀ¹U³mÔDÜ˜Ÿ™œy¨°¸Ô;Ó<¸b¿f¹fÀQÈÁUÐQR¸fÓ>SÔTÜ˜Ÿ™œy¨°¸Ô;Ó<¸b¿f¹fÀQÈÁUÐQR¸fÓ>SÕTr$   c                 óÞ   — |j                  g d¢«      }|j                  g d¢«      }t        ||d¬«      \  }}t        ||j                  d«      «       t        ||j                  d«      «       y )N)r   r   r   )r   r   r   T©rA   Úreturn_signç      ð?rI   )r   r   r   r   ©r>   r   r?   rA   ÚrÚss         r"   Útest_logsumexp_signz!TestLogSumExp.test_logsumexp_signm   sT   € Ø�J‰J’yÓ!ˆØ�J‰J’{Ó#ˆä˜˜a¨TÔ2‰ˆˆ1Ü˜˜2Ÿ:™: b›>Ô*Ü˜˜2Ÿ:™: c›?Õ+r$   c                 óÚ   — |j                  ddg«      }|j                  ddg«      }t        ||d¬«      \  }}|j                  |«      rJ ‚|j                  |«      rJ ‚|dk  sJ ‚|dk(  sJ ‚y )Nr   r   TrO   r   )r   r   ÚisfiniteÚisnanrR   s         r"   Útest_logsumexp_sign_zeroz&TestLogSumExp.test_logsumexp_sign_zerou   so   € Ø�J‰J˜˜1�vÓˆØ�J‰J˜˜2�wÓˆä˜˜a¨TÔ2‰ˆˆ1Ø—;‘;˜q”>Ð!Ð!Ø—8‘8˜A”;ÐˆØ�1ŠuˆˆuØ�AŠvˆ‰vr$   c                 ó   — |j                  d«      }|j                  |«      }t        |d|d¬«      \  }}|j                  |j                  cxk(  rdk(  sJ ‚ J ‚t        |d|d¬«      \  }}|j                  |j                  cxk(  rdk(  sJ ‚ J ‚y )N©r   é   é   é   r\   T)r1   rA   rP   ©r   r\   r^   ©r   r]   ©ÚonesÚ	ones_liker   ÚshaperR   s         r"   Útest_logsumexp_sign_shapez'TestLogSumExp.test_logsumexp_sign_shape   s‡   € Ø�G‰G�LÓ!ˆØ�L‰L˜‹Oˆä˜  a°TÔ:‰ˆˆ1Ø�w‰w˜!Ÿ'™'Ô. YÒ.Ð.Ñ.Ð.Ð.ä˜ ¨1¸$Ô?‰ˆˆ1Ø�w‰w˜!Ÿ'™'Ô* UÒ*Ð*Ñ*Ð*Ñ*r$   c                 ó  — |j                  g d¢«      }t        |d¬«      \  }}|j                  |j                  |«      «      }||j	                  |«      z  }t        ||«       t        ||j                  |«      z  |«       y )N)y      ð?      ð?y       @      ð¿y       À      @T)rP   )r   r   r7   r8   Úabsr   )r>   r   r?   rS   rT   Úexpected_sumexpÚexpected_signs          r"   Útest_logsumexp_complex_signz)TestLogSumExp.test_logsumexp_complex_sign‰   sj   € Ø�J‰JÒ0Ó1ˆä˜¨Ô-‰ˆˆ1àŸ&™& §¡¨£Ó+ˆà'¨"¯&©&°Ó*AÑAˆä˜˜=Ô)Ü˜˜BŸF™F 1›I™ Õ7r$   c                 óÄ   — |j                  d«      }|j                  |«      }t        |d|¬«      }|j                  dk(  sJ ‚t        |d|¬«      }|j                  dk(  sJ ‚y )Nr[   r\   )r1   rA   r_   r`   ra   )r>   r   r?   rA   rS   s        r"   Útest_logsumexp_shapez"TestLogSumExp.test_logsumexp_shape•   s]   € Ø�G‰G�LÓ!ˆØ�L‰L˜‹Oˆä�a˜a 1Ô%ˆØ�w‰w˜)Ò#Ð#Ð#ä�a˜f¨Ô*ˆØ�w‰w˜&Ò Ð Ñ r$   c                 óœ   — |j                  ddg«      }|j                  ddg«      }t        t        ||¬«      |j                  d«      «       y )Nr   r.   r   rJ   rQ   )r   r   r   ©r>   r   r?   rA   s       r"   Útest_logsumexp_b_zeroz#TestLogSumExp.test_logsumexp_b_zeroŸ   s?   € Ø�J‰J˜˜5�zÓ"ˆØ�J‰J˜˜1�vÓˆäœ	 ! qÔ)¨2¯:©:°b«>Õ:r$   c                 ób   — |j                  d«      }|j                  d«      }t        ||¬«       y )N)r^   r   r\   r   )r]   r   é   rJ   )Úzerosrb   r   rn   s       r"   Útest_logsumexp_b_shapez$TestLogSumExp.test_logsumexp_b_shape¥   s(   € Ø�H‰H�\Ó"ˆØ�G‰G�IÓˆä�!�qÖr$   Úargr   )r   r\   r]   c                 ó‚   — t        |«      t        t        j                  t        j                  |«      «      «      k(  sJ ‚y ©N)r   r<   r   Ú
atleast_1d)r>   rt   s     r"   Útest_xp_invalid_inputz#TestLogSumExp.test_xp_invalid_input«   s+   € ä˜‹~¤¬2¯:©:´b·m±mÀCÓ6HÓ+IÓ!JÒJÐJÑJr$   c                 óŒ   — ddg}t        j                  dt        j                  d«      z   «      }t	        t        |«      |«       y )Nr-   r+   r,   )r<   r   r   r6   r   r   )r>   r?   r@   s      r"   Útest_array_likezTestLogSumExp.test_array_like¯   s4   € Ø�4ˆLˆÜ—*‘*˜V¤d§h¡h¨s£mÑ3Ó4ˆÜœ	 !› gÕ.r$   r*   c                 ó   — t        ||«      }|j                  ddg|¬«      }|j                  |d«      r|j                  d«      j                  n|}|j                  dt	        j
                  d«      z   |¬«      }t        t        |«      |«       y )Nr+   r)   ÚintegralrQ   r,   )Úgetattrr   Úisdtyper*   r   r6   r   r   )r>   r*   r   r?   Údesired_dtyper@   s         r"   Útest_dtypes_azTestLogSumExp.test_dtypes_a´   sw   € ä˜˜EÓ"ˆØ�J‰J˜˜u�~¨UˆJÓ3ˆØ13·±¸EÀ:Ô1N˜Ÿ™ B›×-Ò-Ø#ð 	à—*‘*˜V¤d§h¡h¨s£mÑ3¸=�*ÓIˆÜœ	 !› gÕ.r$   Údtype_aÚdtype_bc                 ó¨  — t        ||«      }t        ||«      }|j                  ddg|¬«      }|j                  ddg|¬«      }t        |«      rk||fD �cg c]  }|j                  |d«      s|‘Œ }	}t	        |	«      dk  r*|	j                  |j                  d«      j                  «        |j                  |	Ž }
n/|j                  ||«      }
|j                  |
d«      rt        |«      }
|j                  t        j                  t        j                  d«      t        j                  d«      z
  «      |
¬«      }t        t        ||¬«      |«       y c c}w )Nr\   r   r)   r   r|   rQ   rJ   )r}   r   r   r~   ÚlenÚappendr*   Úresult_typer   r   r6   r8   r   r   )r>   r�   r‚   r   Ú
xp_dtype_aÚ
xp_dtype_br?   rA   r*   Úxp_float_dtypesr   r@   s               r"   Útest_dtypes_abzTestLogSumExp.test_dtypes_ab½   s,  € ô ˜R Ó)ˆ
Ü˜R Ó)ˆ
Ø�J‰J˜˜1�v ZˆJÓ0ˆØ�J‰J˜˜2�w jˆJÓ1ˆÜ˜rÔ"ð 4>¸zÐ2Jö E¨Ø&(§j¡j°¸
Ô&Cò  %ð EˆOð Eä�?Ó# aÒ'Ø×&Ñ& r§z¡z°"£~×';Ñ';Ô<Ø*˜BŸN™N¨OÐ<‰MàŸN™N¨:°zÓBˆMØ�z‰z˜-¨Ô4Ü/°Ó3ˆ}Ø—*‘*œTŸX™X¤d§h¡h¨q£k´D·H±H¸Q³KÑ&?Ó@È�*ÓVˆÜœ	 ! qÔ)¨7Õ3ùòEs   ÁEc                 óˆ   — |j                  ddg«      }t        |«      }|j                  |d   |d   «      }t        ||«       y )NrH   g      DÀr   r   )r   r   Ú	logaddexpr   )r>   r   r?   r!   r    s        r"   Útest_gh18295zTestLogSumExp.test_gh18295Ó   sA   € ð �J‰J˜˜U�|Ó$ˆÜ˜‹lˆØ�l‰l˜1˜Q™4  1¡Ó&ˆÜ˜˜SÕ!r$   r   r   c                 ó`  — t         j                  j                  d«      }t        ||«      }d}|j	                  dd|«      d|j	                  dd|«      z  z   }|j                  ||¬«      }t        |d¬«      }|j                  |j                  |j                  |«      d¬«      «      }|j                  |j                  |«      |j                  «      }t        |j                  |j                  |«      «      |«       t        ||«       t        |dd¬	«      \  }	}
|j                  |j                  |«      d¬«      }t        |j                  |j                  |
«      «      |«       t        |	|j!                  |j                  |«      «      «       t        |
||j                  |«      z  «       y )
Nl   &¦DN$)é
   éd   r   é(   ù              ð?r)   r0   T)rP   r1   )r<   ÚrandomÚdefault_rngr}   Úuniformr   r   r6   r7   r8   Ú	full_likeÚimagr   r	   rg   r   Úreal)r>   r   r*   Úrngrd   r   r!   r    ÚmaxÚoutÚsgns              r"   Útest_gh21610zTestLogSumExp.test_gh21610Û   sM  € ô �i‰i×#Ñ#Ð$6Ó7ˆÜ˜˜EÓ"ˆØˆØ�K‰K˜˜2˜uÓ%¨¨c¯k©k¸!¸RÀÓ.GÑ(GÑGˆØ�J‰J�q ˆJÓ&ˆä˜ Ô"ˆØ�f‰f�R—V‘V˜BŸF™F 1›I¨A�VÓ.Ó/ˆØ�l‰l˜2Ÿ7™7 3›<¨¯©Ó/ˆÜ�r—v‘v˜bŸg™g c›lÓ+¨SÔ1Ü˜˜SÔ!ä˜Q¨D°qÔ9‰ˆˆSØ�f‰f�R—V‘V˜A“Y QˆfÓ'ˆÜ�r—v‘v˜bŸg™g c›lÓ+¨SÔ1Ü˜˜RŸW™W R§V¡V¨C£[Ó1Ô2Ü˜˜S §¡¨£™_Õ-r$   c                 ó  — |j                  ddg«      }t        |«      }|j                  d«      }t        |j                  |«      |j                  |«      «       t        |j	                  |«      |j	                  |«      dd¬«       y )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ô   sj   € ð �J‰J˜Ð5Ð6Ó7ˆÜ˜‹lˆð
 �j‰jÐCÓDˆÜ˜Ÿ™ › b§g¡g¨c£lÔ3Ü˜Ÿ™ › b§g¡g¨c£l¸ÀÖGr$   zx,yrH   g       €g%ušè?g}®¶bÙ@gÑ"Ûù~j@g’ËH¿ý@r\   )Úrepeatc           
      óÔ   — t        |j                  ||g«      «      }|j                  |j                  |j	                  |j                  ||g«      «      «      «      }t        ||«       y rv   )r   r   r6   r7   r8   r   )r>   r   Úyr   r!   r    s         r"   Útest_gh22601_infinite_elementsz,TestLogSumExp.test_gh22601_infinite_elements  sR   € ô4 ˜Ÿ
™
 A q 6Ó*Ó+ˆØ�f‰f�R—V‘V˜BŸF™F 2§:¡:¨q°!¨fÓ#5Ó6Ó7Ó8ˆÜ˜˜SÕ!r$   c                 óô   — |j                  ddg«      }|j                  ddg«      }t        |«       t        ||¬«       t        ||j                  ddg«      «       t        ||j                  ddg«      «       y)zFTest that logsumexp doesn't accidentally write back to its parameters.g      @g      @g      @r,   rJ   N)r   r   r   rn   s       r"   Útest_no_writebackzTestLogSumExp.test_no_writeback   se   € à�J‰J˜˜B�xÓ ˆØ�J‰J˜˜B�xÓ ˆÜ�!ŒÜ�!�qÕÜ˜˜2Ÿ:™: r¨2 hÓ/Ô0Ü˜˜2Ÿ:™: r¨2 hÓ/Õ0r$   Úx_rawrQ   r’   c                 óÄ   — |D ][  }|j                  ||¬«      }t        t        |«      «      t        |«      k(  sJ ‚t        t        ||¬«      «      t        |«      k(  rŒ[J ‚ y)z(Test input device propagation to output.)ÚdevicerJ   N)r   r   r   )r>   r§   r   ÚdevicesÚdr   s         r"   Útest_devicezTestLogSumExp.test_device)  s`   € ð ò 	@ˆAØ—
‘
˜5¨�
Ó+ˆAÜœY q›\Ó*¬i¸«lÒ:Ð:Ð:ÜœY q¨AÔ.Ó/´9¸Q³<Ó?Ð?Ð?ñ	@r$   c                 ó"  — |j                  g d¢«      }|j                  g d¢«      }t        t        ||¬«      t        ||d¬«      d   «       |j                  g d¢«      }t        t        ||¬«      |j                  |j                  «      «       y )N)gr¯£ÜCƒ@gå� X××?g™	mÖlÿ@)çª_+™Jþ?çãÌeYæ»@g®|H•4ë¿rJ   TrO   r   )r®   r¯   g«R%ÍÀ)r   r   r   r;   rn   s       r"   Útest_gh22903zTestLogSumExp.test_gh229031  sp   € ð �J‰JÒ;Ó<ˆØ�J‰JÒ<Ó=ˆÜœ	 ! qÔ)¬9°Q¸!ÈÔ+NÈqÑ+QÔRð �J‰JÒ<Ó=ˆÜœ	 ! qÔ)¨2¯:©:°b·f±fÓ+=Õ>r$   za, b, sign_refNrI   c                 óÎ   — |j                  |«      |�|j                  |«      nd }}t        ||d¬«      \  }}|j                  |«      sJ ‚t        ||j                  |«      «       y )NTrO   )r   r   Úisinfr   )r>   r   r?   rA   Úsign_refÚvalÚsigns          r"   Útest_gh23548zTestLogSumExp.test_gh23548?  sX   € ð �z‰z˜!‹}¨q¨}˜bŸj™j¨œmÀ$ˆ1ˆÜ˜a 1°$Ô7‰	ˆˆTØ�x‰x˜Œ}Ðˆ}Ü˜˜bŸj™j¨Ó2Õ3r$   )"Ú__name__Ú
__module__Ú__qualname__rF   rM   rU   rY   re   rj   rl   ro   rs   ÚpytestÚmarkÚparametrizerx   rz   Údtypesr€   rŠ   r�   r�   r    ÚlistÚitÚproductr<   r4   Úcomplexr¤   r¦   r¬   r°   r¶   © r$   r"   r&   r&   !   sÖ  „ ò
0GòdUò*,òò+ò
8ò!ò;òð ‡[�[×Ñ˜U Qª	 NÓ3ñKó 4ðKò/ð
 ‡[�[×Ñ˜W fÓ-ñ/ó .ð/ð ‡[�[×Ñ˜Y¨Ó/Ø‡[�[×Ñ˜Y¨Ó/ñ4ó 0ó 0ð4ò("ð ‡[�[×Ñ˜W {°LÐ&AÓBñ.ó Cð.ò0Hð ‡[�[×Ñ˜U¡D¨¨¯©à�V‰VˆGØ�F‰FÙ�R—V‘V�G˜RÓ Ù�R—V‘V�G˜SÓ!Ù�R—V‘V�G˜RŸV™VÓ$Ù�R—V‘V�G˜bŸf™f˜WÓ%Ù�B—F‘F˜BÓÙ�B—F‘F˜CÓ Ù�B—F‘F˜BŸF™FÓ#Ù�B—F‘F˜RŸV™V˜GÓ$á�R—V‘V�G˜VÓ$Ù�R—V‘V�G˜VÓ$Ù�R—V‘V�G˜VÓ$Ù�R—V‘V�G˜VÓ$Ù�B—F‘F˜FÓ#Ù�B—F‘F˜FÓ#Ù�B—F‘F˜FÓ#Ù�B—F‘F˜FÓ#ð'	
ð( ô+*ó %ó ñ."ó/ð."ò1ð ‡[�[×Ñ˜W s¨D°" oÓ6ñ@ó 7ð@ò?ð ‡[�[×ÑÐ-Ø "§¡˜x¨¨rÐ2Ø "§¡˜x¨#¨°Ð4ð6ó7ñ4ó7ñ4r$   r&   c                   ój   — e Zd Zd„ Zd„ Zej                  j                  dd¬«      d„ «       Zd„ Z	d„ Z
y	)
ÚTestSoftmaxc                 óæ  — t        t        |j                  g d¢«      «      |j                  g d¢«      d¬«       t        t        |j                  ddg«      «      |j                  ddg«      d¬«       t        t        |j                  ddg«      «      |j                  dt        j                  g«      dt        j                  z   z  d¬«       |j                  d	|j                  ¬
«      }|j                  g d¢|j                  ¬
«      }t        t        |«      |d¬«       t        t        |dz   «      |d¬«       t        t        |j                  |d«      «      |j                  |d«      d¬«       y )N)r+   rH   rH   rH   ©rQ   rH   rH   rH   ç‚vIhÂ%<=©rŸ   rQ   ç      à?rH   r   r^   r)   )g*lI9üi ?g™{O¶?gW-RÎ?gI³ôòšä?r�   ©r\   r\   )r   r   r   r<   Úer5   r   Úreshape)r>   r   r   Úexpecteds       r"   Útest_softmax_fixturesz!TestSoftmax.test_softmax_fixturesM  s)  € Üœ §
¡
Ò+>Ó ?Ó@ØŸ
™
Ò#3Ó4¸5õ	Bäœ §
¡
¨B°¨8Ó 4Ó5ØŸ
™
 B¨ 8Ó,°5õ	:äœ §
¡
¨B°¨8Ó 4Ó5ØŸ
™
 B¬¯© :Ó.°´B·D±D±Ñ9Ø"õ	$ð �I‰I�a˜rŸz™zˆIÓ*ˆØ—:‘:ò 3ð ;=¿*¹*ð ó Fˆô
 	œ ›
 H°5Õ9ô 	œ  C¡Ó(¨(¸Õ?ô 	œ §
¡
¨1¨fÓ 5Ó6ØŸ
™
 8¨VÓ4¸5ö	Br$   c           	      ón  — t        t        |j                  ddgddgg«      d¬«      |j                  ddgddgg«      d¬«       t        t        |j                  ddgddgg«      d¬«      |j                  d	dgd	dgg«      d¬«       |j                  g d
¢g d¢g«      }|j                  g d¢g d¢g«      }t        t        |d¬«      |d¬«       t        t        |j                  d¬«      |j                  d¬«       |j	                  |d«      }t        t        |d¬«      |j	                  |d«      d¬«       y )Nr+   rH   r   r0   rÉ   rÇ   rÈ   r   rQ   )g      9ÀrH   g      9@g      I@)rQ   g     Pt@g     h‡@g     p‡@)g£×Ù	Ñ+9g.K|T}%m;gÕð]¤7Š®=g\þÿÿÿï?)rH   g‘pk´&•g†ºTV6Ñ?g¼¢ÕõÔdç?©r\   r\   r\   ©r   r\   )r   r   r   ÚTrÌ   )r>   r   r   rÍ   Úx3ds        r"   Útest_softmax_multi_axesz#TestSoftmax.test_softmax_multi_axesi  s$  € Üœ §
¡
¨U°B¨K¸%À¸Ð+EÓ FÈQÔOØŸ
™
 R¨ H¨r°2¨hÐ#7Ó8¸uõ	Fäœ §
¡
¨U°B¨K¸%À¸Ð+EÓ FÈQÔOØŸ
™
 R¨ H¨r°2¨hÐ#7Ó8¸uõ	Fð
 �J‰JÒ0Ú0ð2ó 3ˆà—:‘:ò  3ò 4ð	5ó 6ˆô 	œ ¨Ô*¨H¸5ÕAÜœ §¡¨!Ô,¨h¯j©j¸uÕEð �j‰j˜˜IÓ&ˆÜœ ¨&Ô1ØŸ
™
 8¨YÓ7¸eö	Er$   Úarray_api_strictúint->float promotionr   c                 óv   — t        t        |j                  g d¢«      «      |j                  g d¢«      d¬«       y ©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Ó4¸5ö	Br$   c                 óX   — t        t        d«      t        j                  d«      d¬«       y )Nr-   rQ   rÇ   rÈ   ©r   r   r<   r   ©r>   s    r"   Útest_softmax_scalarzTestSoftmax.test_softmax_scalarˆ  s   € Üœ ›¤r§z¡z°"£~¸EÖBr$   c                 ó`   — t        t        g d¢«      t        j                  g d¢«      d¬«       y rØ   rÜ   rÝ   s    r"   Útest_softmax_array_likez#TestSoftmax.test_softmax_array_like‹  s!   € Üœ¢Ó0ÜŸ
™
Ò#3Ó4¸5ö	Br$   N)r·   r¸   r¹   rÎ   rÔ   rº   r»   Úxfail_xp_backendsrÚ   rÞ   rà   rÂ   r$   r"   rÄ   rÄ   K  sG   „ òBò8Eð4 ‡[�[×"Ñ"Ð#5Ð>TÐ"ÓUñBó VðBòCóBr$   rÄ   c                   ó†  — e Zd Zd„ Zej
                  j                  dd¬«      d„ «       Zd„ Zd„ Z	e
d„ «       Ze
d	„ «       Zej
                  j                  d
ddg«      d„ «       Zd„ Zej
                  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y)ÚTestLogSoftmaxc                 óv   — t        t        |j                  ddg«      «      |j                  ddg«      d¬«       y )Nr+   rQ   rH   ç     8�ÀrÇ   rÈ   ©r   r
   r   rÙ   s     r"   Útest_log_softmax_basicz%TestLogSoftmax.test_log_softmax_basic’  s0   € Üœ B§J¡J°°r¨{Ó$;Ó<ØŸ
™
 B¨ ;Ó/°eö	=r$   rÕ   rÖ   r   c                 óv   — t        t        |j                  ddg«      «      |j                  ddg«      d¬«       y ©Nr-   r   rH   rå   rÇ   rÈ   ræ   rÙ   s     r"   Útest_log_softmax_int_arrayz)TestLogSoftmax.test_log_softmax_int_array–  s0   € äœ B§J¡J°°a¨yÓ$9Ó:ØŸ
™
 B¨ ;Ó/°eö	=r$   c                 ó2   — t        t        d«      dd¬«       y )NrQ   rH   rÇ   rÈ   )r   r
   rÝ   s    r"   Útest_log_softmax_scalarz&TestLogSoftmax.test_log_softmax_scalar›  s   € Üœ CÓ(¨#°EÖ:r$   c                 ó`   — t        t        ddg«      t        j                  ddg«      d¬«       y ré   )r   r
   r<   r   rÝ   s    r"   Útest_log_softmax_array_likez*TestLogSoftmax.test_log_softmax_array_likež  s'   € Üœ T¨1 IÓ.ÜŸ
™
 B¨ ;Ó/°eö	=r$   c                 ó‚   — | j                  d| j                  ¬«      }g d¢}|| j                  || j                  ¬«      fS )Nr^   r)   ©gùÙ:-‚…ÀgùÙ:-‚…Àgò³uZ÷¿gÉÏÖi,Ü¿)r5   r   r   ©r   r   Úexpects      r"   Údata_1dzTestLogSoftmax.data_1d¢  s=   € à�I‰I�a˜rŸz™zˆIÓ*ˆò(ˆð �"—*‘*˜V¨2¯:©:�*Ó6Ð6Ð6r$   c                 óª   — | j                  | j                  d| j                  ¬«      d«      }g d¢g d¢g}|| j                  || j                  ¬«      fS )Né   r)   )r\   r^   rð   )rÌ   r5   r   r   rñ   s      r"   Údata_2dzTestLogSoftmax.data_2d¬  sR   € à�J‰J�r—y‘y ¨"¯*©*�yÓ5°vÓ>ˆò)ò)ð	*ˆð �"—*‘*˜V¨2¯:©:�*Ó6Ð6Ð6r$   Úoffsetr   r�   c                 ód   — | j                  |«      \  }}||z  }t        t        |«      |d¬«       y )NrÇ   rÈ   )ró   r   r
   )r>   r÷   r   r   rò   s        r"   Útest_log_softmax_translationz+TestLogSoftmax.test_log_softmax_translation»  s/   € ð —L‘L Ó$‰	ˆˆ6Ø	ˆV‰ˆÜœ A›¨°UÖ;r$   c                 ó¢   — | j                  |«      \  }}|j                  |d«      }|j                  |d«      }t        t        |«      |d¬«       y )NrÊ   rÇ   rÈ   )ró   rÌ   r   r
   ©r>   r   r   rò   s       r"   Útest_log_softmax_noneaxisz(TestLogSoftmax.test_log_softmax_noneaxisÃ  sF   € ð —L‘L Ó$‰	ˆˆ6Ø�J‰J�q˜&Ó!ˆØ—‘˜F FÓ+ˆÜœ A›¨°UÖ;r$   zaxis_2d, expected_2drÉ   rÊ   r   rH   rå   c                 óš   — |j                  ddgddgg«      }t        t        ||¬«      |j                  ||j                  ¬«      d¬«       y )Nr+   rQ   r0   r)   rÇ   rÈ   )r   r   r
   r*   )r>   Úaxis_2dÚexpected_2dr   r   s        r"   Ú	test_axeszTestLogSoftmax.test_axesË  sG   € ð
 �J‰J˜ ˜ e¨R [Ð1Ó2ˆÜœ A¨GÔ4ØŸ
™
 ;°a·g±g˜
Ó>ÀUö	Lr$   c                 ó^   — | j                  |«      \  }}t        t        |d¬«      |d¬«       y )Nr   r0   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ÖCr$   c                 ó†   — | j                  |«      \  }}t        t        |j                  d¬«      |j                  d¬«       y )Nr   r0   rÇ   rÈ   )rö   r   r
   rÒ   rû   s       r"   Útest_log_softmax_2d_axis0z(TestLogSoftmax.test_log_softmax_2d_axis0Ø  s/   € Ø—L‘L Ó$‰	ˆˆ6Üœ A§C¡C¨aÔ0°&·(±(ÀÖGr$   c                 ó¦   — | j                  |«      \  }}|j                  |d«      }|j                  |d«      }t        t        |d¬«      |d¬«       y )NrÐ   rÑ   r0   rÇ   rÈ   )rö   rÌ   r   r
   rû   s       r"   Útest_log_softmax_3dz"TestLogSoftmax.test_log_softmax_3dÜ  sG   € à—L‘L Ó$‰	ˆˆ6Ø�J‰J�q˜)Ó$ˆØ—‘˜F IÓ.ˆÜœ A¨FÔ3°VÀ%ÖHr$   N)r·   r¸   r¹   rç   rº   r»   rá   rê   rì   rî   Ústaticmethodró   rö   r¼   rù   rü   r<   r6   rb   r   r  r  r  rÂ   r$   r"   rã   rã   �  s  „ ò=ð ‡[�[×"Ñ"Ð#5Ð>TÐ"ÓUñ=ó Vð=ò;ò=ð ñ7ó ð7ð ñ7ó ð7ð ‡[�[×Ñ˜X¨¨3 xÓ0ñ<ó 1ð<ò<ð ‡[�[×ÑÐ3Ø	
ˆFˆB�F‰F�3‹K˜'˜"Ÿ'™' &›/Ñ)Ð*Ø	
ˆb�%ˆ[˜2˜u˜+Ð&Ð'ð6ó ñLó	ðLò
DòHóIr$   rã   )Ú	itertoolsr¿   r   rº   Únumpyr<   Ú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»   Úuses_xp_capabilitiesr#   Úfilterwarningsr&   rÄ   rã   rÂ   r$   r"   ú<module>r     s"  ðÛ Û Û ã ÷@ó @÷9ñ 9÷ :Ñ 9Ý 2ò 
M€Ø˜GÐ$€ð ‡�×!Ñ! %°	Ð!Ó:ñ&ó ;ð&ð ‡�×ÑÐMÓNØ‡�×ÑÐNÓOØ‡�×ÑÐHÓIÙ�9Ó÷c4ð c4ó ó Jó Pó Oðc4ñL	 �7Ó÷ABð ABó ðABñH �;Ó÷PIð PIó  ñPIr$   