Ë
    qw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d	„ Zej0                  j3                  d
«      ej0                  j3                  d«      ej0                  j3                  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   c                 ó   — | 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       úg/var/www/html/newmanjeet/manjet/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j0                  ej4                   ej4                   eej4                   d«       eej4                   d«       eej4                   ej4                  «       eej4                   ej4                   «       eej4                  d«       eej4                  d«       eej4                  ej4                  «       eej4                  ej4                   «       eej4                   d«       eej4                   d«       eej4                   d«       eej4                   d«       eej4                  d«       eej4                  d«       eej4                  d«       eej4                  d«      gd ¬!«      «      d"„ «       Zd#„ Zej                  j                  d$d%d&g g«      d'„ «       Zd(„ Zej                  j                  d)ej4                  gd*d%fej4                  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)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ˆØ—*‘*˜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&   ç        ç      ð¿©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à�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©r>   Úreturn_signç      ð?rF   )r   r   r   r   ©r;   r   r<   r>   ÚrÚss         r   Útest_logsumexp_signz!TestLogSumExp.test_logsumexp_signl   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   TrL   r   )r   r   ÚisfiniteÚisnanrO   s         r   Útest_logsumexp_sign_zeroz&TestLogSumExp.test_logsumexp_sign_zerot   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   é   é   é   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ˆä˜  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)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ˆ   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 )NrX   rY   )r.   r>   r\   r]   r^   )r;   r   r<   r>   rP   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   rG   rN   )r   r   r   ©r;   r   r<   r>   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   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 ‚y ©N)r   r9   r   Ú
atleast_1d)r;   rq   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)   )r9   r   r   r3   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&   ÚintegralrN   r)   )Úgetattrr   Úisdtyper'   r   r3   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 )NrY   r   r&   r   ry   rN   rG   )rz   r   r   r{   ÚlenÚappendr'   Úresult_typer   r   r3   r5   r   r   )r;   r~   r   r   Ú
xp_dtype_aÚ
xp_dtype_br<   r>   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Ñ2J¨Ø&(§j¡j°¸
Ô&Cò  %Ð2Jˆ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 )NrE   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&   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Ú   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,yrE   g       €g%ušè?g}®¶bÙ@gÑ"Ûù~j@g’ËH¿ý@rY   )Úrepeatc           
      óÔ   — t        |j                  ||g«      «      }|j                  |j                  |j	                  |j                  ||g«      «      «      «      }t        ||«       y rs   )r   r   r3   r4   r5   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)   rG   N)r   r   r   rk   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_rawrN   r�   c                 óÄ   — |D ][  }|j                  ||¬«      }t        t        |«      «      t        |«      k(  sJ ‚t        t        ||¬«      «      t        |«      k(  rŒ[J ‚ y)z(Test input device propagation to output.)ÚdevicerG   N)r   r   r   )r;   r¤   r   ÚdevicesÚdr   s         r   Útest_devicezTestLogSumExp.test_device(  sY   € ó ˆ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ë¿rG   TrL   r   )r«   r¬   g«R%ÍÀ)r   r   r   r8   rk   s       r   Útest_gh22903zTestLogSumExp.test_gh229030  sp   € ð �J‰JÒ;Ó<ˆØ�J‰JÒ<Ó=ˆÜœ	 ! qÔ)¬9°Q¸!ÈÔ+NÈqÑ+QÔRð �J‰JÒ<Ó=ˆÜœ	 ! qÔ)¨2¯:©:°b·f±fÓ+=Õ>r!   za, b, sign_refNrF   c                 óÎ   — |j                  |«      |�|j                  |«      nd }}t        ||d¬«      \  }}|j                  |«      sJ ‚t        ||j                  |«      «       y )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À$ˆ1ˆÜ˜a 1°$Ô7‰	ˆˆTØ�x‰x˜Œ}Ðˆ}Ü˜˜bŸj™j¨Ó2Õ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ò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 J B§J¡Jà�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(   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Ó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(   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È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 promotion©Úreasonc                 ó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*   rN   rÃ   rÄ   ©r   r   r9   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À   J  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(   rN   rE   ç     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   rE   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 )NrN   rE   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
   r9   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,Ü¿)r2   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&   )rY   r[   rî   )rÈ   r2   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   rE   rã   c                 óš   — |j                  ddgddgg«      }t        t        ||¬«      |j                  ||j                  ¬«      d¬«       y )Nr(   rN   r-   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   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ÖCr!   c                 ó†   — | j                  |«      \  }}t        t        |j                  d¬«      |j                  d¬«       y )Nr   r-   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Í   r-   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ú   r9   r3   r_   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·   Ú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     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!   