o
    *Î®c˜?  ã                   @   sx  d dl mZ d dl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mZ d dlmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dl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'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dlm4Z4 d dl5m6Z6 edƒZ7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<dd „ Z=d!d"„ Z>d#d$„ Z?d%S )&é    )ÚSum)Ú
DerivativeÚdiff)ÚRationalÚooÚpiÚzoo)ÚS)ÚDummyÚSymbol)ÚRisingFactorialÚbinomialÚ	factorial)Ú	conjugate)Úexp)Úfloor)Úsqrt)Úcos)Úgamma)Úhyper)Úassoc_laguerreÚassoc_legendreÚ
chebyshevtÚchebyshevt_rootÚ
chebyshevuÚchebyshevu_rootÚ
gegenbauerÚhermiteÚjacobiÚjacobi_normalizedÚlaguerreÚlegendre)Úlaguerre_poly)Úroots)Ú	unchanged)ÚArgumentIndexError)ÚraisesÚxc               
      s´  t dƒ‰t dƒ‰ t dƒ‰tdˆ ˆtƒdksJ ‚tdˆ ˆtƒˆ d ˆd  tˆ d ˆd  d   ks4J ‚tˆˆ ˆ tƒtˆ d ˆƒtˆˆ tj tƒ tdˆ  d ˆƒ ksVJ ‚tˆˆ ˆ  tƒdˆ  t d ˆ  d   td ˆ d   tˆˆ tƒ tˆ  ˆ ƒ t	ˆ ˆ d ƒ tˆ ˆ ƒt	ˆd ƒ  ks—J ‚tˆˆ ˆtƒt d ˆd  td ˆ d   tˆˆtƒ t	ˆ ˆ d ƒ t	ˆd ƒ ksÈJ ‚tˆddtƒt
ˆtƒksÖJ ‚tˆtjtjtƒttddƒˆƒtˆtƒ tˆd ƒ ksôJ ‚tˆtddƒtddƒtƒttjˆƒtˆtƒ tˆƒ ksJ ‚tˆˆ ˆtƒ} t| tƒs"J ‚tˆˆ ˆt ƒdˆ tˆˆˆ tƒ ks8J ‚tˆˆ ˆdƒdˆ  t	ˆ ˆ d ƒ tˆ ˆ ˆ fˆ d fdƒ tˆƒt	ˆ d ƒ  kshJ ‚tˆˆ ˆdƒtˆ d ˆƒtˆƒ ks}J ‚t d	d
d}t|ˆ ˆtƒttˆ ˆ | d |ƒ ksšJ ‚ttˆˆ ˆtƒs¥J ‚tt|ˆ ˆtƒƒt|tˆ ƒtˆƒttƒƒks¾J ‚tdƒ}ttˆˆ ˆtƒˆƒttˆˆ ˆtƒˆƒksÙJ ‚ttˆˆ ˆtƒˆ ƒ ttˆˆ ˆtƒd| ˆ  ˆ d t|ˆ d | ˆ ƒ t|ˆ ˆtƒ | ˆ t|ˆ  ˆ d | ˆ ƒ   |ˆ  ˆ ˆ d  |dˆd fƒ¡s0J ‚ttˆˆ ˆtƒˆƒ td| ˆ  d| ˆ  ˆ d  t|ˆ  d | ˆ ƒ t|ˆ ˆtƒ | ˆ t|ˆ  ˆ d | ˆ ƒ  tˆˆ ˆtƒ |ˆ  ˆ ˆ d  |dˆd fƒ¡sŽJ ‚ttˆˆ ˆtƒtƒˆ d ˆd  ˆd  tj tˆd ˆ d ˆd tƒ ks·J ‚tˆˆ ˆtƒtˆˆ ˆtƒtdˆ ˆ d  t	ˆ ˆ d ƒ t	ˆˆ d ƒ ˆ ˆ dˆ  d tˆƒ t	ˆ ˆ ˆ d ƒ  ƒ ksúJ ‚tt‡ ‡fdd„ƒ ttdd„ ƒ tˆˆ ˆtƒ d¡ ttjtd  | tˆ |ƒ t|ˆ  d | ˆ ƒ tˆ ˆ ˆ d |ƒ t|ƒ |dˆfƒtˆƒ ¡sMJ ‚tt‡ ‡‡fdd„ƒ d S )NÚnÚaÚbr   é   é   éÿÿÿÿé   ÚmT©ÚpositiveÚkc                      s   t dˆ ˆtƒS ©NgÍÌÌÌÌÌ À)r   r'   © )r)   r*   r4   úZ/tmp/pip-target-vg8gfxp4/lib/python/sympy/functions/special/tests/test_spec_polynomials.pyÚ<lambda>N   s    ztest_jacobi.<locals>.<lambda>c                   S   s   t tdddddtƒS )NT)r1   Úintegerr+   r,   )r   r
   r   r4   r4   r4   r5   r6   O   s    Ú
