
    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'&l7i@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vgG1w''' 		#AfRVBF1II&&''G	!g... 
tArvc{{"G	!g...A
5	***Aq		!G	!g...
%7"##A6!99D
	1a&A9dD\""DbfYt__55quuww???bfYt!%<%<%<==quu!u}}MMMbfYt!%<%<%<==quu!u}}MMM 26""BF+++BF7##bfW---26""BF+++RVGbfW-..888 i$*/"&)9);ACE E E#Um- - -
 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fRVAbfQiiK(())G	!q)))7333	tA	c
ARVG__$G	!q)))7333
%6!""A
AtV$$A6!99D
	1a&A9dD\""D
	1a&AbfYtq%9%9%9::QUKKMMJJJbfYtqq%A%A%ABB!"Q 3 35 5 5bfYtqq%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!...DAq!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!...DAqAOAENNN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QQ!666DAq!'"""'"""QUaT:::DAq!'"""%     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QD)))DAqfQiimmooO#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a1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*lI9i?g{O?gW-R?gI?d   r>   )r   r	   r   r   er   reshape)r%   expecteds     r)   test_softmax_fixturesr_      sg   GOOO,,bh|||.D.D       GQFOORXr2h%7%7eDDDDGQFOORXq"$i%8%8!bd(%C       
 		!Ax - - - . .H
 GAJJu5555 GAG$$hU;;;; GAIIaOO,,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   )ir      2   )r   iE  i  i  )g	+9g.K|T}%m;g]7=g\?)g        gpk&gTV6?gd?r>   )r   r>   )r   r	   r   r   Tr]   )r%   r^   x3ds      r)   test_softmax_multi_axesre      s   GdAYq	2;;;Hr2hR122@ @ @ @GdAYq	2;;;Hq!fq!f-..U< < < <
 	"""$$$& 	' 	'Ax - - -. . .	/ 0 0H GAA&&&u====GACa((((*5AAAA ))Aq!

CGCf---x/?/?1a/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 52    ! ! !
4 
4 
4" " ". . .       6         r+   