o
    jgA8  ã                   @   s  d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZmZ d dlmZmZ d dlmZmZmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9m:Z: d dl;m<Z<m=Z= d dl-m>Z> d dl?m@Z@ edƒ\ZAZBZCZDedƒZEdd„ ZFdd„ ZGdd„ ZHdd „ ZId!d"„ ZJd#d$„ ZKd%d&„ ZLd'd(„ ZMd)d*„ ZNd+d,„ ZOd-d.„ ZPd/d0„ ZQd1d2„ ZRd3d4„ ZSd5d6„ ZTd7d8„ ZUe<d9d:„ ƒZVd;d<„ ZWd=d>„ ZXd?d@„ ZYdAdB„ ZZdCdD„ Z[dEdF„ Z\dGdH„ Z]dIdJ„ Z^e=dKdL„ ƒZ_dMdN„ Z`dOdP„ ZadQdR„ ZbdSdT„ ZcdUdV„ Zde=dWdX„ ƒZedYdZ„ Zfd[S )\é    )ÚSum)ÚAdd)Ú
DerivativeÚFunctionÚdiff)ÚIÚRationalÚpi)ÚEqÚNe)ÚSymbolÚsymbols)ÚLambertWÚexpÚlog)ÚasinhÚcoshÚsinhÚtanh©Úsqrt)Ú	Piecewise)ÚacosÚasinÚatanÚcosÚsinÚtan)ÚbesseljÚbesselkÚbesselyÚjn)Úerf)ÚIntegral)ÚAnd)ÚMatrix)Úratsimp)Úsimplify)Ú
componentsÚheurischÚheurisch_wrapper)ÚXFAILÚslow)Ú	integrate)ÚSzx,y,z,nuÚfc                   C   s   t tt tƒthksJ ‚t dtt  tƒthksJ ‚t ttƒtƒttƒthks)J ‚t ttƒtttƒƒ tƒttƒttƒtttƒƒthksFJ ‚t ttttƒt ƒ tƒttttƒ ƒtttƒhksbJ ‚t ttddƒ tttƒƒ tƒttƒttddƒ tttƒƒthks…J ‚t ttƒtƒtttƒhks”J ‚t t	ttƒtƒtƒtttƒt	ttƒtƒhks¬J ‚t ttƒt
ttƒtƒ tƒtttƒt	ttƒtƒt	ttƒtƒhksÎJ ‚d S )Né   é   é6   )r(   ÚxÚyr   r   r   r   r   r/   r   r   © r5   r5   ú[/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/integrals/tests/test_heurisch.pyÚtest_components   s*   ÿÿ ÿ
ÿÿ"ÿr7   c                	   C   s0   t ttttttttƒ ƒ ƒ tƒtƒsJ ‚d S ©N)Ú
isinstancer-   r3   r   r#   r5   r5   r5   r6   Útest_issue_10680/   s   0r:   c                   C   s,   t tttttƒƒ ƒtddfƒdksJ ‚d S )Néÿÿÿÿr0   r   )r-   r   r3   r   Úabsr5   r5   r5   r6   Útest_issue_211663   s   ,r=   c                   C   sd   t dtƒtks	J ‚t ttƒtd d ksJ ‚t td tƒtd d ks%J ‚tttƒtt ks0J ‚d S )Nr0   é   r1   é   )r)   r3   r*   r4   r5   r5   r5   r6   Útest_heurisch_polynomials7   s   r@   c                   C   sN  t dt tƒttƒksJ ‚t ddt  tƒttd ƒksJ ‚t dtttƒ  tƒttttƒ ƒks3J ‚t dtd  dtd  d  tƒdtdtd  d ƒ d dtdtd  d ƒ d fv sbJ ‚t dtd  dtd  d  tƒdtdtd  d ƒ d ksƒJ ‚t dtd  tƒdt ks’J ‚t dtd  tƒddtd   ks¥J ‚d S )	Nr0   r>   é   é   é   éþÿÿÿr;   é   )r)   r3   r   r   r4   r5   r5   r5   r6   Útest_heurisch_fractions?   s   "*ÿÿ6ÿB*rF   c                   C   s    t ttƒtƒtttƒ t ksJ ‚t tdt ƒtƒt ttdƒ  tttƒ  ks+J ‚t ttd ƒtƒtttd ƒ dt  dt ttƒ dt  fv sNJ ‚d S )Né   r>   )r)   r   r3   r5   r5   r5   r6   Útest_heurisch_logP   s   "4JrH   c                  C   s  t ttƒtƒttƒksJ ‚t tt ƒtƒtt ƒ ksJ ‚t tdt ƒtƒtdt ƒd ks0J ‚t tttƒ tƒtttƒ ttƒ ksEJ ‚t tttd ƒ tƒttd ƒd ksZJ ‚t ttd  ƒtƒd u shJ ‚t dt tƒdt tdƒ ksyJ ‚t tdt  tƒtdt  tdƒ dt tdƒd   ks˜J ‚t ttt t tddftddfƒjtƒttt  t td  ksºJ ‚t ttt tddfƒjtƒtt ttƒ ksÒJ ‚ttƒ t	tt ƒttt	tt ƒ ƒ ttt	tt ƒ ƒ  } t ttƒtt t	tt ƒ ƒ tƒ| ksJ ‚d S )Nr1   r>   rD   r0   rG   )
r)   r   r3   r   r#   Úzr4   Úfunctionr   r   )Úantir5   r5   r6   Útest_heurisch_expV   s    &**">D0>2rL   c                   C   sš  t ttƒtƒttƒ ksJ ‚t tttƒ d tƒttttƒ  ks#J ‚t ttƒtƒttƒks0J ‚t ttƒtƒtdttƒd  ƒd tttƒt ƒtt  tttƒt ƒtt  fv s\J ‚t ttƒttƒ tƒttƒ ttƒ ksrJ ‚t ttƒttƒ tƒttƒ ttƒ ksˆJ ‚t ttƒttƒ tƒttƒd d ttƒd  d fv s¦J ‚t ttƒttƒ tƒtttƒƒks¹J ‚t ttdt ƒ tƒtdt ƒd ttdt ƒ d  ksØJ ‚t dt d td  ttƒ tƒdt d td ttƒ dttƒ  dt ttƒ   ksJ ‚t t	td ƒt
td ƒ tƒdt tdtd  ƒt
td ƒ  tdtd  ƒt	td ƒ  tt
td ƒ t	td ƒ  ksHJ ‚t ttƒttƒd d  tƒtttƒƒ ksaJ ‚t dttƒd  tƒdtdƒ ttdƒttd ƒ d ƒ d ks…J ‚t dttƒ ttƒ ttƒd d  tƒttdƒttƒ d ƒttdƒttƒ d ƒ ksµJ ‚t dttƒ tƒdtttd ƒƒ ksËJ ‚d S )Nr0   r>   é   é1   rE   é   rG   )r)   r   r3   r   r	   r   r   r   r4   r   r   r   r   r   r   r5   r5   r5   r6   Útest_heurisch_trigonometricj   s>   *
ý,,<&>8
ÿÿ>ÿÿ2H8ÿÿ0rP   c                   C   sâ   t ttƒtƒttƒksJ ‚t ttƒtƒttƒksJ ‚t tttƒ tƒtttƒ ttƒ ks/J ‚t tttƒ tƒtttƒ ttƒ ksDJ ‚t tttd ƒ tƒtd ttd ƒ d ttd ƒ ttdtd  ƒ d  ksoJ ‚d S ©Nr>   rE   )r)   r   r3   r   r   r   r5   r5   r5   r6   Útest_heurisch_hyperbolic‹   s   **ÿ:ÿrR   c                   C   sœ   t ttƒttƒ tƒttƒttƒ d ttƒttƒ d  ks!J ‚t tttt ƒ ƒtƒdt tttt ƒ ƒ tt ƒ dtttt ƒ ƒ  ksLJ ‚d S ©Nr>   )r)   r   r3   r   r   r   r5   r5   r5   r6   Útest_heurisch_mixed–   s   BZrT   c                  C   sÒ  t dttƒ tƒdttƒ ksJ ‚t dttƒd  tƒdttƒ ks$J ‚t ttƒd tƒdttƒd  d ks9J ‚t ttƒtttƒƒ tƒdtttƒƒd  d ksTJ ‚tdƒ} t t| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   ksƒJ ‚tt| ttƒ ƒtƒtdttƒ tttƒ|  ƒ |  dtttƒ|  ƒ | d   t| dƒfdƒks¶J ‚tdd	d
} tt| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   ksçJ ‚d S )Nr0   r>   rG   rD   rA   r4   r   )r   TT©Úpositive)	r)   r   r3   r   r   r   r*   r   r   ©r4   r5   r5   r6   Útest_heurisch_radicals›   s    "&*6.
ÿD
þ.ÿrX   c                   C   sp   t ttƒtƒtttƒ ttd  ƒttƒ  ksJ ‚t ttd  ƒttƒ tƒttƒttƒd  d ks6J ‚d S rQ   )r)   r"   r3   r   r   r	   r5   r5   r5   r6   Útest_heurisch_special¬   s   4<rY   c                   C   s„   t dtt  tƒttt ƒksJ ‚t dttdƒ  tƒtttdƒ ƒks&J ‚ttt ttt t ƒtƒtƒƒttt t ƒks@J ‚d S ©Nr0   r>   )r)   r3   r4   r   r   r'   r   rI   r5   r5   r5   r6   Útest_heurisch_symbolic_coeffs±   s   "*8r[   c                  C   s¼   t dƒ} tdtd |   tƒtttt|  ƒ ƒdt|  ƒ  ttt|  ƒ ƒdt|  ƒ   t| dƒfdt dfƒks=J ‚t ddd} tdtd |   tƒttt| ƒ ƒt| ƒ ks\J ‚d S )Nr4   r0   r>   r   r;   TrU   )r   r*   r3   r   r   r   r   r   rW   r5   r5   r6   Ú"test_heurisch_symbolic_coeffs_1130·   s   >ÿ