polynomialc                      s   t ˆˆ ˆtƒ d¡S )Né   )r   r'   Úfdiffr4   ©r)   r*   r(   r4   r5   r6   T   s    )r   r   r'   r   r   r	   ÚHalfr   r   r   r!   r   r   r   Ú
isinstancer   r   r$   r   r
   r   r   Údummy_eqr   r   r   r&   Ú
ValueErrorÚrewriter%   ©ÚXr/   Ú_kr4   r;   r5   Útest_jacobi   sð   :ÿÿ
ÿDÿÿ
ÿ<ÿ

ÿ
ÿÿ

ÿÿÿÿ,&ÿÿ*.
ÿ."0ÿ$ÿÿÿÿÿþý(ÿÿÿÿÿ$þÿþýý6
ÿ<.ÿ
ÿ"ÿ
ÿÿþþþþrD   c               	      s‚  t dƒ‰t dƒ‰ tdˆ tƒdksJ ‚tdˆ tƒdˆ  t ks J ‚tdˆ tƒˆ  td dˆ d  dˆ     ks9J ‚tdˆ tƒtd dˆ d  d dˆ d   ˆ tddƒ   td	ˆ d  dˆ     ksfJ ‚td
ˆ tƒdkspJ ‚tˆtjtƒtˆtƒks~J ‚tˆdtƒtˆtƒks‹J ‚tˆd
tƒdks•J ‚tˆˆ tƒ} t| tƒs¢J ‚tˆˆ t ƒd
ˆ tˆˆ tƒ ksµJ ‚tˆˆ dƒdˆ t	t
ƒ tˆ ˆd  ƒ tˆ ƒtˆ d tj ƒ tˆd ƒ  ksáJ ‚tˆˆ dƒtdˆ  ˆ ƒtdˆ  ƒtˆd ƒ  ksýJ ‚tˆtddƒd
ƒtu sJ ‚tˆtddƒd
ƒt	dƒtt
ˆtjd   ƒ tˆtj ƒ t	t
ƒtˆd ƒ  ks7J ‚t ddd}t|ˆ tƒttˆ |ƒ ksMJ ‚ttˆˆ tƒsWJ ‚ttˆˆ tƒƒtˆtˆ ƒttƒƒkslJ ‚tdƒ}ttˆˆ tƒˆƒttˆˆ tƒˆƒks…J ‚ttˆˆ tƒˆ ƒ tdd
| ˆ   d |ˆ   t|ˆ tƒ | ˆ |dˆ   ˆ   d| d |dˆ   d| dˆ   d   d|dˆ   ˆ   tˆˆ tƒ  |dˆd fƒ¡sâJ ‚ttˆˆ tƒtƒdˆ  tˆd ˆ d tƒ ksüJ ‚tˆˆ tƒ d¡ td
| dt d	| ˆ   tˆ | ˆ ƒ t|ƒtd	| ˆ ƒ  |dtˆd ƒfƒ¡s5J ‚tt‡ ‡fdd„ƒ d S )Nr(   r)   r   r+   r,   r.   é   é   éþÿÿÿr-   r/   Tr0   r2   r8   c                      ó   t ˆˆ tƒ d¡S ©NrE   )r   r'   r:   r4   ©r)   r(   r4   r5   r6   …   ó    z!test_gegenbauer.<locals>.<lambda>)r   r   r'   r   r	   r<   r!   r   r=   r   r   r   r   r   ÚOner   r   r$   r   r
   r   r   r>   r   r@   r   r   r&   r%   rA   r4   rJ   r5   Útest_gegenbauerW   s~   2
