o
    jg                     @   s(  d dl mZmZmZmZmZmZ d dlmZm	Z	 d dl
mZ d dl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 d dlmZmZ d d	lmZ d d
l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( d dl)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 dd Z:dd Z;dd Z<dd Z=dd Z>d d! Z?d"d# Z@d$d% ZAd&d' ZBd(d) ZCd*d+ ZDd,d- ZEd.d/ ZFd0d1 ZGd2d3 ZHd4d5 ZId6d7 ZJd8d9 ZKd:d; ZLd<d= ZMd>d? ZNd@dA ZOdBdC ZPdDdE ZQdFdG ZRdHdI ZSdJdK ZTdLdM ZUdNdO ZVdPS )Q    )DifferentialOperatorHolonomicFunctionDifferentialOperators
from_hyperfrom_meijergexpr_to_holonomic)RecurrenceOperatorsHolonomicSequence)
EulerGamma)IRationalpi)S)Symbolsymbols)explog)asinhcosh)sqrt)cossin)besselj)beta)CiSierferfc)gamma)hypermeijerg)sstr)O)hyperexpand)ZZ)QQ)RRc                  C   s  t d} tt| d\}}||jksJ |t|jj|jjg|ks$J | | | d |d   td| | d g|ks<J | d d | | |d   t| d d dddd| g|ks[J | | | d  d || d |    d d| d	  d
| d  |  d| d  |d   | d  |d   ksJ | |d  | d d |d   || d   }d|  d| d  |  | d |d   d| d  |  d |d   d| d  d|   |d   | d d| d   |d   | d d |d	   }||ksJ d S )NxDx   r            i   i   i   	         <   
      )	r   r   r%   old_poly_ringderivative_operatorr   basezerooner'   Rr(   pq r?   \/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/holonomic/tests/test_holonomic.pytest_DifferentialOperator   s8   00
,&rA   c                  C   s  t d} tt| d\}}t|d |  | }td| | |d   | }||ks*J t| | d | }t|d | }t| d | d d |  | d |  |d   | }|| |ks[J t| | |d | d d   | }t|d | }td| d  d|   d d	| d  d
| d   d|   d |  d| d  d| d   d|   d |d   d| d  d| d   d| d   d|   d |d   | }|| |ksJ t|d d | }t| d | | }t| d  d| d   d| d   d| d   | d  d| d   | d  d| d   d| d    d!| d   d |  | d d| d   d| d   d| d   | d  d| d   |d   | d d| d   d| d    d!| d   d |d   | }|| |ksjJ | d d|   d" }| d d |   d }|| |  }|| |  }t|| t||  }td| d  d|   d d#| d  d| d   d$|   d |  | d d| d   d%| d   d|   d& |d   | }||ksJ d S )'Nr'   r(   r)   r*   r,   i~      iy   i     ir1         r0      &   r5   (   r+      -   i  r4   i'  r-   iv        r.      r/   >      G   )r   r   r$   r6   r   diff)r'   r<   r(   r=   r>   rsr?   r?   r@   test_HolonomicFunction_addition+   sl   2"@*6B4

