§
    ¢éUgû  ã                   ó|   — d dl Zd dlmZmZmZmZmZ d dlm	Z	m
Z
 d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )é    N)Úassert_almost_equalÚassert_equalÚassert_allcloseÚassert_array_almost_equalÚassert_)Ú	logsumexpÚsoftmaxc                  óX  — g } t           j         }t          t          | ¦  «        |¦  «         t          j        d¦  «        } t          j        t          j        t          j        | ¦  «        ¦  «        ¦  «        }t          t          | ¦  «        |¦  «         ddg}dt          j        d¦  «        z   }t          t          |¦  «        |¦  «         d}t          j	        |dd¬¦  «        }dt          j        |¦  «        z   }t          t          |¦  «        |¦  «         t          j
        d	gd
z  ¦  «        }t          j        |¦  «        }t          j        ||g¦  «        }t          j        ||g¦  «        }t          t          j        t          |¦  «        ¦  «        |                     ¦   «         ¦  «         t          t          j        t          |d¬¦  «        ¦  «        |                     d¬¦  «        ¦  «         t          t          j        t          |d¬¦  «        ¦  «        |                     d¬¦  «        ¦  «         t          t          t           j        ¦  «        t           j        ¦  «         t          t          t           j         ¦  «        t           j         ¦  «         t          t          t           j        ¦  «        t           j        ¦  «         t          t          t           j         t           j         g¦  «        t           j         ¦  «         t          t          ddgdt           j         ggd¬¦  «        ddg¦  «         t          t          ddgdt           j         ggdd¬¦  «        dgdgg¦  «         t          t          ddgdt           j         ggd¬¦  «        d¦  «         d S )NéÈ   éè  g     @�@g       @é'  Úfloat64)Údtypeg     ˆÃ@çœWw'&l¡7i@B r   ©Úaxisé   g    _ Bg»½×Ùß|Û=g    _ ÂéÿÿÿÿT)r   Úkeepdims)r   éþÿÿÿ)ÚnpÚinfr   r   ÚarangeÚlogÚsumÚexpr   ÚfullÚarrayÚvstackr   Únan)ÚaÚdesiredÚbÚnÚxÚlogxÚXÚlogXs           úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/special/tests/test_logsumexp.pyÚtest_logsumexpr*      s#  € à
€AÝŒvˆg€GÝ•˜1‘”˜wÑ'Ô'Ð'õ 	Œ	�#‰Œ€AÝŒf•R”V�BœF 1™IœIÑ&Ô&Ñ'Ô'€GÝ�	 !™œ gÑ.Ô.Ð.ð 
ˆtˆ€AØ•r”v˜c‘{”{Ñ"€GÝ�	 !™œ gÑ.Ô.Ð.à€AÝ
Œ��5 	Ð*Ñ*Ô*€AØ�œ˜q™	œ	Ñ!€GÝ�	 !™œ gÑ.Ô.Ð.å
Œ�%�˜7Ñ"Ñ#Ô#€AÝŒ6�!‰9Œ9€Då
Œ	�1�a�&ÑÔ€AÝŒ9�d˜D�\Ñ"Ô"€DÝ�bœf¥Y¨t¡_¤_Ñ5Ô5°q·u²u±w´wÑ?Ô?Ð?Ý�bœf¥Y¨t¸!Ð%<Ñ%<Ô%<Ñ=Ô=¸q¿uºuÈ!¸u¹}¼}ÑMÔMÐMÝ�bœf¥Y¨t¸!Ð%<Ñ%<Ô%<Ñ=Ô=¸q¿uºuÈ!¸u¹}¼}ÑMÔMÐMõ •�2œ6Ñ"Ô"¥B¤FÑ+Ô+Ð+Ý•�BœF˜7Ñ#Ô#¥b¤f WÑ-Ô-Ð-Ý•�2œ6Ñ"Ô"¥B¤FÑ+Ô+Ð+Ý•�RœV˜G¥b¤f WÐ-Ñ.Ô.µ´°Ñ8Ô8Ð8õ �i¨$°¨Ø*/µ"´&°Ð)9ð);ØACðEñ Eô Eà# U˜mñ-ô -ð -õ
 �i¨$°¨Ø*/µ"´&°Ð)9ð);à-/Ø15ð7ñ 7ô 7ð !%˜v¨ wÐ/ñ	1ô 1ð 1õ �i¨$°¨Ø*/µ"´&°Ð)9ð);à-4ð6ñ 6ô 6ð #ñ$ô $ð $ð $ð $ó    c            	      óB  — t          j        d¦  «        } t          j        ddd¦  «        }t          j        t          j        |t          j        | ¦  «        z  ¦  «        ¦  «        }t          t          | |¬¦  «        |¦  «         ddg} ddg}dt          j        d¦  «        z   }t          t          | |¬¦  «        |¦  «         t          j        dgd	z  ¦  «        }t          j        d