Hÿ&ÿ&
ÿ8,ÿÿ **(ÿ
ÿÿÿÿÿÿÿÿý4,ÿÿ
ÿrM   c                     s„  t dtƒdks	J ‚t dtƒtksJ ‚t dtƒdtd  d d  ¡ ks%J ‚t dtƒdtd  dt  d  ¡ ks:J ‚t dtƒdtd  dtd   d d	  ¡ ksSJ ‚t dtƒd
td  dtd   dt  d	  ¡ ksnJ ‚t dtƒdtd  dtd   dtd   d d  ¡ ksJ ‚t ddƒdks–J ‚t ddƒdksŸJ ‚t ddƒdks¨J ‚t ddƒdks±J ‚t ddƒdksºJ ‚t ddƒdksÃJ ‚t dtƒdksÌJ ‚tdƒ} t d|  tƒ | d¡dtd  dt  d  ¡ ksëJ ‚tt dtƒtƒttddƒtddƒtdƒ  ƒdttddƒtddƒtdƒ  ƒ dttddƒtddƒtdƒ  ƒdttddƒtddƒtdƒ  ƒ diks:J ‚tdƒ‰ t ˆ tƒ}t|t ƒsKJ ‚t	t ˆ tƒsTJ ‚t ˆ dƒtt
ƒttjˆ d  ƒtˆ d d ƒ  ksqJ ‚t ˆ dƒdks{J ‚t ˆ tƒtu s…J ‚t ˆ  tƒt ˆ d tƒks•J ‚t ˆ t ƒdˆ  t ˆ tƒ ks§J ‚t	t ˆ  |  tƒs³J ‚tt ˆ tƒƒt ˆ ttƒƒksÄJ ‚tt ˆ tƒtƒˆ tt ˆ tƒ t ˆ d tƒ  td d  ksåJ ‚tt ˆ tƒˆ ƒtt ˆ tƒˆ ƒksøJ ‚tdƒ}t ˆ tƒ d¡ td| tjtd  |  td tj | ˆ    tˆ |ƒd  |dˆ fƒ¡s.J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr   r+   r,   r.   r9   rE   é#   é   rF   é?   éF   é   é   éç   i;  éi   é   é
   r-   é   r2   é   r(   r8   c                      ó   t ˆ tƒ d¡S ©Nr+   ©r!   r'   r:   r4   ©r(   r4   r5   r6   ¹   ó    ztest_legendre.<locals>.<lambda>c                      rZ   ©Nr.   r\   r4   r]   r4   r5   r6   º   r^   )r!   r'   Úexpandr   Úsubsr#   r   r   r=   r$   r   r   r	   r<   r   r   r   r   r
   r@   r>   r   r   r&   r%   )r2   rB   rC   r4   r]   r5   Útest_legendreˆ   sf   &*26>6 " "ü