þ6r\   c                	   C   sN  t tddtd   ƒtg dttddtd   ƒ d tdƒttdƒt ƒ d  ks-J ‚t tddtd   ƒtg dttddtd   ƒ d tdƒttdƒt ƒ d  ksZJ ‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ks{J ‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ksœJ ‚t tdtd  ƒtg dtdt ƒttdƒt ƒ d ks»J ‚t dtddtd   ƒ tg dtttdd	ƒ ƒd ksÙJ ‚t dtddtd   ƒ tg dtttdd	ƒ ƒd ks÷J ‚t dtd	td  d ƒ tg dtd	ƒt	d	t td	ƒtd	td  d ƒ  ƒ d	 ks%J ‚d S )
Nr0   rM   r>   ©Úhintsé   iùÿÿÿé	   rE   rG   )
r)   r   r3   r   r   r   r	   r"   r   r   r5   r5   r5   r6   Útest_heurisch_hackingÀ   s0   6ÿ6ÿ ÿ ÿÿ ÿ ÿ 2ÿra   c                   C   s   t ttƒtƒd u sJ ‚d S r8   )r)   r/   r3   r5   r5   r5   r6   Útest_heurisch_functionØ   s   rb   c                  C   s„   t ttƒtƒ} tttƒ|  tƒttƒd d ksJ ‚tttƒd |  tƒttƒd d ks/J ‚t| ttƒ tƒtttƒƒks@J ‚d S )Nr>   rG   )r   r/   r3   r)   r   )Údfr5   r5   r6   Ú!test_heurisch_function_derivativeÛ   s   &*&rd   c                  C   s,  dt t  } t| tƒttt  ƒksJ ‚dt t  } t| tƒttt  ƒ ks'J ‚dt t t t   } t| tƒtttt  ƒ dt   ttt  ƒdt    tt dƒfdt dfƒksYJ ‚ttd t t t t   ƒ} t| tƒtttd  td t d   ƒ t d ttd  td t d   ƒ t  ks”J ‚d S )Nr0   r>   r   T)r4   r3   r*   r   r   r   r   )r/   r5   r5   r6   Útest_heurisch_wrapperè   s   
<
ÿ((ÿre   c                   C   s2   t dtdttƒd    tƒtttƒƒksJ ‚d S rZ   )r)   r3   r   r   r5   r5   r5   r6   Útest_issue_3609ö   s   2rf   c                  C   sÈ   dd„ } t d dt d   dt d   dt   d t d dt d   d	t d   dt d    }ddt d   dt   d
t d
   t d dt d
   dt    tt ƒ }| tt|t ƒƒt ƒ|ksbJ ‚d S )Nc                    s"   | j rt‡ fdd„| jD ƒŽ S | S )Nc                    s   g | ]	}|  ˆ ¡r|‘qS r5   )Úhas)Ú.0Úarg©r3   r5   r6   Ú