*@2rW   c                  C   s  t d} tt| d\}}t||  | |d   | }t| | ||   |d  | }td| d  d| d   d| d   d d| d	  d| d   d|   |  d| d  d
| d   d| d   d |d   d| d	  d| d   d|   |d   d| d  | d  |d   | }|| |ksJ t|d d | }t|d | }tdd|  d|d   | }|| |ksJ t|d d |  | | }t||  d d | }td| d  d| d   d| d	   d| d   d| d   d| d   d|   d d| d  d| d	   d| d   d| d   d| d   d|   d |  d| d  d| d	   d| d   d| d   d| d   d|   d |d   d| d	  d| d   d| d   d| d   d|   |d   d| d	  d| d   | d  |d   | }|| |ksJ t| |d  d | }t||  |  | }t| d d|  d |  | |d   | }|| |ksJ d S )Nr'   r(   r)   r/   r-   r1   r,   rF   r+   r2      r*   r.   rM         rK   rH   r4   )r   r   r$   r6   r   r'   r<   r(   r=   r>   rU   r?   r?   r@   %test_HolonomicFunction_multiplicationM   s\   L.&TJN



&*r]   c                  C   sj   t d} tt| d\}}t||  | |d   | }t|| }tdD ]}||| ks.J ||9 }q$d S )Nr'   r(   r)   r4   )r   r   r$   r6   r   range)r'   r<   r(   r=   anr?   r?   r@   test_HolonomicFunction_powerg   s   

ra   c                  C   sZ  t d} tt| d\}}t|d | ddg}t|d d | dddg}td| |d  |d  | dg d}|| |ks@J t||  |d  | dddg}t|d |  | dddg}t| d	  | d d	  | d  tdd	 | d | d d	  | tdd	  d |  | td
d tdd	 |d   | d | tdd	  tdd	 |d   | d | d	  tj |d	   | dg d}|| |ksJ t|d d	|  |  | d  | ddd	g}t|d d | dddg}t| d d| d	   d| d   d d	| d  d| d   d|   |  | d d| d	   d| d   d |d   d	| d  d| d   d|   |d   | d	 d| d   d |d	   | dg d}|| |ksWJ t|d |  | dg d}t|d | ddg}t| d  |  d | d |  |  |  d |d   | d |d	   | dg d}|| |ksJ tt	| }td|  dd}t| d d | d d|   |  | d d |d   | d d|   |d   | dt	dd dt
d t	d d g}|| |ksJ t d}tt| }tt| d |  }||  |t d  }|tt|  t|  d  t|  ks+J d S )Nr'   r(   r*   r   r,   r)   )r1   r,   r)   r1   r.   )r)   r)   rY   r)   r-   r+   $       r0   r4   )r1   r+   rb   i)r,   r   r*   )r1   r*   r)   x0C_1)r   r   r%   r6   r   r   r   Halfr   r   r   r   to_exprsubsr   expand)r'   r<   r(   r=   r>   rU   ri   r?   r?   r@   test_addition_initial_conditionq   sn   &R&
*H*&

4
L&0rn   c                  C   s  t d} tt| d\}}t|d | |  d | dddg}t|d d | dddg}t| d d| d   d	 d|  |  | d d
| d   d |d   d| d  d|   |d   | d d |d   | dg d}|| |ksuJ t|d |  | dddg}t|d | d  | dg d}t| d d| d  d  d| d  d  d| d  d
  d| d  d
  d| d  d  d| d  d
  d|   tdd d| d  d| d  d
  d| d  d
  d| d  d
  d| d  d
  d| d   | tdd
  d |  d| d  d| d  d
  d| d  d
  d| d  d  d | d  d
  | td!d  |d   d"| d  d| d  d  d| d  d  d!| d  d
  td#d
 |d   d| d  d$| d  d
  d| d  d
  d| d   | tdd
  tdd |d   d%| d  d$| d  d
  | tdd  |d   | d d$| d  d  d| d  d  tdd
 |d   | dg d&}|| |ksJ t|d | ddg}t|d d | dddg}tdd|  |d  | dddg}|| |ks J t| |d  d d|  | dddg}t| d d"|  d |  | |d   | dddg}|| |ks5J t|d d | dddg}t|d d | dg d'}td| d|d   d|d   d|d   |d  | dg d(}|| |ksyJ tt| }td|  dd)}t| d|  | |d   | dtdtd td g}|| |ksJ tt	| }tt	| d |  }|| 
 }|t|  t	|  d  ksJ d S )*Nr'   r(   r)   r*   r   r,   r1   rG   r3   r0   r2   rK   r4   )r,   r1   r)   r,   )r,   r,   r,   r/   %   r.      r-      r+         i  rJ      b      R   L      P   rY      @   rP   )r,   r,   r,   rc   ii)r*   r)   r*   )r*   r+   rG      r}   r)   rg   )r   r   r%   r6   r   r   r   r   r   r   rk   r   r\   r?   r?   r@   %test_multiplication_initial_condition   s   "D