: $"*
ÿ&ÿÿÿÿÿrb   c                     sN  t ‰ tdtd  ƒ} ˆ ddtƒdksJ ‚ˆ ddtƒtksJ ‚ˆ ddtƒ|  ks)J ‚ˆ ddtƒdtd  d d ks;J ‚ˆ ddtƒdt |  ksIJ ‚ˆ ddtƒd| d  ksWJ ‚ˆ ddtƒdtd  dt  d kskJ ‚ˆ ddtƒ ¡ dddtd    d  ¡ |   ¡ ks‡J ‚ˆ ddtƒdt | d  ks—J ‚ˆ ddtƒd| d  ks¥J ‚ˆ dd	tƒˆ ddtƒ d ks¶J ‚ˆ dd
tƒˆ ddtƒd ksÆJ ‚ˆ dd	tƒˆ ddtƒ d ks×J ‚ˆ ddtƒˆ ddtƒ d ksèJ ‚ˆ dd
tƒˆ ddtƒd ksøJ ‚ˆ dd	tƒˆ ddtƒ d ks
J ‚tdƒ‰tdƒ‰ˆ ˆˆtƒ}t|t ƒs J ‚ˆ ˆdtƒtˆtƒks.J ‚ˆ ˆˆdƒdˆ ttƒ tˆ d ˆd  t	j
 ƒtˆ d ˆd  d ƒ  ksZJ ‚tˆ ˆˆtƒtƒˆt t ˆˆtƒ ˆˆ t ˆd ˆtƒ  td d  ks‚J ‚tdƒ}ˆ ˆˆtƒ d¡ dtd  ˆd  td	| dˆ   td