<listcomp>  s    z6test_pmint_rat.<locals>.drop_const.<locals>.<listcomp>)Úis_Addr   Úargs)Úexprr3   r5   rj   r6   Ú
drop_const  s   z"test_pmint_rat.<locals>.drop_constrM   é   rE   r>   é   rB   rC   rG   rA   )r3   r   r&   r)   )ro   r/   Úgr5   r5   r6   Útest_pmint_ratý   s   XH rs   c                  C   sh   t tt ƒ tt ƒd  tt ƒ } t d  d t tt ƒ  ttt ƒd d ƒd  }t| t ƒ|ks2J ‚d S )Nr>   r0   )r3   r   r   r)   ©r/   rr   r5   r5   r6   Útest_pmint_trig  s    2ru   c                  C   s’   dt  t tt ƒ  t tt ƒ tt ƒ d  t tt ƒ tt ƒ d  t  } tt tt ƒ tt ƒ ƒdt tt ƒ tt ƒ   }tt| t ƒƒ|ksGJ ‚d S rZ   )r3   r   r   r&   r)   rt   r5   r5   r6   Útest_pmint_logexp  s   H0rv   c                  C   s¤   t td  ƒttƒ ttƒd ttƒd  ttƒ d  } ttƒtttƒd ƒ d ttƒtttƒd ƒ d  ttƒdttƒ d   }tt| tƒƒ|ksPJ ‚d S )Nr>   rG   r0   rq   rE   )r   r3   r"   r   r	   r   r&   r)   rt   r5   r5   r6   Útest_pmint_erf  s   :Prw   c                  C   s:   t tƒ} tt tƒ t tt tƒ  }t| tƒ|ksJ ‚d S r8   )r   r3   r)   rt   r5   r5   r6   Útest_pmint_LambertW"  s   rx   c                  C   sÌ   t td tƒt ttƒ } tttƒ tt ttƒƒ }t| tƒ|ks"J ‚tt ttƒ tt td tƒ  t } t ttƒ}t| tƒ|ksBJ ‚ttd tƒtttƒ } tttƒ ttttƒƒ }t| tƒ|ksdJ ‚d S )Nr0   )r   Únur3   r   r)   r!   rt   r5   r5   r6   Útest_pmint_besselj)  s   $
rz   c                  C   sø   t ttt ƒ ttdt  ƒ } dt  ttt ƒ ttd dt  ƒ d t ttd t ƒ ttdt  ƒ d  }t| t ƒ|ks=J ‚t ttt ƒ ttdt  ƒ } dt  ttt ƒ ttd dt  ƒ d t ttd t ƒ ttdt  ƒ d  }t| t ƒ|kszJ ‚d S )Nr>   rD   r0   rG   rA   )r3   r   ry   r    r)   r   rt   r5   r5   r6   Útest_pmint_bessel_products:  s   LLr{   c                  C   s‚   dd„ } d| t ƒdt| t ƒƒt | t ƒ     d| t ƒ  t | t ƒ  }tt ttt ƒƒ ƒtttt ƒƒƒ }t|t ƒ|ks?J ‚d S )Nc                 S   s   t t| ƒƒS r8   )r   r   rj   r5   r5   r6   ÚomegaH  s   z%test_pmint_WrightOmega.<locals>.omegar0   r>   )r3   r   r   r   r   r   r)   )r|   r/   rr   r5   r5   r6   Útest_pmint_WrightOmegaG  s   @$r}   c                   C   sR   t tddtd   ƒtg ddt tdtd  d ƒ dtdt ƒ  ks'J ‚d S )Nr0   g      Ð?r>   r]   ç      à?g      ð?)r)   r   r3   r   r5   r5   r5   r6   Útest_RRQ  s   *ÿr   c                     sX   t dƒ\} ‰ tdƒ| ƒ}‡ fdd„}t||ƒ|ƒ}t|| ƒ| ƒ}|| || ¡ks*J ‚d S )Nzt RrI   c                    s   | t ˆ d | d  ƒ S rS   r   rj   ©ÚRr5   r6   r/   e  s   ztest_issue_22527.<locals>.f)r   r   r-   Úsubs)ÚtrI   r/   ÚUzÚUtr5   r€   r6   Útest_issue_22527b  s   r†   c                  C   sH  t ddd} t| d  ddt d   ƒ}t|| g dd u s J ‚ttƒtdt d ƒ d }ttt | d  d ƒ| ddfƒ|t|  ksGJ ‚ttd  ddt d   ƒ}t|tg dd u saJ ‚t| d  ddt d   ƒ}t|| g dd u s{J ‚ttƒtdt d ƒ d }ttt td  d ƒtddfƒ|t|  ks¢J ‚d S )NÚrT©Úrealr>   r]   r0   r   )	r   r   r   r)   r   r	   r"   r-   r3   )r‡   Úar5   r5   r6   Ú%test_heurisch_complex_erf_issue_26338l  s   26r‹   c                  C   sž  t dƒ} tdddd\}}}}tt| | ƒggƒ}tddƒ}dd|dd	d
dg\}}}	}
}}}||
| dt||  | ƒ  || dt||  | ƒ    }||
| t||  | ƒ t|	| | ƒd  || t||  | ƒ t|	| | ƒd    }td||k f|t||k||	k ƒf||	|kfƒ}t| |ƒ|ƒ}t|| |ƒ ggƒ}|| ||¡d  | |j	|j
¡ ||¡ }t|d |d|fƒ}|d usÍJ ‚d S )NÚZ0zk01 k10 t sT©r‰   rV   éS   éd   r~   é2   g333333ã?r>   éx   r0   r   r;   )r   r   r%   r   r   r   r$   r
   r‚   ÚlhsÚrhsr-   )rŒ   Úk01Úk10rƒ   ÚsÚmÚ_83rŠ   ÚbÚcÚdÚer/   rr   ÚAIF_btfÚAIF_atfÚAIF_symÚaif_eqÚf_vecÚ	integrandÚsolutionr5   r5   r6   Útest_issue_15498{  s   
 @.,ÿ.,r¤   c                  C   s˜   t tddƒ tt ƒ } dt tdƒd   tt ƒ d dt tdƒd   d  }t| t ƒ|ks0J ‚t| t ƒ|ks9J ‚t| t ddfƒtdƒ d ksJJ ‚d S )NrE   rG   rM   r`   rN   r   r0   )r3   r   r   r.   r)   r-   )r¢   rK   r5   r5   r6   Útest_heurisch_issue_26930Œ  s
   8&r¥   c                  C   s¶  t dddd\} }}t ddd}| | t|  |d  t|ƒ|  ƒ }|| t|  |d  t|ƒ|  ƒ }t||ƒt||ƒ }| t|  |d  ƒ tt|ƒ| ƒ d|   |t|  |d  ƒ tt|ƒ | ƒ d|    ttƒ| t|ƒ t|d|   ƒ tt| ƒ| t|ƒdt| ƒ   ƒ d| tdƒd     ttƒ| t|ƒ t|d|   ƒ tt| ƒ| t|ƒdt| ƒ   ƒ d| tdƒd     }|jd	d
 ¡ |ksÙJ ‚d S )Nza, b, xTr   ÚCrˆ   r>   rE   rG   F)r)   )	r   r   r   r#   r	   r"   r.   ÚdoitÚexpand)rŠ   r™   r3   r¦   Úi1Úi2ÚiÚresr5   r5   r6   Útest_heurisch_issue_26922•  s   (&..ÿZþZýÿr­   N)gÚsympy.concrete.summationsr   Úsympy.core.addr   Úsympy.core.functionr   r   r   Úsympy.core.numbersr   r   r	   Úsympy.core.relationalr
   r   Úsympy.core.symbolr   r   Ú&sympy.functions.elementary.exponentialr   r   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   r   r   r   r   Úsympy.functions.special.besselr   r   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.   r3   r4   rI   ry   r/   r7   r:   r=   r@   rF   rH   rL   rP   rR   rT   rX   rY   r[   r\   ra   rb   rd   re   rf   rs   ru   rv   rw   rx   rz   r{   r}   r   r†   r‹   r¤   r¥   r­   r5   r5   r5   r6   Ú<module>   sx     !	