H:
:LV8
"&2B8$r~   c                  C   s  t d} tt| d\}}t|d | | d |  }td|  d | | }||ks-J t|d d | | d | d  d }td| d  d	| d
   d| d   d| d   d| d  d |  d| d  d|   |d   | }||kszJ t|d |  |  | d| d  | d  d }td| d
  d| d   d| d   d| d   d| d   d| d   d| d   d| d  d| d   d| d   d|   d |  d| d  d| d   | d  d| d   |  |d   | }||ksJ t|d d | d| d  }td| d  | | |d   | }||ks#J t|d d | | d| d d   }t| d d| d   d| d
   d| d   d| d   d| d   d| d   d| d   d| d   d | d   d|   d d| d  d!| d   d| d   d |  | d d| d   d| d
   d| d   d| d   d"| d   d| d   d| d   d| d   d| d   d|   d |d   | }||ksJ d S )#Nr'   r(   r*   r)   rY   r+   }   rX   rC   r0   r3   r-   r/   r,   ir1      iD     r.      p   rd   rF   rZ   r4   rH   0   D   H   o   6   re   r2   )r   r   r$   r6   r   composition)r'   r<   r(   r=   rU   r?   r?   r@   "test_HolonomicFunction_composition   s   (D0<

2
 "(D




N


r   c               	   C   s6  t d} tt| d\}}tddgtddg| d d }td|  d| d  d |  | d d|   |d   | ddtd t d	 d
td t d tdd g}t	|}||ks^J t	tdgtddg| d d }t|  | d  d d |  | |d   | }d}t
|j|ksJ |j|jksJ d S )Nr'   r(   r*   r,   r)   r1   r+   r/   r0   rP   rp   z?[sqrt(pi)*exp(1/4)*erf(1/2), -sqrt(pi)*exp(1/4)*erf(1/2)/2 + 1])r   r   r%   r6   r   r   r   r   r   r   r!   y0annihilator)r'   r<   r(   r=   r>   rU   r   r?   r?   r@   test_from_hyper   s    l".r   c               
   C   s  t d} tt| d\}}ttg tddgftjgtjdgf| }t	| d tdd | d  | d  |  | d |d   | d |d   | ddt
t ddt
t  ddt
t  g}||kseJ ttg g fdgg f| }t	d| | ddg}||ksJ ttdgg ftjgdgf| }t	| tj | | |d   | dt
ttd tdg}||ksJ ttdgdgfdgg fd| d  }t	d| d  d | | d |d   | dttdd d ttdd g}||ksJ d S )	Nr'   r(   r,   r)   r*   r1   rb   r   )r   r   r%   r6   r   r    r   r   rj   r   r   r   r   r   r;   r?   r?   r@   test_from_meijerg   s    *L( 8&Nr   c                  C   sj  t d} tt| d\}}t ddd}tt|d\}}t| d |d  |  | |  }td	|d |d   |d d
|d   d|d   d
|  |d   dd	fg}||ks]J t| d |d  | d  |d  |  }td	|d d|d   d|d   d|  d |d   ddfg}||ksJ t| d |d  d	 |d  |  }td	|d d|d   |d  d|  |  |d d|  d |d   ddfg}||ksJ td| d  |d  d|  |  | |d   |  }td| d|d  d
|d   d|d   d
|  |  |d d|d   d|  |d   dd	fg}||ks3J d S )Nr'   r(   r`   TintegerSnr)   r1   r*   r-   r,   rM   r   rG   r      rE   r+   )r   r   r$   r6   r   r   to_sequencer	   )r'   r<   r(   r`   _r   r=   r>   r?   r?   r@   test_to_Sequence   s    "P*D&T6hr   c               	   C   s  t d} tt| d\}}t ddd}tt|d\}}t|d | ddg }td	|d |  ddfg}||ks>J t|d
 d | dddg }td|d
 d|  d
 |d
   ddgdfg}||kskJ t|d
 d | d |  | dd
dg }t||d
  |d
 d|  d |d   d
dd	td	d
tddgdfg}||ksJ t| d |d  d | |  }td|d |  |d d|d   d|  |d
   ddfg}||ksJ t d\}}	}
}t	t
d| d
  }t|d
 |d
 d
|  |d
   dd|
gddfg}| |ksJ | }t|d
 |d
 |d
   |dgddfg}| |ks9J t	t| |   }td
|d
  d
|  |d d
|d
   | d
 |d
   ddd
tt  d|gdd
fg}||kswJ d S )Nr'   r(   r`   Tr   r   r*   r   rb   r)   r,   r.   rX   r1   r+   C_0, C_1, C_2, C_3)r   r   r%   r6   r   r   r   r	   r   r   r   rT   r   r   r   )r'   r<   r(   r`   r   r   r=   r>   C_0ri   C_2C_3r?   r?   r@   #test_to_Sequence_Initial_Coniditons  s4   0*J"@4*Zr   c            	      C   s  t d} tt| d\}}t|d d|  |  | dddgjdd}| | d d  | d	 d  | d
 d  | d d  t| d  }||ksIJ t|d | | d ddg}t|d d | dddg}|| jdd}d| d d  | d d  d| d  d  d| d  d  t| d  }||ksJ td|  |d  | | dddg}|| | jdd}d|  | d  d| d  d  d| d  d  d| d	  d  d| d  d  d| d
  d  d| d  d  d| d  d  t| d  }||ksJ tdd|   d| d   d|  d| d   d| d   |  dd| d   d| d   |d   | dddgjd