| ˆ ˆ   td
| dˆ  ƒ t|ƒt| ˆ ƒ td
| ˆ ˆ ƒ  |dtˆd ˆd  ƒfƒ ¡sÝJ ‚tt ˆˆtƒƒt ˆtˆƒttƒƒksòJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ d S )Nr+   r,   r   r.   éýÿÿÿr9   rR   iñÿÿÿr-   rG   é   rS   éÐ  éx   é   r(   r/   r2   r8   c                      ó   ˆ ddt ƒS )Nr   r+   ©r'   r4   ©ÚPlmr4   r5   r6   ç   ó    z%test_assoc_legendre.<locals>.<lambda>c                      rh   )Nr-   r+   ri   r4   rj   r4   r5   r6   è   rl   c                      ó   ˆ ˆˆt ƒ d¡S r[   ©r'   r:   r4   ©rk   r/   r(   r4   r5   r6   é   rK   c                      rm   )Nr,   rn   r4   ro   r4   r5   r6   ê   rK   c                      rm   rI   rn   r4   ro   r4   r5   r6   ë   rK   )r   r   r'   r`   r   r=   r!   r   r   r	   r<   r   r
   r@   r>   r   r   r   r   r&   r?   r%   )ÚQrB   rC   r4   ro   r5   Útest_assoc_legendre½   sj   $(8 " "" $*ÿÿ"ÿ
ÿ:ÿ ÿÿþ
ÿ
ÿrq   c               	      sB  t dtƒdks	J ‚t dtƒtksJ ‚t dtƒdtd  d ks!J ‚t dtƒdtd  dt  ks2J ‚tddƒD ] ‰ tˆ ƒD ]} tˆ | ƒ}t ˆ |ƒdksMJ ‚q=tt‡ fdd„ƒ q7tddƒD ] ‰ tˆ ƒD ]} tˆ | ƒ}tˆ |ƒdkssJ ‚qctt‡ fdd„ƒ q]td	ƒ‰ t ˆ tƒ}t	|t ƒsŽJ ‚t
t ˆ tƒs–J ‚t ˆ t ƒd
ˆ  t ˆ tƒ ks§J ‚t ˆ  tƒt ˆ tƒks´J ‚t ˆ dƒttˆ  d ƒksÃJ ‚t ˆ dƒdksÌJ ‚t ˆ tƒtu sÕJ ‚tt ˆ tƒƒt ˆ ttƒƒksåJ ‚tt ˆ tƒtƒˆ tˆ d tƒ ksøJ ‚tˆ tƒ}t	|tƒsJ ‚tdƒ}tˆ t ƒd
ˆ  tˆ tƒ ksJ ‚tˆ  tƒtˆ d tƒ ks,J ‚t
tˆ  | tƒs8J ‚tˆ dƒttˆ  d ƒksHJ ‚tˆ dƒˆ d ksTJ ‚tˆ tƒtu s^J ‚ttˆ tƒƒtˆ ttƒƒksoJ ‚ttˆ tƒtƒt tˆ tƒ ˆ d t ˆ d tƒ  td d  ks“J ‚tdƒ}t ˆ tƒ d¡ ttd| ˆ   td d |  tˆ d| ƒ |dtˆ d ƒfƒ¡sÄJ ‚tˆ tƒ d¡ td
| dt d| ˆ    t| ˆ  ƒ t|ƒtd| ˆ  ƒ  |dtˆ d ƒfƒ¡sûJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr   r+   r,   r.   rE   c                      ó
   t ˆ ˆ ƒS ©N)r   r4   r]   r4   r5   r6   ø   ó   
 z test_chebyshev.<locals>.<lambda>c                      rr   rs   )r   r4   r]   r4   r5   r6   þ   rt   r(   r-   Úyr2   r8   rG   c                      rZ   r[   ©r   r'   r:   r4   r]   r4   r5   r6   &  r^   c                      rZ   r_   rv   r4   r]   r4   r5   r6   '  r^   c                      rZ   r[   ©r   r'   r:   r4   r]   r4   r5   r6   (  r^   c                      rZ   r_   rw   r4   r]   r4   r5   r6   )  r^   )r   r'   Úranger   r&   r?   r   r   r   r=   r$   r   r   r   r   r   r
   r@   r>   r   r   r   r   r%   )r2   ÚzrB   ru   rC   r4   r]   r5   Útest_chebyshevî   sz   "


" &
$" "0
ÿ ÿÿÿ
ÿÿÿÿþrz   c               
      sL  t dtƒdks	J ‚t dtƒdt ksJ ‚t dtƒdtd  d ks#J ‚t dtƒdtd  dt  ks4J ‚t dtƒdtd  d	td   d ksIJ ‚t d
tƒdtd
  dtd   dtd   d ksdJ ‚tdƒ‰ tt ˆ tƒspJ ‚t ˆ t ƒdˆ  t ˆ tƒ ksJ ‚tt ˆ  tƒsŠJ ‚t ˆ dƒdˆ  ttƒ ttjˆ d  ƒ ks¢J ‚t ˆ t	ƒt	u s«J ‚t
t ˆ tƒƒt ˆ t
tƒƒks»J ‚tdƒ} t ˆ tƒ d¡ tˆ ƒtd|  dt d|  ˆ    t| ƒtd|  ˆ  ƒ  | dtˆ d ƒfƒ ¡sòJ ‚tt ˆ tƒtƒdˆ  t ˆ d tƒ ksJ ‚tt ˆ tƒˆ ƒtt ˆ tƒˆ ƒksJ ‚tt‡ fdd„ƒ d S )Nr   r+   r,   rE   r.   rF   rg   rV   é0   rS   é@   ià  re   rf   r(   r-   r2   r8   rG   c                      rZ   r_   )r   r'   r:   r4   r]   r4   r5   r6   E  r^   ztest_hermite.<locals>.<lambda>)r   r'   r   r$   r   r   r   r	   r<   r   r   r
   r@   r>   r   r   r   r   r   r&   r%   )rC   r4   r]   r5   Útest_hermite,  s8   "*6"0 ÿÿÿÿÿ,&r}   c               	      s¨  t dƒ‰ t ddd} tdtƒdksJ ‚tdtƒt d ksJ ‚tdtƒtd d dt  d ks2J ‚tdtƒtd  d	 dtd  d  dt  d ksNJ ‚td