dd	¦  «        }t          j        |¦  «        }t          j	        ||f¦  «        }t          j	        ||f¦  «        }t          j	        ||f¦  «        }t          t          j        t          ||¬¦  «        ¦  «        ||z                       ¦   «         ¦  «         t          t          j        t          ||d¬¦  «        ¦  «        ||z                       d¬¦  «        ¦  «         t          t          j        t          ||d
¬¦  «        ¦  «        ||z                       d
¬¦  «        ¦  «         d S )Nr   r   r   ©r#   r   g333333ó?g333333@r   i † r   )r#   r   r   )r   r   r   r   r   r   r   r   Úlinspacer   r   )r!   r#   r"   r%   r&   r'   r(   ÚBs           r)   Útest_logsumexp_br0   ?   sÕ  € Ý
Œ	�#‰Œ€AÝ
Œ	�#�q˜"ÑÔ€AÝŒf•R”V˜A�bœf Q™iœi™KÑ(Ô(Ñ)Ô)€GÝ�	 ! qÐ)Ñ)Ô)¨7Ñ3Ô3Ð3à	ˆtˆ€AØ	ˆcˆ
€AØ•R”V˜G‘_”_Ñ$€GÝ�	 ! qÐ)Ñ)Ô)¨7Ñ3Ô3Ð3å
Œ�%�˜6Ñ!Ñ"Ô"€AÝ
Œ�A�t˜VÑ$Ô$€AÝŒ6�!‰9Œ9€Då
Œ	�1�a�&ÑÔ€AÝŒ9�d˜D�\Ñ"Ô"€DÝ
Œ	�1�a�&ÑÔ€AÝ�bœf¥Y¨t°qÐ%9Ñ%9Ô%9Ñ:Ô:¸QÀ¹U¿KºK¹M¼MÑJÔJÐJÝ�bœf¥Y¨t°q¸qÐ%AÑ%AÔ%AÑBÔBØ!" Q¡§¢° Ñ 3Ô 3ñ5ô 5ð 5å�bœf¥Y¨t°q¸qÐ%AÑ%AÔ%AÑBÔBØ!" Q¡§¢° Ñ 3Ô 3ñ5ô 5ð 5ð 5ð 5r+   c                  ó€   — g d¢} g d¢}t          | |d¬¦  «        \  }}t          |d¦  «         t          |d¦  «         d S )N)r   r   r   )r   r   r   T©r#   Úreturn_signr   r   )r   r   r   ©r!   r#   ÚrÚss       r)   Útest_logsumexp_signr7   X   sR   € Øˆˆ€AØˆ	ˆ	€Aå�Q˜!¨Ð.Ñ.Ô.�D€A€qÝ˜˜!ÑÔÐÝ��2ÑÔÐÐÐr+   c                  ó  — ddg} ddg}t          | |d¬¦  «        \  }}t          t          j        |¦  «         ¦  «         t          t          j        |¦  «         ¦  «         t          |dk     ¦  «         t          |d¦  «         d S )Nr   r   Tr2   r   )r   r   r   ÚisfiniteÚisnanr   r4   s       r)   Útest_logsumexp_sign_zeror;   a   s‚   € Ø	
ˆ1ˆ€AØ	
ˆ2ˆ€Aå�Q˜!¨Ð.Ñ.Ô.�D€A€qÝ•”˜A‘”ÐÑÔÐÝ•”˜‘”ˆOÑÔÐÝˆA�ŠE�N„N€NÝ��1ÑÔÐÐÐr+   c                  ój  — t          j        d¦  «        } t          j        | ¦  «        }t          | d|d¬¦  «        \  }}t	          |j        |j        ¦  «         t	          |j        d¦  «         t          | d|d¬¦  «        \  }}t	          |j        |j        ¦  «         t	          |j        d¦  «         d S )N©r   é   é   é   r>   T)r   r#   r3   ©r   r>   r@   ©r   r?   ©r   ÚonesÚ	ones_liker   r   Úshaper4   s       r)   Útest_logsumexp_sign_shaperG   l   s¤   € Ý
Œ�	ÑÔ€AÝ
Œ�Q‰Œ€Aå�Q˜Q !°Ð6Ñ6Ô6�D€A€qå�”˜!œ'Ñ"Ô"Ð"Ý�”˜'Ñ"Ô"Ð"å�Q˜U a°TÐ:Ñ:Ô:�D€A€qå�”˜!œ'Ñ"Ô"Ð"Ý�”˜%Ñ Ô Ð Ð Ð r+   c                  ó4  — t          j        g d¢¦  «        } t          | d¬¦  «        \  }}t          j        | ¦  «                             ¦   «         }|t          |¦  «        z  }t          ||¦  «         t          |t          j        |¦  «        z  |¦  «         d S )N)y      ð?      ð?y       @      ð¿y       À      @T)r3   )r   r   r   r   r   Úabsr   )r!   r5   r6   Úexpected_sumexpÚexpected_signs        r)   Útest_logsumexp_complex_signrL   {   s‡   € Ý
ŒÐ*Ð*Ð*Ñ+Ô+€Aå�Q DÐ)Ñ)Ô)�D€A€qå”f˜Q‘i”i—m’m‘o”o€Oà#¥c¨/Ñ&:Ô&:Ñ:€Må�A�}Ñ%Ô%Ð%Ý�A�œ˜q™	œ	‘M ?Ñ3Ô3Ð3Ð3Ð3r+   c                  óò   — t          j        d¦  «        } t          j        | ¦  «        }t          | d|¬¦  «        }t	          |j        d¦  «         t          | d|¬¦  «        }t	          |j        d¦  «         d S )Nr=   r>   )r   r#   rA   rB   rC   )r!   r#   r5   s      r)   Útest_logsumexp_shaperN   ˆ   sp   € Ý
Œ�ÑÔ€AÝ
Œ�Q‰Œ€Aå�!˜!˜qÐ!Ñ!Ô!€AÝ�”˜)Ñ$Ô$Ð$å�!˜& AÐ&Ñ&Ô&€AÝ�”˜&Ñ!Ô!Ð!Ð!Ð!r+   c                  óT   — ddg} ddg}t          t          | |¬¦  «        d¦  «         d S )Nr   r   r   r-   )r   r   ©r!   r#   s     r)   Útest_logsumexp_b_zerorQ   “   s7   € Ø	
ˆ5ˆ	€AØ	
ˆ1ˆ€Aå�	 ! qÐ)Ñ)Ô)¨1Ñ-Ô-Ð-Ð-Ð-r+   c                  óx   — t          j        d¦  «        } t          j        d¦  «        }t          | |¬¦  «         d S )N)r@   r   r>   r   )r?   r   é   r-   )r   ÚzerosrD   r   rP   s     r)   Útest_logsumexp_b_shaperU   š   s9   € Ý
Œ�ÑÔ€AÝ
Œ�ÑÔ€Aåˆa�1ÐÑÔÐÐÐr+   c                  óÜ  — 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Â%<=©Úrtolr   ç      à?r   r@   )g*lI9üi ?g™{O¶?gW-RÎ?gI³ôòšä?éd   r>   )r   r	   r   r   Úer   Úreshape)r%   Úexpecteds     r)   Útest_softmax_fixturesr_   ¡   sg  € Ý•G˜O˜O˜OÑ,Ô,­b¬h°|°|°|Ñ.DÔ.DØð ñ  ô  ð  å•G˜Q ˜F‘O”O¥R¤X¨r°2¨hÑ%7Ô%7¸eÐDÑDÔDÐDÝ•G˜Q ˜F‘O”O¥R¤X¨qµ"´$¨iÑ%8Ô%8¸!½b¼d¹(Ñ%CØð ñ  ô  ð  õ
 	Œ	�!‰Œ€AÝŒxð -ð -ð -ñ .ô .€Hõ
 •G˜A‘J”J ¨uÐ5Ñ5Ô5Ð5õ •G˜A ™GÑ$Ô$ h°UÐ;Ñ;Ô;Ð;õ •G˜AŸIšI a¨™OœOÑ,Ô,¨h×.>Ò.>¸qÀ!Ñ.DÔ.DØð ñ  ô  ð  ð  ð  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   rZ   rW   rX   r   )içÿÿÿr   é   é2   )r   iE  ií  iî  )g£×Ù	Ñ+9g.K|T}%m;gÕð]¤7Š®=g\þÿÿÿï?)g        g‘pk´&•g†ºTV6Ñ?g¼¢ÕõÔdç?r>   )r   r>   )r   r	   r   r   ÚTr]   )r%   r^   Úx3ds      r)   Útest_softmax_multi_axesre   ¼   sª  € Ý•G˜d A˜Y¨¨q¨	Ð2¸Ð;Ñ;Ô;Ý”H˜r 2˜h¨¨R¨Ð1Ñ2Ô2¸ð@ñ @ô @ð @å•G˜d A˜Y¨¨q¨	Ð2¸Ð;Ñ;Ô;Ý”H˜q !˜f q¨! fÐ-Ñ.Ô.°Uð<ñ <ô <ð <õ
 	ŒÐ"Ð"Ð"Ø$Ð$Ð$ð&ñ 	'ô 	'€AåŒxð -ð -ð -ð.ð .ð .ð	/ñ 0ô 0€Hõ •G˜A AÐ&Ñ&Ô&¨°uÐ=Ñ=Ô=Ð=Ý•G˜AœC aÐ(Ñ(Ô(¨(¬*¸5ÐAÑAÔAÐAð �)Š)�A�q˜!Ñ
Ô
€CÝ•G˜C fÐ-Ñ-Ô-¨x×/?Ò/?ÀÀ1ÀaÑ/HÔ/HØð ñ  ô  ð  ð  ð  r+   )Únumpyr   Únumpy.testingr   r   r   r   r   Úscipy.specialr   r	   r*   r0   r7   r;   rG   rL   rN   rQ   rU   r_   re   © r+   r)   ú<module>rj      s!  ðØ Ð Ð Ð ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð4$ð 4$ð 4$ðn5ð 5ð 5ð2ð ð ðð ð ð!ð !ð !ð
4ð 
4ð 
4ð"ð "ð "ð.ð .ð .ðð ð ð ð  ð  ð6 ð  ð  ð  ð  r+   