d}| | d d  d| d  d  | d	 d   d!| d  d"  t| d
  }||ksdJ tdd|   d| d   d|  d| d   d| d   |  dd| d   d| d   |d   | dddgjd
d}dd| d  d  | d d  d	| d  d#  d| d	  d$  d| d  d%  t| d
  }||ksJ tt	| |  jdd}t d&}t	| |  jdd}|
|d'dtt  |ksJ tt| d |  jddt| d |  jddksJ td|  d| d   tdd  d|  d| d   tdd  ksCJ tt| d |   t| d |   ks\J tt| d | d  d'g d(id)jddt| d | d  jddksJ tt| d | d  dd*jdd t| d | d  jddd+ ksJ tt| d d | d d  dd'g d(id,jddt| d d | d d  jddd-ksJ d S ).Nr'   r(   r)   r   r*   r4   r`   r,   r+   r.   *   r0   r   r1   rF   rR   r-   i     r/   i  r}   r5   i  rS   i   iN  i  i{  iH  rZ   r2      i  re   rJ   i  r   rY   r*   r   rb   r   rg   )r`   rh   )rh   r   )rh   r`   )r   r   r$   r6   r   seriesr"   r   r   r   rl   r   r   r   r   together)	r'   r<   r(   r=   r>   rU   rV   tr   r?   r?   r@   test_series$  sh   *@H"N
<"
H<"
\":N2NP4$r   c                  C   sL  t d} tt| d\}}td|  |d  | | dddg}g d}d}t|j|dd	d
 |ks4J ddt  g}tdD ]}|	|d
 d dt   q?tdD ]}|	|d
 d dt   qSd}t|j|dd	d
 |kstJ t|d d | dddg}d}t|j|dd	d
 |ksJ dg}tdD ]}|	|d
 d  q|	t
d  d}t|j|dd	d
 |ksJ dt g}tdD ]}|	|d
 dt   qtdD ]}|	|d
 d  q|	t
d t  tdD ]}|	|d
 dt   qd}t|j|dd	d
 |ksJ t|d d | dddg}dg}tdD ]}|	|d
 d  q%|	t
 d}t|j|dd	d
 |ksIJ dt g}tdD ]}|	|d
 dt   qRtdD ]}|	|d
 d  qetdD ]}|	|d
 dt   qvt|d d | dddgj|dd	}d}t|d
 |ksJ d S )Nr'   r(   r*   r)   r   
皙?g?g333333?g?g      ?g333333?gffffff?g?g?r*   z0.699525841805253Euler)methodrb   r   r0   r4   z'1.07530466271334 - 0.0251200594793912*Iz*0.905546532085401 - 6.93889390390723e-18*IrG   z1.08016557252834rH   z*0.976882381836257 - 1.65557671738537e-16*I皙?=   z-1.08140824719196r2   z*0.501421652861245 - 3.88578058618805e-16*I)r   r   r%   r6   r   r!   evalfr   r^   appendr   r'   r<   r(   r=   rU   rV   ir?   r?   r@   test_evalf_eulerH  sb   "
 
 
$r   c                  C   s6  t d} tt| d\}}td|  |d  | | dddg}g d}d}t||d |ks2J d	d	t  g}td
D ]}|	|d d	 d	t   q=tdD ]}|	|d d	 d	t   qQd}t||d 
d|kssJ t|d d | dddg}d}t||d |ksJ d	g}tdD ]}|	|d d	  q|	td  d}t||d |ksJ d	t g}td
D ]}|	|d d	t   qtdD ]}|	|d d	  q|	td t  tdD ]}|	|d d	t   qd}t||d |ks
J t|d d | dddg}dg}tdD ]}|	|d d  q|	t d}t||d |ks@J d	t g}td
D ]}|	|d d	t   qItdD ]}|	|d d	  q\tdD ]}|	|d d	t   qmt|d d | dddg|}d}t|d |ksJ d S )Nr'   r(   r*   r)   r   r   z0.693146363174626rb   r   r0   r4   z1.098616 + 1.36083e-7*Ir.   z)0.90929463522785 + 1.52655665885959e-16*IrG   z0.999999895088917rH   z)1.00000003415141 + 6.11940487991086e-16*Ir   r   z-0.999999993238714r2   z*0.493152791638442 - 1.41553435639707e-15*I)r   r   r%   r6   r   r!   r   r   r^   r   r`   r   r   r?   r?   r@   test_evalf_rk4  sb   " 


 r   c               
   C   s"	  t d} tt| d\}}tt| |  d }td|  d| d  d |  d|  |d   | d |d   | dd	dtd
