K iSddlmZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%dd l&m'Z'dd l(m)Z)dd l*m+Z+m,Z,dd l-m.Z.m/Z/m0Z0m1Z1dd l2m3Z3m4Z4m5Z5m6Z6ddlm7Z8ddl m9Z9m:Z:ddl;mZ>ddl?m@Z@ddlAmBZBddlCmDZDmEZEmFZFddlGmHZHddlImJZJddlKmLZLmMZMdZNdZOdKdZPdZQe3dZRdZSdZTdZUdZVd ZWdLd!ZXe5d"ZYd#ZZd$Z[d%Z\d&Z]d'Z^d(Z_d)Z`dMd*Zae5d+Zbd,Zce3d-Zde5d.Zed/Zfe5d0Zgd1Zhd2Zid3Zjd4Zkd5Zle5d6Zmd7Zne5d8Zod9Zpe6d:Zqe5d;Zre5d<Zse5d=Zte5d>Zue5d?Zvd@Zwe5dAZxdBZydCZze5dDZ{e3dEZ|e3dFZ}e3dGZ~dHZdIZyJ)N) randrange)ShiftAShiftBUnShiftAUnShiftB MeijerShiftA MeijerShiftB MeijerShiftC MeijerShiftDMeijerUnShiftAMeijerUnShiftBMeijerUnShiftCMeijerUnShiftD ReduceOrder reduce_orderapply_operators devise_planmake_derivative_operatorFormula hyperexpandHyper_Function G_Functionreduce_order_meijerbuild_hypergeometric_formula)Sum)Tuple)Expr)I)S)symbols)binomial) Piecewise)hypermeijerg)zabc)XFAILraisesslowtooslow)verify_numerically)Rationalpi)exp exp_polarlog)atanh)sqrt)asincossin)besseli)erf)gamma lowergammac ttttddtjftddtddft t tdz t tttzdz t zdz ttttt zdtt zz zk(sJtttdddggtddgtddd gt dt td zzdttzttt ztt z dt tddt zt td zz z zttddzttddz k(sJy) Nz1/3rz2/3)rr#r.rHalfr%r;r1rr/r4r9r$r:k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/simplify/tests/test_hyperexpand.pytest_branch_bugrH#ss uhr1oqvv6!QRSUV8X[\Z\] ^ AeH Z !B$ 1155a7 r(3tAw< 47 + , ,, , wA2B!Q8H8TUWX>[\J]_`a b !QuX+ qbz#d1g,.tAw6:1~q<*:**+QuX+:66 77> > uR!&&AqD573 4A >> > qrAeH:1uQw77 8CF BB B uah%1AeH:q!tDQF G 7   c(1a.A-1ay9>>@$ GG GrFc tt||t}|jtry|syi}|jthz }|rOt |D]\}} t ||z || <tdt|j|Dsn|rOgd\} } } } |r gd\} } } } tt||tj||jttj|t| | | | S)NFTc3BK|]}|jxr|dkyw)rN) is_Integer).0r's rG zcan_do..Es Jq1<<*AF*Js)r?r=r>rC)r?r>r=)r&r'r(d)rr#r%has free_symbols enumeraterandcplxanyrsubstnreplacer1r0)apbq numericaldiv lowerplanerreplrandsymsnair&r'r(rVs rGcan_dori9sE"b!$%AuuU|  D~~#H x( 'EAr{3DH 'JE2JOOD4IJJ   !LQ1a% Aq!  b"ad# )S!&&t, Q!qA rFcRttjgtddgsJtgdtdddgsJttddddgddgsJttddgtddtddtjdgsJttd dtddgtd ddgsJttd dgtddtjgsJttd dtddgdgsJy) N r?rCr@rJr=r>rU)rirrDr.rErFrG test_roachrnPs  166(Xa^, -- - "q(1a.!, -- - 8B?Aq)Aq6 22 2 8Aq>"Xb!_hr1oqvvq$Q RR R 8B?HRO4xA6J KK K 8B?%Q'@ AA A 8B?HRO4qc :: :rFc ttdddgtddtjtddgsJttddgtdddgsJttddtjdgtddtddgsJtgdtjdgsJttjgtddtddtddgsJy) Nr=r?rCrJr>r@rCr?r>rU)rir.rrDrErFrGtest_roach_failrq\s 8B?A&!Q!Q(P QQ Q 8Aq>"Xa^Q$7 88 8 8B?AFFA.!Q!Q0P QQ Q )affa[ )) ) 166(Xb!_hr1oxAO PP PrFc|ddlm}ttgdgt|usJttdgdgt|usJttddgdgtdk(sJt ddt t gdt gsJttdd tdtd z zk(sJy) Nroor=rUrCrmi)r=rC)rUr?)sympy.core.numbersrtrr#r%rirZrss rGtest_polynomialrvgs% uR"q) *b 00 0 ubTB4+ , 22 2 uaVbT1- .! 33 3 2r8:xz2S(*4E FF F uWeQ/ 0A!G ;; ;rFc ttdgtgtttt dzztdz dtzzttdz zzdz zt tzt tdz tzzdz k(sJttddgdgtdtz dt t dzztdzz z k(sJtttjdgtddgtddtzdz z tttttz dz zk(sJtttjtjgtddgtdtzdzdz ttt dzzz d tzdz tttzdttddzzz zk(sJttddgtddgtddtzdz z tttttdtzdz ztt dzzz z k(sJtttdddz ddgtjdgtttttd d ztd dz ztttzd tdzzd tzzd z d z tz zd t t dzzd tdzzz z k(sJttdtjzddgddgtdt tt dzdz tjzztz k(sJttdgtdgttt dz tjzzttdz dttzzttztt dz dzzttdttzzttzzk(sJy)Nr?rCr>rUr=r@rlrJrBrAi #)rr#r&r%r0r;r2rrDr.r3r4r5r'r8r:rErFrGtest_hyperexpand_basesr{ps uaS1#q) * AQK!Q$1q!a%y014 5c!f <1q5!    ! !! ! uaVaS!, -A#qb1f+ ad8J1J JJ J uaffa[8Aq>*:A> ? AaC!G uT!W~d1g-a// 00 0 uaffaff-A/?C D A1 aaR!V n% Q37DaM !1QA%6#6 7 8 88 8 uaVhq!n%5q9 :b!A#'l tAw-a!A#'*4Q<7 8?9 99 9 uhr1o11a81661+qI J Q8Aq>!HQN23E$q'NB q!t8bd?Q  "1 $ %'(aR!V}bAg'> ? ?? ? ua!&&j!Q/!Q; < 3tQBF|A~& '') ** * uaS1a&!, - QBqD166M71q5!DG)44U1X= qbdQh-1T!W9- -eAh 6 7 77 7rFc ttttjtzgtjgt dt t zdtzzdz dt t z dtzzdz zk(sJttttddtzgdtzgt ddtzdz zt dztjzdzdtzdzzzk(sJy)NrCrUr?r=)rr#r&rrDr%r4r.rErFrGtest_hyperexpand_parametricr}s ua!_qvvh: ; QK2a4  "a$q'kRT%:1%< < == = ua"a1!45!ua@ A qsQw<1"q&166)A-A: : ;; ;rFc <ddlm}|ttdzt dgdt dgtdz ztt dtzztdz t jztdtzzzt jz k(sJy)NrsimplifyrJr?r>rK) sympy.simplify.simplifyrrr%r#rr7rDr6rs rGtest_shifted_sumrs{0 K1UA3AeH 1u%E EF G S1X:!Q$QqS1 1AFF : ;; ;rFc6ttddzdz S)z Steer clear of integers.  2)rrrErFrG_randratrs Yr]R   ##rFcTtttzztd|zzzS)z+ Polys is not good with real coefficients. rC)rr)offsets rGrZrZs" :(* $q!f*~ 55rFc 0ddlm}|j}|D]}|j|j}i}t |j D]\}}t|||<|j|}|jj|jd}|j}t||jtt|sJ|j|j zdj|jd} t|jtt| jtt|sJ||j j#dj%|z} |j&|j z} t)| | D]q\} } t| j|jtt| j|jdjtt|rqJy)Nr)FormulaCollection nonrepsmallc$|jdS)Nr)rewrite)ts rGztest_formulae..s 2rF)sympy.simplify.hyperexpandrformulaefuncr%rYr rZr\ closed_formrr]r^r1r0CB applyfuncdiffMzip)rrformulahreprgsymrr%clderiv1deriv2d1d2s rG test_formulaers< "++HV LL #0 #FAs{CH # FF3K))..s3;;MJ II![((C8!<<<ii'))#Q ' , ,S 1 9 9- H+%% sZZ 37< <<799&&( DG$WYY&&&) VFBbggcl**9c:ggcl**=9AA)SQSTV VV V1VrFc `ddlm}|j}|D]}||D]}t|jj |jj |jj|jj|j}i}|jD]}t||<|j|}|jj|}|j}t|||sJ|j|j zdj|} t|| |sJ||j j#|z} |j$|j z} t'| | D]2\} } t| j|| j||r2Jy)Nr)MeijerFormulaCollection)rrrr$ranr_bmr`r%r rZr\rr]rrrrr)rrsigrgrrrr%rrrrrs rGtest_meijerg_formulaersoB&(11H9} 9G   #AC &#:C &s A!--2237K Aaa( (())gii'+005Bk2q) ))wyy~~a((FYY*Fff- 9B"''#, a888 9' 99rFc:t|jtzSN)r%r)fs rGoprs QVVAY;rFc Dttdgdtdgdtgk(sJtt5ttdgdtddtdddtt5ttdgdgtdgdgtdddtt5ttdggtt dggtddddt dD\}}}|dtzz }t||g|gt}t|dz|f|gt}tt|tt|dz|f|gt||f|gtt|tsJt|dz|dz f|gt}tt|tt|dz|dz f|gt||f|gtt|tsJy#1swYxYw#1swYfxYw#1swY+xYw)NrrErCr?rLc32K|]}t|ywrrZrSrgs rGrTztest_plan..0!(1+0r>) rrr%r* ValueErrorrrangerr#r]rr)a1a2b1rh2s rG test_planrs ~qc2. A3 #Q (+- .. .  HNA3+^B-CQGH  KNA3,naS1#.FJK  PNA3+^QuXJ-KQOP1uQx0JBB!A#IB r2ha A Q|bT1 %B oaNBFB<"6 B8bT *A /024 A   QQ"q )B oaNBFBF#3bT: B8bT *A /024 A  'HHKKPPs#'G;:*H;1H;HHHcddtd}}}dtd}}t|||f||f}t|dz|dz|dzf|dz|dzf}t||t}t |t|tg}t |j t} tt|j|| |jzd|ttsJt||dz |dz f|dz |dz f}t||t}tt|j|| |jzd|ttsJy)NrCr?rLr>z5/2r) rrrr%rrrr]rrr) rra3rb2rropsrderivs rGtest_plan_derivativesrs,AqxBB %BB|b"X.A aaa026262B CB b!Q C1adBA $QSS! ,E qssC/3Q7A BB B R!VR!V,rAvrAv.> ?B b!Q C qssC/3Q7A BB BrFcrdtdD\}}}t|g|gt}tddJtddJtdt dJt||f||ft}t t||j |t|tsJt||dzf||ft}t t|dz|j |t|tsJt|dz|f||ft}t t|dz|j |t|tsJ|dz||dzf}|||f}tt||\}}|j|fk(sJ|j|fk(sJt t||tt||ttsJy) Nc32K|]}t|ywrrrs rGrTz+test_reduction_operators.. rrr>r?rr=rCrLrJ) rr#r%rrr]applyrrrr_r`r) rrrrrr_r`rrs rGtest_reduction_operatorsr s0uQx0JBB rdRD!A q!  $$ $ q"  %% % q!E( # ++ + Bx"b1 %B k"b!''2.A 66 6 BF|b"Xq )B k"q&"%++Ar2B :: : Q|b"Xq )B k"q&"%++Ar2B :: : q&"b1f B b"B^B34ID# 77re   77re   oab)5R+;Q ?? ?rFc jdtdD\}}}}}t||f|||ft}ttdttdt t |j|tt|dz|f|||fttsJt t |j|tt||dzf|||fttsJt t|j|tt||f|dz ||fttsJt t|j|tt||f||dz |fttsJt t|j|tt||f|||dz fttsJy)Nc32K|]}t|ywrrrs rGrTz'test_shift_operators..'8!(1+8rr@ctdS)Nr)rrErFrGrz&test_shift_operators..* vayrFctdS)NrC)rrErFrGrz&test_shift_operators..+rrFrC) rr#r%r*rr]rrrr)rrrrb3rs rGtest_shift_operatorsr&sn8uQx8BBB r2hR a(A :() :() fRjq"%ub1fb\BB<'KQ OO O fRjq"%ub"q&\BB<'KQ OO O fRjq"%ub"XQB7G'KQ OO O fRjq"%ub"XBFB7G'KQ OO O fRjq"%ub"XBQ7G'KQ OO OrFc :dtdD\}}}}}t||f|||ft}ttdttdttdttdt ||f|||fdt}t |j|tt|dz |f|||fttsJt ||f|||fdt}t |j|tt||dz f|||fttsJt||f|||fdt}t |j|tt||f|dz||fttsJt||f|||fdt}t |j|tt||f||dz|fttsJt||f|||fd t}t |j|tt||f|||dzfttsJy) Nc32K|]}t|ywrrrs rGrTz(test_ushift_operators..5rrr@c&tdddtS)NrCrErrr%rErFrGrz'test_ushift_operators..8sxb!Q7rFc&tdddtS)NrEr=rrr%rErFrGrz'test_ushift_operators..9sxE1a8rFc&tdddtS)Nr)rr=rCrrrErFrGrz'test_ushift_operators..:sxj!Q?rFc&tdddtS)NrrCrrrrErFrGrz'test_ushift_operators..;sxa;rFrrCr?) rr#r%r*rrr]rrr)rrrrrrss rGtest_ushift_operatorsr4s8uQx8BBB r2hR a(A :78 :89 :?@ :;<"bBB<A.A agganeR!VRL2r2,BA FF F"bBB<A.A agganeRaL2r2,BA FF F"bBB<A.A agganeRHrAvr2.>BA FF F"bBB<A.A agganeRHr262.>BA FF F"bBB<A.A agganeRHr2rAv.>BA FF FrFc ddlm}ddlm}t t ||||t }|jt ry|||ddddddd}|syi}tt ||||t jt hz D]\} } t| || <tt ||||t j||j|t S)ab This helper function tries to hyperexpand() the meijer g-function corresponding to the parameters a1, a2, b1, b2. It returns False if this expansion still contains g-functions. If numeric is True, it also tests the so-obtained formula numerically (at random values) and returns False if the test fails. Else it returns True. r)expand) unpolarifyFT)force power_base power_expmulr2 multinomialbasic) sympy.core.functionr$sympy.functions.elementary.complexesrrr$r%rWrYrXrZr]r\) rrrrnumericrrrdrergrhs rG can_do_meijerrJs+?GBBA./AuuW~ 6!4DE#EP QA  D72r2r15BBaSHI2A;R gb"b"a(--d3QVVD\1 EErFcHddlm}ddlm}t t gggdgggt tt k(sJt t ddgggdgdggt tt dzk(sJt t ddgggdgdggt t t dzz k(sJt t gggtjgdggt dz dztt ttz k(sJt t gggdgtjggt dz dztt ttz k(sJtgt gt dz t tjz ggsJtggt dz gt dz gdsJtt gt"gt gt"t dz gsJt t dgggdgt t%dt't dkfdt'dt z dkft dgggdgt dfk(sJt t gdgdggt t%dt't dkfdt'dt z dkft gdgdggt dfk(sJtggt t"dz zgt t t"dz z t tjzgsJtggt gt"gdsJtgtjgt gt gsJtggt t"ggsJtggt t"ggsJtggt t tjzgt"t"tjzgsJtggt t gdtjgdsJtggt t tjzt"t"tjzggsJttjggdgt t gsJttjggt gdt gdsJtgt tjz gt t"gt tjz gdsJtgt tjzgt t"zt t"z t ggdsJtt tjzggt"dt zt"z t ggdsJtgggt t"gsJt t ddgggddgt t%dt't dkft ddt dzz z zdz t'dt z dkft ddgggddgt dfk(sJ||t t dgdt z gt dz t dz tjzggdt z d ttztt dzdzt zzt z k(sJt t dggt gddgt t)t ft dzt dzft t+t,tzzt t zzt/t zt/t dzdzz k(sJt d tjfd ft dz}t |tttdt d zzz k(sJt |d ttt ztt dzdzz k(sJy) Nr gammasimprrCr?FTr=rU)rrEr)place)sympy.simplify.gammasimprrrrr$r%r0r2rrDr7r4r/r6rr&r'r"absr#r1rr:)rrrs rGtest_meijerg_expandris20 wBx1#rQB7 8CF BB B wA|qcA3Z; < AE    wA|qcA3Z; < 1q5    wBx166(QC1Q3(C D q6$r(?   wBx1#x1Q3(C D q6$r(?   aS1q5!aff*"5r :: : R!A#!A 66 6 !qcA3AE 33 3 wsBQC3 41c!fqj/As1Q3x!|#41#r2sA.5 7 77 7 wrA3R3 41c!fqj/As1Q3x!|#4"qcA3A.5 7 77 7 R!ac'QAaCQVV,D EE E  BaS% !! ! affXsaRD 11 1 R!Q ,, , R!Q ,, , R!QZ1a!&&j/ BB B R!aR1aff+u == = R!QZAJ!? DD D !&&2sQG 44 4 !&&2sQGU ;; ; a!&&j\Aq6AJ< GG G a!&&j\AE1q5!+!#S1X\2Aq62rB7A6= ? ?? ? Xka!eWr!taRTAFF]3R1=?@ A 48 T!a%[1_q((* ++ + wsBaVQ7 8E q1ua!ena !B$/=112A=66;Ah=??DQU|Q=O OO O  y$/A6A q>T"Xd1q2w;&77 77 7 q "d2hqjadQh&? ?? ?rFc ddlm}m}ddlm}t t tggttggtttzttztt tzdzz|ttz tzk(sJt t dggddggttt|dtzk(sJttggttdzggsJttggtdztggsJttggtdz tggsJt t tggttttjz ggttt  tttjz zzdt#dttzz|dttzt dz z zdt%dttzz|dttzzz zcxk(rt t tggtttjz tggtcxk(rEt t tggttjz ttggtk(sJJttdz ggtdztt'ddz tdzggsJy)Nr)CiSi) uppergammarCr?r>)'sympy.functions.special.error_functionsrr'sympy.functions.special.gamma_functionsrrr$r&r'r%r0r:rrrDr4r/r6r7r.)rrrs rGtest_meijerg_lookuprsJ@B wsBAA6 7 1SV E1"q&1*%%jQ&:: ;; ; wsBAA6 7 Az!Q   !b1a!e*b 11 1 !b1q5!*b 11 1 !b1q5!*b 11 1 wsBAq166z(:BB C b !a!&&j/!1S47^#3R$q' ]RT5I#J%&s1T!W9~%5b47m%C$D E A GQCaQVVQ%7Q?@ A GQCa!&&j!Q%7Q?@  AA AA A !a%"q1ua(1a..@!a%&H" MM MrFc tggttjzgtttdz z ttdz zgsJtggdtjgtt gsJtggdtztjz tt tjz gttjz gsJtggdttjz t tjz gtjgsJtggtttjztgdtztz gsJtggtttjztdtztz gsJttjggt tgdgsJy)Nr?rr>)rr&rrDr'rErFrGtest_meijerg_expand_failrsC R!aff*1qs7A!G/D EE E R!QVVq1"g 66 6 R!A#,A2;!?!aff* NN N R!QZ!aff!=x HH H R!QZ!3acAgY ?? ? R!QZAaC!G!< == = !&&2Aw 44 4rFc dtdD\}}dtdD\}}dtdD\}}}}}} t|g||g|g||gt} tjddJtj ddJt||g||g|g|||gt} t tj ||j| t| tsJt||g||g|g|||dzgt} t tj ||dzj| t| tsJt||dz g||g|g|||dzgt} t tj |dz |dzj| t| tsJt|g|||dz g||dzg||gt} t tj|dz|dz j| t| td sJ||g} |||dzg} |||dz g}||dzg}tt| ||| \}}|j|fk(sJt|j||hk(sJ|j|fk(sJt|j||hk(sJt t!| |tt| ||| ttsJy) Nc3ZK|]#}t|dtzz |tzz %ywr@NrZrrs rGrTztest_meijerg..& 8!hqkAaC!A#% 8)+r?c3ZK|]#}t|dtzz|tzz%ywrrrs rGrTztest_meijerg..rrc30K|]}tywrrrs rGrTztest_meijerg..s;Qhj;rBr>rJrCgư>)tol)rr$r%r meijer_minus meijer_plusr]rrrrrsetr_rr`r)rrrrrb4b5ra4a5rg2rr`r_rniqrs rG test_meijergr s 9uQx 8FB 8uQx 8FB;%(;BBBr2hr2h2A  # #Aq ) 11 1  " "1a ( 00 0 "bB8bTBB< ;B k%%b"-33Ar:B BB B "bB8bTBBF+;Q ?B k%%b"q&1772>A FF F "b1fBx"BQ/? CB k%%b1fb1f5;;ArBB JJ J "BQ'"b1fBx CB k&& QQa b! 77 7 bB b"q& B b"q& B b1fB":b"b"#=>HC 66bU?? svv;2r( "" " 66bU?? svv;2r( "" " oab)72r2r1+Eq II IrFc dtdD\ }}}}}}}}}} t|g||g|g||gt} tt |j | t t|g||g|dzg||gttsJtt|j | t t|dz g||g|g||gttsJtt|j | t t|g||g|g|dz|gttsJtt|j | t t|g|dz |g|g||gttsJt|g||g|g||gdt} t| j | t t|g||g|dz g||gttsJt|g||g|g||gdt} t| j | t t|g||g|g|dz |gttsJt|g||g|g||gdt} t| j | t t|dzg||g|g||gttsJt|g||g|g||gdt} t| j | t t|g|dz|g|g||gttsJy)Nc32K|]}t|ywrrrs rGrTz/test_meijerg_shift_operators..s-Mahqk-MrrrCr)rr$r%r]rrrr r r r rr r) rrrr r rrrrrrrs rGtest_meijerg_shift_operatorsrs-M59-M*BBBBBr2hr2h2A l2$$Q+rdRHrAvhR!.ts+.1v1  NIq#a&1*o3qs8a>!+<+A Z] qvva} 6166!R=??#44 5 7 7 9E A qvva2  "VQVVAqt_%6%6%88 9 ; ; = ErFrCrr>r?rJr= rBrCrCrCrC)rrrrct||||t}t|d}|jtr%|jrt |j dk(syt||tS)NT) allow_hyperr>F)r$r%rrW is_Piecewiselenrr])rr_rr`rm2s rGuz"test_meijerg_confluence..u1sQ BBA &  - 66'?BOOBGG 8I!R|rF)r?r?r@)rCrCrB)r$r%r2r.rrD)rr s rGtest_meijerg_confluencer!s_ WR!Q!QQ /#a&! << < W QFQFB#%&TE!GaK#a&($:Xa^$KQ PP P WR!Q"a"a 0 T"Wqs]SVAX %A 6AaC @! EE E WR|R ;c!faiZ\1 MM M WaVRaVQ /S1XI >> > WaVaVaVaVQ 7RAY1_s1Q3xi!m -- - WaffX1v1vA/? CSVAXPQ\ST UU U R!q!fb !! ! aVRaS !! ! aVY Aq6 22 2 aVY A3 // /rFc Zddlm}tdtddfdft}d}|ttddzzt dtddftd dftt ttzzz}|jt||z jd d sJy) Nr)RR))g@rCrEr>r?rgw gr@g?g-q=) sympy.polys.domains.realfieldr#r$r.r%r#r1rr/almosteqrrg)r#rr&rs rGtest_meijerg_with_Floatsr&=s0(1a.!2D 91=AA !Xa^ E4!Q"88Aq>:KQyYZ[]Y]M^__A ;; Aq(++-sE :: :rFc ddlm}m}ddlm}t t dtgtdzgttz |tdtk(sJt t dttgtdztdzgttdzz |tdtk(sJt t dtttgtdztdztdzgttdzz |tdtk(sJt t dgtgdzztdzgdzttdzz |tdtk(sJ|t tddtz ggdgt gtt tztz|tdtk(sJ|t tddtz dtz ggdgt t gtt tztz|tdtk(sJ|t tddtz dtz dtz ggdgt t t gtt tztz|tdtk(sJt tt ddgdgtztdt z k(sJt tt gdddgtz|dtk(sJt tt gd gd tz|dtk(sJt t dtdtjzgtdztjgtd tztdz z d tdzztz|tdtzzk(sJt!gd ddgsJt!dddt"d zgddt"gd sJt!dtttt"d zgtdztdztdzt"gdsJddlm}t t tjtjtjdgt)ddt)ddt)ddgt)dd||dtttzdz  |dtjzk(sJy)Nr)lerchphipolylogrrCr?r>r)rCrCrCr)r?r?r?rUr@)rbFra)AbsrJ)&sympy.functions.special.zeta_functionsr(r)rrrr#r&r%r$r1rr/r2rrDrir'rr+r.)r(r)rr+s rG test_lerchphir-FsXJ2 uaVa!eWa02 3x1a7H HH H  q!Qi!a%Q+AqD0 25=aA5F GG G uaAq\AE1q5!a%+@!DQTI JAq   uaSA3r6\AE72:q9!R%? @B   [!QUR! i2q ""# $'/1a'8 99 9 [!QUAE):B aR)QBrE"1$"&' (+3Aq!+< == = [!QUAE1q5)A2s aR! i2&q("*+ ,/71a/@ AA A q1vsA.. /CQBK< ?? ? qy1a&!44 5A FF F q|Y:: ;wq!} LL L uaAJ/!a%!D E 1a!e 1a4! XaA%666 77 7 )aV $$ $ 1aAE"Q1I2 66 6  Aq!QUa!eQUAE15 HH H9 uaffaffaffa8&q!nhq!nhq!nMxXY[\~_ ` WQ !B$) * *WQ-? ?@ AA ArFc <dtdD\}}}}}t|||g||gtg|||||gfD]}t|}|j}|j||k(sJ|j j ||z}|j|j z} t|| D]\} } t| | |rJtd\}}}ttd|gd|g|| |zdz ||zdz zd|zzt|dzg|g|z||zdz d|zz dzt|g|g|zzk(sJtttd|gd|g|td|gd|g||sJttdgd||g|td||f||td|dz|f|zd|zz z||dz ztd|dz|dzf|zd|z|zz z k(sJtttdgd||g|tdgd||g||sJy) Nc30K|]}tywrr)rS_s rGrTz$test_partial_simp..vs2AXZ2rr@za b zr>rCr?rErJ) rrrr%rrrrrr]r rr#) r&r'r(rVerrr%rrfunc1func2s rGtest_partial_simpr4ts2q2MAq!QAq Aq62 21aA /1' ( . CC}}Q'''!QQSS/ 'LE5eUA& && ''gGAq! uaVaVQ/ 0 Aa!A#a%!A# ua!eWqc155 Q3q51Q3;?E1#sA. . / // / E1a&1a&!,-uaVaVQ/G LL L uaS1a)Q/ 0 b1a&! E"q1uaj! $ $ac * + QU)E"q1ua!ena0 0!A#a% 8 9 99 9 E1#1ay!,-uaS1a)Q/G LL LrFc ttttgtgdt tt ttz tz zt ttz z t ttz z k(sJttttgdtztz gdt dtdz zt dtztz zt dtzz t dtdz ztz z k(sJttttgdtztz gdt dtdz zt dtztz zt dtzz t dtdz ztz z k(sJtt dtz tdz z gdtz tdz zgtdz gt dz gdt ddtzz t ttdz ztdz zzt dtz tdz ztdz z z t dtz tdz z tdz zz t dtz tdz ztdz zz k(sJtttgtgddk(sJttgtgddk7sJy)NrCr=r?r)rr#r&r'r(r:r$r%rErFrGtest_hyperexpand_specialr6s\ uaVaS!, - aq1uqy!!%A,.uQU|; << < uaVa!eai["5 6 a!A#guQUQY''a!e 4U1qs7Q;5GG HH H uaVa!eai["5 6 a!A#guQUQY''a!e 4U1qs7Q;5GG HH H wA! }q1uqs{macUaRTFAN O a!A#guQ1Wqs]++E!a%!A#+!2C,DD q1uqs{QqS ! ""'A! ac(9": ; ;; ; uaS1#q) *a // / !qc1  "" "rFc ddlm}ddlm}|dd}|t t dgg|dzgdgt t|dzt k(sJy)Nr)SymbolrrgT)integerrC)sympy.core.symbolr8rrrr$r%r;)r8rrgs rGtest_Mod1_behaviorr;sU(0sD!A KR!a%1#q AB C1q5!  rFctddtzdz dtz dz gtdddgsJttjt dz gtddt dzgdsJtgt dzgsJtt gt dz t dzgsJtt gt tjz dt zgsJtt gt tjz dt zdzgsJtt gt tjz dt zdz gsJtt gt tjzdt zgsJtt gt tjzdt zdzgsJtt gt tjzdt zdz gsJttjgt dt z gsJttjgt dt z gsJtdgdt gsJtt t tjzgdt zt dt zt z dzgsJtt t tjzgtjdt zdt ztjzgsJtt gt dzgdsJy)NrCr>r?T)rc)rirr.rrDr&r'rErFrGtest_prudnikov_miscr=sM 1q1uai!a%+hq!na-@ AA A 1661q5/HQNAE#:t LL L "q1ug   1#Aq1u~ && & 1#AFF AaC( )) ) 1#AFF AaC!G, -- - 1#AFF AaC!G, -- - 1#AFF AaC( )) ) 1#AFF AaC!G, -- - 1#AFF AaC!G, -- - 166(QAJ '' ' 166(QAJ '' ' 1#1v   1a!&&j/AaCAaC!GaK#8 99 9 1a!&&j/AFFAaC1qvv#> ?? ? 1#Aw4 00 0rFcJttt gtjgsJttdtz gtjgsJttdtz gt ddgsJttdtz gtjgsJttdtz gt ddgsJttdtz gt ddgsJttttjzgdtzdz gsJttttjzgdtzgsJttttjzgdtzdzgsJttttjzgtjgsJttttjzgt ddgsJtttdz dzgtdz gsJtdt gdgsJtdt gt dzgdsJttgdtzgsJttgdtzdzgsJttgdtzdz gsJy)NrCr>r?Fr*)rir&rrDr.r'rErFrGtest_prudnikov_1r?s 1qb'AFF8 $$ $ 1a!e*qvvh '' ' 1a!e*x1~. // / 1a!e*qvvh '' ' 1a!e*x1~. // / 1a!e*x1~. // / 1a!&&j/AaC!G9 -- - 1a!&&j/AaC5 )) ) 1a!&&j/AaC!G9 -- - 1a!&&j/AFF8 ,, , 1a!&&j/HQN#3 44 4 1acAg,1 && & 1a&1#   1a&1q5'U 33 3 1#!u   1#!ay !! ! 1#!ay !! !rFc tj}t| | g|gsJt| |gd|zgsJt| |gd|zgsJt| |gd|zgsJt| dg|gsJ| |fD]b}| |dd|zdd|zdd|zdf D])}| |d|zd|zd|zfD]}t||g|grJ+dD]}dD]}t||g|grJdy)Nr>r@rArCr?rJrCr?r>rJrrDrirprgrs rGtest_prudnikov_2rEsJ A A2r(QC  A2q'AaC5 !! ! A2q'AaC5 !! ! A2q'AaC5 !! ! A2q'A3  b!W+"aAaCAaCAaC3 +Ab!QqS!A#qs+ +q!fqc*** + + +A! +q!fqc*** + + +rFctj}ttddtddg|gsJttddtddgd|zgsJttddtddgd|zgsJttddtddg|gsJttddtddgd|zgsJy)NrCrJr>r?r@)rrDrir.rs rGtest_prudnikov_3rHs A 8Aq>8Aq>2QC 88 8 8Aq>8Aq>2QqSE :: : 8Aq>8Aq>2QqSE :: : 8Aq>8Aq>2QC 88 8 8Aq>8Aq>2QqSE :: :rFc tj}dD]H}| |dd|zdd|zdd|zdd|zf D]*}dd|zdd|zdd|zdfD]}t||g|grJ,Jy) NrArCr>r?r@rArJrkrBrCs rGtest_prudnikov_3_slowrJs A +"aAaCAaCAaCAaC8 +A1a1a1a0 +q!fqc*** + ++rFctj}d|zd|zd|zfD]^}| |d|zd|zd|zfD])}d|zdd|zdd|zdfD]}t||g|grJ+dD]}dD]}t||g|grJ`y)Nr>r@rAr?rJrA)r?r>rJrBrCs rGtest_prudnikov_4rLs Ac1Q3!_+"a1ac1Q3' +Ac1ac1ac1- +q!fqc*** + + +A +q!fqc*** + + +rFc tj}dD]?}t|dD].}dD]'}t|dD]}t| ||g||grJ)0A|dd|zdd|zdfD]R}|d|zd|zfD]B}|d|zd|zfD]2}|d|zd|zfD]"}||ks ||kst| ||g||gr"J4DT|dd|zdd|zdfD]4}dD]-}|d|zd|zfD]}dD]}t| ||g||grJ/6y)NrprJrCr>r?r@rrDrri)rrDqrdrs rGtest_prudnikov_5rP s A 6q! 6A 6q!6A!A2q!*q!f5556 6 66 AaCAaC #:QqS!A# :A1ac] :QqS!A#:AAv!q&%r1aj1a&999: : ::AaCAaC #6 6A1ac] 6"6A!A2q!*q!f5556 6 66rFc tj}d|zd|zfD]V}dD]O}|ddfD]}dD]}t|||g||grJdD]$}d|zd|zfD]}t|||g||grJ&QXdD]*}dD]#}dD]}dD]}t|||g||grJ%,t||d|zgd|zd|zgsJt|dd|zgd|zd|zgsJt|ddgddgsJy)Nr>r@rprCr?)rCr?rB)rrrgrOrDs rGtest_prudnikov_6rR$sy Ac1Q3Z5 5AAY 5"5A!1a)aV4445 5 5A#qs5A!1a)aV4445 5  555 5A 5"5A!1a)aV4445 5 55 1a1+!QqSz ** * 1a1+!QqSz ** * 1a)aV $$ $rFc tdgdgsJtj}|d|zd|zd|zfD]}t| g|grJ| |dd|zdd|zdd|zdf D],}| |d|zd|zd|zddddf D]}t|g|grJ.y)Nr>rBr@rArCr?rJ)rirrD)rrgrs rGtest_prudnikov_7rT>s 1#s   A1ac1Q3 !rdQC   !b!Q!Q!Q!Q /$"a1ac1Q31a3 $A1#s# ## $$rFc Jtj}dD]}}dD];}td|dzD]'}|dd|zdd|zdfD]}t||g||grJ)=d|zd|zfD].}|dd|zdd|zdfD]}dD]}t||g||grJ0| |d|zd|zfD]}dD].}|dd|zdd|zdfD]}dD]}t||g||grJ0|d|zd|zfD]>}|d|zd|zdfD]-}|dd|zdd|zdfD]}||ks t||g||grJ/@y)NrprCr>r?r@rN)rrhbicidis rGtest_prudnikov_8rYJs A6 6BArAv& 6a1a1a06B!2r(RH5556 6 6Q3!* 6B!QqS!QqS!, 6#6B!2r(RH5556 6 6 6r1ac1Q3 : 6B!QqS!QqS!, 6#6B!2r(RH5556 6 6ac1Q3- :B!A#qsA& :a1a1a0:BRx%r2hR999: : : :rFctdD] }tgt|dzdz gr JtdD]$}tgdt|zdz dz gr$Jy)NrkrCr?r@)rrir)is rGtest_prudnikov_9r\esk 1X*bAaD1Ha<.)))* 1X-bQqtVaZ=?+,,,-rFc ltj}| |dd|zdd|zdd|zdf D]+}dD]$}t|dD]}t|g||grJ&-dD].}|d|zd|zd|zfD]}dD]}t|g||grJ0d|zd|zd|zfD];}|ddd|zdd|zdfD]'}t|g||gsJt|gd|z|gr'J=|ddd|zdd|zdfD]}td|zgd|z|grJtt ddgtjtjgsJy) NrCr>r?r@rArJrAr=)rrDrrir.rrDrrgs rGtest_prudnikov_10r_ms Ab!Q!Q!Q!Q /+ +A1a[ +qcAq6*** + ++ +QqS!A#qs# +A! +qcAq6*** + ++ c1Q3!_)Q1Q31Q3* )A1#1v& &&1#!Qx( (( )) AqsAqsA &'qseac1X&&&' 8B?#affaff%5 66 6rFcbttttjzgdtztdtztz gsJttttjzgt dddtzdtztjz gsJtt ddt ddgtjtjdgsJtt ddt ddgt ddtjdgsJtt ddt ddgt ddt dddgsJtt ddt ddgt ddt dddgsJtddgt ddddgsJy)Nr?r>rCrJr@rA)rir&rrDr'r.rErFrGtest_prudnikov_11rasY 1a!&&j/AaCAaC!G#4 55 5 1a!&&j/HQNAaC1qvv#F GG G 8Aq>8Aq>2QVVQVVQ4G HH H 8Aq>8Aq>2Xa^QVVQ4O PP P 8Aq>8Aq>2Xa^XaQR^UV4W XX X 8Aq>8Aq>2Xa^XaQR^UV4W XX X 1a&8Aq>1a0 11 1rFc xtgtttjzdtzgdsJtgtttjzdtzdzgdsJtgtjtttjzgsJtgt ddtttjzgsJtgt ddtjt ddgsJtgtjtjdgsJtgtjt dddgsJtgt ddt ddt ddgsJtgddt ddgsJtgddt ddgsJtgdt ddt ddgsJtgt ddt ddt ddgsJtgdt ddt ddgsJy)Nr?FrCr>rJr@rA)rir&rrDr.rErFrGtest_prudnikov_12rcs  QAFF AaC % )) ) "q!aff*acAg. 66 6 "qvvq!aff*- .. . "x1~q!aff*5 66 6 "x1~qvvx1~> ?? ? "qvvqvvq) ** * "qvvx1~q1 22 2 "x1~x1~x1~F GG G "q!Xa^, -- - "q!Xa^, -- - "q(1a.(1a.9 :: : "x1~x1~x1~F GG G "q(1a.(1a.9 :: :rFctj}| |fD].}|d|zd|zd|zfD]}dD]}t||g|grJ0y)Nr>r@rArArBr^s rGtest_prudnikov_2F1resi Ab!W+QqS!A#qs# +A! +q!fqc*** + ++rFc tttgtdzgsJtdtgtgsJtttgttztj zgsJtttgttztj z gsJtttgttzt ddzgsJtttgttzdzdz gsJtttgttzdz dzgsJtttgttz dzgsJtttgttz dzgsJtttgdtzgsJtttgtj gsJtttgt ddgsJttdtz gtgsJttdtz gtgsJttdtz gtgsJttttj zgtgsJtdtgtgsJtdtgt ddgsJtt ddt ddgdgsJtj}t|dz dg|dz dzgsJt|dz dg|dz d zgsJt|dz dg|dz d zgsJt|d z dg|d z dzgsJt|d z dg|d z d zgsJt|dz dg|dz d zgsJt|dz dg|dz dzgsJt|dz dg|dz dzgsJt|dz dg|dz d zgsJt|dz dzdg|dz d zgsJt|d z dzdg|d z d zgsJt|d z dzdg|d z d zgsJt|d z dzdg|d z dzgsJt|d z dzdg|d z d zgsJt|dz d zdg|dz d zgsJt|dz dzdg|dz d zgsJt|dz dzdg|dz d zgsJt|dz dzdg|dz d zgsJt|dz dzdg|dz dzgsJt|d z dzdg|d z dzgsJt|d z dzdg|d z dzgsJt|dz d zdg|dz d zgsJt|dz d zdg|dz dzgsJt|dz d zdg|dz dzgsJy)NrCr=r>r?rJrkrBrA r@ r)rir&r'r(rrDr.One)os rGtest_prudnikov_fail_2F1ros 1a&1q5' "" " 2q'A3   1a&1q5166>* ++ + 1a&1q5166>* ++ + 1a&1q58Aq>12 33 3 1a&AEAIq=/ ** * 1a&AE19q=/ ** * 1a&1q519+ && & 1a&1q519+ && & 1a&1Q3%  1a&166( ## # 1a&8Aq>* ++ + 1a!e*qc "" " 1a!e*qc "" " 1a!e*qc "" " 1a!&&j/A3 '' ' 1a&1#   1a&8Aq>* ++ + 8Aq>8Aq>2QC 88 8 A 1Q3(QqSUG $$ $ 1Q3(QqSUG $$ $ 1Q3(QqSVH %% % 1Q3(QqSUG $$ $ 1Q3(QqSVH %% % 1Q3(QqSUG $$ $ 1Q3(QqSUG $$ $ 1Q3(QqSUG $$ $ 1Q3(QqSUG $$ $ 1Q3q5!*qs2vh '' ' 1Q3q5!*qs1ug && & 1Q3q5!*qs2vh '' ' 1Q3q5!*qs1ug && & 1Q3q5!*qs2vh '' ' 1Q3q5!*qs2vh '' ' 1Q3q5!*qs1ug && & 1Q3q5!*qs2vh '' ' 1Q3q5!*qs1ug && & 1Q3q5!*qs1ug && & 1Q3q5!*qs1ug && & 1Q3q5!*qs2vh '' ' 1Q3q5!*qs2vh '' ' 1Q3q5!*qs2vh '' ' 1Q3q5!*qs2vh '' 'rFc ttttddzttddzgtddtddgsJttttddzttddzgtddtddgsJttttddzttddzgtddtddgsJttttddzttddzgttddzdtzdzdz gsJttddtjtjgddgsJttddtjdgtddtddgsJttddtdddgtddtd dgsJttddtdddgtddtd dgsJttddtd ddgtddtd dgsJttdd tdddgtd d tddgsJttdd tdddgtd d tddgsJttdd tdddgtddtd d gsJttjddgtddtddgsJy)NrCr>r?rJr@r=rgrkrirhrArlrB)rir&r.rrDrErFrGtest_prudnikov_fail_3F2rqs 1a(1a.(!hq!n*<=APXYZ\]P^?_ `` ` 1a(1a.(!hq!n*<=APXYZ\]P^?_ `` ` 1a(1a.(!hq!n*<=APXYZ\]P^?_ `` ` 1a(1a.(!hq!n*<=(1a.@PSTUVSVYZSZ\]R]?^ __ _ 8B?AFFAFF3aV << < 8B?AFFA.!Q!Q0P QQ Q 8Aq>8Aq>15AQSUV7X YY Y 8Aq>8Aq>15AQSUV7X YY Y 8Aq>8Aq>15AQSUV7X YY Y 8Aq>8Aq>15AQRTU7W XX X 8Aq>8Aq>15AQRTU7W XX X 8Aq>8Aq>15AQSUV7X YY Y 1661a.8Aq>8Aq>"B CC CrFc tdtgtddtzz tzgsJttddgtj dgsJtdgtj tj gsJttddgtj tddgsJttddgtddtddgsJtdgtddtddgsJtdgtddtddgsJtdgtddtddgsJttj dgtddtddtddgsJttj dgtddtddtddgsJtgtddt dgsJtgtddt d gsJtgtddt d gsJtgtttj zdtzdz gsJy) NrCr?r=rJr@r>rAgUUUUUU?gUUUUUU?)rir&r'r.rrDrErFrGtest_prudnikov_fail_otherrss 1a&1a!A#gk* ++ + 8B?#affa[ 11 1 1#' (( ( 8Aq>"QVVXa^$< == = 8Aq>"Xa^Xa^$D EE E 1#AA7 88 8 1#AA7 88 8 1#AA7 88 8 1661+AAAO PP P 1661+AAAO PP P "x1~qv. // / "x1~qv. // / "x1~qv. // / "q!aff*acAg. // /rFchtddgtgd}t|tdztz k(sJy)Nr=rC)r#r%rrGs rGtest_bugrus0 r1gsBA q>a!eQY && &rFctddd}t|tddk(sJtddd}t|tddk(sJy)N)rmrlrz)rwrC)rwirmr=rB)r#rr.rGs rGtest_omgissue_203ry#sN lHa(A q>Xa_ ,, , lHa(A q>Xb!_ ,, ,rFN)TrCFr)T)sympy.core.randomrrrrrrrr r r r r rrrrrrrrrrrrrsympy.concrete.summationsrsympy.core.containersrsympy.core.exprrrursympy.core.singletonrr:r (sympy.functions.combinatorial.factorialsr!$sympy.functions.elementary.piecewiser"sympy.functions.special.hyperr#r$ sympy.abcr%r&r'r(sympy.testing.pytestr)r*r+r,r-r]r.r/&sympy.functions.elementary.exponentialr0r1r2%sympy.functions.elementary.hyperbolicr3(sympy.functions.elementary.miscellaneousr4(sympy.functions.elementary.trigonometricr5r6r7sympy.functions.special.besselr8rr9rr:r;rHrOrirnrqrvr{r}rrrZrrrrrrrrrrrrr rr!r&r-r4r6r;r=r?rErHrJrLrPrRrTrYr\r_rarcrerorqrsruryrErFrGrs'5555555*' "%=:: ==6-HH79EE27Gc H. ;QQ<74;; $ 6 VV@968 C@4 PG,F>?@?@DN& 5 5#J#JLK>%0%0P;+A\L8 #11*"6++";  +  +++66.%%2$$::4-770 2;&++3(3(lDD000:' -rF