L i: `ddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZddlZddlmZddlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)ddl*m)cm+Z,ddl-m.Z.m/Z/m0Z0ddl-m1Z1m2Z2m3Z3m4Z4m5Z5ddl-m6Z6dd l-m7Z7m8Z8m9Z9dd l-m:Z:m;Z;mZ>m?Z?dd l@mAZAmBZBmCZCdd lDmEZEmFZFmGZGddlHmIZImJZJmKZKddlLZLejdk(sejddk(r ejn ejZPGddZQGddZRGddZSGddZTGddZUGddZVGddZWGdd ZXGd!d"ZYGd#d$ZZGd%d&Z[Gd'd(Z\Gd)d*Z]Gd+d,Z^Gd-d.Z_Gd/d0Z`Gd1d2Zadd3ZbGd4d5ZcGd6d7ZdGd8d9ZeGd:d;ZfGd<d=ZgGd>d?ZhGd@dAZiGdBdCZjGdDdEZkGdFdGZlGdHdIZmGdJdKZnGdLdMZoGdNdOZpGdPdQZqGdRdSZrGdTdUZsGdVdWZtGdXdYZuGdZd[Zvd\Zwd]ZxGd^d_Zyd`ZzdaZ{ejjdbej* dcdddeej*ejgdfZejjdgej* dcdddeej*ejgdhZejjdbej* dcdddeej*ejgdiZejjdgej* dcdddeej*ejgdjZdkZdlZdmZdnZdoZejdpZeIdqZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zejj*d|ZGd}d~ZGddZy)N)arrayisnanr_arangefinfopisincostanexplogzerossqrtasarrayinf nan_to_numrealarctandouble array_equal)raises) assert_equalassert_almost_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_assert_allcloseassert_array_almost_equal_nulpsuppress_warnings)special)ellipeellipkellipkm1)elliprcelliprdelliprfelliprgelliprj)softplus)mathieu_odd_coefmathieu_even_coef stirling2)lpnlpmnclpmn)np_longnp_ulong)xp_assert_closexp_assert_equalSCIPY_ARRAY_API)_FACTORIALK_LIMITS_64BITS_FACTORIALK_LIMITS_32BITS _is_subdtype)with_special_errorsassert_func_equalFuncDatawin3232bitceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/e0jbjed./d0Z3d1Z4d2Z5d3Z6e0jbjed4/d5Z7d6Z8d7Z9d8Z:d9Z;d:Zd=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{dzZ|d{Z}d|Z~d}Zd~ZdZdZdZdZe0jbjed/dZe0jbjed/dZe0jbjed/dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy) TestCephesc.tjdyNr)cephesairyselfs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/special/tests/test_basic.py test_airyzTestCephes.test_airy@  Ac.tjdyrA)rBairyerDs rF test_airyezTestCephes.test_airyeCs  QrIc tjgd}tjgd}tjtj|dddf|dddfjddj}tjgdgdgdgdg}t t j|j|d tjjd }tjtjd d d|jd zdz f}tjdd}tjtj|dddf|dddfjddj}t t jt j|dddf|dddfdz|ddy)N)gL7A`?g@)皙?gffffff @rP)g޸g TշJ?g 7?geLF )g*+@rgM{@)gףp= %@gϔ>@g.binom_intksbAAAACC1ac] q1uqy q S> !rIrYr^rrPrSra) rc vectorizerirurrrdrerfr:rBrg)rErrlrmrns rFtest_binom_exactzTestCephes.test_binom_exactjs  "  " t IIa  IIa  XXb))!AdF)QtAvY?2qq 1Q32ac7" #&,,#BqsGR!W5 q *rIcgd}tj|}ttj|dddj y)N))r[r\gwP~)iigii9~)iigyhY~)iigpvy~)iigzN~)iigGTɳ~)iig@jH~)iigF:aYͦ~)iigɸV)iig {9)iigyVxY)ig*Iy)iigI)iigW@N)iig5y)rr^rP-q=rW)rcrr;rBrgcheck)rEdatasets rFtest_binom_nooverflow_8346z%TestCephes.test_binom_nooverflow_8346s6 "**W%w>DDFrIcFttjddddy)Nr^??)rrBbdtrrDs rF test_bdtrzTestCephes.test_bdtrsV[[1S)#.rIcFttjddddyNr^r)rrBbdtrirDs rF test_bdtrizTestCephes.test_bdtriV\\!Ac*3/rIcFttjddddyr)rrBbdtrcrDs rF test_bdtrczTestCephes.test_bdtrcrrIcFttjddddyNr^r@)rrBbdtrinrDs rF test_bdtrinzTestCephes.test_bdtrinV]]1Qq)#.rIc2tjdddyr)rBbdtrikrDs rF test_bdtrikzTestCephes.test_bdtriks a#rIcBttjddyNr)rrBbeirDs rFtest_beizTestCephes.test_beiVZZ]3'rIcBttjddyr)rrBbeiprDs rF test_beipzTestCephes.test_beipV[[^C(rIcBttjddyNrr)rrBberrDs rFtest_berzTestCephes.test_berrrIcBttjddyr)rrBberprDs rF test_berpzTestCephes.test_berprrIcFttjddddyr)rrB besselpolyrDs rFtest_besselpolyzTestCephes.test_besselpolysV&&q1-c2rIcFttjddddyNr^r)rrBbtdtriarDs rF test_btdtriazTestCephes.test_btdtriaV^^Aa*3/rIcFttjddddyr)rrBbtdtribrDs rF test_btdtribzTestCephes.test_btdtribrrIcBttjddyNr^r)rrBcbrtrDs rF test_cbrtzTestCephes.test_cbrtsFKKN3/rIcDttjdddyNr^rr)rrBchdtrrDs rF test_chdtrzTestCephes.test_chdtrsV\\!A&s+rIcDttjdddyNr^rr)rrBchdtrcrDs rF test_chdtrczTestCephes.test_chdtrcV]]1Q',rIcDttjdddyNr^r)rrBchdtrirDs rF test_chdtrizTestCephes.test_chdtrirrIcDttjdddy)Nrr)rrBchdtrivrDs rF test_chdtrivzTestCephes.test_chdtrivsV^^Aa(-rIcttjddddtjgdgdgdgdgdgd gd gd gd gd gdgdgdg }tj|dddf|dddf|dddf}t ||dddfdt tjtjtjddt tjddtjdttjtjtjddttjtjdtjdttjtjddtjy)Nrr^r)9@4@gL94)r @g7Fh9)gMbP?rD@ggåc;){Gz?rrg ;)r@kg8x@x>)g6@rrgg1\>>)rrrg`>)@rrgp!P?)gu@gr@$@gj ?)Y@+@rg]?)g@rrg4ۙ?)gb@rrg?)gd@rrrrPrrrWr) rrBchndtrrcrrrrrrnan)rEvaluescdfs rF test_chndtrzTestCephes.test_chndtrs5V]]1Qq)#.  9 9 9 : 9 9 9 6 6 6 6 6 6  mmF1a4L&A,q!t EVAqD\6FMM"&&"&&!rV瞯<float128r)rPrN皙?)gg?gsOB?gsaL?g 7I^ʿr) rcrrastypefloat32rr!diricfloat64hasattrrr)rEn_oddxn_even octave_results rF test_diriczTestCephes.test_dirics HHQruuWt^ $ + +BJJ 7GMM!U3S!D HHQruuWt^ $ + +BJJ 7GMM!U3S"E HHQruuWu_ % , ,RZZ 8GMM!U3S"E 2z "2555)00=A  a 7b I HHQruuWt^ $ + +BJJ 7GMM!V4dBG IIc"%%iRUUCI 6@ GMM!Q/KrIc tjd}tjgd}tt j |ddtj f|j|j|jfk(y)Nr)r^rrR) rcrrrr!rnewaxisshapesize)rErrls rFtest_diric_broadcastingz"TestCephes.test_diric_broadcastingsU IIaL HHY  a2:: .288QVVQVVrcomplexrcrr)rEr>s rFtest_expm1_complexzTestCephes.test_expm1_complexAs U6]F+U72661-.0BCU72661-.0GHU72661-.0HIU72661-."&&0IJU72661-.0HIU71bff-.0GHU71bff-.0GHU726626623WRVVRVV5LMU7BFF7BFF34gb!nEU7BFF7BFF34gb!nEU726626623WRVVRVV5LMU71bff-.0GHU71bff-.0GHU72661-.0GHU726626623WRVVRVV5LMrIz-The real part of expm1(z) bad at these pointsreasoncptjgd}tjtj| }|d|zz}tjgd}t j |}t |j|jdt |j|jdy)N)皙?r 333333?r rt?)y= Cw?yC7gg)gF<sK y>񸣼$ Um>ly;Vl <@rrt) rcrr r rBr>rimagr)rEyrzexpectedfounds rFtest_expm1_complex_hardz"TestCephes.test_expm1_complex_hardTs HH/ 0 VVBFF1I   1H88JK  Q&uzz8==!D&uzz8=="ErIcttjddddttjddddd y) Nr^rrư>r g2?rrW)rrBfdtrrrDs rF test_fdtrzTestCephes.test_fdtris6V[[Aq)3/ D!R02D" $rIcttjddddttjddddd y) Nr^rrrPrGg _BgDIXl?rrW)rrBfdtrcrrDs rF test_fdtrczTestCephes.test_fdtrcos8V\\!Q*C0  QT24G" $rIcttjddddgtddgdd}ttjd d|d d y) Nr^gV-?gx&1?g }?g:y*56T C % S!Q/?rIzReturns nan on i686.cFttjddddy)Nr^r)rrBrZrDs rFtest_fdtri_mysterious_failurez(TestCephes.test_fdtri_mysterious_failure~s Q3/3rIcFttjddddyr)rrBfdtridfdrDs rF test_fdtridfdzTestCephes.test_fdtridfdrrIcBttjddyNrrr)rrBfresnelrDs rF test_fresnelzTestCephes.test_fresnelsV^^A&y1rIcBttjddyNr8@)rrBgammarDs rF test_gammazTestCephes.test_gammasV\\!_T*rIcDttjdddy)Nrr^r)rrB gammainccinvrDs rFtest_gammainccinvzTestCephes.test_gammainccinvsV((1-c2rIc.tjdy)NrS)rBgammalnrDs rF test_gammalnzTestCephes.test_gammalnsrrIc htjtj dddddddtjg tj}tjtjtjdd d ddddg tj}t t j||y) N gffffffrr^g@rr )rcrrrrrrBgammasgn)rEvals references rF test_gammasgnzTestCephes.test_gammasgnsxxffWb$dCC @"** HH VVRVVS$c3S A2::  6??40).ce_smallqVs sNAAv A1S1X $566a1v!c!A#h..a1Q3x!S1Xb[3%6"7771Q3x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUrIdrSrh|?+=rXrb) rrB mathieu_cemrcrrrrvr)rEr9r7r8s rFtest_mathieu_cemzTestCephes.test_mathieu_cemRsV''!A.y9  V  V IIa  EE!R[[b"-- .**1QtV9aQiGJ!!AdF)QtAvY>" ,rIc ttjddddtjd}tj dd}tj dtjdddf}ttj|dddf|dddfd d||dddf|dddfd d d y) Nr^rrrcV|tjdz z}|dk(r t||dz td|zzz S|dk(r#td|z|td|zzdz z St||z|t|dz|zd|dzzz t|dz |zd|dz zz z zz S)Nr2r^r3rrPrNr4)rcrr r6s rF se_smallqz.TestCephes.test_mathieu_sem..se_smallqos sNAAv1v!c!A#h..a1Q3x!C!H*R-//1Q3x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUrIr:r;r<rSr=r>r?) rrB mathieu_semrcrrrrvr)rErEr7r8s rFtest_mathieu_semzTestCephes.test_mathieu_semksV''!A.y9  V  V IIa  EE!R[[b"-- .**1QtV9aQiGJ!!AdF)QtAvY>" ,rIcFttjddddyNr^rrd)rrBmathieu_modcem1rDs rFtest_mathieu_modcem1zTestCephes.test_mathieu_modcem1V++Aa29=rIcBtjdddtjddddddf}tjtj dddddddf}tj dddddddf}tj||| d}tj||dd tj||ddz }tj|||d d|ztj|||dzz }t||d y) Nr^rrNrrPrSrRr`rW) rBmathieu_modcem2rcrrrvlinspacerJrrEr7r8rMy1fry2s rFtest_mathieu_modcem2zTestCephes.test_mathieu_modcem2sq1% IIaOAd4K ( EE"++b!R( )$q+ 6 KK1a d1 -  # #Aq1" -a 0$$Q1-a0 063I3I!QPQ3RST3U U%%aA.q11"V++Aq!4Q778 BU+rIcFttjddddyrI)rrBmathieu_modsem1rDs rFtest_mathieu_modsem1zTestCephes.test_mathieu_modsem1rLrIc>tjdddtjddddddf}tjtj dddddddf}tj dddddddf}tj||| d}tj||ddtj||ddz }tj|||dd|ztj|||dzz }t||d y) Nr^rNrrPrSrrRr`rW) rBmathieu_modsem2rcrrrvrOrVrrPs rFtest_mathieu_modsem2zTestCephes.test_mathieu_modsem2s q1% IIaOAd4K ( EE"++b!R( )$q+ 6 KK1a d1 -  # #Aq1" -a 0  # #Aq! ,Q /&2H2HAq2QRS2T T$$Q1-a0"V++Aq!4Q778BU+rIcttjdddtjtjfttj dddtjtjfttjdddtjtjfttj dddtjtjfttj dddtjtjfttjdddtjtjfttjdddtjtjfttjdddtjtjfy)N'rg??) rrBr@rcrrFrJrVrNrYrDs rFtest_mathieu_overflowz TestCephes.test_mathieu_overflows2V''q#68HIV''q#68HIV''sC8266266:JKV''sC8266266:JKV++E3NOV++E3NOV++E3NOV++E3NOrIctdD];}tjddd}t|dddt|d d d =y) N<rPr:rSrg.dS?r`rWr^gGc?-C6?)r|rBrYr)rErmvs rFtest_mathieu_ticket_1847z#TestCephes.test_mathieu_ticket_1847sOr GA&&q#r2A AaD": G AaD": F  GrIc.tjdyrA)rB modfresnelmrDs rFtest_modfresnelmzTestCephes.test_modfresnelm1rIc.tjdyrA)rB modfresnelprDs rFtest_modfresnelpzTestCephes.test_modfresnelprgrIcDttjdddyr)rrB modstruverDs rFtest_modstruvezTestCephes.test_modstruver"rIcFttjddddyr)rrBnbdtrrDs rF test_nbdtrzTestCephes.test_nbdtrrrIcFttjddddyr)rrBnbdtrcrDs rF test_nbdtrczTestCephes.test_nbdtrcrrIcFttjddddyr)rrBnbdtrirDs rF test_nbdtrizTestCephes.test_nbdtrirrIc2tjdddy)Nr^rQr)rBnbdtrikrDs rF test_nbdtrikzTestCephes.test_nbdtriksqBrIcFttjddddyr)rrBnbdtrinrDs rF test_nbdtrinzTestCephes.test_nbdtrinrrIcHttjdddddyr)rrBncfdtrrDs rF test_ncfdtrzTestCephes.test_ncfdtrrrIcttjdddddgd}tjddd|}t tjddd||y)Nr^rr)rr^r]rPrr])rrBncfdtrir~r)rEfr[s rF test_ncfdtrizTestCephes.test_ncfdtrisMV^^Aq!Q/5  MM!QQ 'q!S!4a8rIzpncfdtr uses a Boost math implementation but ncfdtridfdinverts the less accurate cdflib implementation of ncfdtr.cgd}tjd|dd}ttjd|dd|y)Nr^rPrrPr5r)rBr~r ncfdtridfd)rEdfdr[s rFtest_ncfdtridfdzTestCephes.test_ncfdtridfds8 MM!S$ +))!Qb93?rIzpncfdtr uses a Boost math implementation but ncfdtridfninverts the less accurate cdflib implementation of ncfdtr.cgd}tj|ddd}ttj|ddd|dy)N)rGr^rPrg@rPr5rgh㈵>rW)rBr~r ncfdtridfn)rEdfnr[s rFtest_ncfdtridfnzTestCephes.test_ncfdtridfns:" MM#q$ +))!Qb93TJrIzoncfdtr uses a Boost math implementation but ncfdtrincinverts the less accurate cdflib implementation of ncfdtr.cgd}tjdd|d}ttjdd|d|y)N)rr]rrPrr)rBr~r ncfdtrinc)rEncr[s rFtest_ncfdtrinczTestCephes.test_ncfdtrincs8 MM!QB '((Aq"5r:rIc Nttjddddttjddddttjtj dddd t t jtjd tj d ttjd dtj dt t jtjtjddt t jtjd tjdt t jtjd dtjy) Nr^rr irrrrrr) rrBnctdtrrrcrrrrrDs rF test_nctdtrzTestCephes.test_nctdtrsV]]1Qq)#.V]]1eR0#6FMM"&&"b93Br2663789FMM"b"&&92>rvvr2678r2662678r2rvv678rIc2tjdddy)Nr^rr)rB nctdtridfrDs rFtest_nctdtridfzTestCephes.test_nctdtridfs3q!rIc2tjdddyr)rB nctdtrincrDs rFtest_nctdtrinczTestCephes.test_nctdtrinc s1QrIc2tjdddy)NrGr r)rBnctdtritrDs rF test_nctdtritzTestCephes.test_nctdtrit s3r"rIcFttjddddy)Nrr^r)rrBnrdtrimnrDs rF test_nrdtrimnzTestCephes.test_nrdtrimnsFOOC!4S9rIcLttjddddddy)Nrrrra)rrBnrdtrisdrDs rF test_nrdtrisdzTestCephes.test_nrdtrisds C4ca )rIc4tjddddyr)rBobl_ang1rDs rF test_obl_ang1zTestCephes.test_obl_ang1!Aa rIcrtjddddd}t|ddt|ddy)Nr^rrr)rB obl_ang1_cvr)rEresults rFtest_obl_ang1_cvzTestCephes.test_obl_ang1_cvs6##Aa!A.F1Ic*F1Ic*rIcFttjddddyNr^rr)rrBobl_cvrDs rF test_obl_cvzTestCephes.test_obl_cvrrIc4tjddddyr)rBobl_rad1rDs rF test_obl_rad1zTestCephes.test_obl_rad1"rrIc6tjdddddyr)rB obl_rad1_cvrDs rFtest_obl_rad1_cvzTestCephes.test_obl_rad1_cv%1Qq1%rIc4tjddddyr)rBobl_rad2rDs rF test_obl_rad2zTestCephes.test_obl_rad2(rrIc6tjdddddyr)rB obl_rad2_cvrDs rFtest_obl_rad2_cvzTestCephes.test_obl_rad2_cv+rrIcDttjdddy)Nr^rrC)rrBpbdvrDs rF test_pbdvzTestCephes.test_pbdv.sV[[1%i0rIc0tjddyr)rBpbvvrDs rF test_pbvvzTestCephes.test_pbvv1 AarIc0tjddyr)rBpbwarDs rF test_pbwazTestCephes.test_pbwa4rrIctjdd}t|tjdtjgdd}t |gdy)Nrr^rSrr^rP)r^r^r^)rBpdtrrrcr rrEvals rF test_pdtrzTestCephes.test_pdtr7s>kk!QC,kk)Q'3 *rIctjdd}t|dtjdz tjgdd}t |gdy)Nrr^rSrr)rrr)rBpdtrcrrcr rrs rF test_pdtrczTestCephes.test_pdtrc>sBll1a CRVVBZ0ll9c*3 *rIct5}|jtdtjdddddy#1swYyxYw)N-floating point number truncated to an integerr)r r!r"rBpdtri)rEr$s rF test_pdtrizTestCephes.test_pdtriEs<   "C JJ~'V W LLS ! " " "s -AA ctjdd}ttj|dzddtjdgdgdgggd}t |t j dy)Nrr^rr5ffffff?)r#B ;rR)rr)rBpdtrikr gammainccrrcr)rErms rF test_pdtrikzTestCephes.test_pdtrikJs^ MM#q !F,,QUA6< MMA3/1A B1bhhv./rIc4tjddddyr)rBpro_ang1rDs rF test_pro_ang1zTestCephes.test_pro_ang1QrrIc \ttjdddddtdy)Nr^rr0)rrB pro_ang1_cvrrDs rFtest_pro_ang1_cvzTestCephes.test_pro_ang1_cvTs'!&"4"4Qq1Q"?"' "2 4rIcFttjddddyr)rrBpro_cvrDs rF test_pro_cvzTestCephes.test_pro_cvXrrIc4tjddddyr)rBpro_rad1rDs rF test_pro_rad1zTestCephes.test_pro_rad1[s!Ac"rIc6tjdddddyr)rB pro_rad1_cvrDs rFtest_pro_rad1_cvzTestCephes.test_pro_rad1_cv^rrIc4tjddddyr)rBpro_rad2rDs rF test_pro_rad2zTestCephes.test_pro_rad2arrIc6tjdddddyr)rB pro_rad2_cvrDs rFtest_pro_rad2_cvzTestCephes.test_pro_rad2_cvdrrIc.tjdyrz)rBpsirDs rFtest_psizTestCephes.test_psigrrIcFttjddddyrA)rrBradianrDs rF test_radianzTestCephes.test_radianjsV]]1Qq)!,rIcBttjddyr)rrBrgammarDs rF test_rgammazTestCephes.test_rgammamrrIcxttjddttjddttjddttjddttjd dttjd dy) N333333 @r333333 g @r:g g @rt)rrBroundrDs rF test_roundzTestCephes.test_roundpstV\\#&s+V\\$'-V\\#&s+V\\$'-V\\#&s+V\\$'-rIc.tjdyrz)rBshichirDs rF test_shichizTestCephes.test_shichixrrIctjdtjtj\}}t |tj dzt |dtjtj \}}t |tj dzt tj|dy)Nr^rrz cosine integral(-inf) is not nan)rBsicircrrrrr)rEsr#s rF test_sicizTestCephes.test_sici{s~ A{{266"1Aruus{+Aq!{{BFF7#1Av|, ?@rIcBttjddyNZr)rrBsindgrDs rF test_sindgzTestCephes.test_sindgV\\"%c*rIcttjdddtt j tjdtj y)Nr^rG?)rrBsmirnovrrcrrrDs rF test_smirnovzTestCephes.test_smirnovs7V^^Ab)#."&&123rIcDttjdddttjdddttjdddtt j tjdtj y) Nr^rGrSrP?rgȿ)rrB _smirnovprrcrrrDs rF test_smirnovpzTestCephes.test_smirnovpskV%%a,b1V%%a.0@AV%%a.0@A))!RVV456rIcttjdddtt j tjdtj t jdddd}ttjd|dtjd|z t jdddd}ttjd |dtjd |z y) Nr^rGrrITendpointrrrN) rrB _smirnovcrrcrrrOrr)rEx10x4s rF test_smirnovczTestCephes.test_smirnovcsV%%a+C0))!BFF345kk!QT2F,,Q4aq#8N6NO [[Aq4 0F,,Q3Qv~~a7L5LMrIc Tttjdtjdddttjdtjdddt t j tjdt jyNr^rQ333333?)rrBrsmirnovirrcrrrDs rF test_smirnovizTestCephes.test_smirnovisbFNN1V__Qs-CDSIFNN1V__Qs-CDSI266234rIc Tttjdtjdddttjdtjdddt t j tjdt jyr)rrBr _smirnovcirrcrrrDs rFtest_smirnovcizTestCephes.test_smirnovcislF,,Qv/@/@3/GHMF,,Qv/@/@3/GHM**1RVV456rIcBttjddyr)rrBspencerDs rF test_spencezTestCephes.test_spencerrIcttjdddttjdddttjdddy)Nr^rrrrPgMoF?)rrBstdtrrrDs rF test_stdtrzTestCephes.test_stdtrsAV\\!A&s+FLL1-t4FLL1-~>rIc0tjddy)Nffffff?r^)rBstdtridfrDs rF test_stdtridfzTestCephes.test_stdtridfsArIc0tjddy)Nr^r+)rBstdtritrDs rF test_stdtritzTestCephes.test_stdtritsqrIcDttjdddyr)rrBstruverDs rF test_struvezTestCephes.test_struverrIcBttjddyr)rrBtandgrDs rF test_tandgzTestCephes.test_tandgr rIcDttjdddyr)rrBtklmbdarDs rF test_tklmbdazTestCephes.test_tklmbdasFNN1Q/4rIc.tjdyrz)rBy0rDs rFtest_y0zTestCephes.test_y0rrIc.tjdyrz)rBrQrDs rFtest_y1zTestCephes.test_y1rrIc0tjddyrz)rBynrDs rFtest_ynzTestCephes.test_ynrrIc0tjddyrz)rByvrDs rFtest_yvzTestCephes.test_yvrrIc0tjddyrz)rByverDs rFtest_yvezTestCephes.test_yverrIctddtddtddtddtdd tdd td d td dtddtddtddtddtddtddtddtddg}tddtdd td!d"td#d$td%d&td'd(td)d*td+d,td-d.td/dtd0d1td2d3td4d5td6d7td8d9td:d:g}ttj||d;<y)=Ng@g+п皙ٿrrrr rg"g"@g4׵/Yg8EGr?rgffffff@ig>@rg|Pk?rIr^irriigj@ļBg0"bgpتO#M?gMF>?g5- g`?g S+?g6U?gǗ ʿgjD{?/,Gg`0Gg!^?gnF5o{gI\Y?g7f8goC9 ?gyhgEbr?g {g. ?ga~gT-s?gɤ,P&?g|bgޗY3g!ؑ-@g i$bg hgy(V@^g һ>g>gx\hrArDrGrNrIrFr?r??sa2. 2*.G,/00/()()3000,--.7<221**2AL2N +0)0):*3)3 N& [[MNFOF($ $@ [[4546412+3=-2./ 1'('(111.)*''))*)20/.4,F&-00,2,,>, > , PG0.// 019  [[ I @  @  [[ I K  K  [[ I ;  ; 9" #:)!+ /!&!&1++" 0!4/#&!&-+. A+47 N5 7 +? -+5*9rIr?ceZdZdZdZdZdZejjddZ ejjddZ y) TestAiryctjd}t|tgddtjd}t|tgddtjd}t|tgddy)NGz?)g*?gTk'kPĿge+?gyCyt?r3g= ףp=?)g'$'?geοgL?g HVV?g ףp= ׿)gl@D|?gV~׭ͿgU?g3{ɔ?)r!rCrrr1s rFrGzTestAiry.test_airysw LL ! @ A  LL ! ? @  LL ! @ A  rIc ftjd}tjd}dgdz}tdD]"}||t dt dzz||<$tddD]5}||t t tdt dz z||<7t||dy)NrrNrPgN贁N{?rT) r!rKrCr|r rabsrr)rEabb1rls rFrLzTestAiry.test_airyes MM$  LL VAXq 6AaD\$t*455BqE 6q BAaDc$|DJ'>"?@@AABqE B!!Bq)rIctjd}tddgtddgtddgtdd gf}t||d tjd }t|d tgd dt|dtgddt|dtgddt|dtgddy)NrPglgoe2+ g(0[gX*JgUfݿg˰zU`?g4c1=C?gCuTrNrr)g&g(.2+ gRg}`g%́rIr^)g7;1[ge*JgVw gL g<3rS)g N ݿg3%IQ`?gZyΌ׿gʀ11^?g33tտr)gqM0=C?g7uTg\G`?gp⍞vg$. m?)r!bi_zerosrr)rEbibias rF test_bi_zeroszTestAiry.test_bi_zeross   a k:./k;/0k:./j+./1 ""S+   a !"Q%/C)DEG  H ""Q%/C)DEG  H ""Q%/C)DEG  H ""Q%/B)CDF  GrIc tjd}t|tdgtdgtdgtdgfdy)Nr^gcqg!xLgMSt$?g~:p?rN)r!ai_zerosrr)rEais rF test_ai_zeroszTestAiry.test_ai_zeros:sK   a !"e[M&:%*K=%9%*F8_%*F8_&678 9rIrctjd\}}}}tj|\}}}}tj|\}} }}dt|dzz } t|dz} t ||dt ||dt || z dddt | | z dddt |ddgd dt |ddgd dy) NPr^r5r`rWrrarT)guqgqHkZg4 g9Ζ%gB~gL ")gLgQO gMQnGg3 :g)}g )r!rerCr[r) rErMzpai_zpxaip_zxai_zaip_z_ai_zpaip_zp ai_envelope aip_envelopes rFtest_ai_zeros_bigzTestAiry.test_ai_zeros_bigAs ' 0 0 72vv#LLOeQ%ll2.vq!A& 2w  E2E2 [(!%a@|+QUC "1 :@E G 2A :@E GrIctjd\}}}}tj|\}}}}tj|\}}}} dt|dzz } t|dz} t ||dt ||dt || z dddt | | z dddt |ddgd dt |ddgd dy) Nrir^r5r`rWrrarT)gx&gg-2+ gRgg`gu%́g{  )gK;1[g*JgVw g"D0@ggaO;4@rN)r! ber_zerosrr)rErs rFtest_ber_zeroszTestKelvin.test_ber_zeross-"!#e-7'89:  ;rIc^tjd}t|tgddy)Nrg '@gs%@gF ^-@gvۅj3@gB7@rN)r! berp_zerosrr)rEbrps rFtest_berp_zeroszTestKelvin.test_berp_zeross-  #!#e-7'89:  ;rIc tjd}t|tjdtjddzztj dtj ddzztjdtjddzztjdtjddzzfdy)NrPrJr3) r!rrrrrrrrrr)rEmkelvs rFrzTestKelvin.test_kelvinsq!!%Q'++a.:K)K)0Q'++a.:K)K)0a7<<?2;M)M)0a7<<?2;M)M)OPQ RrIcHtjd}t|ddy)NrPg>ɿr)r!rr)rEmkeis rFrzTestKelvin.test_keis{{1~D!5a8rIcHtjd}t|ddy)NrPgr@d"?r)r!rr)rEmkeips rFrzTestKelvin.test_keiprrIcHtjd}t|ddy)NrPgܙ Ur)r!rr)rEmkers rFrzTestKelvin.test_kers{{1~D!6q9rIcHtjd}t|ddy)NrPg^.n3Jr)r!rr)rEmkerps rFrzTestKelvin.test_kerprrIc^tjd}t|tgddy)NrgE>Q@gB= @gPN)@gm91@g %5@rN)r! kei_zerosrr)rErs rFtest_kei_zeroszTestKelvin.test_kei_zeross-"!#e-8'9:;  rIctjd}|\}}}}}}}} t|tgddt|tgddt|tgddt|tgddt|tgddt|tgddt|tgd dt| tgd dy) NrrrNr)#?Q5U@q89 %@o l`.@gO0q3@rr)gum.@gݏ @gs{)@g䠄11@gN(D!5@gS@g89@@g^C'@g1ZG0@g+ڇ4@r)r! kelvin_zerosrr) rEtmpberzbeizkerzkeizberpzbeipzkerpzkeipzs rFtest_kelvin_zeroszTestKelvin.test_kelvin_zeross""1%693T$tE%e!$u.9(:;<  = "$u.9(:;<  = "$u.9(:;<  = "$u.9(:;<  = "%/:);<=  > "%/:); <=  > "%/:);<=  > "%/:);<=  >rIc^tjd}t|tgddy)Nr)rrrrgD;q3@rN)r! ker_zerosrr)rErs rFtest_ker_zeroszTestKelvin.test_ker_zeros s-"!#e-9':;<  =rIc^tjd}t|tgddy)NrrrN)r! kerp_zerosrr)rErs rFtest_kerp_zeroszTestKelvin.test_kerp_zerosrrIN)rOrPrQrrrrrrrrrrrrrrrrrrrUrIrFrrs_898::G;;R99::<>,>\=>rIrceZdZdZy) TestBernoullic^tjd}t|tgddy)Nr)rrg-!lV?rg镲 rrN)r! bernoullirr)rEbrns rFtest_bernoullizTestBernoulli.test_bernoullis-"!#e-5'6 78  9rIN)rOrPrQrrUrIrFrrs9rIrc"eZdZdZdZdZdZy)TestBetaz Test beta and betaln. cttjdddttjddtjdttjddddd tjd d }tjd tjd ztjd z }t||dy)Nr^r33333YN~h ?g 6. 8@rVrr?rPrNrTrW)rr!betarrj)rEbetbetgs rF test_betazTestBeta.test_beta+sW\\!Q'- VV4gmmF6KL VS13E" ,ll1a  a q!117==3CCT.rIchttjtjddy)NrSrP)rrcisinfr!rrDs rF test_beta_infzTestBeta.test_beta_inf5sb!,-.rIcttjdddttjddtjdttjddddd tjd d }t t tjd d }t||d y)Nr^rrrrgIs @r>rr?rPrNrVrW)rr!betalnrrpr r[r)rEbetlnrs rF test_betalnzTestBeta.test_betaln8sW^^Aq)3/vv6/ 1vs35G" ,q!$#gll1a()*s/rIN)rOrPrQ__doc__rrrrUrIrFrr&s// 0rIrc(eZdZdZdZej jdgddZej jdgddZ ej jdgd d Z ej jd e je je je jgej jd gd dZej jddej$fdej$fdej$fej&ej&dfej$fej&ej&dfej$fej&ej&dfej$fdddddddej&dfdfdej&dfdfdej&dfdfej&ddfdfej&ddfdfej&ddfdfdej&dfdfdej&dfdfdej&dfdfej&ddfdfej&ddfdfej&ddfdfgdZej jddej$fdej$fdej$fej&ej&dfej$fej&ej&dfej$fej&ej&dfej$fdddd d!d"dej&dfdfdej&dfdfdej&dfdfej&ddfdfej&ddfdfej&ddfdfdej&dfdfdej&dfdfdej&dfdfej&ddfdfej&ddfdfej&ddfdfgd#Zej jd$ej,ej.gd%Zy&)' TestBetaIncz? Tests for betainc, betaincinv, betaincc, betainccinv. cFtjgd}ttjdd||ttj dd||ttj dd|d|z ttjdd|d|z y)N)rr5r^r^)rcrrr!betainc betaincinvbetaincc betainccinvr1s rF test_a1_b1zTestBetaInc.test_a1_b1Isz HH\ "W__Q1-q1W''1a0!4W%%aA.A6W((Aq11q59rIz a, b, x, p))rPrNg@w?r)rg`e@r`g*?)rrg"Yx;r5)g`1?g ئAg\aY4g?)rNig-߇)?g;?ctj|||}t||dtj|||}t||dy)NrrWg-a=)r!rrrrEr\r]rr[p1x1s rFtest_betainc_betaincinvz#TestBetaInc.test_betainc_betaincinv`sB__Q1 %AE*   1a (AE*rI))@rr5g?)@g*@?g&?)?rg333333?gFoE?)r2@rRgg2$Z?)rrgZd;?g6)rrirg`<)0@rg?g)g?g7Ê@g/3J?Hz>ctj|||}t||dtj|||}t||dy)N+rW)r!rr)rEr\r]rLrefrs rFtest_betaincinv_tiny_yz"TestBetaInc.test_betaincinv_tiny_ys$2   q!Q '3U+rIfuncargs))r rPr)r]r)r]r333333ӿ)r]r皙?ctjd5tjtjd5tj |ddddddy#1swYxYw#1swYyxYw)Nraise)domainrmatch)r!errstaterRrSpecialFunctionErrorr)rEr r s rFtest_betainc_domain_errorsz&TestBetaInc.test_betainc_domain_errorssa   W - 'w;;8L '& ' ' ' ' ' ' 's"&A-A!A-!A* &A--A6z args,expected)rrr)rrr)rrrrrr)rrrr)rrrr)rrrr)rrrr)rrrr)rrrrc@tj|}t||yr)r!rrrEr rNobserveds rFtest_betainc_edge_casesz#TestBetaInc.test_betainc_edge_casess<??D)Xx(rI)rr)rr)rr)rr)rr)rrc@tj|}t||yr)r!rrrs rFtest_betaincc_edge_casesz$TestBetaInc.test_betaincc_edge_casess<##T*Xx(rIdtypectjdg|}tjdg|}tj|||}t ||dtj |j zy)Nrr#rrSrW)rcrr!rrreps)rEr#r\rrs rF test_gh21426zTestBetaInc.test_gh21426s[ HHbT ' HHcU% (##Aq!,RXXe_-@-@(@ArIN)rOrPrQrrrRrS parametrizerrr r!rrrrrrcrrr r"rrr'rUrIrFrrDsZ:. [[ 6 7+ 7+ [[\ < =+ =+  [[ 7,,& [[Vgoow7I7I&-&6&68K8K&MN [[V&IJ'JN'  [[ bff % bff % bff %ffbffc "BFF +ffbffc "BFF +ffbffc "BFF + " " " " " "2663  %2663  %2663  %ffc3  %ffc3  %ffc3  %2663  %2663  %2663  %ffc3  %ffc3  %ffc3  %1 :);:) [[ bff % bff % bff %ffbffc "BFF +ffbffc "BFF +ffbffc "BFF + " " " " " "2663  %2663  %2663  %ffc3  %ffc3  %ffc3  %2663  %2663  %2663  %ffc3  %ffc3  %ffc3  %1 :);:) [[Wrzz2::&>?B@BrIrceZdZdZdZdZejjdZ dZ dZ ejjdZ y) TestCombinatoricsc ttjddgddgddgttjdddttjddddttjdddd d tt d Dcgc]}tjd |dc}tjd t t d d t jtjdz}ttj||dz d|d}tjddd|k(sJycc}w)NrSrrN^@g@j@Texactx)r. repetitionrJrtrrbr^lhU7`S?Qr:2) rr!combrr|listrciinfor{max)rErmiirNs rF test_combzTestCombinatorics.test_combs b"X1v6t E R+T2W\\"at4c:W\\"atEsK%)LQb!48L ReBi9 GXXc]   "W\\"bd$7<1||C40H<<<MsEcd}d}tj|}tj|}tj||d}tj||d}||k(sJy)NFrZTr-)rcint64r!r4)rErlrmnp_nnp_kres_npres_pys rFtest_comb_with_np_int64z)TestCombinatorics.test_comb_with_np_int64sX  xx{xx{dD5a$/rIc`ttjddddttjddddttjddddttjddddttjgdgd gd y) NrPrTr-rrSFrPrSrPrSrrrSr)rrrr,)rr!r4rrDs rFtest_comb_zerosz!TestCombinatorics.test_comb_zerostW\\!Qd3Q7W\\"at4a8W\\!Rt4a8W\\!Ru5q9 ^]CEWXrIc(d}tjt|5tjddddddtjt|5tjddddddy#1swYFxYw#1swYyxYw) Nz `exact=True`rrrNTr-rg@)rRr ValueErrorr!r4)rEmsgs rFtest_comb_exact_non_int_errorz/TestCombinatorics.test_comb_exact_non_int_errorsr ]]:S 1 - LLat , - ]]:S 1 - LLCt , - - - - - -sA<B<BBcttjddgddgddgttjdddt tjddddy) NrSrrN@g@Tr-i)rr!permrrrDs rF test_permzTestCombinatorics.test_perm sO b"X1v6u FGLLQ/6W\\"at4c:rIc`ttjddddttjddddttjddddttjddddttjgdgd gd y) NrPrTr-rrSFrCrD)rrrrL)rr!rMrrDs rFtest_perm_zerosz!TestCombinatorics.test_perm_zeros%rFrIctjtd5tjddgddgddddtjtd 5tjd d ddddtjtd 5tjd d ddddtjtd 5tjddddddtjtd 5tjdd ddddy#1swYxYw#1swYxYw#1swYxYw#1swYjxYw#1swYyxYw)Nzscalar integersrr^rPrNrTr-z Non-integergffffff@rTgffffffrg333333@)rRrrHr!rMrDs rF test_perm_ivzTestCombinatorics.test_perm_iv,s]]:-> ? 5 LL!Q!Qt 4 5]]:] ; - LLat , - ]]:] ; . LLq - . ]]:] ; . LLD - . ]]:] ; / LLc . / / 5 5 - - . . . . / /s;D2D>E EE"2D;>E EE"E+N) rOrPrQr9rArErRrS thread_unsaferJrNrPrSrUrIrFr*r*sY = Y [[--; Y [[ / /rIr*cNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestTrigonometriccJtjd}d}t||y)Nr)r!rr)rEcbcbrls rFrzTestTrigonometric.test_cbrt=s \\" Bt$rIcLtjd}d}t||dy)Ngfffff;@g鎖C@r3)r!rr)rEcb1cbrl1s rF test_cbrtmorezTestTrigonometric.test_cbrtmoreBs!ll4 Ca(rIcltjd}ttdz }t ||dy)Nrrr3r!rr rr)rEcdgcdgrls rFrzTestTrigonometric.test_cosdgGs)mmBBsF Ca(rIcltjd}ttdz }t ||dyNrZrRr3r`)rEcdgmcdgmrls rFtest_cosdgmorez TestTrigonometric.test_cosdgmoreLs)}}R RVD*rIctjdtjdtjtdz f}tddz tddz ttdz dz f}t ||dy)NrrHrSr^r3)r!rrr r)rEcscsrls rFrzTestTrigonometric.test_cosm1QsammAw}}R0r"u1E FAqR3r"u:a<0!"T!,rIcrtjd}ttdz dz}t ||dy)NrZrRrSr3r!rr rr)rEctctrls rFrzTestTrigonometric.test_cotdgVs. ]]2 2c6{R BtA&rIcrtjd}ttdz dz}t ||dy)Nrr:rSr3rl)rEct1ctrl1s rFtest_cotdgmorez TestTrigonometric.test_cotdgmore[s.mmBBsF b!Ca(rIcDttjdddttjdddttjdddttjdddttjd ddttjd ddttjd ddttjd ddttjd ddttjdddttjdddttjdddttjdddy)Nrrr rriyii;i)rr!rrDs rFtest_specialpointsz$TestTrigonometric.test_specialpoints`sGMM"-sB7GMM#.b9GMM"-sB7GMM#.R8GMM#.b9GMM$/b9GMM#.R8GMM$/r:GMM#.R8GMM$/b9GMM#.b9GMM$/b9GMM#.R8rIcttjdgdttjddy)Nrr^rr)rr!sincrrDs rF test_sinczTestTrigonometric.test_sincos*7<<,a0W\\#&,rIcFtjd}t|dyr)r!r r)rEsns rFr zTestTrigonometric.test_sindgts ]]2 RrIctjd}ttdz }t ||dtjd}ttdz }t ||dy)NrZrRr3rr:)r!r r rr)rEsnmsnmrlsnm1snmrl1s rFtest_sindgmorez TestTrigonometric.test_sindgmorexPmmBBsF Ca(}}R RVD*rIN)rOrPrQrr^rrgrrrrr|rr rrUrIrFrVrV<s9% ) ) + - ' ) 9- +rIrVceZdZdZdZdZy) TestTandgcltjd}ttdz }t ||dyrdr!r5r rr)rEtntnrls rFr6zTestTandg.test_tandgs) ]]2 2c6{BtA&rIctjd}ttdz }t ||dtjd}ttdz }t ||dy)Nrr:r3r`rr)rEtnmtnmrltnm1tnmrl1s rFtest_tandgmorezTestTandg.test_tandgmorerrIcttjdddttjdddttjdddttjdddttjd ddttjd ddttjd ddttjd ddttjd ddttjdddttjdddy)Nrrrtrrrur rvrwr2iLrxryrzr{)rr!r5rDs rFr|zTestTandg.test_specialpointssGMM!,c26GMM"-sB7GMM#.b9GMM#.b9GMM$/b9GMM#.R8GMM$/b9GMM#.R8GMM$/r:GMM#.b9GMM$/b9rIN)rOrPrQr6rr|rUrIrFrrs' + :rIrcBeZdZdZdZdZdZdZdZdZ dZ d Z y ) TestEllipcLtjdtjy)zRegression test for #912.rN)r!r%rcrrDs rFtest_ellipj_nanzTestEllip.test_ellipj_nanssBFF#rIcztjdd}tdtdddg}t ||dy)Nr rr )r!r%r r r)rEelrels rFr&zTestEllip.test_ellipjs4 ^^C "3xCT*!"S,rIcVtjd}t|ddttjdt j ttjdtdz ttjt j dttjt jt jttjdt jttjdd y) Nr g;{yэ?rIrrrPrSgN?) r!r#rrr$rcrrrr)rEelks rFr(zTestEllip.test_ellipksnnR C 1"5W%%c*BFF3W%%c*BqD1W%%bff-s3W%%bff-rvv6W%%b)2662s+-?@rIcRtjtdz d}tjd}t ||ddtzdz }dtzdz }t |dz}tj||}t |ddt tjtdz d tdz t tjtdz d tjt tjtdz tj d t tjtdz tjtjt tjtdz dtjt tjd d d t tjtjd tjt tjtj d tj t tjtjtjtjt tjtjtj tjt tjtj tj tjt tjtj tjtjt tjtjd tjt tjtjtjtjttjd dddttjdddy)NrPr rrtr2rgfoKh?r3rrrrgt?r^rQr>rW6W&&rvvrvv6?W&&rvvw7@W&&w8"&&AW&&w7@W&&rvvs3RVV<W&&rvvrvv6?))*=qA3US))&#68KLrIcd}d}tj|d}g}tdD])}|j|tj|d}+t j ||}t |tj|ddt j |tz|}t |tj|ddy) N?Pag?rrSr^gV^8j?g,j6Ƅ@rP) rc nextafterr|appendr!r*r full_likerrEmbadrr7mvalsjrf1s rFtest_ellipkinc_2zTestEllip.test_ellipkinc_2s#  LLq !r #A LLO Q"A #   c5 )&q",,q:L*MqQ   sRx /&r2<<W&&r!tRVV4bff=W&&r!tQ/8W&&q#.4W&&rvvs3RVV<W&&w4rvvg>W&&rvvw7@W&&w8266'BW&&rvvrvv6?W&&w7@W&&rvvs3RVV<W&&rvvrvv6?))&#68JKrIcd}d}tj|d}g}tdD])}|j|tj|d}+t j ||}t |tj|ddt j |tz|}t |tj|dd y) NrrrrSr^g%?rPgXo @rN) rcrr|rr!r rrrrs rFtest_ellipeinc_2zTestEllip.test_ellipeinc_2s#  LLq !r #A LLO Q"A #   c5 )&q",,q:M*NPQR   sRx /&r2<<"C"$&&+"3"D "FG  o @FAs GSM+;A+> ? @rIc ttddddttddddz dtddtdk(sJtjtdddsJtjtddt ddsJtjtddt ddsJt tddtjtjj dz sJt tddt ddsJtgd gd gd gd gd gdg}tgd}t|D]\}}tt|||y)Nr^rrPrg`C+?rrrS)rrrrrr:rJrrrrJr)r?rJ)yrr)gfe_?gi+"?gP$M?ytgFU?7?@yR<8*y{62?z ) rr&rrcrrBrrrtinyrrrs rF test_elliprdzTestEllipCarlson.test_elliprdDsT1a(!,1a(3.0FGq!S!S(((xx1a()))xx1gam4555xx1gam4555WQBHHRZZ$8$=$=#=#CDEEEWQ72q>2333o%((,3 56 !"DE  o @FAs GSM+;A+> ? @rIc 6ttddddttddddtdtddk(sJtjtdddsJt tdddsJtt tdddk(sJt tddt t dsJtgdgdgd gd gd gd gd g}tgd}t|D]\}}tt|||y)Nr^rrPgPO?rrS)rrr)rJrr)rrrrrJrrr)rrJ?)geQO?ʞu5J?ryp\y?kg2ΰ?gHwд?y|pF ?-6Fj) rr'rrcrrrBrrrs rF test_elliprfzTestEllipCarlson.test_elliprf\s1a(!,1a(*@Aq#q!S(((xx1a()))WQ2&'''ws|Q*c111WQ7C4#34555o(%,%(1 34!"FG o @FAs GSM+;A+> ? @rIc ttddddttddddttddddtjtdtdsJtjtt tddsJt gdgdgdgdgdgd g}t tjd d d d dg}t|D]\}}tt|||y)Nr^rr)rrrrrr)rrrJ)rg8d`?r:gL+?g}^?y旮0?ʋW?yjN?^?g t?) rr(rcrrrBrrrrs rF test_elliprgzTestEllipCarlson.test_elliprgus1a(!,1a(#.1a(!,xx3*+++xx a3444'%(,.( *+ !"%%"1"2"D"D"1 "34  o @FAs GSM+;A+> ? @rIc ttdddddtddtddk(sJttddddsJttddddsJtdddtdk(sJt gdgdgdgdgd gd gd gd gd g }t gd}t |D]\}}tt|||y)Nr^rrrS)rrrr)rrr:r)rrr:r)rJrrr)rrr)rJrrr)rrry?)rrr:r)rrr:) g@?gviM?ym?\Isؿg'4 Ob?go0 ?yW7?xfOA?ybv㿘ܶ.gHQ?gjߡB7E)rr)rrrrrs rF test_elliprjzTestEllipCarlson.test_elliprjs1a+Q/q!S!$+++WQ1a()))WRAq)***q!Q$+++**0-62<++-.!"56 o @FAs GSM+;A+> ? @rIzInsufficient accuracy on 32-bitrDcpttdddddddttd d d d d ddy)Nggq>g`W:g HBg@ۘ?gRy|>rrr?g ,@gx=g@e:g`ݽ>g(HR)A)rr)rDs rFtest_elliprj_hardz"TestEllipCarlson.test_elliprj_hardsN 5 6 3 13;"  0  2 5 4 57<"  0rIN) rOrPrQrrrrrrrRrSrTrrUrIrFrr+sM@(@0@2@*@6 [[?@ 0A 0rIrc(eZdZdZdZdZdZdZy)"TestEllipLegendreCarlsonIdentitieszTest identities expressing the Legendre elliptic integrals in terms of Carlson's symmetric integrals. These identities can be found in the DLMF https://dlmf.nist.gov/19.25#i . cbtjddd|_ttj |_ddtdtj|j zddzz|_tj|j g|j|jf|_ y)Nr rrrrSr) rcrm_n1_1rrminmax_neglog2 very_neg_m concatenate ms_up_to_1rDs rF setup_classz.TestEllipLegendreCarlsonIdentities.setup_classsiiR. V}(( F2+-77DLL=+A,BCE+.%0!00..4<<.*.//*.++*78rIcb|j}tt|tdd|z dy)z5Test identity: K(m) = R_F(0, 1-m, 1) rrN)rrr#r'rEr7s rFtest_kz)TestEllipLegendreCarlsonIdentities.test_ks( OOq 72r!tR#89rIcttj}|dtdt j | zz}t t|td|dy)z\Test identity: K(m) = R_F(0, 1-m, 1) But with the ellipkm1 function rrrN) rrrrrcrrr$r')rErm1s rFtest_km1z+TestEllipLegendreCarlsonIdentities.test_km1sJ V}!! BrBGGDM>22 2 gb"b&9:rIc h|j}tt|dtdd|z dzy)z9Test identity: E(m) = 2*R_G(0, 1-k^2, 1) rrrN)rrr"r(rs rFtest_ez)TestEllipLegendreCarlsonIdentities.test_es- OOq 2gb"Q$&;#;@rN)r! erf_zerosrr)rEerzerzrs rFtest_erf_zeroszTestErf.test_erf_zeross/"-. "#d1-rIcLtjjd}d}|jd|d|j dd|zdz z}|jd|d|j dd|zdz z}|d|zz} tj d 5|| } ||j } tj| } | | } | | } tj| } | | } || }t|| | || t|| ||| dddy#1swYyxYw) NrYr\g{Gz?rPrr^rJignoreallr?) rcrirjparetorandintrrisfiniter:) rEr  other_funcrXrbrprlrrLrMrMw_realmasks rF_check_variant_funczTestErf._check_variant_funcsii##D)  JJtQ 1S[[Aq%9#9A#= > JJtQ 1S[[Aq%9#9A#= > 1H [[X & E1 A]''F;;q>D$A$A;;v&DD\F$A dAqt$ ? dFADt D E E Es A9DD#cL|jtjdddy)Nc2dtj|z SrzrBr.rMs rFz.TestErf.test_erfc_consistent.. sa&**Q-'rIrr>r?)rrBr4rDs rFtest_erfc_consistentzTestErf.test_erfc_consistents%   KK ' ! rIcJ|jtjddy)Nc^tj||ztj|zSr)rcr rBr4rs rFrz/TestErf.test_erfcx_consistent..sbffQqSkFKKN2rIrrW)rrBerfcxrDs rFtest_erfcx_consistentzTestErf.test_erfcx_consistents"   LL 2 ! rIcJ|jtjddy)Nc8dtjd|zzS)NrrJrrs rFrz.TestErf.test_erfi_consistent..scFJJr!t,,rIrrW)rrBerfirDs rFtest_erfi_consistentzTestErf.test_erfi_consistents"   KK , ! rIcJ|jtjddy)Ncttdz tj| |zzt j |zSr)rrrcr rBrrs rFrz/TestErf.test_dawsn_consistent.. s.d2hqj2661"Q$</&++a.@rIrrW)rrBrrDs rFtest_dawsn_consistentzTestErf.test_dawsn_consistents"   LL @ ! rIctjtj tjg}tjddg}tt j ||dy)NrSr^rrW)rcrrrr!r.rErwrNs rFtest_erf_nan_infzTestErf.test_erf_nan_inf$s@(FFB? D)8%@rIctjtj tjg}tjddg}tt j ||dy)NrPrrrW)rcrrrr!r4rs rFtest_erfc_nan_infzTestErf.test_erfc_nan_inf)s@(FFAq> T*H5ArIctjtj tjg}tjtjdg}tt j ||dy)NrrrW)rcrrrr!r rs rFtest_erfcx_nan_infzTestErf.test_erfcx_nan_inf.sE(FFBFFA& d+XEBrIctjtj tjg}tjtj tjg}tt j ||dy)NrrW)rcrrrr!rrs rFtest_erfi_nan_infzTestErf.test_erfi_nan_inf3sK(FFRVVGRVV, T*H5ArIctjtj tjg}tjddg}tt j ||dy)NrurrrW)rcrrrr!rrs rFtest_dawsn_nan_infzTestErf.test_dawsn_nan_inf8sA(FFD#& d+XEBrIctjtj tjg}tjtjdzzddg}tt j ||dy)NrJrArrW)rcrrrr!rLrs rFtest_wofz_nan_infzTestErf.test_wofz_nan_inf=sN(FFRVVc\)66: T*H5ArIN)r)rOrPrQr/rrr r rrrrrrrr!rUrIrFrrsJ/.E.A B C B C BrIrceZdZdZy) TestEulercRtjd}tjd}tjd}t|dgdt|ddgdt|gddtjd}gd}td d }t dd D]1}|dzrt || |d|z<t |||d|z<3t jd 5t||z |z }t|} dddt ddy#1swYxYw)Nrr^rPrrW)r^rrSr ) r^r^r=iiiYi=)i lQ~l10[l$8gC l2lv}Ju: )rdrrrrrt) r!eulerrrr|r}rcrrr7r) rEeu0eu1eu2eu24 mathworldcorrectrmerrerrmaxs rF test_eulerzTestEuler.test_eulerDsmmAmmAmmAaSu-aV%0Ze4}}R + c"q 3AA %il 33! $Yq\2!  3 [[X & d7lG34CXF  FC,  s *DD&N)rOrPrQr0rUrIrFr#r#Cs-rIr#c0eZdZdZdZdZdZdZdZy)TestExpcJtjd}d}t||y)NrPrN)r!r;rrEexexrls rFr<zTestExp.test_exp2]s \\!_RrIcLtjd}d}t||dy)Nrg;f@r3)r!r;rrEexmexmrls rF test_exp2morezTestExp.test_exp2morebs!ll3Ca(rIcJtjd}d}t||y)NrPr:)r!r7rr4s rFr8zTestExp.test_exp10gs ]]1 Bt$rIcLtjd}d}t||dy)NrgYs@r3)r!r7rr8s rFtest_exp10morezTestExp.test_exp10morels!mmC Ca(rIctjdtjdtjdf}tddz tddz tddz f}t||dy)NrPrrNr^r3r!r>r rr4s rFr?zTestExp.test_expm1qsYmmAw}}Q/ a0@ AAqQ#a&(+!"T!,rIctjdtjdtjdf}tddz tddz tddz f}t||dy)NrP@皙@r^r3r@)rEex1exrl1s rFtest_expm1morezTestExp.test_expm1morevsY}}Q c 27==3EFQ#c(1*SXaZ0!#eA.rIN) rOrPrQr<r;r8r>r?rFrUrIrFr2r2\s  ) % ) - /rIr2c4fd}d}t|t|usJdt|dt|t|tjrc|j|jk(sJ|||t |j |j D]\}}t||ytj|r?tj|r*tt|dr||xr ||yy|||y)a Sharper assertion function that is stricter about matching types, not just values This is useful/necessary in some cases: * dtypes for arrays that have the same _values_ (e.g. element 1.0 vs 1) * distinguishing complex from real NaN * result types for scalars We still want to be able to allow a relative tolerance for the values though. The main logic comparison logic is handled by the xp_assert_* functions. c@ t||yt||y)NrW)r4r3)rrLrXs rF assert_funcz(assert_really_equal..assert_funcs!%1?1ad3SrIctj|jrtj|jsJyr)rcrrrKrs rFassert_complex_nanz/assert_really_equal..assert_complex_nans*xxBHHQVV$444$4rIztypes not equal: z, rWr#N) type isinstancercndarrayr#ziprhassert_really_equalrr8)rrLrXrIrLelem_xelem_ys ` rFrQrQ|sT5 7d1g G!247)2d1gYGG !RZZ ww!''!!!Aq!!'')QWWY7 ;NFF T : ; !!d1gs)C17"4Q"77 AqrIc:eZdZdZej j dgddZej j dgdej j ddd gd Zej j ddd gd Z ej j dgd d Z ej j dddgej j dgddZ ej j ddd gej j dddgej j de je jde je jdzze jde j e j dze j e j dzde j"dg gdej j dej&ej(ej*gdZej j ddd e jd!gd"Zej j d#ed$d%ej j ddd gd&Zej j ddd gej j d'dee j6e j8e j:e j<e j>e j@e jBe jDg ej j d(edd%d)Z#ej j ddd gej j d*ed$d%d+Z$ej jKd%ej j d'e j>e j@e jBe jDgej j dgdd,Z&ej j ded-d.d/d0Z'ej j de(edd1e(ed-d.d/zd2Z)d3Z*d4Z+ej j d'e j<e je je,gej j dddgej j ddd gej j d(edd%ej j d5gd$gd ge jge je jdzzge jd$gggd6d7Z-ej j dddgej j ddd gej j dd$d d8e je je jdzzdggd9d:Z.ej j ded-d.d;d<Z/ej j de(edd1e(ed-d.d;zd=Z0d>Z1ej j d'e j<e je je,gej j dddgej j ddd gej j d(edd%ej j d5gd$gd ge jge je jdzzge jd$gggd6d?Z2ej j dddgej j ddd gej j dd$d d8e je je jdzzdggd9d@Z3ej j dAed$d%ej j dedBdCdDdEZ4ej j dAe(ed$d%d/dCgzej j de(edd1e(ed1dFd;zdGZ5dHZ6ej j d'e j<e je je,gej j dddgej j ddd gej j d(edd%ej j d5gd$gd ge jge je jdzzge jd$gggd6dIZ7ej j dddgej j ddd gej j dAed$d%ej j dd$d d8e je je jdzzdggd9dJZ8ej j ddd gej j dgdej j dAdKdLddMdd e jgdNZ9ej j ddd gej j dgdej j dAd!e j"dgd!dOgdPZ:ej j dgdej j dAed$dQdRZ;dSZ>PQRSPSVWPWAXXbjjA&&&rIz exact,extend))TrX)FrX)FrBc||d}tjtjdi|sJtjtjdi|sJtjtj dddi|sJy)Nr.r]rmrr^)rcisscalarr! factorial factorial2rY)rEr.r]kws rF"test_factorialx_scalar_return_typez9TestFactorialFunctions.test_factorialx_scalar_return_typess /{{7,,5"5666{{7--626777{{7--;1;;<<TestFactorialFunctions.test_factorialx_negative_extend_complexs& "-..0.-.0/--/))!2r2E!H4H**133U1XDI**188R8%(N))1#44Q7qM**A35"5a8%(N**A3:!:r:1=uQxdSrIrKrrAn_outercJddifd}|||z|d|z|zy)Nr]rBc tt|d}tjd}|rtjdntjd}t t j|fi|t t j|dzfi|t t j|dzfddi|d}t t j||zfd|i|t t j|gfid|t t j|dzgfid|t t j|dzgfddid|t t j||zgfd|id|y) Nr#nan+nanjrrPrrmy?r) r8rMrc complex128rrQr!rdrerY)rl complexify complex_nanr r#rfs rF_checkzTTestFactorialFunctions.test_factorialx_negative_extend_complex_poles.._checksY%d1gs3J-- 3K/9"-- +rzz%?PC  1 1! :r :C @  2 21q5 ?B ? E  2 21q5 DA D Dc JA  2 21q5 DA D Dk R  1 11# < C  Clevelsr^rcdfd fd}tjddg}dtjdgdt j dd gd t j dd d gd }|t j|| |d|t j || |d|t j |d | |d y)Nr^c.|dk(r|S||g|dz S)z Double x and nest it k times For example: >>> _nest_me([3, 4], 2) [[[3, 4], [3, 4]], [[3, 4], [3, 4]]] rr^rUrrm_nest_mes rFrzDTestFactorialFunctions.test_factorialx_array_shape.._nest_me3 s&AvA!,,rIctj|t}t|j tj |jtj y)Nrmr%)rcrobjectrr r)resnucleusr rrs rFr}zBTestFactorialFunctions.test_factorialx_array_shape.._check@ sB((8Gv6fEC CJJrzz2JCJJrzz4J KrIrrrr/rTr-rSrrrPrb)rcrmathrdr!rerY)rErr.r}rl exp_nucleusrs ` @rFtest_factorialx_array_shapez2TestFactorialFunctions.test_factorialx_array_shape0 s - L HHXq"g0 1r 23w11"DABw11"atDEG w  %0+a.Aw!!!51;q>Bw!!!Qe4k!nErIr#dimctjd||}dddd}ttj||tj|d| ttj ||tj|d | ttj |d |tj|d | y) Nr)r#ndminr/rrSrr-r^rrPr)rcrrr!rdrerY)rErr#r.rlr s rFtest_factorialx_array_dimensionz6TestFactorialFunctions.test_factorialx_array_dimensionP s HHQe3 /"$))!59Qs3 5**1E:Qs3 5**1au=Qs3 5rIlevelcd fd dg|dz }dddd}|rtnt}|tj|| t j |d| |tj || t j |d | |tj|d | t j |d | y)Nr^c,|dk(r|S|g|dz Sr$rUrs rFrzCTestFactorialFunctions.test_factorialx_array_like.._nest_mec s"AvQqS))rIrrr/rrSrr-rrPrrb)rrr!rdrcrrerY)rErr.rlrrIrs @rFtest_factorialx_array_likez1TestFactorialFunctions.test_factorialx_array_like` s * aSE!G $", ,1( G%%au5HH[^59 ;G&&q6HH[^59 ;G&&q!59HH[^59 ;rIc^||d|rtntfd}fd}||d||d|tjd||tjddg||tj|j }|tj k(r|rytjjtjdk\rS|||dz |tj|dz ||tj|dz g|yy|tjtjfvs|sQ||dz |tj|dz ||tj|dz |dz g|yy) Nract|tjr|jtjntj|}t j |fit j |fit j|fit j|fit j|fddit j|fddiy)Nrmr) rNrcrOr r<r!rdrerY)rln_refrIrfs rFr}z;TestFactorialFunctions.test_factorialx_uint.._check{ s*4Q *CAHHRXX&RSE ))!2r2G4E4Ee4Rr4R S **133W5G5G5TQS5T U **188R8**5rIc*t5}|jt|dz }dddtj|fitj |fi|tj |fddi|y#1swYcxYw)Nrrmr)r r!r"r!rdrerY)rlr$ shaped_infrIrfs rF _check_infz?TestFactorialFunctions.test_factorialx_uint.._check_inf s"$ # >*U  # ))!2r2J ? **133Z @ **188R8* E  # #s B  Brr^r%z2.0.0rP) rrrcrr6r7uint64lib NumpyVersion __version__uint8uint16) rEr.r]r#r}rNrIrfs @@rFtest_factorialx_uintz+TestFactorialFunctions.test_factorialx_uints sT  /,1(  >  F uQxuQxrxx'(rxxAe,- "((5/%% & BII $$R^^4?51:&288AaCu56288QqSE78 @ rxx+ +5 1Q3K 288AaCu- . 288QqS!A#Je4 5 49rIrZr2rScNtjdk(rdnd}ttt j |dt j |d|tt j |gdj tt j |gd|y)Nr<t0=rTr-FrW)sysplatformrr}r!rdr rErlrXs rFtest_factorial_accuracyz.TestFactorialFunctions.test_factorial_accuracy s~  /uUg//>?))!59 F))1#T:AA%H))1#U;$ HrIc,tj|}t|tj|dt|tj|gddtj dk(rdnd}t |}t|tj|d|t|tj|gdd|dd d }t|tj|fi||t|tj|gfi|d|y) NTr-rr<+6=rFrWrBra)rrdrr!rrr}rrErlr-rXrfs rFtest_factorial_int_referencez3TestFactorialFunctions.test_factorial_int_reference s..#7G$5$5at$DE7G$5$5qc$Fq$IJ /uU.!2!21E!BN!2!2A3e!DQ!GdS 2!2!21!;!;$G!2!2A3!="!=a!@tLrIcd}|dd|dd|dd|dd |d d |d d |dd|dd|ddy)Nctjdk(rdnd}ttj|||ttj|gd||t j td5tj|d dddt j td5tj|gd dddy#1swYFxYw#1swYyxYw) Nr<rrrWr`exact=True` only supports.*rTr-)rrrr!rdrRrrH)rlrNrXs rFr}zETestFactorialFunctions.test_factorial_float_reference.._check sLLG35D G--a0( F G--qc215xd Kz1OP 1!!!40 1z1OP 3!!1#T2 3 3 1 1 3 3s9C4C"C"C+rgr?g(\?gc?g333333@g4s@g333333&@gމOAfffff@@g ²GgK@gC$JOglS@g}WgX@gX>%`g\CSe@gG =rUrEr}s rFtest_factorial_float_referencez5TestFactorialFunctions.test_factorial_float_reference sl 3 t23t23t23t23t67t67t78t78x78rIcnd}|dd|dd|dd|d d |d d y) Nctjdk(rdnd}ddd}ttj|fi|||ttj|gfi|d||y) Nr<rqV瞯._check s]LLG35D I6B G--a626t L G--qc8R8;XD QrIrgkﴑ[?rNykﴑ[?@@yB} ۿ?gH.gK !@y-C6?yI{xQrUrs rF test_factorial_complex_referencez7TestFactorialFunctions.test_factorial_complex_reference sA R t34y#=>v QRw!56|&STrIcontent)z[]z[1]z[1.1]z[NaN]z [NaN+i*NaN]z[NaN, 1]c:|turtrtjd|tj ur't d|Drtjd|tjk(r't d|Drtjd||d}|dkDst|dk7r|n|d}t j|||}d}|d k(r>|rzKTestFactorialFunctions.test_factorial_array_corner_cases.. ($SaRXXa[%AQ#a&[%A$S/1impossible combinationc3FK|]}tt|dywr#Nr8rMrs rFrzKTestFactorialFunctions.test_factorial_array_corner_cases.. &Sa|DGS'A&S!rarr^rr#rBIncompatible options:.*rrrr#rrrrrW)rr5rRskiprcr<anyrlenrrrHr!rdr8r#rhrrzrmrQ rErrr.r]r#rfrlrrrcxrNs rF!test_factorial_array_corner_casesz8TestFactorialFunctions.test_factorial_array_corner_cases s F? KKE F BHH $S7$S!S KK0 1 BJJ 3&S7&S#S KK0 1 /!AgW):' HHWCu 5 Y 5z1JK +!!!*r* + +agg7z1JK +!!!*r* + + !''3 'Fi,?z1PQ +!!!*r* + + <5z1OP +!!!*r* + +&&q/B/F  78wwyA!7$$Q-"-ACAHM#a&sCvv )I|AGGS/I)+ *2::xx3er}}Z0BJJuDUH  1 1! :r :H E |DGS1z1OP +!!!*r* + + **133W]]1q55I J# + + + + + + + +s/HHH,H'H HH$'H0rIcNtjdk(rdnd}ttt j |dt j |d|tt j |gdj tt j |gd|y)Nr<+=rTr-FrW)rrrr}r!rer rs rFtest_factorial2_accuracyz/TestFactorialFunctions.test_factorial2_accuracy: s~  /uUg00$?@**1E: G**A3d;BB5I**A3e<4 IrIc tjtjt t |ddd}t |tj|dt |tj|gddtjdk(rdnd}t|}t|tj|d | t|tj|gd d| d d d }|d zdk(rIt|tj|fi|| t|tj|gfi|d| yy)Nrrr^Tr-r<rrFrWrBrarP) functoolsreduceoperatormulr5r|rr!rerrr}rrs rFtest_factorial2_int_referencez4TestFactorialFunctions.test_factorial2_int_referenceF s  ""8<<eAq"o1FJ7G$6$6q$EF7G$6$6s$$G$JK /uU.!3!3AU!C$O!3!3QCu!Ea!HtT 2 q5A: GW%7%7%@R%@t L GW%7%7%Br%B1%ED Q rIcd}|dd|dtjdtjdtjz z|dtjdtjdtjz z|dd|d d |d d |d d|ddy)Ncd}ddd}ttj|fi|||ttj|gfi|d||y)NrFrBrarWr)rr!rers rFr}zHTestFactorialFunctions.test_factorial2_complex_reference.._check` sPD I6B G..q7B7 M G..s9b9!?v OPw!67|&UVrIc:|tjk(r'td|Drtjd|tj k(r'td|Drtjd||d}|dkDst |dk7r|n|d}tj|||}d}|dk(r=|r;tjtd 5tj|fi|dddnt|jgd s;tjtd 5tj|fi|dddnnt|jd dgr@|dk7r;tjtd 5tj|fi|dddntj|fi|}||jD cgc]} tj| fi|} } t | dk(r| dn| } |jrG|dk(xrt|jd} | rtj n|rt"ntj }tj| ||} t%|| dyy#1swYxYw#1swYxYw#1swYxYwcc} w)Nc3fK|])}tj|xs|t|k7+ywrrrs rFrzLTestFactorialFunctions.test_factorial2_array_corner_cases.. rrrc3FK|]}tt|dywrrrs rFrzLTestFactorialFunctions.test_factorial2_array_corner_cases.. rrrarr^rrBrrrrrr#rrrW)rcr<rrRrrrrrrHr!rer8r#rhrrzrmrQrs rF"test_factorial2_array_corner_casesz9TestFactorialFunctions.test_factorial2_array_corner_casess s- BHH $S7$S!S KK0 1 BJJ 3&S7&S#S KK0 1 /!AgW):' HHWCu 5 Y 5z1JK ,""1++ , ,agg7z1JK ,""1++ , , !''C: .6Y3Fz1PQ ,""1++ , ,''0R0F  89 B17%%a.2.BCBHM#a&sCvv )I|AGGS/I)+ *2::xx3er}}Z0BJJuDUH  2 21 ; ;X F*t**188R8H  2 21 ; ;XE R , , , , , ,s#F4GG 4F=G  Grmrrtic Vtjdk(rdnd}ttt j ||dt j ||d|tt j |g|dj tt j |g|d|y)Nr<rrTrWFrW)rrrr}r!rYr )rErlrmrXs rFtest_factorialk_accuracyz/TestFactorialFunctions.test_factorialk_accuracy s /uUg00atDE**1?d L**A3!4@GGN**A3!5A NrIr:c tjtjt t |d| d}t |tj||dt |tj|g|ddtjdk(rdnd}t|}t|tj||d| t|tj|g|dd| |dd d }||zdk(rKd }t|tj|fi|| t|tj|gfi|d| yy) Nrr^Tr-r<gt =r>FrWrBrr) rrrrr5r|rr!rYrrr}r)rErlrmr-rXrfs rFtest_factorialk_int_referencez4TestFactorialFunctions.test_factorialk_int_reference s""8<<eAq1"o1FJ7G$6$6q!4$HI7G$6$6sAT$J1$MN /uU.!3!3Aq!FTR!3!3QC%!H!KRVWu : q5A:D GW%7%7%@R%@t L GW%7%7%Br%B1%ED Q rIc d}|ddtjddd|ddd|d dd |dd d |d d d|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd |d!dd"y)#Ncd}|ddd}ttj|fi|||ttj|gfi|d||y)Nr>FrBrrWr)rr!rY)rlrmr rXrfs rFr}zHTestFactorialFunctions.test_factorialk_complex_reference.._check sRD5I>B G..q7B74 H G..s9b9!. rrrc3FK|]}tt|dywrrrs rFrzLTestFactorialFunctions.test_factorialk_array_corner_cases.. rrrrrr^rrBrrrrrr#rrrW)rcr<rrRrrrrrrHr!rYr8r#rhrrzrmrQrs rF"test_factorialk_array_corner_casesz9TestFactorialFunctions.test_factorialk_array_corner_cases s/ BHH $S7$S!S KK0 1 BJJ 3&S7&S#S KK0 1u 7!AgW):' HHWCu 5 Y 5z1JK ,""1++ , ,agg7z1JK ,""1++ , , !''C: .6Y3Fz1PQ ,""1++ , ,''0R0F  89 B17%%a.2.BCBHM#a&sCvv )I|AGGS/I)+ *2::xx3eJ  Jc |||d}|dk(r=|r;tjtd5tj|fi|dddyt t |dddt dgs;tjtd5tj|fi|dddyt t |ddgr@|dk7r;tjtd 5tj|fi|dddy|tj|ri|dk(xrt t |d}|rtjd ntjd }ttj|fi||y|j|fi|}ttj|fi||d y#1swYyxYw#1swYyxYw#1swYyxYw)NrrBrrrrr#rrryrrrW) rRrrHr!rYr8rMrcrrzrrQr_)rErlrmr.r]rfr{rNs rF#test_factorialk_scalar_corner_casesz:TestFactorialFunctions.test_factorialk_scalar_corner_cases5 s u 7 Y 5z1JK ,""1++ , ,d1gS#tDz'BCz1JK ,""1++ , , $q'C: .6Y3Fz1PQ ,""1++ , , Y"((1+ I-M<Q3MJ4>r}}Z0BJJuDUH  2 21 ; ;X F*t**133H  2 21 ; ;XE R , , , , , ,s#F3F?G 3F<?G GrSr rc|rdgnd}|||d}|dk(rYd}tt|dr|dkrd}tjt|5t j |fi|dddy|dk(r;tjtd 5t j |fi|dddyt j |fi|y#1swYyxYw#1swYyxYw) Nr^rrXrrzFor `extend='zero'`.*rrzParameter k cannot be zero!)r8rMrRrrHr!rY)rErmr.r]rrlrfrIs rF test_factorialk_raises_k_complexz7TestFactorialFunctions.test_factorialk_raises_k_complexN s QCau 7 V 1CDGS)q1u-z5 ,""1++ , , !Vz1NO ,""1++ , ,   q 'B ' , , , ,s C CC Crc|rdgnd}|||d}tjtd5tj|fi|dddy#1swYyxYw)Nr^rrr)rRrrHr!rY)rErmr.r]rrlrfs rFtest_factorialk_raises_k_otherz5TestFactorialFunctions.test_factorialk_raises_k_otherb sRQCau 7 ]]:-F G (   q 'B ' ( ( (s A  Ar4cZ|||d}|r|tjvrtjt|g}t t j|fi|jtt t j|dzfi|jtjt j|dzfi|tjtjjkDsJtjt|g}t t j|fi|jtjt t j|dzfi|jtt j|dzfi|tjtjjkDsJytjtj|dg}|rtntj }t t j|fi|j|y)Nrr^)r6keysrcrr7rr!rYr#r1r<r6int32r7rgetr)rErmr.r]rfrlr#s rFtest_factorialk_dtypez,TestFactorialFunctions.test_factorialk_dtypen su 7 Q388::3A678A ++A44::G D ++AE8R8>> I%%a!e2r2RXXbhh5G5K5KK KK3A678A ++A44::BHH E ++AE8R8>> G%%a!e2r2RXXbhh5G5K5KK KK3771=>?A$FE ++A44::E BrIctjtjdddtjg}tjtjdddtjg}tt j |d|t jtd5t j |d dddy#1swYyxYw) Nr^rPrrTFr-rrT) rcrrrr!rdrRrrHrErrNs rFtest_factorial_mixed_nan_inputsz6TestFactorialFunctions.test_factorial_mixed_nan_inputs s HHbffaArvv. /88RVVQ1bff56W&&q6A ]]:-K L -   at , - - -s )C  C)=rOrPrQr_rRrSr(rgrjrnrur~rcrrrzr datetime64r!rdrerYrrr|rr{int8int16rr<rruint32rrrrrrr5rrrrrrrrrrrrrrrr r r rrrUrIrFrUrUs ' [[^RT=T=  [[S,/ [[WtUm4:50:  [[WtUm4S5S [[S"45T6T& [[VaW- [[Y 5)6.)4 [[WtUm4 [[X ':; [[ FFJBJJu%rvvr '9=2==;T FFBFFRK"&&266'B,mbmmE>R    [[   G..0B0BC2  <5"2B [[X3'ABBCB [[XuQ{3 [[WtUm4F54F< [[WtUm4 [[W c277BHHbhh "))RYY ' [[UE!QK051 5 5 [[WtUm4 [[WeAqk2;35;" [[1 [[WrxxBIIryy&QR [[^RT)6TS)6X [[S%C"45 H6 H [[S!%2,/$uRb7I2JJLMLM"9.U  [[Wrxx')}}f'>? [[X ':; [[WtUm4 [[UE!QK0 [[ aS3%"&&BFFRVVb[$8#9BFFA;G F )> 15<?)>V [[X ':; [[WtUm4 [[S1c6266266BFF2I;Mt"T!QSKS5<K. [[S%C"45 I6 I [[S!%2,/$uRb7I2JJLRLR,W* [[Wrxx')}}f'>? [[X ':; [[WtUm4 [[UE!QK0 [[ aS3%"&&BFFRVVb[$8#9BFFA;G F $> 15<?$>L [[X ':; [[WtUm4 [[S1c6266266BFF2I;Mt"T!QSSS5<S( [[S%1+. [[S%R"56 N7/ N [[S$uQ{"3r2h">? [[S!%2,/$uRb7I2JJLRL@R0X< [[Wrxx')}}f'>? [[X ':; [[WtUm4 [[UE!QK0 [[ aS3%"&&BFFRVVb[$8#9BFFA;G F $> 15<?$>L [[X ':; [[WtUm4 [[S%1+. [[S1c6266266BFF2I;Mt"T!QSSS/5< S( [[WtUm4 [[^RT [[S2tQVS"&&"IJ(KT5(  [[WtUm4 [[^RT [[S8]R]]5-A"B"*E!24(4T5 (  [[^RT [[S%2,/C0TC(-rIrUceZdZejj ddddddddd d ejd d fej d d fg d ZdZ dZ dZ y) TestFresnelzz, s, c)rgN?ց[?)y?rr)y?yn<ӿj "#"'):#;<=  > $Q'$Q'!%"-!%"-rIcxtjd\}}tjd}t||dy)NrTr4)r!r$fresnelc_zerosr)rEr%r&frcs rFtest_fresnelc_zeroszTestFresnel.test_fresnelc_zeros 2((+S$$Q'!#c"-rIcxtjd\}}tjd}t||dy)Nrr4)r!r$fresnels_zerosr)rEr%r&r!s rFtest_fresnels_zeroszTestFresnel.test_fresnels_zeros r.rIN) rOrPrQrRrSr(rcrr"r)r-r1rUrIrFrr sx [[Y7=    &,)/* c &&$;)>9?>9 .&. .rIrc eZdZdZdZdZedZedZdZ dZ e jjdej ejgej ejgfd d gej ejgfed d ej$d ej fedd dej$dej fdgej gfgdZy) TestGammacFtjd}t|dyrh)r!rjr)rEgams rFrkzTestGamma.test_gamma smmASrIctjd}ttjd}t ||dy)Nrr3)r!rpr rjr)rEgamlnlngams rFrqzTestGamma.test_gammaln s/"GMM!$%E%*rIcvtjdd}tjdd}t||dy)Nrr3)r!rm gammaincinvr)rEgccinvgcinvs rFrnzTestGamma.test_gammainccinv s2%%b,##Br*F5+rIcNtjdd}tjd|}t|ddtjdd}tjdd}td|dt|ddtjdd}td |dy) NrQr^rSg?g` \;rr3gmby) Nr5rgCs?r^g^F?rQrrW)rcrr!r:r>r)rEptsptrLrs rFtest_975zTestGamma.test_975 so ||D!$l||D!$l4 /B##B+A  a(A Ar . /rIcxtjd}dtjdz }t||dy)Nr3r^)r!rrjr)rErgamrlgams rFrzTestGamma.test_rgamma s/~~a '--""Dq)rIcBttjddy)NrSr)rr!rrDs rF test_infinityzTestGamma.test_infinity sW^^B'+rIz x,expectedrurir icrIgP²ZdbcBttj||yr)rr!rjrs rF test_poleszTestGamma.test_poles s 7==+X6rIN)rOrPrQrkrqrnr9r@rDrrIrRrSr(rcrrr|fullrMrUrIrFr3r3 s+ ,  1 1 / /* , [[vvgrvv  0 1C[BFF7BFF+ , 3]GBGGB/ 0 5#r "GBGGB$7 8$ %x 0 77rIr3cBeZdZdZdZdZdZdZdZdZ dZ d Z y ) TestHankelcpttjddtjdd dyNrhrPrrt)rr!rrDs rF test_negv1zTestHankel.test_negv1 'GOOBq1GOOAa4H3H"MrIctjdd}tjddtjdddzz}t ||dyNr^rGrJr3)r!rrrCr)rEhank1hankrls rFrzTestHankel.test_hankel1 sC"%**Qr"WZZ"%5b%88E&+rIcpttjddtjdd dyrR)rr!rrDs rF test_negv1ezTestHankel.test_negv1e +G,,R2W5E5Ea5J4JBOrIctjdd}tjddtdz}t ||dy)Nr^rGyr3)r!rrr r)rEhank1ehankrles rFrzTestHankel.test_hankel1e! s9!!!B'//!B'D 1F71-rIcpttjddtjdd dyrR)rr!rrDs rF test_negv2zTestHankel.test_negv2& rTrIctjdd}tjddtjdddzz }t ||dyrV)r!rrrCr)rEhank2hankrl2s rFrzTestHankel.test_hankel2) sC"%::a#gjj2&6r&99E'!,rIcpttjddtjdd dyrR)rr!rrDs rF test_neg2ezTestHankel.test_neg2e. r[rIcvtjdd}tjdd}t||dy)Nr^rGr3)r!rr)rEhank2ehankrl2es rF test_hankl2ezTestHankel.test_hankl2e1 s2!!!B'##Ab)F8A.rIctjdd}tj|jsJtj |j sJyrA)r!rrcrrisposinfrKrErs rFtest_hankel2_gh4517zTestHankel.test_hankel2_gh45176 s>ooa#xx!!!{{388$$$rIN) rOrPrQrSrrZrr`rrerirmrUrIrFrPrP s3N, P. N- P/ %rIrPcHeZdZdZdZdZdZdZdZdZ dZ d Z d Z y ) TestHyperctjdd}tjddtjdddzz}t ||dyrV)r!h1vpjvpyvpr)rEh1h1reals rF test_h1vpzTestHyper.test_h1vp> C \\!B ++a#gkk!B&7&::Bva(rIctjdd}tjddtjdddzz }t ||dyrV)r!h2vprrrsr)rEh2h2reals rF test_h2vpzTestHyper.test_h2vpC rwrIcttjddddttjddddtjd gd }tjgd }t||dtjd tjgd d z}t||j t dgd }gd}tj||}gd}t||dtjtj|gdz|}t|tj|gdzdtttjtj|gdzddgy)NrrQvo?rrWrrrr)grSrr^r])g̷?g3|t-Ք?rgo ?g{h?rArr]r)rr^r)rgc?r~rPrr^) rr!hyp0f1rcrr rBvstack assert_raisesrH)rErrNrx2s rF test_hyp0f1zTestHyper.test_hyp0f1H s*sC02BOsA.%@ NN3 5 688AB8%0 NN3)> ?# E F8??73%@  NN2r ">8%0 NN299bTAX. 3299hZ!^45Aj'..iiq)Aq6 3rIcHtjdd}t|dy)N皙?y??y;EG?uM?)r!rrrls rFtest_hyp0f1_gh5764zTestHyper.test_hyp0f1_gh5764b snnS,/C!LMrIctjddd}t|ddtggdgdgdgdgd gd gd gd gd gdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd gd!gd"gd#gd$gd%gd&gd'gd(gd)gd*gd+gd,gd-gd.gd/gd0gd1gd2gd3gd4gd5gd6gd7gd8gd9gd:gd;gd<gd=gd>gd?gd@gdAgdBgdCgdDgdEgdFgdGgdHgdIgdJgdKgdLgdMgdNgdOgdPgdQgdRgdSgdTgdUgdVgdWgdXgdYgdZgd[gd\gd]gd^gd_gd`gdagdbgdcgddgdegdfgdggdh}|D];\}}}}tj|||}t t ||z |z dik=y)jNrGrHg?rR)g{*= g˱a)g5 =gvX@)g)AI@gDAhg$Pj)g~٭@)g,qUp,g@=&?g X3@gZ@)g\@g88*@g\ֳ!=@gƞA)gAZ ;gOFA'gxŝOB)g kx-gD8L+8@g܈2g72LU@)gtd@Q4h6@g%@}gr3b @gu߯ѡ)g򋷺?g"p$`E2@gY|T 3g\D?)gV-(+@g$[3@g;/@gEQwв@)g[fgLL4gQV@g0#.@)g;@g/?jvgx.8gV@'g ʦ)g/H:gn@S g)bǙ9@g9)gT쁹3!gD gkLFr%@g3333`4A)g:k g\=)'gi,k9gbx?)giXwg-CwU5@g'jin9gX5@)gb @gTy4#/@g]pH=gIw?)g63@g2XxM:@g~?^0gW1?)g37g R{ @gicx.4?gmm?)gv܏%7@g9Ma%=g}ygGr##@)gG8-xы.@gǂ@ghb(@gA)gw1@gq2@gO],@g0ɷ-X@)g2@ǵy#<@gͣx?g]?)g];˄f$@g1}0g_9g8ڃ@)g:!ω1g)q(@gg2gv%)A)gYN:+gn Ȱ-?g>gZd|I.A)gr/K@g\}L9@g*gΙ?)gQq5V@g?)@g' @0@glۭ`@)gVn:gRQ0gT&gQC)gR4 8gi+gK @g{G)gtiq+g(O?3g 1=@g8cB)g|>oϘg\!<@g"?4V?g%c\q?)g gpfP!gAO:@g,\)g=R8@g%;gz3@g~0G)g.CVl@ge<.@g 9@gkq1A)g=~$gpR7@g77g,dž@)g^g{)gRA2@gdL)gf=4,R@gyO-g#ޕ~8@g)g|ݩ%P4g:<9@gKzs4g$(~O4@)g2y3@g1$6g&TpxA6gG!JA)gf^XH ^;@g7 r:@g`,/@gi{dA)gihx@g!B8(@g7j*@gh@)glmF)g Q4@g=}gȮ5@g]nhgF)gV9g9gf9,#gF|}fv?)g=^ee;@gy}2g'T>g#o@)g+5g ;gN8Cg8@gbkA)gSx+26@g@gI0gSMC)gT*0@g`<6gWy5@gǟRj)gӰk g/:?gJLHR"@gxu-)gKu@g6gt8_x7@gd;=')g+:;@gBͤ10@g";gK$?)gp @g dg =@g=6` F)gTbR.g9:g3@gUfgRbKZ@)g!g%P73;g]?gr y?)g)Yv2gȹq@g/3gA)g?j/|g7:@g#~oݽ?g8pE?)gPj/gS"X)gYgt0N?)ggo& xT7@g- hT@#@g.;%r?)g'_@gɖ@7g:Kڞ$@g[B)gk5ں9gѼ:gk%tp;@g.<^)gf:OI&gO/g#01|2gf`Y)gqv~@guFd9@g z+S7gF1/$?)gx3g~[6:g;s9@gKw*1@)gP @gv;K,gҬd&<@g!s)gֈ`|.gOwx=@g+MK?gD-lgSL,c|T?)g(%@g:ĉ$@g~^gv2gJHF&?)g}r":@g3\z;@go)@g +hA)g@')"gVv/@guQU-gfy2yt@)gM6y%$g/;R#@g):@gw%",6Կ)g%x'g$6g5gu$9?)glkC9g O?e @ PAe B OCe D NEe F NGe H NIe J OKe L MMe N MOe P MQe R OSe T OUe V OWe X NYe Z M[e \ Q]e ^ P_e ` Oae b Nce d Pee f Nge h Mie j Oke l Pme n Ooe p Oqe r Ose t Mue v Mwe x Oye z N{e | O}e ~ Ne @ OAe B OCe D QEe F PGe H NIe J NKe L PMe N OOe P OQe R OSe T OUe V OWe X OYe Z N[e \ N]e ^ O_e ` Oae b Oce d Nee f Pge h Nie j Nke l Pme n Qoe p Nqe r Ose t Oue v Owe x Nye z O{e | O}e ~ Ne @ MAe B OCe D OEe F PGe H OIe e N' "> ? !S'6&+#5 6 1c6#e*, - M CS1c'l 3 1a ]]1  e 4 4}}S!"$+MM#$67 85" T"X  e 4 4}}Y'(*1-- *BC D5" T"X  e 4 4}}Y'(*1-- *BC Dw GMM$/ /'--2H H}}T"#%,]]8%<= > ;  & & G H9 <#,F"3 @ A1aA1a+B AqF1#, ? @rIcLtjddd}t|ddgdgd}}t|t|}}d}tj|||}tt t|zz tj |||tjd|z|z tj|zz |d|z ztj d|z|z d |z |ztj|tjd |z zz z z}t||d y) Nr^rGr:gD ?rR)rHr333333?g)r]g @rIg rrPr4) r!hyperurrrr rrjr)rEval1r\r]rMhypuhprls rF test_hyperuzTestHyper.test_hyperu s~~aC(D1- !4!aj'!*! ~~a!$3r!t9 w~~a!4 ' ac!e 4W]]15E E G 1Q3xqs1uQqS(CC")--"27==13E"E G GH "$tB/rIcHttjdddddy)Nr^r]g3333334@g(¨?r4)rr!rrDs rFtest_hyperu_gh2287zTestHyper.test_hyperu_gh2287 sGNN1c480" 6rIN) rOrPrQrvr|rrrrrrrrrUrIrFroro= s9) ) 34NrZBd?ZCd@ZDdAZEdBZFdSdCZGdDZHdEZIdFZJdGZKdHZLdIZMdJZNdKZOdLZPdMZQdNZRdOZSdPZTdQZUy2)T TestBesselcpttjd}t|tddgdy)Nr gbɃ?gΝJ ֿr3)rr!rr)rEit0s rFrzTestBessel.test_itj0y0 s2GNN2&'!  &(<= >  rIcpttjd}t|tddgdy)Nr gbqTtt?g/]ooۿr3)rr!rr)rEit2s rFrzTestBessel.test_it2j0y0% s2GOOB'(!  (*>? @  rIclttjddtjddyNrrPrh)rr!rrDs rF test_negv_ivzTestBessel.test_negv_iv- s!WZZ!_gjjA&67rIcttjd}tjdd}t||dyNrGrr3)r!rrrrEozozrs rFrzTestBessel.test_j00 + ZZ^jj2Bs1%rIcttjd}tjdd}t||dyNrGr^r3)r!rrrrEo1o1rs rFrzTestBessel.test_j15 rrIcJtjdd}t|ddy)Nr^r ;x?r3)r!rr)rEjnnrs rFrzTestBessel.test_jn: szz!BD!5a8rIcpttjddtjdd dyrR)rr!rrDs rF test_negv_jvzTestBessel.test_negv_jv> &GJJr!,wzz!A.>CrIcgdgdgdgdgdg}t|D]1\}\}}}tj||}t||dd|3y) N)rrGg Ye?)UUUUUU?:0yE>g˿+>)rr`g)%->)g@r`g5c)!9)rr:g%,Ϳr3rr)rr!rr)rErrrbrrLycs rFrzTestBessel.test_jvA s^/5662  &f- @LAy1aAq!B AqF1#, ? @rIcpttjddtjdd dyrR)rr!rrDs rF test_negv_jvezTestBessel.test_negv_jveL 'GKK1- Aa0@/@"ErIctjdd}t|ddtjdd}d}tjd|t t |j  z}t||dy)Nr^r rr3??)r!rrrr r[rK)rEjvexpjvexp1rMjvexprs rFrzTestBessel.test_jveO sc Ab!E"6q9Qu% Aac!&&k\!22F6!,rIcxtjdd}tjdd}t|tgddt|tgddtjdd}t |tgdd tjd d}t |tgd d y) Nrrr^)go@.=@gzj,[@glN!@g5/D'@gh>-@rNg W@g0@gQX$@g*@g8*5{x0@r])gEk[@g~Cju]@gYrʝ^@g, `@gf `@rVrW-)g ts@g&ǭr3t@gWt@g,$Y&u@gu@)r!jn_zerosrrr)rEjn0jn1jn102jn301s rF test_jn_zeroszTestBessel.test_jn_zerosW sq#q#!#e-='>?@  A "#e-8'9:;  <   Q'u&> ?FK  L   Q'u&> ?FK  LrIctjdd}t|dddt|dddt|d d dtjd d}t|dd dt|dd dt|d ddtjdd}t|tgddy)Nrrsig;@rVrWig8v@i+gׂMm@rSgxi@g ,@gи{>@i r)gUDX@g!@g*HS@gz5 @g@2;@r)r!rrr)rErjn10jn3010s rFtest_jn_zeros_slowzTestBessel.test_jn_zeros_slows sq#&E $9FE $9FE $9FC(U %:GU %:GU %:G!!$q)':!;BF  GrIc8 tj fd}tddD]u}tj|\}}}}t |||D]I\}}} | dk(rt  ||dd"| dk(rt |||dd=t d|wy)Nc<|dz ||dz|z dz S)Nr^rPrU)rlrrs rFjnpz(TestBessel.test_jnjnp_zeros..jnp s'qs1I1Q3q )1, ,rIr^rZrrRr2zInvalid t return for nt=)r!rr| jnjnp_zerosrPrAssertionError) rErntrMrlr7tzznnttrs @rFtest_jnjnp_zeroszTestBessel.test_jnjnp_zeros s ZZ -2, JB ,,R0JAq!Q!!Ql J B7#Br2J=1W#CBK>(+CB4)HII  J JrIctjdd}t|tgddtjdd}t tj d|ddy) Nr^rg(yu?gOXeS@ga!@gxi'@g'Nw(-@rNrrr2)r! jnp_zerosrrrrr)rErs rFtest_jnp_zeroszTestBessel.test_jnp_zeros sZ!$!#u.:(;<=  > A& C-qu=rIc tjdd}t|tgdtgdtgdtgdfdy)Nr^rrr)"@g+@g-9(1!@gȘ'@g>tA}-@)g0v @gjt@gH.?$@g}"O*@gGŧp0@)r! jnyn_zerosrr)rEjnzs rFtest_jnyn_zeroszTestBessel.test_jnyn_zeros sa  1%!#u.:(; (-.:(; (-.:(; (-.:(;'<&=>' ?rIctjdd}tjddtjddz dz }t||dy)NrPr^rrS)r!rrrr)rEjvprimjv0s rFtest_jvpzTestBessel.test_jvp sAQq!zz!Awzz!A.1F3r*rIcttjd}tjdd}t||dyr)r!rrr)rEozkozkrs rFrzTestBessel.test_k0 +jjnzz!BCQ'rIcttjd}tjdd}t||dyr)r!rrr)rEozkeozkers rFrzTestBessel.test_k0e +{{2 Ab!Dq)rIcttjd}tjdd}t||dyr)r!rrr)rEo1ko1krs rFrzTestBessel.test_k1 rrIcttjd}tjdd}t||dyr)r!rrr)rEo1keo1kers rFrzTestBessel.test_k1e rrIc@dtjjzdz }dtjjzdz }tjd||}tjd||}tjd||}tjd||}t |j dgdt |j t ||zdz||z gdz d||zdz||zdzzd||zdzz|dzzd|dzz|dzzg}|d|dd|dzz |d|dz |dzg}t |j t |d z d||zdz||zdzz||zd zzd ||zdzz||zdzz|dzzd ||zdzz|dzz|dzzd |dzz|dzz|dzzg}|d|dd|dzz |dd|dzz d|dzz|d|dz |dz|dz g} t |j t | d z dy)Nrr^rrPrrrrNrrTr4r3gH@)rcrir!jacobirr#r) rEr\r]P0P1P2P3cpp2cp3cs rF test_jacobizTestBessel.test_jacobi sO bii 1 $ bii 1 $ ^^Aa " ^^Aa " ^^Aa " ^^Aa "!"$$s2.!"$$uac!eAaC['9#'=bAs1uqs1uoq!A#a%y!A#1Q31 >!uRU1RU7]2a5A;r!u#45!"$$uSz#~b9s1uqs1uoqs1u%a1Qi1Q&71&=!A#a%j!A#!$Q!Wac]AaC%8:!uRU1RU7]2a52a5=2a5#8Ar!uRU9J2a59PQ!"$$uSz$r:rIcJtjdd}t|ddy)Nrr _2 ?r3)r!rr)rEkn1s rFrzTestBessel.test_kn sjj2C 215rIclttjddtjddyNrrCrrr!rrDs rF test_negv_kvzTestBessel.test_negv_kv s"WZZS)7::dC+@ArIcJtjdd}t|ddy)Nrr r rSr!rr)rEkv0s rFtest_kv0zTestBessel.test_kv0 sjj2C!3R8rIcJtjdd}t|ddy)Nr^r gKދ@rSr)rEkv1s rFtest_kv1zTestBessel.test_kv1 jj3C!2B7rIcJtjdd}t|ddy)NrPr g)lHH@rSr)rEkv2s rFtest_kv2zTestBessel.test_kv2 rrIcDttjdddy)NrJr^g.Ք"H)rr!rrDs rFtest_kn_largeorderzTestBessel.test_kn_largeorder s 2q)+ABrIcDttjdddy)Nrg=`XCrrDs rFtest_kv_largeargzTestBessel.test_kv_largearg sWZZ4(!,rIclttjddtjddyr )rr!rrDs rF test_negv_kvezTestBessel.test_negv_kve s"W[[c*GKKc,BCrIctjdd}tjddtdz}t ||dd}tjd|}tjd|t|z}t ||dy)Nrr r3r)r!rrr r)rEkve1rrMkve2rs rFrzTestBessel.test_kve sp{{1R jj2s2w&DQ' {{1Qjj1oc!f$DQ'rIcxd}ttjd| tjd|ddy)NrCr^rrlrS)rr!rkvp)rErMs rF test_kvp_v0n1zTestBessel.test_kvp_v0n1s- WZZ!_,gkk!A.CRHrIcd}d}tj|dz| ||z tj||zz}tj||d}t||dy)NrrCr^r%rSr!rr&rrErbrMxcrs rF test_kvp_n1zTestBessel.test_kvp_n1 sY  jj1Q !A#gjj1o"5 5 KK!q !B2&rIcd}d}|dz|dzz|z |dzz tj||ztj|dz||z z}tj||d}t||dy)NrrCrPr^r%rSr)r*s rF test_kvp_n2zTestBessel.test_kvp_n2sp  d1a4ik1a4 '**Qq/ 1GJJqs14Ea4G G KK1 "B2&rIcttjd}tjdd}t||dyr)r!r;r@rrs rFr<zTestBessel.test_y0rrIcttjd}tjdd}t||dyr)r!rQr@rrs rFr>zTestBessel.test_y1rrIcBtjd\}}tjdd\}}t||f}t||f}tt tj d|ddtt tj d||z ddy)NrPr^rBrrI)r!y0_zerosrrr[rC)rEyoypozozporallvals rF test_y0_zeroszTestBessel.test_y0_zeros!s!!!$3!!!A.3BiCG!#gjjS&9":3rB!#gjj3&7&>"?BGrIcttjd}t|tdgtdgfdy)Nr^rgѮBO?r)r!y1_zerosrr)rErQs rF test_y1_zeroszTestBessel.test_y1_zeros)s1   a !"eWI&6ugY7G%HKrIcxtjdd}t|tdgtdgfdy)Nr^r2yL F%u?!rh?y;OnгY?r)r! y1p_zerosrr)rEy1ps rFtest_y1p_zeroszTestBessel.test_y1p_zeros-s9!,!  M? #UO+<%= >  rIctjdd}t|tddgdtjdd}t |gdd y) NrNrPg3@g(A&"@rr)g]E.+"|@gH(|@gff|}@g&b`~@gHO_~@rrW)r!yn_zerosrrr)rEans rF test_yn_zeroszTestBessel.test_yn_zeros5sP   a "!"UGW+=%>qA   c! $4 #  %rIc@tjdd}t|tddgdtjdd}t tj d|dd tjd d}t tj d |dd y) NrrPgQhվ@g zN@rT+rrr2rr)r! ynp_zerosrrrrsrEaos rFtest_ynp_zeroszTestBessel.test_ynp_zeros@s|   q #!"UJ +C%DQG   r! $ B+QU;   s1 % C,ad;rIcttjdd}ttjd|ddy)Nrrrr>r2)r!rGrrsrHs rFtest_ynp_zeros_large_orderz%TestBessel.test_ynp_zeros_large_orderHs+   s1 % C,aeYield points at which to compare Cephes implementation to AMOS) ir4rr rrr{G(@r,r) irrSrri@gy@gĂ@g@i'Nrir`r) itertoolsproductr)rErbrMs rF_cephes_vs_amos_pointsz!TestBessel._cephes_vs_amos_pointsks\ K $$Q***$$S6#r?%:SEBBB + Cs!"AA+AAAANc|jD]\}}| |||r||||||dz|t||} } }tj|r%t tj | dk\||fstj |rt | jdk7||ft|| ||f|||t|k(st| | ||f||y)NrAu<7~r)rrXrb) rir{rcrrr[rrKr) rErf2rXrbrrbrMc1c2c3s rFcheck_cephes_vs_amoszTestBessel.check_cephes_vs_amosws//1 ;DAqDAJAq2a":r#a&!}BBxx|r e+aV4"1 q!f-BATMA;#BQF*.T; ;rIppc64lezfails on ppc64lerDcf|jtjtjddy)Nr`u5%r?)rpr!rrrDs rFtest_jv_cephes_vs_amosz!TestBessel.test_jv_cephes_vs_amos# !!'**gjju6!RrIcf|jtjtjddy)Ndy=rsr?rpr!rCr@rDs rFtest_yv_cephes_vs_amosz!TestBessel.test_yv_cephes_vs_amosrurIcnd}|jtjtjdd|y)Nct|dkDS)Nr3)r[)rbrMs rFskipperzDTestBessel.test_yv_cephes_vs_amos_only_small_orders..skippersq6B; rIrwrs)rXrbrrx)rEr|s rF(test_yv_cephes_vs_amos_only_small_ordersz3TestBessel.test_yv_cephes_vs_amos_only_small_orderss-  !!'**gjju6'. " 0rIctjd5|jtjtjdddddy#1swYyxYw)Nrrg:0y5>rsr?)rcrrpr!rrDs rFtest_iv_cephes_vs_amosz!TestBessel.test_iv_cephes_vs_amossF [[X & V  % %gjj'**4f % U V V Vs 2AAc d}tjjdtjjd|dtjj d|zz}tjjd|dtjj d|zz}tjj d|d k(}||j tj ||<tjd 5tj||}tj||d z}tj|t|d kD<tj|t|d kD<d |t|dk<d |t|dk<t||z dz }d |tj|<dddtj}t||dk||||tj||||tj||||d zfy#1swYrxYw)Ni@Br^rrSrPrr r3rrrrArkgYngH׊>)rcrirurrr r<rr!rrr[rargmaxr) rErrbrimskrmrndcrms rF test_iv_cephes_vs_amos_mass_testz+TestBessel.test_iv_cephes_vs_amos_mass_tests  q II  S! $RYY->->qq->-I'I I II  S! $RYY->->qq->-I'I I !!!!!,1D'..*$ [[X & !Aq!BAqt$B#%&&Bs2w "$&&Bs2w #$Bs2w #$Bs2w RUQYB Brxx|  ! IIbM  qEDL qT1Q4AaD!A$/AaD!A$r'1J K # ! !s B9H55H>c|jtjtjdd|jtjtjddy)Nrrsr?)rpr!rrrDs rFtest_kv_cephes_vs_amosz!TestBessel.test_kv_cephes_vs_amoss@ !!'**gjjt&!Q !!'**gjjt&!QrIcttjdddttjdddttjdddy) NrrNgP?rrfg~Omʒ?gY8E@@gKSn)rr!rrDs rFtest_ticket_623zTestBessel.test_ticket_623sD 1a(*=> 3-/AB 3 24GHrIc < ttjdddttjdddttjdddttjdddttjdddttjddd ttj ddd ttj ddd ttjd dd ttjd ddttjd ddttj d ddttjdddttjdddttjdddttjdddttjdddttjddd ttj ddd ttj ddd ttjd dd ttjd ddttjd ddttjd ddttjd ddttjd ddttj d ddttj d ddttj d dtjd dtdzttjd dtjd dtdzttjd dtjd dtdzttjd dtj d dtdzttjd dtjd ddtjd dzzttjd dtjd ddtjd dzz y)zNegative-order BesselsrSr^gl )ܿrgPj?gk?g%E*2ig敋?gw--`?gÉB?g W?rg޴?gz|?a?gpx%?y?y??yYD?`{1wy6x ?B]#Ӯ?y?b>?y.}9d?8kؿy?333333?r y333333??rJN) rr!rrCrrrr rFrrrrrDs rFtest_ticket_853zTestBessel.test_ticket_853s  2q)+>? 2q)+=> 2q)+=> 2q)+=> 2q)+=> 2q)+=> 2q)+=> 2q)+<= 4+-CD 4+-?@ 4+->? 4+-?@ 2t,.AB 2t,.@A 2t,.@A 2t,.@A 2t,.@A 2t,.@A 2t,.@A 2t,.?@ 4.0FG 4.0UV 4.0BC 4.0UV 4.0AB 4.0RS 4.0BC 4.0RS D0'**T62J3t92TU D0'**T62J3t92TU D0'**T62J3t92TU D0'**T62J3v;2VW OOD$ ' JJtT "R 4(=%= =   OOD$ ' JJtT "R 4(=%= = rIctttjddtttjddtttj ddtttj ddtttj ddtttj ddtttjddtttjddtttjddtttjddtttjddtttjddtttjdddjtjdtttjdddj tjdy)zReal-valued Bessel domainsrrSr^rrPrNN)rrr!rrrCrrrrFrrKrrrDs rFtest_ticket_854zTestBessel.test_ticket_854sgjjb)*+gjjb)*+gjjb)*+gjjB'()gjjb)*+gjjB'()gkk#r*+,gkk#r*+,gkk#r*+,gkk!R()*gkk#r*+,gkk!R()*gmmB'!,-113W]]25FGE'--+Aa015577r9JKrIcttjddtjk(ttj ddtjk(y)Nr]r)rr!rrcrrrDs rF test_gh_7909zTestBessel.test_gh_7909s: 3"bff,- C#rvv-.rIcttjdddttjdddy)zReal-valued Bessel I overflowr^ig~r[i`g ?los~Nrr!rrDs rFtest_ticket_503zTestBessel.test_ticket_503 s. 1c*,AB 4.0EFrIcDttjdddy)Nrr^rrrDs rFtest_iv_hyperg_poleszTestBessel.test_iv_hyperg_poless 4+->?rIctd|jt}|d|zztd|zzt j |dzz t j ||zdzz }t |t|<t|}t|jttjz|zt|ddzz}|j|fS)NrrPrr^rSrS)rr rr r!rprrr r[r7rr&sumrErbrMrlrmr^r.s rF iv_serieszTestBessel.iv_seriess 1aL   ' qsUC1I ! 4 4wqs1u7M M%( F!fjjlU6]...2S2Z]Buuw|rIcdD]9}|jd|\}}ttj||||;y)Nrrrerrbr)rrr!rrErMvaluer.s rFtest_i0_serieszTestBessel.test_i0_series=! GA1-JE3 GJJqM5sA F GrIcdD]9}|jd|\}}ttj||||;y)Nrr^r)rrr!rrs rFtest_i1_serieszTestBessel.test_i1_seriesrrIc dD]C}dD]<}|j||\}}ttj||||||f>Ey)N)rbrr rrrcr,)rrrey@r)rrr!rrErbrMrr.s rFtest_iv_serieszTestBessel.test_iv_series$sU7 SA, S!^^Aq1 s 1a 0%cAq6R S SrIc ddgddgddgddgddgd d gd d gd dgg}t|D]<\}\}}tj|t| z}t ||dd|>y)Nrrr`rGg0oO?rg!?grb?rgpH?rgC~?rggo?r3rr)rr!rr rrErrrrbrs rFrzTestBessel.test_i0*s*#, % % % % %&#6* @IAv1AaR(B AqF1#, ? @rIcttjd}tjdd}t||dyr)r!rrr)rEoizeoizers rFrzTestBessel.test_i0e8rrIcddgddgddgddgdd gd d gd d gg}t|D]<\}\}}tj|t| z}t ||dd|>y)Nrr`gj|=rGgȕ![1?rg;͘?rgRΜ?rg| ?rg}f?r3rr)rr!rr rrs rFrzTestBessel.test_i1=s*01 % % % %& #6* @IAv1AaR(B AqF1#, ? @rIcttjd}tjdd}t||dyr)r!rrr)rEoi1eoi1ers rFrzTestBessel.test_i1eJrrIcpttjd}t|tddgdy)NrgїJB?@g*u?)rr!rr)rEiti0s rFrzTestBessel.test_iti0k0Os2W^^A&'!  %'9: ;  rIc^tjd}t|tddgdy)NrGgݳɄ|T?gVƥ @rT)r!rrr)rEit2ks rFrzTestBessel.test_it2i0k0Ws-r"!  (*<= >  rIcbtjddtdz}t|ddy)NrrG皙gvM?rS)r!rr r)rEiv1s rFrzTestBessel.test_iv_s(jj2s3x'C 3B7rIclttjddtjddyr)rr!rrDs rF test_negv_ivezTestBessel.test_negv_ivecs"W[[1%w{{2a'89rIctjdd}tjddtdz}t ||dy)NrrGrrS)r!rrr r)rEive1rs rFrzTestBessel.test_ivefs7{{1R jj2s3x'DR(rIcnttjddtjdddy)Nr^rPrrS)rr!rivprDs rF test_ivp0zTestBessel.test_ivp0ks#GJJqOW[[1-=rBrIctjddtjddzdz }tjdd}t||dy)NrrPr^rS)r!rrrr?s rFtest_ivpzTestBessel.test_ivpnsA ZZ!_wzz!A . 1 KK! Aa#rI)rwrN))VrOrPrQrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rr'r,r.r<r>r9r<r@rDrJrLrArRrTrDrXrGr`rirprRrSrTrmachinertryr}rslowrrrrrrrrrrrrrrrrrrrrrrrrUrIrFrr s.  8& & 9D @F-L8G$ J>?.+ ( * ( * ;$6B988C-D(I''& & HL  %<=8# D7F+0 C ; [['x'')Y602S2S [['x'')Y602S2S0 V [[  >RI 0 dL"/G @G G S @* @*   8:) C$rIrceZdZdZdZy) TestLaguerrectjd}tjd}tjd}tjd}tjd}tjd}t|jdgdt|jddgdt|jt gd d z dt|jt gd d z dt|jt gd dz dt|jt gddz dy)Nrr^rPrrNrrrS)r^rsrPr)rSrirTrR)r^iHir ri)rSri8iXir/r,)r!laguerrerr#r)rElag0lag1lag2lag3lag4lag5s rF test_laguerrezTestLaguerre.test_laguerreus""""""!$&&!R0!$&&"Q3!$&&x)? @ D rIN)rOrPrQrrrUrIrFrrts  T rIrceZdZdZy) TestLambdac ptjdd}ttjdddtjddzdz gttjdddtj ddzdz dtjddzdz zgf}t ||dy)Nr^rGrrPrrr3)r!lmbdarrrrrr)rElamlamrs rF test_lmbdazTestLambda.test_lmbdasmmAb! 7::a#Qwzz!B'7%7%:; < 7;;q$bAb)9&9#&='++aPRBS@STV@V&VW X  "#d1-rIN)rOrPrQrrUrIrFrrs.rIrceZdZdZdZy) TestLog1pctjdtjdtjdf}tdtdtdf}t||dy)NrSrIr4rr3r!rr r)rEl1pl1prls rFrzTestLog1p.test_log1psM}}R '--"3W]]25FGR#b'3r7+!#eA.rIctjdtjdtjdf}tdtdtdf}t||dy)Nr^rrrPrBrCr3r)rEl1pml1pmrls rFtest_log1pmorezTestLog1p.test_log1pmoresM a '--"4gmmC6HIa&S#c(+!$va0rIN)rOrPrQrrrUrIrFrrs / 1rIrceZdZdZdZdZy) TestMathieucyrrUrDs rFr+zTestMathieu.test_mathieu_arrIc0tjddy)NrPr)r!r,rDs rFtest_mathieu_even_coefz"TestMathieu.test_mathieu_even_coefs!!!A&rIcyrrUrDs rFtest_mathieu_odd_coefz!TestMathieu.test_mathieu_odd_coefs rIN)rOrPrQr+rrrUrIrFrrs ' rIrceZdZdZdZy)TestFresnelIntegralcyrrUrDs rFrjz$TestFresnelIntegral.test_modfresnelprrIcyrrUrDs rFrfz$TestFresnelIntegral.test_modfresnelmrrIN)rOrPrQrjrfrUrIrFrrs   rIrceZdZdZy) TestOblCvSeqcbtjddd}t|tgddy)Nrrr^)g~T~Oֿgt_J?gm{@g@j'&@r)r! obl_cv_seqrr)rEobls rFtest_obl_cv_seqzTestOblCvSeq.test_obl_cv_seqs1  1Q'!#e-9':;< =rIN)rOrPrQrrUrIrFrrs=rIrc6eZdZdZdZdZdZdZdZdZ y) TestParabolicCylindercztjdd}t|tddgtddgfdy)Nr^rGgQ?gx $(~?gx $(~g(\?rN)r!pbdn_seqrr)rEpbs rF test_pbdn_seqz#TestParabolicCylinder.test_pbdn_seqsK   a #!"eV.4-6'7&+W-3-5'6&789 :rIctjdddtjdddztjdddz y)Nr^r rGr)r!rrDs rFrzTestParabolicCylinder.test_pbdvs= Qra#A&&a);A)>>rIctjdd}tjdd}t|t |dt |dfdy)Nr^rGrrN)r!rpbdv_seqrr)rEpbnpbvs rF test_pbdv_seqz#TestParabolicCylinder.test_pbdv_seqsGq$q$!#tCF|DQL&A!DrIctjddd}d|dz ztjtjzt j dd|zz z}t t j|dd|dd t t jd d dd d t t jddddd y)NrrSrrPrrrr>r?gGz$@gq= ףp4@gHQ9rrWg(\#gQ @gkSa>)rcrOrrr!rrr)rEetarMs rFtest_pbdv_pointsz&TestParabolicCylinder.test_pbdv_pointsskk#r1% AJrwwruu~ %gnnR3Y&? ? S"-a0!%eL  UE2157JQVW UD1!46JQVWrIcltjddddddf}tjddddddf}tj||}ddt |zz}tj|||zdtj|||z dz |z d z }t |d |d d y NrsrNr3rrSrrrrr^rRr?)rcrOr!rr[rrErrr[r&dps rFtest_pbdv_gradientz(TestParabolicCylinder.test_pbdv_gradient KKAq !!D& )kk#r1%d1f- LLa T#a&[ ll3C(+gll3C.H.KKs RUW W!bt$7rIcltjddddddf}tjddddddf}tj||}ddt |zz}tj|||zdtj|||z dz |z d z }t |d |d d yr)rcrOr!rr[rrs rFtest_pbvv_gradientz(TestParabolicCylinder.test_pbvv_gradientrrIctjdd\}}t|tjgdt|tjgdy)NrPr)g:4@g1{н?g7,%n?)gX@g=<'?gʠ?)r!pbvv_seqrrcr)rEres1res2s rF test_pbvv_seqz#TestParabolicCylinder.test_pbvv_seqsN%%a+ dbhh(<= > bhh(;< =rIN) rOrPrQrrrrrrr rUrIrFrrs':?E X88=rIrceZdZdZy) TestPolygammac dtjdd}tjdd}t|ddt|ddgd}ttjd|tj|gd }gd }gd }ttj|||t j |gdz}ttj|t j |gdz|ttjt j |gdz||y) NrPr^rgX];rSgOV,@@)rPrg8Brrr)g2}jg.M?g}2;ο)r! polygammarrrcr)rEpoly2poly3rrlrNs rFtest_polygammazTestPolygamma.test_polygammas!!!A&!!!A&E-3E,r2 G--a3W[[^D  *G--a3X>99hZ\*G--aA3q51AB$ &G--biiA.>B$ &rIN)rOrPrQrrUrIrFrrs&rIrceZdZdZy) TestProCvSeqcbtjddd}t|tgddy)Nrrr^)g"~j?g6?Ң@g)u8F"@g2g)@r)r! pro_cv_seqrr)rEprols rFtest_pro_cv_seqzTestProCvSeq.test_pro_cv_seqs1!!!Aa(!$u.:(;<= >rIN)rOrPrQrrUrIrFrrs>rIrceZdZdZy)TestPsicHtjd}t|ddy)Nr^goxr3)r!rr)rEpss rFrzTestPsi.test_psi%s [[^B3A6rIN)rOrPrQrrUrIrFrr$s7rIrceZdZdZdZy) TestRadiancZtjddd}t|tdz dy)Nrrrrr!rrr)rErads rFrzTestRadian.test_radian+s$nnR!$C3q)rIc`tjddd}t|tdz dzdy)Nrr^r`rPgC?rr")rErad1s rFtest_radianmorezTestRadian.test_radianmore/s*~~b2&DA&;!;A>rIN)rOrPrQrr&rUrIrFr r *s *?rIr ceZdZdZdZy) TestRiccatic(d\}}tj||f}t|D]G}tj||}tj||d}||z|d|f<||z|z|d|f<It |tj |dyN)rPr T) derivativerr^r3)rcemptyr|r! spherical_jnr riccati_jn)rErrSrlrjps rFtest_riccati_jnzTestRiccati.test_riccati_jn51 HHaV q A$$Q*A%%at)g n@?@gWH;@glH.=@)g9lchPR@g S@gzsevB@rrW)numpyri default_rnguniformstackr*r) rErcrprlrra3a4r\rrs rF test_softpluszTestSoftplus.test_softplusKs ii##M2  [[s[ + [[bq[ ) [[T[ * [[![ , BHHb"b"% &TQKHJ qkSu-rIctjddz }tjd}|j}|dkD}t |||t ||||<t ||y)NrrPr)outwhere)rcronescopyr*r)rErrErrFs rFtest_softplus_with_kwargsz&TestSoftplus.test_softplus_with_kwargshs] IIaL1 ggajhhjA5)ah'E S!rIN)rOrPrQrCrIrUrIrFr:r:Js .:"rIr:ceZdZdZy) TestRoundc ttttjdtjdtjdtjdf}d}t ||y)Ng333333$@g$@rg333333%@)rSrSrSrI)r5mapr{r!rr)rErndrndrls rFrzTestRound.test_roundtsZ3sW]]40$]]40$]]40$]]402343u%rIN)rOrPrQrrUrIrFrKrKss &rIrKc tj}tj}tj}tj }tj }tj}t5}|jtt|ddddd||z t|ddd|dz d|d d |zz z||dz d zzt|ddd|dz d|d d |zz zt|dd||dz d|d d |zz z|dd |zd zzz||d z d zzt|dd|d z |dz d|dd |zz z|dd |zd z d zzz||dz d zzd||dz d zzdz zt|dd|dz |dz d|dd |zz z|dd |zdz d zzz||dz d zzdddy#1swYyxYw)NcategoryrrrrPrrNr5rrrrJr:rrrg@r^rrRg?gA@) r!sph_harmrcrr rr r r r!DeprecationWarningr)shrr rr r r$s rF test_sph_harmrVs<   B B &&C 77D &&C &&C  2 . /!"Qq1+48| !"R"RT"2Dbe%%BqD B  ""R"RT"2Dbe%% '!"QqBqD/DRU$$1RU2X:"2b5z2~. / ""QqBr"u"5tB2J''1RU2Xb[=!"2b5z2~3r"u:r>!!#% & ""QqBr"u"5S"R%[))1RU2Xb[=!""%be*b.1 2#222s +F G??Hc tjtj}t5}|j t t tjddddj|t tjdgdddj|t tjddgddj|t tjdddgdj|t tjddddgj|t tjdgdgdgdgj|dddy#1swYyxYw)NrQr) rcr#rzr r!rTrr!rS)dtr$s rF"test_sph_harm_ufunc_loop_selectionrYs "-- B  E . /W%%aAq177<W%%qc1a3992>W%%a!a3992>W%%aQC3992>W%%aAs3992>W%%qcA3aS9??DEEEs D'EE'c&eZdZddZdZdZdZy) TestStruvecBtd|}d|zd|zd|z|zdzzztj|dzz tj||zdzz }t|j t t jz|z}|j|fS)z?Compute Struve function & error estimate from its power series.rrSrrPr^r]) rr!rjr[r7rrr&rrs rF_serieszTestStruve._seriess 1aL !Gr!tqs1uQw' ' ae(< }|j||\}}ttj|||d|||ff@Gy)z-Check Struve function versus its power series) ir(\rrSrr^rrc)r^rSr rJrZrr?N)r]rr!r2rs rFtest_vs_serieszTestStruve.test_vs_seriess]B WA( W!\\!Q/ sq! 4e!#NQRTUPVV W WrIc\ttjddddttjddddttjd d d d ttjd dddttjddtjdd ttjddtjdd ttjddtjddttjddtjddt t tjddt t tjddy)Nr_rJg;cv=?rrWgQ g<j?rrrg?rg igzz?rwi)r4rdrIgffffffrSg333333$)rr!r2rrrrDs rFtest_some_valueszTestStruve.test_some_valuessub1?Nub1?NtS1?OtS1?OW^^C-sB0G/GHW^^C-sB0G/GHW^^C-sB0G/GHW^^C-sB0G/GHgnnT2./0gnnUB/01rIc<ttjddtjddttjddtjddttjddtjddy)zRegression test for #679r g 3@g*4@r g333333N)rr!r2rDs rFtest_regression_679zTestStruve.test_regression_679sktY7tY7 9tY7tY7 9tY7tY7 9rIN)r:)rOrPrQr]rardrfrUrIrFr[r[sW 29rIr[cDttjdddy)NrrgdX  ?)rr!rrUrIrFtest_chi2_smalldfrhs c!,.?@rIc`ttjdtjdy)Nr+r)rr!rrcrrUrIrF test_ch2_infrjss266*C0rIrr rurcvtjtjtj|sJyrrcrr!rrrKs rFtest_chi2_v_nanrms# 88GMM"&&!, -- -rIrbcvtjtj|tjsJyrrlrbs rFtest_chi2_x_nanrps# 88GMM!RVV, -- -rIcvtjtjtj|sJyrrcrr!rrrKs rFtest_chi2c_v_nanrss# 88GNN2661- .. .rIcvtjtj|tjsJyrrrros rFtest_chi2c_x_nanrus# 88GNN1bff- .. .rIc tjddddtjgddtjf}tjtj dddtjg}t j |dz |dz }|dk|dkz|dk(|dk(zztj |tj |zz}tjtj||sJtjtj||sJtt j|||tt jd|dz |dz |tdt j|dz |dz z |tdt j||z |tdt jd|dz |dz z |y)Ng{Gzrrr^rP)rcrrrr!r>rrrrrrr{rrr)rbrrrs rFtest_chi2_edgecases_gh20972rws E1dArvv./2:: >A RVVGUAtRVV45A   1q5!a% (C Ea!e Q162 2RXXa[288A;5N ND 66"((3t9% && & 66"++c4%j) ** *GMM!Q'-GLLAE1q5137A))!a%Q77=Aq!,,c2A aQA66?CrIc  d}tdtjdtjdz d|d}d}d}ttjdgd gggd d||g|d |gg|d }ttjdd||ttjdd||ttjd d | |ttjddd|ttjddd|ttjddd|ttjddd|ttjddd|ttjddd|ttjddd|tj d}ttj|j |jd |ttjd!|jz|jd"|ttj|j d |j zd#|ttjd$d$d$ttjd%d$d$ttjd d&tjttjd$tjtjttjtjd$tjttjd$tj tjttjtj d$tjttjtjtj tjttjtj tjtjttjdtjtjttjtjd tjttjdtjtjttjtjdtjttjd tj tj ttjtj d tj y)'NrVr^rPgDSYC?rWgQ_?g?@g>;, i}@r)r^rrg=O?rSrr rTgXs*@rgV4oAgO1eAgꌠ9Y>)FgEg^ 9^;gd-?gP.5_gsTNNeg6dgu?j/ g]XC}KdgѧRg"!x{{ rg][#!RrgٍS1gN_rrKrS) rr!agmrcrrrr7rrr)rXagm13agm15agm35agm12fis rFtest_agm_simplers DAgkk!RWWQZ002F E E EGKK!qc I6&Q&(.24 EGKK1%u48GKK1%u48GKKB'%d;GKKA&(:FGKKK02DGKKa(*?dKGKKq)+?dKGKKu-/EGKKv.0GGKK/1H #BGKK02IGKKRVV RVV46LGKK27735LQ"A&R#Q'R$bff-Q'0RVVQ'0Q("&&1bffWa("&&1RVVbffW-rvv6bffWbff-rvv6Q'0RVVR("&&1Q'0RVVQ'0R"&&)BFF73bffWb)BFF73rIc "t5}|jtdtt j ddt j ddtt j dddt j dddtt jdddt jdddtt jdddt jdddtt jddt jddtt jddt jddtt jddt jddtt jddt jddtt jddt jdddddy#1swYyxYw)Nrr^rHg?rPgffffff@)r r!r"rr!expnrrrorurrr@rr)r$s rF test_legacyrMsb   K >#RSW\\!S)7<<S+ABW^^Aq#.sC0MNW]]1a-w}}S#s/KLW^^Aq#.sC0MNW]]1c*GMM#s,CDWZZ3'C)=>WZZ3'C)=>W__Q,gooc3.GHW%%a-w/?/?S/IJ K K Ks G1HHc*ddl}|jSrA) threadingLock)rs rF errstate_lockr]s >> rIc|5tjd5ttjtjddddddddy#1swYxYw#1swYyxYw)Nrrr^y.B}T)r!rrrr)rs rFtest_error_raisingrcsc N   ' * N '66 Au M NNN N NNNs"A"+AA"A A""A+cd}tjddtjfdtjfdgt}tj |ddgf}tj ||dddf|dddf}ttj||d d tj ||dddf|dddf}ttj||d d y) Nctjd5|dk(r tj|s |cdddS|tj|zcdddS#1swYyxYwNr)invalidr)rcrrr rrLs rFxfuncztest_xlogy..xfuncksR [[ * #Avbhhqk # #{  # # #AAA'rrrrrr%)rrJ)r^rJr^rVr?) rcrrrr}rrr:r!xlogy)rz1z2w1w2s rF test_xlogyrjs# UQK!RVVjA OB rGW%% &B e R!Wb1g .BgmmR%eD e R!Wb1g .BgmmR%eDrIcd}tjddtjfdtjfddgt}tj ||dddf|dddf}t tj||dd y) Nctjd5|dk(r tj|s |cdddS|tj|zcdddS#1swYyxYwr)rcrrrrs rFrztest_xlog1py..xfunc|sR [[ * 'Avbhhqk ' '288A;  ' ' 'rrrr)r^gKH9r%r^rVr?) rcrrrr}rr:r!xlog1py)rrrs rF test_xlog1pyr{su' UQK!RVVj!(- /B e R!Wb1g .Bgoor2EFrIcld}dddtjf}ddg}g}tj||D]\}}|j ||ztj |t }tj|tjg|}ttj||d d y) Nc\|dkrtj Stj|| SrA)rcrr!rrKs rFrztest_entr..xfuncs( q5FF7NMM!Q'' 'rIrrrrSr^r%otypesrVr?) rcrrgrhrrr}rrr:r!entr)rrsignsrsgnrbrMrMs rF test_entrrs( c266 "F GE C##E62Q 37 E"A0 UBJJ<03AgllAqu5ArIcxd}d}ddg}g}tj||||D] \}}}}|j||z||zf"tj|t }tj |tjg|dddf|dddf} ttj| |dd y) Nc |dks|dks |dk(r|dk7rtjStj|stj|rtjS|dk(r|Stj|||z |z |zSrA)rcrrkr!rrs rFrztest_kl_div..xfuncsm q5AEa1fa66M [[^r{{1~66M !VH==AaC(1,q0 0rIrrrrSr^r%rrrVr?) rgrhrrcrr}rrr:r!kl_div rrrrsgnavasgnbvbrMrMs rF test_kl_divrs 1F GE C'//vufM'b$ DGT"W%&' E"A0 UBJJ<01Q31Q3@AgnnaUCrIcxd}d}ddg}g}tj||||D] \}}}}|j||z||zf"tj|t }tj |tjg|dddf|dddf} ttj| |dd y) Nc~|dkDr|dkDrtj|||z S|dk(r|dk\rytjSrA)r!rrcrrs rFrztest_rel_entr..xfuncs= q5QU==AaC( ( !VQ66MrIrrSr^r%rrrVr?) rgrhrrcrr}rrr:r!rel_entrrs rF test_rel_entrrsF GE C'//vufM'b$ DGT"W%&' E"A0 UBJJ<01Q31Q3@Ag&&15uErIctjgd}gd}|dddf}|dddf}ttj|||ddy)N))gpB?gĬB?)gtK&?gCtK&?)g>уO'?gvуO'?)ggQW"g G=rr^rVr?)rcrrr!rinputsrNrrLs rF test_rel_entr_gh_20710_near_zerorsS XXFH q!t Aq!t AG$$Q*H5qIrIctjdtjgd}gd}|dddf}|dddf}t tj |||ddy) Nrr))rNX)rgZbti)rg4&k C)gMG.@g)Z? g wa)rr^rVr?)r!seterrrcrrrrs rFtest_rel_entr_gh_20710_overflowrs_ NNx XXFH q!t Aq!t AG$$Q*H5qIrIcttjddtjt tjdddtj dzt tjdddd}tjjdd}tj|tjg |ddd f|ddd f}ttj||d d y)NrSr]rPrrrc|dkrtjStj||krdtj|zS|tj|d|zz zS)Nrr)rcrr[squaredeltar^s rFrztest_huber..xfuncsQ 1966M VVAY 1% %BFF1Ie 34 4rIrSrrr^rVr?) rr!huberrcrrrrirandnrrr:rrMrMs rF test_huberrsr3'0GMM!S)33+?@GMM!S)+>?5 AA0 UBJJ<01Q31Q3@AgmmQEBrIcPd}tjtjjddj ddgddggz}tj |tj g|dddf|dddf}ttj||dd y) Nc|dkrtjS|r|sy|dztjd||z dzzdz zS)NrrPr^)rcrrrs rFrz test_pseudo_huber..xfuncsD 1966M!8rwwqAeGa<'781<= =rIrSrPrrrr^rVr?) rcrrirtolistrrr:r! pseudo_huberrs rFtest_pseudo_huberrs> Q'..0QHsAh3GGHA0 UBJJ<01Q31Q3@Ag**Aqu5IrIcXd}d}tj||}d}t||dy)NrgC]r2 @%t$% n> @&$%&&%%&&s A" A."A+.A7c eZdZdgddggdgdgdgdgdgdgd gd gd g Zej j d d eifdeddifgdZ ej j d d eifdeddifgdZ ej j d d eifdeddifgdZ ej j d d eifdeddifgdZ ej j d d eifdeddifgdZ dZdZej j dddddej"gej j dgdej j d d dgd!Zej j d d dgd"Zej j d d eifdeddifgd#Zej j d d eifdeddifgd$Zd%Zy&)' TestStirling2r^r)rr^r^)rr^rr^)rr^rRrTr^)rr^rrrSr^)rr^rArr^)rr^?ri^rJr^) rr^iii r^) rr^i iZi'iV i$r^) rr^rr$i9ii+Yirr^zis_exact, comp, kwargsTFrXrc tdt|jD]?}tt|dz}|j|}||t |g||fi|Ay)Nr^r-)r|rtabler5r-)rEis_exactcompkwargsrlk_valuesrows rFtest_table_caseszTestStirling2.test_table_cases0s] q#djj/* JAE!A#J'H**Q-C iXX> I& I JrIc|tdd||jddfi||tdd||jddfi||tdd|dfi||tdgdg|dgfi|y)Nrr-rNrPrrr)r-rrErrrs rFtest_valid_single_integerz'TestStirling2.test_valid_single_integer:s Yq!8 ,djjmA.>I&I Yq!8 ,djjmA.>I&I Yq!8 ,b;F; YsQCx 02$A&ArIc|tdd|dfi||tdd|dfi||tdd|dfi|y)NrSr-rrPr-rs rFtest_negative_integerz#TestStirling2.test_negative_integerFsL Yr2X . ?TYYqAF|a'Q /! 3 ? ?s,A% ctddg}ddg}ddg}tt||d|sJtd d g}d d g}dd g}tt||d|sJy)NlV^;.lk4-TrrZrOrNTr-l D,"SBXp!N l wY)H_1e_*rF)rrr-)rErrlrms rFtest_big_numberszTestStirling2.test_big_numbersys}~'89: H G9Q6<<<<:<= H H9Q6<<  !Qh7 = > > >s A==Bct|jddd}tgdt}tgdt}|t||d|fi|y)NrNr^r r%r Fr-)rrr2r-rs rF#test_numpy_array_unsigned_int_dtypez1TestStirling2.test_numpy_array_unsigned_int_dtypesM djjmAB'( L 1 L 1 Yq!5 )39&9rIcPtgdgdg}tgdgdg}tgd}|t||||fi|tdgdgdgdgdgg}tgd}ttd Dcgc]}gd c}}|t||d |fi|ycc}w) N)r^rrrS)r^rRrTr^)rrrrr r r-rN)rr^rPrrNrr)rr^rRrTr^rF)rr-r|)rErrrrrlrmros rF"test_broadcasting_arrays_correctlyz0TestStirling2.test_broadcasting_arrays_correctlys 56 \<0 1 L ! Yq!8 ,c)r5r|r-rcr7r[)rErrl k_entriesdenomr~s rFtest_temme_rel_max_errorz&TestStirling2.test_temme_rel_max_errors r3" # 6AU1ac]+Iqc9D9E)QC%@@C66"&&u-.5 55  6rIN)rOrPrQrrRrSr(rrrrrrrrrrcrrr r r r rUrIrFrr!s  A!(07@ E [[5 |R &%18J J  [[5 |R &%18B B [[5 |R &%18< <  [[5 |R &%18    [[5 |R &%18= =   = [[S3D$"?@ [[S"56 [[Z$7,87A,  [[Z$7>8> [[5 |R &%18: : [[5 |R &%18 :  :6rIrc`eZdZdZej j deegdZ dZ y)TestLegendreDeprecationcvd}tj|5tdd}dddy#1swYyxYw)Nz$`scipy.special.lpn` is deprecated...rr^r)rRdeprecated_callr.rErIros rF test_warn_lpnz%TestLegendreDeprecation.test_warn_lpns54  # ## . Aq A   s /8xlpmncd|jd}tj|5|ddd}dddy#1swYyxYw)Nz`scipy.special.z` is deprecated...rr^r)rOrRr )rEr messageros rFtest_warn_xlpmnz'TestLegendreDeprecation.test_warn_xlpmnsF#ENN#33EF  # #' 2 aAA   s ;Acd}tj|5tjdddd}dddy#1swYyxYw)Nz)`scipy.special.sph_harm` is deprecated...rr^r)rRr r!rSr s rFtest_warn_sph_harmz*TestLegendreDeprecation.test_warn_sph_harms@9  # ## . -  Aq!,A - - -s ;AN) rOrPrQr rRrSr(r/r0r r rUrIrFr r s5  [[WtUm45 -rIr r)rrgrrrr=rcrrrrrrr r r r r rrrrrrrrrrRrr numpy.testingrrrrrrrrr scipyr!scipy.special._ufuncs_ufuncsrB scipy.specialr"r#r$r%r&r'r(r)r*r+r,r-r.r/r0scipy._lib._utilr1r2scipy._lib._array_apir3r4r5scipy.special._basicr6r7r8scipy.special._testutilsr9r:r;r architecturerr<rmr?rWrrrrrrr*rVrrrrrr#r2rQrUrr3rProrrrrrrrrrrrr r(r:rKrVrYr[rhrjrSr(rrmrprsrurwrzr|rrfixturerrrrrrrrrrrrrTrrr rUrIrFr$ se( * &&22EE"HH**.SS!! LLGxq!W,XX xx v9v9ryGyGx..  V>V>r9900>77 ??BB,&"&"R & &$2> E#9#9LA1wdCHI.J.wdCHI.J.wdCHI/J/wdCHI/J/=*DD:4z K  NN E" G B D,F$J&J,C$ J -&&[6[6|--rI