dg}||ksGJ td	d	| d  d  }td|  | d d	 |  | dd	g}||kskJ tt| t|  | t	d	|    }td| d  d| d   d|   d d
| d  d| d   d| d   d|   |  d| d  d| d   d| d   d| d   d|   d |d   d
| d  d| d   d| d   d| d   |  d |d   | d d| d   | d  d| d  d  |  tdd |d   | dg d}||ksJ t| t|  t
|  d	 }t|  d | | d |d   |  d |d   | d |d   | dg d}||ksTJ | t|  t
|  d	 jdd|jddksmJ tt	d	|  d d	 }t|d|  d |d   | d d|   d	 |d   | dg d}||ksJ tt| d |  }td| d  d| d   d |d  d| d  | d  |d   | d td	d |d   | ddd	dt dg}||ksJ tt| |  }t| d  d d|  |  | d |d   | ddd	g}||ksJ ttd| }t| d d | |  | d |d   | dddg}||ks<J ttd| t|  }t| d  | d  tj | d | d  tdd |  | d  | d  d	 |d   | d | d  |d   | ddd	tjg}||ksJ tt| d |  }tdd|  |  d|d   | |d   | dg d}||ksJ tt| d |  dd}tdd|  |  d|d   | |d   | dtdd d tdt
d tdd d  dtdd  d t
dd  tdt
d  g}||ksJ tt	| d td|  d  tdd  }td| d|  |d   d|d   | |d   | dt	d d td  tdd  dd	dg}||ks_J | }t	| d td|  d  tdd  }||ks~J t| tj d	d}t| | tj | d	d	g}||ksJ ttd	| d  }t|  | d d	 |  | dd	g}||ksJ tt| td|    t| td|     dksJ td|  dt|    d|  dt|   ksJ t| d | d  d| d   d|   d | d  dd}td
| d  | d  d|   d | d | d  d| d   d| d   d|   |  | dd
g di}||ksMJ td	| d	 d  dd	d}td| d	 |  | d	d
g di}||ksrJ t d}tt||  | d}| t|t|  ksJ d S )Nr'   r(   r)   r/   r1   r-   r,   r   r*   rY   r4   r2   rK   r+   r.   )r   r*   r1   rb   )r)   r*   r*   r,   r   )r*   r   r)   )r   r*   r   rg   rc   lenics)r)   r,   r+   )r   rh   r*   r   r   r_   r'   )r   r   r%   r6   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   r   r
   rk   r   simplify)r'   r<   r(   r=   r>   r_   r?   r?   r@   test_expr_to_holonomic  s   @$$FB>
B2B@82T6:L,4(("
68F""r   c               	   C   sL  t d} tt| d\}}t|d | ddg }dtg g d|   }||ks*J ttd|  | d | ddg  }d| d  d| d   d|   d }||ksVJ td|  |d  | | dddg }| d  tdd	|   d |  }||ksJ td|  | |d  | dddt	t
 g }d|  ttjftddf| d   t	t
 }||ksJ ttd|  | |d  | ddd
t	t
 g }t| }|t|ksJ tt| d d | |  | d |d   | ddtjg }td| }||ksJ tt| |d  | |  | dddg }td| }||ks$J d S )Nr'   r(   r)   r   r,   r*   r-   )r)   r)   r*   )r,   r)   rY   )r   r   r%   r6   r   to_hyperr   r#   rm   r   r   r   rj   r   r   rewriter   r;   r?   r?   r@   test_to_hyper+  s6   ($& ..2&
