K i,ddlmZmZmZddlmZmZddlmZddl m Z ddl m Z m Z ddlmZmZmZddlmZddlmZdd lmZmZdd lmZdd lmZmZmZmZdd l m!Z!m"Z"m#Z#dd l$m%Z%m&Z&edZ'e dd\Z(Z)e d\Z*Z+Z,dZ-dZ.dZ/e#dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8e"dZ9d Z:d!Z;d"ZBr47(A.. 2d1gq>Br47(A..;   A2a4!8Q/A 6 2d1gq>Br47(A.. 2d1gq>Br47(A..;    1a!eq!teackAoq1u-q! 58:9Q<"QPQT'8Q RR R  Q!A#' Bq!tGbdNR/0!a%8!Q @CD EE E !aQA .! 33 3 QA & - - /21Q;13D DD D QQ * 1 1 3rAqDF{QqS7H HH H QA1Hq 1 8 8 :b1a4i!m KK K !Q! $ + + -AqD 88 8 !Q Aq ) 0 0 2rAgbjQqS6IBqSTUVSVxK6W WW W  1a ( / / 1 HROd1gaik )A --HROd1gaiPQk4QTU3U0UU VV V BqDFQqSL!,a 3q 88 8r,cNtt tdzgttJy)Nr#)rr)r+r,r-test_rsolve_ratio_missedrBOs# !QU Q * 66 6r,cTtfdttDS)z9Compute RHS of recurrence in f(n) with coefficients in c.c3dK|]'}|jtt|zz)yw)N)subsr)).0icfs r- z"recurrence_term..Xs)<qtAFF1a!e$$rrErr?simplifyrrrr rrstr)rIhgynsols r- test_rsolverhrs  !a%1QU8ad"A Q!&&a.(1,, q'166AFF47N*Q. . /A !QqT? AFFQVVDG^ #a ''"affqvvd1g~.E-I*II AFFQVVDG^ #a ''"affqvvd1g~.E-I*II   !QqTAq6 "a '' ' !QqTqQ< (A -- - !QqTAaD!QqT1- .! 33 3 !A$1q5/Aa!eH,adQF ;q @@ @ "QqT1QU8aAh./11v >! CC C 66!VAva133Aq9: ; D D F! KK K Q!a%AqD1Q3JNAa!eH44qsAE{1Q47GGA 9Q<"QT'!A 9Q<!AqD& A !QqT?a   !QqT2 ! ## # !QqT2 ! ## # !QqTAq6 "a '' ' !QqTqQ< (A -- - !QqTAaD!QqT1- .! 33 3 66!VAva133Aq9: ; D D F! KK K !qQx!A !QqTAaD!9 %1 ,, , !QqTAaD!9 %1q 00 0 !QqTAaD!QqT1- . 66 6 66!VAva133Aq9: ; D D F! KK K !AE( QqTAA !QqTAaD!9 %!Q$q166)9 99 9 !QqTAaD!9 %Aa!&& 88 8 !QqTAaD!9 %1a4AFF): :: : 66!VAva133Aq9: ; D D F! KK K !qs1QU8|A !QqT?b1o -- - 66!VAva133Aq9: ; D D F! KK K !qs1QU8|aA !QqT? "" " !AE( a!eQqT\!^#A !QqTAaD!9 %QUA 55 5 !QqTAaD!9 %QUAa 77 7 !QqTAaD!9 %QUAa 77 7 66!VAva133Aq9: ; D D F! KK K QQ!a% AEAE?1Q4#77A !QqTAaD!QqT2. /1a!e9a!e3D DD D  1Q4!A$1Q4% '+,"a!e*a!e*hj !aL1tAwh]? * ++ + QTBqD2 qQx'1QT6BqD=1+z$test_rsolve_raises..s!vadQq1uXoqt<r,cptttttdzz tSrlrrr)rjsr-rmz$test_rsolve_raises..s"vadQq1uXoqt<r,cpttttdzz ttSrlrorpsr-rmz$test_rsolve_raises..s"vadQq1uXoqt<r,ctttttttdzzz ttSrl)rrr)rr+r,r-rmz$test_rsolve_raises..s+vadT!WQq1uX-=&=qtDr,ctttttdzz ttddiS)Nr"rrorpsr-rmz$test_rsolve_raises..s,vadQq1uXoqtadAYGr,ctttttdzzdtzzttzttS)Nr"r#)rrr)rr+r,r-rmz$test_rsolve_raises..s3vadQq1uXo1&r*rIs r-test_issue_6844rys !a%1QU8ad1f$A !QqT?a1"q&k"nQ.aR; ;; ; !QqTAaD!QqT1- .!a!e*Q, >> >r,c tdd}tdd}ttd|zt|zttdz zz |dzttdz zz}t |ttt |t|t tt|zz ztzzt|t|t tt|zzztzzzk(sJy)NrT)positivetheta)realr#r") r rr)rrr*rrrr>)r{r}rIs r-test_issue_18751rssT"A 7 &E !q1us5z!Aa!eH,,q!taAh>A !QqT? As5zAc#e*o-- . 22RCJ3sSXz?IZr*C2rr+r,r-test_constant_namingrs !AaC&1QqS6/AacF*QqT11Q4 8R!GBJObQRdrrEevalfabs)rIrgexpectedes r-test_issue_17990rs AaD1Qq1uX:!AE( *R!a%[8A AaD/CBrAaDF|OB&#d1gai& T$ZCQ46B#1#+#%&a]*45:Sd^5K 1a5**DGAI DJ(>!A$q&'IIK   BrAaDF|OB&#d1gai&4 dLCtAvB1+!"T!WQY*016T$Z1G 1a1**DGAI DJ(>!A$q&'IIK    3rAaDF|#RT$Z)?1Q46(J%JK !RDdO+qtAv6s:;=>?? ?H (?? "aQAq!,-335A q$$ % -- -r,c $td}|tdz|tdzz |tdzz |tz}t||tdtztztzt tzzk(sJ|tdzd|tdzzzd|tdzzz|tz}t||tdtztzdtdzztztzzdtdzzt ztdzzzk(sJt|td|tdz zz d|tdz zzd|tdz zz |t|dd|dd|dd iddtzztz dz k(sJt|td|tdz zz tz |t|ddiddtzztz dz k(sJy) Nrr'r#r"r!r&r%rr6)rr)rr>r*r)reqeq2s r-test_issue_8697rs A 1q5Aa!eH qQx '!A$ .B "ad QwrzBA5 55 5 AE(QqQxZ !Aa!eH* ,qt 3C 3!  !GBJ"Ar)!+ +rQUmB.>q!t.C C DE D !A$1QU8#a!a%j01Qq1uX:=A$1q!A$1Q43 589!Q$ Q GG G !A$1QU8#a'1!ay 9Qq!tVaZ!^ KK Kr,c ttttdz z dttdz zz dtzz }t|ttdtztzdtztzztz t ddz k(sJt|tttddtddidtz dz ddtzzztz t ddz k(sJtdttzttdzztzdz ttdtztztzk(sJy)Nr"r#r!r&rr0)rr)rr*r>rrxs r-test_diofantissue_294rs !qQx!Aa!eH*$qs*A !QqT?rAgbj1a472Q6!QG GG G !QqTAaD"adA. /b1WHQJ1a44G45568@A5G HH H "QqT'Aa!eH$q(1,ad 3q!tBw{ BB Br,c 4td}tt|td|tdz ztz|tdtztztz dz k(sJtt|tdzd|tztdzzdz|tdtztztdzz dtzz dz k(sJtt|tdzd|tztdzzdz|t|ddiddtzzdz tdzz dtzz dz k(sJtt|td|tdz zdtdzzz|tdtztzdtdzzz dtzz d z k(sJtt|td|tdz ztdzz|tdtztztdzz dtzz d z k(sJtt|td|tdz ztz|t|ddiddtzztz dz k(sJy) NrIr#r"r%rrr'rRr2r()rrrr)r*rxs r-test_issue_15553r s" A "QqT1Qq1uX:>*AaD 1QT"Wq[1_ DD D "Qq1uXq1v1}q011Q4 8AqDGadNQqS*AaD1Q4) <!Q$ Q NN Nr,N)>sympy.core.functionrrrsympy.core.numbersrrsympy.core.relationalrsympy.core.singletonr sympy.core.symbolr r (sympy.functions.combinatorial.factorialsr r r$sympy.functions.elementary.complexesr(sympy.functions.elementary.miscellaneousr(sympy.functions.elementary.trigonometricrrsympy.polys.polytoolsrsympy.solvers.recurrrrrrsympy.testing.pytestrrr sympy.abcrrrr)r?r*r>rr.r8r@rBrNrZr\rhrvryrrrrrrrr+r,r-rs::,$"/NN49?(PP44 SMud#1 Z B D1 %9P77 = `"O ZWzN? ``'' . LCOr,