L ipIddlZddlZddlZddlZddlmZmZm Z m Z ddl m Z m Z mZddlmZmZmZddlmZgdZddgZd Zej0j3d ej0j3d ej0j3d eeGd dZeeGddZeeGddZy)N)is_array_api_strictmake_xp_test_casexp_default_dtype xp_device)xp_assert_equalxp_assert_closexp_assert_less) log_softmax logsumexpsoftmax) _wrap_radians)float32float64int32int64 complex64 complex128rrc |jtj dz tj dddddtjtjdzg }|jtjdz tjdddddtjtj dzg }t||}t ||dy)NgYnrgYn)xp)atol)asarraymathpir r)rxrefress h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/special/tests/test_logsumexp.pytest_wrap_radiansr s TWWHQJ"gvq$''477196 7A **dggai"gvq$''DGG8A:7 8C b !CC1%z/ignore:invalid value encountered:RuntimeWarningz0ignore:divide by zero encountered:RuntimeWarningz*ignore:overflow encountered:RuntimeWarningc>eZdZdZdZdZdZdZdZdZ dZ d Z e jjd d gd fd ZdZe jjdedZe jjdee jjdedZdZe jjdddgdZdZe jjdej0ej4 ej4eej4 deej4 deej4 ej4eej4 ej4 eej4deej4deej4ej4eej4ej4 eej4 deej4 deej4 deej4 deej4deej4deej4deej4dgd !d"Zd#Ze jjd$d%d&ggd'Zd(Zy))* TestLogSumExpc*|jg}|j|j }tt|||j d|j }|j |j|j|}tt|||jddg}|jdtj dz}tt||d}|j|fd}|jdtj |z}tt|||jdgd z}|j |}|j||g}|j||g} t|jt| |j|t|jt| d |j|d t|jt| d |j|d |j|jg} |j|jg} tt| | d tt| | d  tt| | d tt|j|j |j g| d  |jd dgdtj gg}|jd dg} tt|d | |j| d } tt|dd| tt|d |jd y)Ni@dtype@@@'g@Ww'&l7i@Braxisrg _Bg|=g _rT)r.keepdims)r)rinfrr arangerlogsumexprrfullstacknannp expand_dims) selfradesiredbnrlogxXlogXr1r8rs rtest_logsumexpzTestLogSumExp.test_logsumexp%s JJrN**bffW% ! g. IId"**I -&&q *+ ! g. JJu~ &**Vdhhsm34 ! g.  GGQD% **Wtxx{23 ! g. JJw( )vvay HHaV xxt %y/;yA679JKyA679JKjj"&&"jj"&&" #A/ 3$#a&1 #A/ "**rvvgw-?"@ACF7K JJu (* +jj$' !"-s3nnSrn* !"tr*g333333?g333333@r,irr)r>r.r-) r2rr3r4r5rr rrlinspacer7) r;rr<r>r=rr@rArBBs rtest_logsumexp_bzTestLogSumExp.test_logsumexp_bWs IId"**I - IIdB $&&"&&) ,- !q)73 JJd| $ JJSz "**TDHHW$556 !q)73 JJw' ( KK4 (vvay HHaV xxt % HHaV y34bffQUmDy;STy;STr!c|jgd}|jgd}t||d\}}t||jdt||jdy)N)rrr)rrrTr> return_sign?rF)rr rrr;rr<r>rss rtest_logsumexp_signz!TestLogSumExp.test_logsumexp_signlsT JJy ! JJ{ #aT212::b>*2::c?+r!c|jddg}|jddg}t||d\}}|j|rJ|j|rJ|dksJ|dk(sJy)NrrTrLr)rr isfiniteisnanrOs rtest_logsumexp_sign_zeroz&TestLogSumExp.test_logsumexp_sign_zerotso JJ1v  JJ2w aT21;;q>!!88A;1u uAv vr!c |jd}|j|}t|d|d\}}|j|jcxk(rdk(sJJt|d|d\}}|j|jcxk(rdk(sJJy)NrrYT)r.r>rMrrYr[rrZones ones_liker shaperOs rtest_logsumexp_sign_shapez'TestLogSumExp.test_logsumexp_sign_shape~s GGL ! LLOaT:1ww!''.Y.....1$?1ww!''*U*****r!c|jgd}t|d\}}|j|j|}||j |z }t ||t ||j|z|y)N)y??y@y@T)rM)rr r4r5absr)r;rr<rPrQexpected_sumexp expected_signs rtest_logsumexp_complex_signz)TestLogSumExp.test_logsumexp_complex_signsj JJ0 1-1&&+'"&&*AA =)BFF1I 7r!c|jd}|j|}t|d|}|jdk(sJt|d|}|jdk(sJy)NrXrY)r.r>r\r]r^)r;rr<r>rPs rtest_logsumexp_shapez"TestLogSumExp.test_logsumexp_shapes] GGL ! LLO aa1 %ww)### af *ww&   r!c|jddg}|jddg}tt|||jdy)Nrr+rrGrN)rrr r;rr<r>s rtest_logsumexp_b_zeroz#TestLogSumExp.test_logsumexp_b_zeros? JJ5z " JJ1v  !q)2::b>:r!cb|jd}|jd}t||y)N)r[rrYr)rZrrG)zerosr_r rks rtest_logsumexp_b_shapez$TestLogSumExp.test_logsumexp_b_shapes( HH\ " GGI !qr!argr)rrYrZct|ttjtj|k(sJyN)r r9r atleast_1d)r;rqs rtest_xp_invalid_inputz#TestLogSumExp.test_xp_invalid_inputs+~2::bmmC6H+I!JJJJr!cddg}tjdtjdz}t t ||y)Nr*r(r))r9rrr3rr )r;r<r=s rtest_array_likezTestLogSumExp.test_array_likes4 4L**Vdhhsm34 ! g.r!r'c t||}|jddg|}|j|dr|jdjn|}|jdt j dz|}t t||y)Nr(r&integralrNr))getattrrisdtyper'rr3rr )r;r'rr< desired_dtyper=s r test_dtypes_azTestLogSumExp.test_dtypes_aswE" JJu~UJ 313E:1NB--# **Vdhhsm3=*I ! g.r!dtype_adtype_bct||}t||}|jddg|}|jddg|}t|rk||fDcgc]}|j|ds|} }t | dkr*| j |jdj |j| } n/|j||} |j| dr t|} |jtjtjdtjdz | } tt||| ycc}w)NrYrr&rryrNrG)rzrrr{lenappendr' result_typerrr3r5rr ) r;r~rr xp_dtype_a xp_dtype_br<r>r'xp_float_dtypesr|r=s rtest_dtypes_abzTestLogSumExp.test_dtypes_abs,R) R) JJ1vZJ 0 JJ2wjJ 1 r "4>z2JE&(jj &C %EOE?#a'&&rzz"~';';<*BNNOr!N) __name__ __module__ __qualname__rCrJrRrVrbrgrirlrppytestmark parametrizerurwdtypesr}rrrritproductr9r1complexrrrrr!rr#r# s 0GdU*,+ 8!;   [[UQ N3K4K/  [[Wf-/./ [[Y/ [[Y/4004(" [[W{L&AB.C.0 H [[UJBJJ VVG FF RVVGR RVVGS ! RVVGRVV $ RVVGbffW % BFFB  BFFC BFFBFF # BFFRVVG $ RVVGV $ RVVGV $ RVVGV $ RVVGV $ BFFF # BFFF # BFFF # BFFF #' (+%."/."1 [[WsD"o6@7@ ?r!r#cjeZdZdZdZej jdddZdZ dZ y ) TestSoftmaxctt|jgd|jgddtt|jddg|jddgdtt|jddg|jdtjgdtjzz d|j d |j }|jgd |j }tt||dtt|d z|dtt|j|d |j|d dy)N)r(rErErErNrErErEvIh%<=rrN?rErr[r&)g*lI9i?g{O?gW-R?gI?rrYrY)rr rr9er2rreshape)r;rrexpecteds rtest_softmax_fixturesz!TestSoftmax.test_softmax_fixturesAs) +> ?@ #345 B B8 45 B8,5 : B8 45 B:.BDD9" $ IIarzzI *::3;=**F  H59 C((?  1f 56 8V45 Br!c ntt|jddgddggd|jddgddggdtt|jddgddggd|jd dgd dggd|jgd gd g}|jgd gd g}tt|d|dtt|jd|jd|j |d}tt|d|j |ddy)Nr(rErr-rrrrrN)g9rEg9@gI@)rNgPt@gh@gp@)g +9g.K|T}%m;g]7=g\?)rEgpk&gTV6?gd?rYrYrYrrY)rr rTr)r;rrrx3ds rtest_softmax_multi_axesz#TestSoftmax.test_softmax_multi_axes]s$ UBK%+E FQO RHr2h#78u F UBK%+E FQO RHr2h#78u F JJ002 3:: 3 4 56 *H5A!,hjjuEjjI&&1 8Y7e Er!array_api_strictint->float promotionreasoncvtt|jgd|jgddyN)r*rrrrrr)rr rr;rs rtest_softmax_int_arrayz"TestSoftmax.test_softmax_int_arrayws* ? ;< #345 Br!cXttdtjddy)Nr*rNrrrr r9rr;s rtest_softmax_scalarzTestSoftmax.test_softmax_scalar|s rzz"~EBr!c`ttgdtjgddyrrrs rtest_softmax_array_likez#TestSoftmax.test_softmax_array_likes!0 #345 Br!N) rrrrrrrxfail_xp_backendsrrrrr!rrr?sGB8E4 [[""#5>T"UBVBCBr!rceZdZdZej j dddZdZdZ e dZ e d Z ej jd d d gd ZdZej jdd ej"dej$dzfdddgddggfgdZdZdZdZy)TestLogSoftmaxcvtt|jddg|jddgdy)Nr(rNrE8rrrr rrs rtest_log_softmax_basicz%TestLogSoftmax.test_log_softmax_basics0 BJJr{$;< B;/e =r!rrrcvtt|jddg|jddgdyNr*rrErrrrrs rtest_log_softmax_int_arrayz)TestLogSoftmax.test_log_softmax_int_arrays0 BJJay$9: B;/e =r!c2ttdddy)NrNrErr)rr rs rtest_log_softmax_scalarz&TestLogSoftmax.test_log_softmax_scalars C(#E:r!c`ttddgtjddgdyr)rr r9rrs rtest_log_softmax_array_likez*TestLogSoftmax.test_log_softmax_array_likes' T1I. B;/e =r!c|jd|j}gd}||j||jfS)Nr[r&g:- g:-guZ gi,ܿ)r2rrrrexpects rdata_1dzTestLogSoftmax.data_1ds= IIarzzI *("**V2::*666r!c|j|jd|jd}gdgdg}||j||jfS)Nr&)rYr[r)rr2rrrs rdata_2dzTestLogSoftmax.data_2dsR JJryy"**y5v >)) *"**V2::*666r!offsetrrcd|j|\}}||z }tt||dy)Nrr)rrr )r;rrrrs rtest_log_softmax_translationz+TestLogSoftmax.test_log_softmax_translations/LL$ 6 V  AU;r!c|j|\}}|j|d}|j|d}tt||dy)Nrrr)rrrr r;rrrs rtest_log_softmax_noneaxisz(TestLogSoftmax.test_log_softmax_noneaxissFLL$ 6 JJq& !FF+ AU;r!zaxis_2d, expected_2drrrrErc|jddgddgg}tt|||j||jdy)Nr(rNr-r&rr)rrr r')r;axis_2d expected_2drrs r test_axeszTestLogSoftmax.test_axessG JJ eR[1 2 AG4 ;agg >U Lr!c^|j|\}}tt|d|dy)Nrr-rr)rrr rs rtest_log_softmax_2d_axis1z(TestLogSoftmax.test_log_softmax_2d_axis1s'LL$ 6 AA.UCr!c|j|\}}tt|jd|jdy)Nrr-rr)rrr rrs rtest_log_softmax_2d_axis0z(TestLogSoftmax.test_log_softmax_2d_axis0s/LL$ 6 ACCa0&((Gr!c|j|\}}|j|d}|j|d}tt|d|dy)Nrrr-rr)rrrr rs rtest_log_softmax_3dz"TestLogSoftmax.test_log_softmax_3dsGLL$ 6 JJq) $FI. AF3V%Hr!N)rrrrrrrrrr staticmethodrrrrrr9r3r_rrrrrr!rrrs= [[""#5>T"U=V=;=77 7 7 [[X3x0<1<< [[3 FBFF3K'"''&/ )* b%[2u+ &'6L L DHIr!r) itertoolsrrrnumpyr9scipy._lib._array_apirrrrscipy._lib._array_api_no_0drrr scipy.specialr r r scipy.special._logsumexpr rintegral_dtypesr rfilterwarningsr#rrrr!rrs @@99:92 MG$&MNNOHI9X?X?JPOX?v7ABABABH;PIPI PIr!