*
r   c                  C   s"  t d} tt| d\}}t|d | ddg }t| }||ks$J t|d d | dddg }t| }||ks=J t|d d | dddg }t| }||ksVJ tdd|  d |  | d |  |d   | dddg 	 }d| d d|   d  }||ksJ t
t| d |  | d| f }t| d |  | d| f}||ksJ t d\}}}}t
td| d   }|t| d d  }||ksJ t
td| d    }||  | d d  }||ksJ t
t| |   }d| |  dtt | t|  d  |  d|  tt  }||ksJ t
t| dd	 }|t| ks1J t
t|  t| ks@J t
td| d   }|td| d  ksYJ t
d| d  d tdd  }|d| d  d tdd ks|J t
t| d  d|    }|t| t|  d  ksJ t
d
| d  d|   tdd  }| tdd d
| d  d tdd  }||ksJ ttdtjf| }ttdtjf| }	td}
td}| |d|
di|	  dksJ ddgtjdgi|_| |	ksJ t
| d  | d ksJ t
d| d  d| d    	 d| d  d| d   ks<J t d}t
d|  t
||  |   }d| | d  }||ks^J t
d|  t
||  |   }| |d  }||kszJ t
d|  t
|   }|d|  ksJ d S )Nr'   r(   r*   r   r)   r1   r   r,   rg   rY   r.   rY   rc   D_0r   r+   r_   gffffff?g333333@)r   r   r$   r6   r   rk   r   r   r   rm   r   r   	integrater   rT   r   r   r   r   r   r   r   rj   r#   r   rl   r   r   )r'   r<   r(   r=   r>   r   ri   r   r   rV   r   r_   r?   r?   r@   test_to_exprE  s   
$<"$ &(("
r   c                  C   s  t d} tt| d\}}tt| d |  dd| ddf}d}t||ks*J tt| | d| f }dt	|  }||ksDJ tt| | ddf}dt	d }||ks\J tt| |  dd| ddf}d	}t||ksvJ tt| d |  dd| ddf}d
}t||ksJ tt| |  }||  t
| ksJ || ddft
dksJ tt| d |  }| }||  || d| fksJ || ddf|| ddfksJ td|  dd|  t| ksJ t| d d t|   dd|  }| d  d| d   d|   dt| d   d t|   }||ks2J tt	| d | d  dg did|  }t
d|   t	| d |   }||ks_J tt| d |  |  }| tdd d| d  d|   d  | t| d  tt|   d|  t| d   }||ksJ tt| d d |  }t| d d | }||  dksJ td| d  dg did}td| d  dd}||ksJ tt	| d }|| |  t
d|   t	| d |   ksJ d S )Nr'   r(   r)   r*   rg   r,   z0.166270406994788r   z0.659329913368450z-0.423690480850035rb   r-   rH   rZ   rY   r   r   r1   r   r   )r   r   r$   r6   r   r   r   r!   rk   r   r   r   r   r   r   r   r   r\   r?   r?   r@   test_integrate  sT   $ $"$&(<.V:r   c            
      C   sr  t d\} }tt| d\}}t| |d  d | dddg}|  |   ks/J t|d d | dddg}|| d | ksJJ tt	| }|  t
| |  ks^J ||dksgJ t d\}}}}t	| }	||  |	 ksJ || d |tdd |	| d ksJ || d |tdd|di|	| d ksJ d S )	Nzx, yr(   r)   r*   r   r   rb   r,   )r   r   r$   r6   r   rT   rk   r   r   r   r   rl   r   cancelr   )
r'   yr<   r(   r=   r   ri   r   r   r>   r?   r?   r@   	test_diff  s    6<r   c            
      C   s  t d} tdtd|   }| dtd|   ksJ t||  dks)J tt| d\}}td|  }t	dd|  |  | dd	dgi}||ksOJ | d|  ksYJ t|| d	d
ftd|  | d	d
fksqJ t d\}}tt
| | | | d}| t
| | | ksJ ||  t| | |  d	 ||  ksJ tt
| | | | d|  }t|t| | |  | }||ksJ t d}t||  | }| ||  ksJ ||  || d
  d
 ksJ t d\}}	t| tdt|   }| |d}||  dtd|    dksJ t| tdt|   }| |	d}|d|  td|    dksDJ d S )Nr'   g333333?g@z0.387096774193548*sin(3.1*x)r(   gݷ:>j ?gݷ:>j r   r*   r)   zy, zr   r_   zD_2, C_1g      ?)r   r   r   rk   r!   r   r   r&   r6   r   r   rl   )