tƒtd ttƒ ks]J ‚tˆ tƒ}t|tƒsiJ ‚tˆ dƒdksrJ ‚tˆ tƒdˆ  t ksJ ‚tˆ t ƒtu s‰J ‚ttˆ tƒƒtˆ ttƒƒks™J ‚tdƒ}tˆ tƒ d¡ 	t
t| tˆ  |ƒ t|ƒd  |dˆ fƒ¡s¾J ‚t| tƒ d¡ 	ttƒt
t | t| d |ƒ t|ƒd  |d|  d fƒ ¡sèJ ‚ttˆ tƒtƒtˆ d dtƒ ksûJ ‚t dƒ}tˆ  tƒttƒtˆ d t ƒ ksJ ‚tdtƒttƒtdt ƒ ks&J ‚ttˆ  | tƒs2J ‚ttdd„ ƒ ttdd„ ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr(   r/   T)Únegativer   r+   r,   r.   rS   rG   r-   r2   r8   rc   c                   S   s
   t dtƒS r3   )r    r'   r4   r4   r4   r5   r6   k  rt   ztest_laguerre.<locals>.<lambda>c                   S   s   t tddƒtƒS )Nr9   r,   )r    r   r'   r4   r4   r4   r5   r6   l  r^   c                      rZ   r[   ©r    r'   r:   r4   r]   r4   r5   r6   m  r^   c                      rZ   r_   r   r4   r]   r4   r5   r6   n  r^   )r   r    r'   r   r=   r   r   r
   r@   r>   r   r   r   r   r   r$   r&   r?   r%   )r/   rB   rC   r2   r4   r]   r5   Útest_laguerreH  s>   &8
 *ÿ*ÿÿ&*$r€   c               	      sþ  t dƒ‰t dƒ} t dƒ‰ tdˆ tƒdksJ ‚tdˆ tƒt ˆ  d ks%J ‚tdˆ tƒ ¡ td d ˆ d t  ˆ d ˆ d  d   ¡ ksGJ ‚tdˆ tƒ ¡ td  d ˆ d td  d  ˆ d ˆ d  t d  ˆ d ˆ d  ˆ d  d   ¡ ks~J ‚td	ƒD ]}t|dtƒ ¡ t|tƒks“J ‚q‚tˆ| tƒ}t|tƒs¡J ‚tˆdtƒtˆtƒks®J ‚tˆˆ dƒtˆ ˆ ˆ ƒks½J ‚t d
dd}t|ˆ t	ƒd| t	 ksÑJ ‚t|ˆ t	 ƒt	u sÜJ ‚t
tˆˆ tƒtƒtˆd ˆ d tƒ ksòJ ‚tdƒ}t
tˆˆ tƒˆ ƒ tt|ˆ tƒˆ  ˆ  |dˆd fƒ¡sJ ‚ttˆˆ tƒƒtˆtˆ ƒttƒƒks+J ‚tˆˆ tƒ d¡ tˆ ˆ d ƒtt| tˆ |ƒ t|ƒt|ˆ  d ƒ  |dˆfƒ tˆƒ ¡s`J ‚tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ d S )Nr(   r/   Úalphar   r+   r,   r.   rS   rW   ÚpTr0   r-   r2   r8   c                      s   t dˆ tƒS r3   )r   r'   r4   )r   r4   r5   r6   ˜  rl   z%test_assoc_laguerre.<locals>.<lambda>c                      rH   r[   ©r   r'   r:   r4   ©r   r(   r4   r5   r6   ™  rK   c                      rH   rI   rƒ   r4   r„   r4   r5   r6   š  rK   )r   r   r'   r`   rx   r"   r=   r    r   r   r   r
   r>   r   r   r@   r   r   r   r&   r?   r%   )r/   ÚirB   r‚   rC   r4   r„   r5   Útest_assoc_laguerreq  sZ   .ÿ8ÿþ ÿ$
ÿ
ÿ"ÿÿÿ
ÿr†   N)@Úsympy.concrete.summationsr   Úsympy.core.functionr   r   Úsympy.core.numbersr   r   r   r   Úsympy.core.singletonr	   Úsympy.core.symbolr
   r   Ú(sympy.functions.combinatorial.factorialsr   r   r   Ú$sympy.functions.elementary.complexesr   Ú&sympy.functions.elementary.exponentialr   Ú#sympy.functions.elementary.integersr   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   Ú'sympy.functions.special.gamma_functionsr   Úsympy.functions.special.hyperr   Ú#sympy.functions.special.polynomialsr   r   r   r   r   r   r   r   r   r   r    r!   Úsympy.polys.orthopolysr"   Úsympy.polys.polyrootsr#   Úsympy.core.exprr$   r%   Úsympy.testing.pytestr&   r'   rD   rM   rb   rq   rz   r}   r€   r†   r4   r4   r4   r5   Ú<module>   s8    8=151>)