K i7rddlmZddlmZddlmZmZmZddlm Z m Z m Z ddl m Z mZddlmZmZddlmZmZmZddlmZmZmZmZdd lmZdd lmZdd lm Z m!Z!m"Z"m#Z#m$Z$m%Z%dd l&m'Z'm(Z(m)Z)m*Z*dd l+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8m9Z9m:Z:ddl;mZ>ddl?m@Z@ed\ZAZBZCZDedZEdZFdZGdZHdZIdZJdZKdZLd ZMd!ZNd"ZOd#ZPd$ZQd%ZRd&ZSd'ZTd(ZUe/s4 i3q#aQi.'8#9 9!Q   Aq>QT!V ## # ArE1 Br )) ) Aq !QqS (( (r8cPtdtz tttk(sJtddtzz tttdzk(sJtdtttzz tttttzk(sJtdtdzzdtdzzdz z tdtdtdzzdz zdz dtdtdzzdzzdz fvsJtdtdzzdtdzzdzz tdtdtdzzdzzdz k(sJtdtdzz tdtz k(sJtdtdzz tddtdzzz k(sJy) Nr2rD r@)r*r5rrr6r7r8r9test_heurisch_fractionsrM?s} AaC s1v %% % Aq1uIq !SQZ // / Aq3q6zNA &#a#a&j/ 99 9 AadF !Q$  c!AqD&1*o-2Ac"QT'A+6F4F4KL MM M AadFAadFQJ' +qQq!tVaZ/@2/E EE E AadFA "Q$ && & Bq!tGQ 1a1f: -- -r8ctttttttztz k(sJttdtztt ttdzztttzzk(sJtttdzttttdzzdtzz dtzttzdtzz fvsJy)NrD)r*rr5r7r8r9test_heurisch_logrPPs CFA !CF(Q, .. . C!Ha QB3q6MAc!fH$< << < C1Iq !aAqD kAaC&71SVac9I%J JJ Jr8c ttttttk(sJttt ttt  k(sJttdtzttdtzdz k(sJttttzttttzttz k(sJttttdzztttdzdz k(sJtttdz tJtdtztdtztdz k(sJttdtzzttdtzztdz dtztddzzz k(sJtt tt zt zt ddft ddfjtttt zzt zt dzz k(sJtttt zt ddfjt tt zttz k(sJtt  ttt z tt ttt z zztt ttt z zz z }ttt tt ttt z zzt |k(sJy)Nr3rDrKr2rO) r*rr5rr$zr6functionrr)antis r9test_heurisch_exprUVsL CFA #a& (( ( CGQ CG8 ++ + C1Iq !SAY^ 33 3 Ac!fHa Ac!fHs1v$5 55 5 Ac!Q$iK #s1a4y1} 44 4 CAJ " ** * AqD! 1SV ++ + AadFA !AqD&Q-!Q$s1v|2C"C CC C HQT!VaAYAq :CCQ GAaQRdFSTHWXYZWZK[ [[ [ C1q!Qi(111 5Ac!f DD D F7DQKAd1q5kM 22S4A;5GG HD CF3r$q1u+~.. 2d :: :r8c b tttttt k(sJttttzdztttttzz k(sJttttttk(sJtt ttt dt tdzzdz t t ttzttzzt t ttz ttzz fvsJtttttzttt ttzk(sJtttttzttt ttzk(sJtttttztttdzdz ttdz dz fvsJtttttz tt ttk(sJtttdtzzttdtzdz ttdtzzdz z k(sJtdtz dz tdzzttztdtz dz tdzttzdttzz dtzttzzzk(sJtttdz ttdz ztdtztdtdzz ttdz zz tdtdzz ttdz zztttdz zttdz zzk(sJtttttdzdzz tttt k(sJtdttdzz tdtdzttdt tdz zdz zdz k(sJtdttzttzttdzdzz tttdttzdz ttdttzdzz k(sJtdttz tdtttdz zk(sJy)Nr2rD1rLrO)r*rr5rr rrrr6rrrrrrr7r8r9test_heurisch_trigonometricrZjs CFA 3q6' )) ) Bs1vIM1 %RAY 66 6 CFA #a& (( ( CFA  AA M1 CFQJ!A# CFQJ!A##   CF3q6M1 %#a&Q 77 7 CF3q6M1 %#a&Q 77 7 CF3q6M1 %#a&!)a-#a&!)a)H HH H CF3q6M1 %SV 44 4 Ac!A#hJ "c!A#hmaAaCj1n&D DD D AbDFQTM#a&(! ,"Q1SV c!fH9 s3q6z9*1+ ++ + D1IQqS )1 -1R!Q$YaPQc7R1R QT ?D1I %2&()$qs) D1I(=2> >> > CFCFAIaK(! ,c!f == = As1vaxL! $$q' $tAws1Q3x7G7I2J(J1(L LL L Ac!fHSVOSVQY]3Q 74QA A < DGCFNQ&'<( (( ( Ad1gIq !QtD1I%6 66 6r8cttttttk(sJttttttk(sJttttzttttzttz k(sJttttzttttzttz k(sJttt tdz zttdzt tdz zdz t tdz ztt dtdzzzdz z k(sJyNrDrL)r*rr5rrrr7r8r9test_heurisch_hyperbolicr]s DGQ 47 ** * DGQ 47 ** * Ad1gIq !QtAwYa%8 88 8 Ad1gIq !QtAwYa%8 88 8  %!* a qDqsOA-ac :QtA1H~=Ma=OO PP Pr8c tttttztttttzdz ttt tzdz z k(sJtttt t z tdtzt tt t z zt t z dttt t z zz k(sJyNrD)r*rr5rrrr7r8r9test_heurisch_mixedr`s CF3q6M1 %QAq3q6#a&=?)J JJ J C$r( OQ '1Q3s1T1"X:+>tQBx+G!CPQRVXYWYRZPZOJ[+[ [[ [r8c ptdttz tdttzk(sJtdttdzz tdttz k(sJtttdztdttdzzdz k(sJttttt tztdtt tdzzdz k(sJt d}tt|ttztd|dzz t|ttzzdttzt |ttzz|z z k(sJt t|ttzttdttzt tt|zz|z dttt|zz|dzz zt|dfdk(sJt dd }t t|ttztd|dzz t|ttzzdttzt |ttzz|z z k(sJy) Nr2rDrOrKrHr6r)rTTpositive) r*rr5rrr r+rr r6s r9test_heurisch_radicalsres Ad1gIq !QtAwY .. . Ad1gqjL! $47 22 2 DGQJ "aQ l1n 44 4 CF4A<' +r$s1v,//A!/C CC Cs A C$q' NA &!AqD&QtAwY*? $q' #aQi. "+# ## # C$q' NA .) DGCQ N "1 $qT!WQY'71'< !"$ %% % Ad1qAv:&& 4 Qx1~ q  !! ! Ad1qAv:&& 4 aA! "" " Ad1QT6!8n$ar 2 73qsT!WT!AqD&1*%5556 6q 8 99 9r8cBttttJyr<)r*r0r5r7r8r9test_heurisch_functionrts AaD!  $$ $r8ctttt}ttt|ztttdzdz k(sJtttdz|ztttdzdz k(sJt|ttz tt ttk(sJy)NrDrO)rr0r5r*r)dfs r9!test_heurisch_function_derivativerws adAB AaDGQ 1Q4719 ,, , AaD!GBJ "adAgai // / BqtGQ 3qt9 ,, ,r8c fdttzz }t|ttttzk(sJdttz z }t|ttttz  k(sJdttz ttzzz }t|tt tttz  dtzz tttzdtzz zt tdfdtz dfk(sJt tdzttz ttzzz }t|ttt tdz tdztdzz z ztdzt tdz tdztdzz z ztz z k(sJy)Nr2rDrT)r6r5r+rrr r)r0s r9test_heurisch_wrapperrysb 1q5 A Aq !SQZ // / 1q5 A Aq !c!a%j[ 00 0 AEAE?A Aq !Y a!e*ac SQZ1- -r!Qx81Q3+&G GG G QTAEAE? #$A Aq !QtQTE1a4!Q$;,?'@%@d4Aq!tad{# $$Q&&' '' 'r8ctdtdttdzzzz ttttk(sJyri)r*r5rrr7r8r9test_issue_3609r{s5 AqAA M*+Q /4A< ?? ?r8cd}tdzdtdzzz dtdzzz dtzzdz tdzdtdzzzdtdzzzdtdzzzz }ddtdzzzdtzzd td zzztd zdtd zzzdtzzz ttz}|tt|tt|k(sJy) Nc|jr2t|jDcgc]}|j|s|c}S|Scc}wr<)is_Addrargshas)exprr5args r9 drop_constz"test_pmint_rat..drop_consts8 ;;B#cggaj#BC CKCs AArWrLrDrIrJrOrH)r5rr'r*)rr0gs r9test_pmint_ratrs A1a4!AqD& 1Q3 & *QTAadF]R1W-DqAv-MNA Qq!tVac AadF "QTAadF]QqS%89CFBA ghq!n-q 1Q 66 6r8c,tttz ttdzz ttz}tdz dz tttz z tttdzdzdz z}t|t|k(sJy)NrDr2)r5rrr*r0rs r9test_pmint_trigr sp SVs1vqy 3q6)A Aa!CF(SQQ/11A Aq>Q  r8cdtztttzztttzttzdz ztttzttzdzz tz }ttttzttzdtttzttzz z}tt |t|k(sJyri)r5rrr'r*rs r9test_pmint_logexprs Q3q6 AAJQ/!34a#a&j3q66IA5MMaOA AAJQ  1a#a&j3q6&9#::A 8Aq> "a '' 'r8cttdz ttzttdzttdzz ttz dzz }ttt ttdz zdz ttt ttdzzdz z ttdttzdz z z }t t|t|k(sJy)NrDrOr2rrL)rr5r#rr rr'r*rs r9test_pmint_erfrs QTE 3q63q619s1vqy03q69A=>A RSVaZ "T"Xc#a&1*o%=a%??$r(AcRSfHWXLBYYA 8Aq> "a '' 'r8ctt}tttztz tttz z}t|t|k(sJyr<)rr5r*rs r9test_pmint_LambertWr"s> A (1+ AhqkM)A Aq>Q  r8cttdzttttz }tttzttttz }t |t|k(sJttttztttdztzz tz }ttt}t |t|k(sJt tdztt ttz }tttztt ttz }t |t|k(sJy)Nr2)rnur5rr*r"rs r9test_pmint_besseljr)sQ72q>)A 3q6 CA''A Aq>Q   GBN QwrAvq11 114AAA Aq>Q   261 bQiA 3q6 C2q N"A Aq>Q  r8cttttzttdtzz}dtztttzttdz dtzzdz tttdz tzttdtzzdz z}t |t|k(sJttttzt tdtzz}dtztttzt tdz dtzzdz tttdz tzt tdtzzdz z }t |t|k(sJy)NrDrKr2rOrH)r5rrr!r*r rs r9test_pmint_bessel_productsr:s" '"a.QqS))A 1WR^GBFAaC002QwrAvq7I5I'RTVWXYVYJZ5Z[\5\\A Aq>Q   '"a.QqS))A 1WR^GBFAaC002QwrAvq7I5I'RTVWXYVYJZ5Z[\5\\A Aq>Q  r8cd}d|tdt|tt|tzzzzzd|tzz t|tzz }tttt tzt tt tz}t |t|k(sJy)Nc*tt|Sr<)rr)r5s r9omegaz%test_pmint_WrightOmega..omegaHsAr8r2rD)r5rrrrrr*)rr0rs r9test_pmint_WrightOmegarGs  U1XSq]a%(l;; < Q  r8cttddtdzzztgdtztdtdzzdzzdtdtzzzk(sJy)Nr2g?rDrn?g?)r*rr5rr7r8r9test_RRrQs_ DT!Q$Y'" 5 Ad419q=!!Cc!e $44 55 5r8ctd\}td|}fd}t|||}t|||}||j||k(sJy)Nzt RrRc2|tdz|dzz z Sr_r)r5Rs r9r0ztest_issue_22527..fesadQTk"""r8)rrr.subs)trRr0UzUtrs @r9test_issue_22527rbs] 6?DAq aA# 1Q4 B 1Q4 B A  r8cntdd}tttdtzdz zdz }t t t |dzzdz |ddf|t|zz k(sJt tdz ddtz dzzz }t|tgJt |dz ddtz dzzz }t||gJtttdtzdz zdz }t t t tdzzdz tddf|t|zz k(sJy)NrTrealr2rDrrn) rrr r#rr.rr5r*)ras r9%test_heurisch_complex_erf_issue_26338rls"$A Ra!eQY!A S!AqD^aAY /1qs7 :: : QTE1a!eaZ< !A Aq # ++ + QTE1a!eaZ< !A Aq # ++ + Ra!eQY!A S!AqD^aAY /1qs7 :: :r8c Jtd}tddd\}}}}tt| |zgg}t dd}dd|dd d d g\}}} } } } } || | zd t||z | z z z| | zd t||z | z z zzz}|| | zt||z | z zt| |z | z d z z| | zt||z | z zt| |z | z d z zzz}t d ||kf|t ||k|| kf|| |kf}t|||}t|||zgg}||j||dzz|j|j|jj||z}t|d |d |f}|Jy)NZ0z k01 k10 t sTrrcSdr2g333333?rDxr2rr@) rrr&rr rr%r rlhsrhsr.)rk01k10rsm_83rbcder0rAIF_btfAIF_atfAIF_symaif_eqf_vec integrandsolutions r9test_issue_15498rys $BMtDNCacT!V A 2s C #sBQ<Q1aAq1a#Ahqj/)*QqS!cAE(1*o2E-FFGG1S1q5!_$c1q5!)nq&8 aCa!eHQJ a!eQY!!3 456GAE Wc!q&!a%.@$AGQRSVCTUG 1w F SAYK= !E!&&A,""5::fjj&**#E#J#J1a#PPI11ay1H   r8cvttddzttz}dttddz zzttzdz dttddz zzdz z }t |t|k(sJt |t|k(sJt |tddftd dz k(sJy)NrLrOrWrqrXrr2)r5r rr/r*r.)rrTs r9test_heurisch_issue_26930rs8Aq>!#a&(I Q1a[=Q  !Aa!A$q&kM"$4 4D Iq !T )) ) Y "d ** * YAq *qteBh 66 6r8c tddd\}}}tdd}| |zt| |dzzt||zz z}||zt| |dzzt||zzz}t||t||z}| t| |dzzztt||zzd|zz |t| |dzzztt| |zzd|zz ztt|zt|zt|d|zz zt t||zt|dt|zz z zd|t ddz zzz ztt|zt|zt|d|zz zt t||zt|dt|zz zzd|t ddz zzz z}|jd j|k(sJy) Nza, b, xTrCrrDrLrOF)r*) rrrr$r r#r/doitexpand)rrr5ri1i2iress r9test_heurisch_issue_26922rsidT:GAq!$A Ac1"QT'DGAI%& &B 1S!AqD4719$ % %BQ(2q/)A 3r!Q$w<DGAI&!, C1a4L.d1gXaZ (!A# . / r(1*T!W SAaC\ )#d1gai$q'1T!W9:M.M*N NPQRSVWXYVZ[\V\R]P] ^ _ r(1*T!W SAaC\ )#d1gai$q'1T!W9:M.M*N NPQRSVWXYVZ[\V\R]P] ^ _ 6656 ! ( ( *c 11 1r8N)gsympy.concrete.summationsrsympy.core.addrsympy.core.functionrrrsympy.core.numbersrr r sympy.core.relationalr r sympy.core.symbolr r&sympy.functions.elementary.exponentialrrr%sympy.functions.elementary.hyperbolicrrrr(sympy.functions.elementary.miscellaneousr$sympy.functions.elementary.piecewiser(sympy.functions.elementary.trigonometricrrrrrrsympy.functions.special.besselrr r!r"'sympy.functions.special.error_functionsr#sympy.integrals.integralsr$sympy.logic.boolalgr%sympy.matricesr&sympy.simplify.ratsimpr'sympy.simplify.simplifyr(sympy.integrals.heurischr)r*r+sympy.testing.pytestr,r-r.sympyr/r5r6rRrr0r:r>rBrFrMrPrUrZr]r`rergrjrlrrrtrwryr{rrrrrrrrrrrrrrr7r8r9rsR)<<00(/GGKK9:VVJJ7.#!*,KK,/j! 1a SM<&H;)."K ;(7BP\ #"D L J90% - - '@ 7 (("  5" ; "772r8