r'   r=   r   r(   r>   r   zr_   D_2ri   r?   r?   r@   )test_extended_domain_in_expr_to_holonomic  s8    00"""&r   c                  C   s  t d} ttt|  t| ksJ ttt|  t| ks$J ttt|  t| ks4J ttt|   t| ksFJ td| d  d d  d| d  d d ks`J ttt	d| dd t	d| kstJ t
tdddfd	| }t| t|ksJ t
tjtdftdf| }tt| t|  d
ksJ tt
dtjf| }tt
dtjf| }td}td}td}t| |d|d
i|  d
ksJ d
dgtjd
gi|_t| |  d
ksJ tt	tj| dd}| |t|  |t|   |t|   t|    d
ks#J tt	tj| tddtdtt tdtt gid}| t	tj|  t	tdd|   d
ksYJ d S )Nr'   r1   r)   r,   r.   r   rb   rc   r?   r   r   r   ri   r   r*   F)initcondr   )r   r#   r   r   
to_meijergr   r   r   r   r   r   r   r   r   Onerm   rj   r   rl   r   rk   r   r   )r'   r=   rV   r   ri   r   r?   r?   r@   test_to_meijerg  s.      $4($*B:6r   c            	      C   s   t d\} }t ddd}t| |f  }tdt|  | d  d|d    dtt |  }t|||d}t||d\}}t	|  |d  ||d   d|  |}||ks[J d S )	Nzmu xsdTpositiver)   domainr(   r*   )
r   r%   	get_fieldr   r   r   r   r   r6   r   )	mur'   r   Qeh1r   r(   h2r?   r?   r@   test_gaussian  s   8(r   c            	      C   s   t ddd\} }}|| d  | d |d   t| | }t| |f  }t|||d}t||d\}}t| ||  | d   d |d | |  |}||ksTJ d S )Na b xTr   r*   r   r(   r)   )r   r   r%   r   r   r   r6   r   	r_   br'   r   r   r   r   r(   r   r?   r?   r@   	test_beta  s   (0r   c            	      C   s   t ddd\} }}||   || d   t| |  t|  }t| |f  }t|||d}t||d\}}t|  d ||  ||  |}||ksNJ d S )Nr   Tr   r*   r   r(   )	r   r   r   r%   r   r   r   r6   r   r   r?   r?   r@   
test_gamma  s   , r   c                  C   sf   t d\} }t|  }t|| d\}}td| |  | |  }t|| |  | }||ks1J d S )Nx nr(   rb   r   r%   r   r   r6   r   r'   r`   r   r   r(   r   r   r?   r?   r@   test_symbolic_power  s   r   c                  C   sT   t d} tt| d\}}td| |  | d }td| |  | }||ks(J d S )Nr'   r(   rb   rY   r)   )r   r   r%   r6   r   )r'   r   r(   r   r   r?   r?   r@   test_negative_power)  s
   r   c                  C   sn   t d\} }t|  }t|| d\}}td| |  | |d  }t| d | |  | }||ks5J d S )Nr   r(   rb   r,   r   r   r?   r?   r@   test_expr_in_power2  s   r   c                  C   sv   t ddd} tt| d\}}t| d |jj|jjg|}t| d d| g|}||kr.J |jd }||kr9J d S )Nr'   Tr   r(   r)   r*   r   )r   r   r%   r6   r   r8   r9   
listofpoly)r'   r<   r(   dodo2p2r?   r?   r@   test_DifferentialOperatorEqPoly<  s   
r   c                  C   sv   t ddd} tt| d\}}t| d |jj|jjg|}t|jjg|}tdD ]}||| ks4J ||9 }q*d S )Nr'   Tr   r(   r)   r4   )	r   r   r%   r6   r   r8   r9   r:   r^   )r'   r<   r   r   r_   r`   r?   r?   r@   test_DifferentialOperatorPowL  s   
r   N)Wsympy.holonomicr   r   r   r   r   r   sympy.holonomic.recurrencer   r	   
sympy.corer
   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   r   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.functions.special.besselr   &sympy.functions.special.beta_functionsr   'sympy.functions.special.error_functionsr   r   r   r   'sympy.functions.special.gamma_functionsr   sympy.functions.special.hyperr   r    sympy.printing.strr!   sympy.series.orderr"   sympy.simplify.hyperexpandr#   sympy.polys.domains.integerringr$   !sympy.polys.domains.rationalfieldr%   sympy.polys.domains.realfieldr&   rA   rW   r]   ra   rn   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r?   r?   r@   <module>   sd     "
#&$MNH>-
	
