
    sg                        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 Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd  ZDd! ZEd" ZFd# ZGd$ ZHd% ZId& ZJd' ZKd( ZLd) ZMd* ZNd+ ZOd, ZPd- ZQd. ZRd/ ZSd0 ZTd1 ZUd2 ZVy3)4    )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            	      d   t        d      } t        t        j                  |       d      \  }}||j                  k(  sJ |t        |j                  j                  |j                  j                  g|      k(  sJ | |z  | dz  |dz  z  z   t        d| | dz  g|      k(  sJ | dz  dz   |z   | |dz  z  z   t        | dz  dz   dddd| g|      k(  sJ | |z  | dz  z   dz   || dz  | z   z  z
  dz  d| d	z  z  d
| dz  z  |z  z   d| dz  z  |dz  z  z   | dz   |dz  z  z   k(  sJ | |dz  z  | dz  dz   |dz  z  z   || dz  z   z  }d| z  d| dz  z  |z  z   | dz  |dz  z  z   d| dz  z  | z   dz   |dz  z  z   d| dz  z  d| z  z   |dz  z  z   | dz  d| dz  z  z   |dz  z  z   | dz  dz   |d	z  z  z   }||k(  sJ y )NxDx   r            i   i   i   	         <   
      )	r   r   r&   old_poly_ringderivative_operatorr   basezerooner)   Rr*   pqs        W/var/www/html/venv/lib/python3.12/site-packages/sympy/holonomic/tests/test_holonomic.pytest_DifferentialOperatorrB      s_   A!""2"21"5t<EAr&&&&&%qvv{{AFFJJ&?CCCCr6AqD2q5L $8!Q1q$IIIIqD1H?Q
A %q!taxAq!Q&?CD D DFQTMAadQh/!3ad
	q!tr8 1a4Z2q508156TERU?8C C C C	
RUadQh"a%'	'BAI6A	
Q1q!t8r/!QTRUN2	adQ	r1u$	%(*QT	BF(:b!e'C	D	
AAqDBE!	"%&TAXQ$6	7A 6M6    c                  P   t        d      } t        t        j                  |       d      \  }}t	        |dz  | z  |       }t	        d|z  | |dz  z  z   |       }||k(  sJ t	        | |z  dz   |       }t	        |dz   |       }t	        | dz
  | dz  dz
  |z  z   | dz  | z
  |dz  z  z   |       }||z   |k(  sJ t	        | |z  |dz  | dz  dz   z  z   |       }t	        |dz
  |       }t	        d| dz  z  d| z  z
  dz
  d	| dz  z  d
| dz  z  z
  d| z  z
  dz   |z  z   d| dz  z  d| dz  z  z
  d| z  z   dz
  |dz  z  z   d| dz  z  d| dz  z  z   d| dz  z  z   d| z  z   dz   |dz  z  z   |       }||z   |k(  sJ t	        |dz  dz
  |       }t	        | dz  |z   |       }t	        | dz   d| dz  z  z   d| dz  z  z
  d| dz  z  z   | dz  z
  d| dz  z  z
  | dz   d| dz  z  z   d| d z  z  z
  d!| dz  z  z   dz
  |z  z   | dz  d| dz  z  z
  d| dz  z  z   d| dz  z  z
  | dz  z   d| dz  z  z   |dz  z  z   | dz  d| dz  z  z
  d| d z  z  z   d!| dz  z  z
  dz   |dz  z  z   |       }||z   |k(  sJ | dz  d| z  z   d"z   }| dz  d | z  z
  dz   }||z  |j                         z
  }||z  |j                         z
  }t	        ||       t	        ||       z   }t	        d| dz  z  d| z  z   dz   d#| dz  z  d| dz  z  z
  d$| z  z
  dz   |z  z   | dz  d| dz  z  z   d%| dz  z  z   d| z  z
  d&z
  |dz  z  z   |       }||k(  sJ y )'Nr)   r*   r+   r,   r.   i~      iy   i     ir3         r2      &   r7   (   r-      -   i  r6   i'  r/   iv        r0      r1   >      G   )r   r   r%   r8   r   diff)r)   r>   r*   r?   r@   rss          rA   test_HolonomicFunction_additionrZ   +   sa   A!""2"21"5t<EAr"a%!)Q'A1(a2q5[0!4A6M6!b&1*a(A"q&!$A1q5QTAXO3q!tax2q56HH!LAq5A::!b&2q5AqD1H#55q9A"q&!$A3A:a/#5$A+aQRd
:RUX[\U\:\_b:bfh9hh1*rAqDy(261C72q5@Aad(R!Q$Y&ad2R!V;R?2q5HIJK	MA q5A::"a%!)Q'A!Q$)Q'AArE6Bq"uH,s1b5y8419Dq!tKcRSUVRVhV
R%"QU(	SAX	%AqD	01	4b89<=rEBq"uH<LsSTVXSXy<XQT	=qD=q!t8=$%'U<++./ebBh.>QT.ICPQSTPTH.T	/
q5. 	A Q3!8O8	1qs
QA	1qs
QA	"qvvxA	"qvvxA!Q"3Aq"99A1QT6BqD=2-"QT'Bq!tG2Cbd2JR2OQS1SS	
A!Q$AqD	 2a4	'"	,b!e3456	8A6M6rC   c                     t        d      } t        t        j                  |       d      \  }}t	        || z   | |dz  z  z   |       }t	        | |z  || z  z   |dz  z   |       }t	        d| dz  z  d| dz  z  z   d| dz  z  z   dz   d| d	z  z  d| dz  z  z
  d| z  z   |z  z   d| dz  z  d
| dz  z  z   d| dz  z  z   dz   |dz  z  z   d| d	z  z  d| dz  z  z   d| z  z   |dz  z  z   d| dz  z  | dz  z   |dz  z  z   |       }||z  |k(  sJ t	        |dz  dz   |       }t	        |dz
  |       }t	        dd|z  z   d|dz  z  z   |       }||z  |k(  sJ t	        |dz  dz   | z   |z   |       }t	        || z  dz
  dz  |       }t	        d| dz  z  d| dz  z  z   d| d	z  z  z   d| dz  z  z   d| dz  z  z
  d| dz  z  z
  d| z  z
  dz
  d| dz  z  d| d	z  z  z   d| dz  z  z   d| dz  z  z
  d| dz  z  z
  d| z  z
  dz
  |z  z   d| dz  z  d| d	z  z  z   d| dz  z  z   d| dz  z  z
  d| dz  z  z
  d| z  z
  dz
  |dz  z  z   d| d	z  z  d| dz  z  z   d| dz  z  z   d| dz  z  z
  d| z  z
  |dz  z  z   d| d	z  z  d| dz  z  z   | dz  z
  |dz  z  z   |       }||z  |k(  sJ t	        | |dz  z  dz
  |       }t	        || z  | z
  |       }t	        | dz
  d| z  dz   |z  z   | |dz  z  z   |       }||z  |k(  sJ y )Nr)   r*   r+   r1   r/   r3   r.   rI   r-   r4      r,   r0   rP         rN   rK   r6   )r   r   r%   r8   r   r)   r>   r*   r?   r@   rX   s         rA   %test_HolonomicFunction_multiplicationra   M   s   A!""2"21"5t<EAr"Q$qQw,*A!B$r!t)BE/1-A1QT6AadF?Qq!tV3a7Bq!tGa1f<LrRSt<SUW;WW	
1a4"QT'	Bq!tG	#a	'Q./23AqD&1QT6/AaC2GQ1NO	
1a4!Q$A 	"A Q3!8O8"a%'1%A"Q$"A1R-1b!e)3Q7AQ3!8O8"a%'!)B,*A2a46A+q)A1QT6Bq!tG+bAg5!Q$>1a4G!AqD&PSTUVSVVYZZ	
1a4"QT'	Bq!tG	#a1f	,r!Q$w	61	<q	@"DE	
1a4"QT'	Bq!tG	#a1f	,qAv	5!	;a	?QFGJKAqD&q!tGK1fK AvK&()!K,-/UJ33 781fqAvo16LbRSe5ST VW	XA Q3!8O8!BE'!)Q'A"Q$q&!$A1q5RTAXrM1QAI=qAAQ3!8O8rC   c                      t        d      } t        t        j                  |       d      \  }}t	        || z   | |dz  z  z   |       }t	        ||       }t        d      D ]  }|||z  k(  sJ ||z  } y )Nr)   r*   r+   r6   )r   r   r%   r8   r   range)r)   r>   r*   r?   ans         rA   test_HolonomicFunction_powerrf   g   sz    A!""2"21"5t<EAr"Q$qQw,*A"a A2Y AqDyy	QrC   c            
         t        d      } t        t        j                  |       d      \  }}t	        |dz
  | ddg      }t	        |dz  dz   | dddg      }t	        d|z   |dz  z
  |dz  z   | dg d      }||z   |k(  sJ t	        || z
  |dz  z   | dddg      }t	        |dz  | z   | dddg      }t	        | d	z   | dz  d	z  z
  | dz  z
  t        dd	      z   | dz  | dz  d	z  z   | t        dd	      z  z   dz   |z  z   | t        d
d      z  t        dd	      z   |dz  z  z   | dz  | t        dd	      z  z
  t        dd	      z   |dz  z  z   | dz  | d	z  z   t        j                  z   |d	z  z  z   | dg d      }||z   |k(  sJ t	        |dz  d	| z  |z  z   | dz  z   | ddd	g      }t	        |dz  dz   | dddg      }t	        | dz  d| d	z  z  z   d| dz  z  z
  dz
  d	| dz  z  d| dz  z  z   d| z  z
  |z  z   | dz  d| d	z  z  z   d| dz  z  z   dz
  |dz  z  z   d	| dz  z  d| dz  z  z   d| z  z
  |dz  z  z   | d	z  d| dz  z  z   dz
  |d	z  z  z   | dg d      }||z   |k(  sJ t	        |dz  | z   | dg d      }t	        |dz
  | ddg      }t	        | dz   | z
  dz   | dz  | z   |z  z   |  dz
  |dz  z  z   | dz   |d	z  z  z   | dg d      }||z   |k(  sJ t        t        |             }t        d| z  d      }t	        | dz  dz   | dz  d| z  z   |z  z   | dz  dz   |dz  z  z   | dz  d| z  z   |dz  z  z   | dt        d      dz   dt        d      z   t        d       dz   g      }||z   |k(  sJ t        d      }t        t        |             }t        t        | dz  | z
              }||z   j                         j                  |t         dz        j                         }|t        t        |       z  t        |  dz         z  t        |       z   k(  sJ y )Nr)   r*   r,   r   r.   r+   )r3   r.   r+   r3   r0   )r+   r+   r]   r+   r/   r-   $       r2   r6   )r3   r-   rh   i)r.   r   r,   )r3   r,   r+   x0C_1)r   r   r&   r8   r   r   r   Halfr   r   r   r   to_exprsubsr   expand)r)   r>   r*   r?   r@   rX   ro   s          rA   test_addition_initial_conditionrt   q   s!   A!""2"21"5t<EAr"Q$1qc*A"a%'1a!Q0A"r'BE/BE11aCAq5A::"q&2q5.!QA7A"a%!)QAq62AAqD51a46>AqD08Aq>AadQPQTRSVmVWX`abdeXfVfFfijFjlnEnn	
8B?	Xa^	+RU2367dQx1~=M6MPXYZ\]P^6^`bde`e5efijlmimpqrspsisvwv|v|i|  A  CD  D  iDD FG  IJ  LY	ZAq5A::"a%!A#b&.1a4/A1v>A"a%!)QAq62A1a4!AqD&=1QT61A5!AqD&2ad7:JRPQT:QSU9UU
Q$1a4-!AqD&
 1
$b!e	+,/0Av1a4/?"Q$/FA.MNQRTUQUq!tGRRQQ !1o	7A q5A::"a%!)Q95A"q&!Q,AAqD519q=QTAXrM9aR!VRUNJ	
QA!^	-Aq5A::#a&!A!A#!$A1a4!81qs
B6!Q$(BE9IIQPQTTUVWTWZY[]^Y^L^^	1s1vz2A;Q!4	6Aq5A::
%.C$q'"A$q!tAv,'A	
QsQBqD)002A$q'	$rAv,&a0000rC   c            
      	   t        d      } t        t        j                  |       d      \  }}t	        |dz  | |z  z   dz
  | dddg      }t	        |dz  dz   | dddg      }t	        | dz  d| dz  z  z   d	z   d| z  |z  z   | dz  d
| dz  z  z   dz   |dz  z  z   d| dz  z  d| z  z   |dz  z  z   | dz  dz   |dz  z  z   | dg d      }||z  |k(  sJ t	        |dz  | z   | dddg      }t	        |dz  | dz  z
  | dg d      }t	        | dz  d| dz  z  dz  z
  d| dz  z  dz  z
  d| dz  z  d
z  z
  d| dz  z  d
z  z
  d| dz  z  dz  z   d| dz  z  d
z  z   d| z  z   t        dd      z   d| dz  z  d| dz  z  d
z  z
  d| dz  z  d
z  z
  d| dz  z  d
z  z
  d| dz  z  d
z  z   d| dz  z  z   | t        dd
      z  z   dz
  |z  z   d| dz  z  d| dz  z  d
z  z
  d| dz  z  d
z  z   d| dz  z  dz  z   d | dz  z  d
z  z   | t        d!d      z  z
  |dz  z  z   d"| dz  z  d| dz  z  dz  z   d| dz  z  dz  z
  d!| dz  z  d
z  z
  t        d#d
      z   |dz  z  z   d| dz  z  d$| dz  z  d
z  z
  d| dz  z  d
z  z
  d| dz  z  z   | t        dd
      z  z
  t        dd      z
  |dz  z  z   d%| dz  z  d$| dz  z  d
z  z   | t        dd      z  z   |dz  z  z   | dz  d$| dz  z  dz  z
  d| dz  z  dz  z
  t        dd
      z   |dz  z  z   | dg d&      }||z  |k(  sJ t	        |dz
  | ddg      }t	        |dz  dz   | dddg      }t	        dd|z  z
  |dz  z   | dddg      }||z  |k(  sJ t	        | |dz  z  dz   d|z  z   | dddg      }t	        | dz
  d"| z  dz   |z  z   | |dz  z  z   | dddg      }||z  |k(  sJ t	        |dz  dz
  | dddg      }t	        |dz  dz   | dg d'      }t	        d|z  d|dz  z  z   d|dz  z  z   d|dz  z  z
  |dz  z   | dg d(      }||z  |k(  sJ t        t        |             }t        d| z  d)      }t	        | d|z  z   | |dz  z  z   | dt        d      t        d       t        d      z   g      }||z  |k(  sJ t        t        |             }t        t        | dz  | z
              }||z  j                         }|t        | z  t        |  dz         z  k(  sJ y )*Nr)   r*   r+   r,   r   r.   r3   rJ   r5   r2   r4   rN   r6   )r.   r3   r+   r.   )r.   r.   r.   r1   %   r0      r/      r-         i  rM      b      R   L      P   r]      @   rS   )r.   r.   r.   ri   ii)r,   r+   r,   )r,   r-   rJ      r   r+   rm   )r   r   r&   r8   r   r   r   r   r   r   rq   r   r`   s         rA   %test_multiplication_initial_conditionr      s   A!""2"21"5t<EAr"a%!B$,*Aq1a&9A"a%!)QAq62A1a4"QT'>B.!A#b&8AqD1QT6MB<NPRTUPU;UU	
1a4"Q$A!"ABE 1234a	GAq5A::"a%!)QAq62A"a%!Q$,1i8A1a4"QT'"*,r!Q$wrz9C1HQJFQPQTRSSAqD!Q$hqj!#$Q3')1"a9=>q!tVc!Q$hqj=PSUVWYZVZSZ[\S\=\_abcefbf_fgh_h=h	!Q$q>ad7>xA.>/13>457=88;<QT6Bq!tGAI;MPRSTVWSWPWXYPY;Y\]^_ab^b\bcd\d;dAqD
<xA&<'(*A;.. 24AqD3q!t8B;1F1a4PQ1QSUVWYZVZSZ[\S\1\_ghkmn_o1oqsuvqv0vw 
1a4"QT'!)	bAgai	'!AqD&	01Xb!_3D	DxPRTU	VXZ\]X]]	^ bddeghdhahkmnoqrnrkrstktathq!nb !ea$	$
 ()!tbAgbj'81QT6!8'ChrSTo'UWY[\W\&\]
 _`abd{	}A q5A::"q&!Q,A"a%!)QAq62A!QrT'BE/1a!Q8Aq5A::!BE'A+",aAq6:A1q5RTAXrM1Ab!eG;QAq6JAq5A::"a%!)QAq62A"a%!)Q95A!B$2q5.1RU72Qr1uW<r1uDaLabAq5A::#a&!A!A#!$A!ad(Qr1uW,aSVc!fWs1v=M4NOAq5A::$q'"A$q!tAv,'A	
QA!D!aL    rC   c                  n   t        d      } t        t        j                  |       d      \  }}t	        |dz
  |       j                  | dz  | z         }t	        d| z  dz
  |z   |       }||k(  sJ t	        |dz  dz   |       j                  | dz  | dz  z   dz         }t	        d| dz  z  d	| d
z  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  dz
  |z  z   d| dz  z  d| z  z   |dz  z  z   |       }||k(  sJ t	        |dz  | z  | z   |       j                  d| dz  z  | dz  z   dz         }t	        d| d
z  z  d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  d| dz  z  z   d| dz  z  z   d| z  z
  dz
  |z  z   d| dz  z  d| dz  z  z   | dz  z   d| dz  z  z   | z   |dz  z  z   |       }||k(  sJ t	        |dz  dz   |       j                  d| dz  z
        }t	        d| dz  z  |z
  | |dz  z  z   |       }||k(  sJ t	        |dz  dz   |       j                  | d| dz  dz   z  z
        }t	        | dz  d| dz  z  z   d| d
z  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d | dz  z  z   d| z  z   dz   d| dz  z  d!| dz  z  z   d| dz  z  z   dz
  |z  z   | dz  d| dz  z  z   d| d
z  z  z   d| dz  z  z   d| dz  z  z   d"| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| dz  z  z   d| z  z   dz   |dz  z  z   |       }||k(  sJ y )#Nr)   r*   r,   r+   r]   r-   }   r\   rF   r2   r5   r/   r1   r.   ir3      iD     r0      p   rj   rI   r^   r6   rK   0   D   H   o   6   rk   r4   )r   r   r%   r8   r   composition)r)   r>   r*   r?   rX   s        rA   "test_HolonomicFunction_compositionr      s   A!""2"21"5t<EAr"Q$"..q!tAv6A2a4!8r/1-A6M6"a%'1%11!Q$q!t)A+>A3q"u9s1a4x/"QT'9AadFBs1a4xRS|UWFWW	
1a4!A#r1u	!A6M6"a%'!)Q'33AadF1a4KMBA3q!t8c!Q$h.QT9C1HDs1a4xO
1a4AqD&1Wr!Q$w.1a47!A#=A2EFIJ1a4RSTUWXTXRX	1JAvJJq5I!!"#	%A 6M6"a%'1%11!AqD&9A1QT6R-!BE'115A6M6"a%'1%11!aAl2BCA1b51QU7?R1W4r!Q$w>AqDH2aQRd7R
1a4ad( AX&(*1a4024Q$79:;?A!Q$wAqD?P
1a4@@?b51QU7?Qq!tV3bAg=1a4G"QPQT'QTVWXZ[W[T[[
1a4QT'adF#%&qS)+,-.0!e44 67	8A 6M6rC   c                     t        d      } t        t        j                  |       d      \  }}t	        ddgt        dd      g| dz  dz        }t        d| z  d| dz  z  dz
  |z  z   | dz  d| z  z
  |dz  z  z   | ddt        d      z  t        z  d	z  d
t        d      z  t        z  dz  t        dd      z   g      }t        |      }||k(  sJ t        t	        dgt        dd      g| dz  dz              }t        |  | dz   dz  dz   |z  z   | |dz  z  z   |       }d}t        |j                        |k(  sJ |j                  |j                  k(  sJ y )Nr)   r*   r,   r.   r+   r3   r-   r1   r2   rS   rw   z?[sqrt(pi)*exp(1/4)*erf(1/2), -sqrt(pi)*exp(1/4)*erf(1/2)/2 + 1])r   r   r&   r8   r    r   r   r   r   r   r"   y0annihilator)r)   r>   r*   r?   r@   rX   r   s          rA   test_from_hyperr      s{   A!""2"21"5t<EArq!fx1~&1Q/A1Q31QT6A:r/1QTAaCZQ4FF1qQUVWQXyY[|\]~_abfghbi_ijl_lmo_orz{|~  sA  `A  OB  	CA1A6M65!x1~.1Q78A1"Aa!R//!BE'91=A	JB:==AMM)))rC   c                  V   t        d      } t        t        j                  |       d      \  }}t	        t        g t        dd      gft        j                  gt        j                  dgf|             }t        | dz  t        dd      z
  | dz   | dz  z   |z  z   | dz  |dz  z  z   | dz  |dz  z  z   | ddt        t              z  ddt        t              z  z  ddt        t              z  z  g      }||k(  sJ t	        t        g g fdgg f|             }t        d|z   | ddg      }||k(  sJ t	        t        dgg ft        j                  gdgf|             }t        | t        j                  z   |z  | |dz  z  z   | dt        t              t        d      z  t        d      g      }||k(  sJ t	        t        dgdgfdgg fd| dz  z              }t        d| dz  z  dz
  |z  | dz  |dz  z  z   | dt        t        dd             dz   t        t        dd             g      }||k(  sJ y )	Nr)   r*   r.   r+   r,   r3   rh   r   )r   r   r&   r8   r   r!   r   r   rp   r   r   r   r   r   r=   s        rA   test_from_meijergr      s0   A!""2"21"5t<EArWb8Aq>"23qvvh5LaPQA!A#A.1a4%!A#+r1AAAqDQJNQRTUQUVXZ[V[Q[[]^`a	
48Q$r(
^R48_5	7A6M6Wb"XRy!45A!b&!Q,A6M6Wqc2Y!&&A3;<A1qvv:r/Ab!eG3QDHSVOSQSW;UVA6M6WqcA3Z1#rAadF;<A1QT6A:r/AqDQJ61HRQRO@T?TWX?X[^_ghjlm_n[oZo>pqA6M6rC   c                  |   t        d      } t        t        j                  |       d      \  }}t        dd      }t	        t        j                  |      d      \  }}t        | dz  |dz  z  | z   |z   |       j                         }t        d	|dz   |dz  z  z   |dz  d
|dz  z  z   d|dz  z  z   d
|z  z   |dz  z  z         dd	fg}||k(  sJ t        | dz  |dz  z  | dz  z   |dz  z   |       j                         }t        d	|dz  d|dz  z  z   d|dz  z  z   d|z  z   dz   |dz  z  z         ddfg}||k(  sJ t        | dz  |dz  z  d	z   |dz  z   |       j                         }t        d	|dz  d|dz  z  z
  |dz  z
  d|z  z   |z  z   |dz  d|z  z   dz   |dz  z  z         ddfg}||k(  sJ t        d| dz  z  |dz  z  d| z  |z  z   | |dz  z  z   |       j                         }t        d|z  d|dz  z  d
|dz  z  z
  d|dz  z  z
  d
|z  z   |z  z   |dz  d|dz  z  z   d|z  z   |dz  z  z         dd	fg}||k(  sJ y )Nr)   r*   re   TintegerSnr+   r3   r,   r/   r.   rP   r   rJ   r      rH   r-   )r   r   r%   r8   r	   r   to_sequencer
   )r)   r>   r*   re   _r   r?   r@   s           rA   test_to_Sequencer      s   A!""2"21"5t<EArT"A 0 0 3T:EAr!Q$r1u*q.2-q1==?A
AQA-A!Q$AqD1H1Q31NPRTUPU0UU
VXY[\	]^A6M6!Q$r1u*q!t+b!e3Q7CCEA
AA1a4"QT'!9CE!AC!GQ NN
OQRTU	VWA6M6!Q$r1u*q.2q50!4@@BA
AA!Q$A!5!!;R ??1a4!A#:PQ>SUWXSXBXX
Y[\^_	`aA6M6!AqD&Q,1R/!BE'91=IIKA
AaC1QT6AadF?Qq!tV#;ac#A2"EEAPQRSUVRVPVYZ[\Y\I\^`bc^cHcc
dfgij	klA6M6rC   c                     t        d      } t        t        j                  |       d      \  }}t        dd      }t	        t        j                  |      d      \  }}t        |dz
  | ddg      j                         }t        d	|dz   |z  z   d      dfg}||k(  sJ t        |d
z  dz   | dddg      j                         }t        d|d
z  d|z  z   d
z   |d
z  z  z   ddg      dfg}||k(  sJ t        |d
z  dz   | dz  |z  z   | dd
dg      j                         }t        ||d
z  z   |d
z  d|z  z   dz   |dz  z  z   d
dd	t        d	d
      t        dd      g      dfg}||k(  sJ t        | dz  |dz  z  dz   |z   |       j                         }t        d|dz   |z  z   |dz  d|dz  z  z
  d|z  z   |d
z  z  z         ddfg}||k(  sJ t        d      \  }}	}
}t        t        d| d
z  z               }t        |d
z  |d
z  d
|z  z   |d
z  z  z   dd|
g      ddfg}|j                         |k(  sJ |j                         }t        |d
z   |d
z   |d
z  z  z   |dg      ddfg}|j                         |k(  sJ t        t        |       | z         j                         }t        d
|d
z  z  d
|z  z
  |dz  d
|d
z  z  z   |z
  d
z
  |d
z  z  z   ddd
t        t              z  z   d|g      dd
fg}||k(  sJ y )Nr)   r*   re   Tr   r   r,   r   rh   r+   r.   r0   r\   r3   r-   C_0, C_1, C_2, C_3)r   r   r&   r8   r	   r   r   r
   r   r   r   rW   r   r   r   )r)   r>   r*   re   r   r   r?   r@   C_0ro   C_2C_3s               rA   #test_to_Sequence_Initial_Coniditonsr     sh   A!""2"21"5t<EArT"A 0 0 3T:EAr"q&!Q,88:A
B!a%OQ
/	34A6M6"a%!)QAq62>>@A
AA!aQ 66A
?	CDA6M6"a%!)ad2g-q!aV<HHJA
AAIA!b"a%(??!QHUWYZO]efgik]lAm
npq	rsA6M6!Q$r1u*q.2-q1==?A
AQ
NadQq!tVmac.A2q5-HH
I1a	PQA6M6 !56Cc3#a1f+&A
AqDAqD1Q3JA#551c{
CQ	JKA==?a	A
QUq1ub!em3c1X
>1	EFA==?a#a&1*%113A
Qq!tVac\adQq!tVma.?!.CRU-JJQPQTUVZ[]V^T^P^`acfLg
hjkmn	opA6M6rC   c                     t        d      } t        t        j                  |       d      \  }}t	        |dz  d| z  |z  z   | dddg      j                  d      }| | dz  dz  z
  | d	z  dz  z   | d
z  dz  z
  | dz  dz  z   t        | dz        z   }||k(  sJ t	        |dz
  |       j                  | dz  ddg      }t	        |dz  dz   | dddg      }||z  j                  d      }d| dz  dz  z   | dz  dz  z   d| dz  z  dz  z
  d| dz  z  dz  z
  t        | dz        z   }||k(  sJ t	        d| z   |dz  z  |z   | dddg      }||z  |z   j                  d      }d| z   | dz  z
  d| dz  z  dz  z   d| dz  z  dz  z
  d| d	z  z  dz  z   d| dz  z  dz  z
  d| d
z  z  dz  z   d| dz  z  dz  z
  d| dz  z  dz  z   t        | dz        z   }||k(  sJ t	        dd| z  z   d| dz  z  z
  d| z  d| dz  z  z
  d| dz  z  z
  |z  z
  dd| dz  z  z
  d| dz  z  z   |dz  z  z   | dddg      j                  d
      }| | dz  dz  z   d| dz  z  dz  z
  | d	z  d z  z   d!| dz  z  d"z  z
  t        | d
z        z   }||k(  sJ t	        dd| z  z   d| dz  z  z
  d| z  d| dz  z  z
  d| dz  z  z
  |z  z
  dd| dz  z  z
  d| dz  z  z   |dz  z  z   | dddg      j                  d
      }dd| dz  z  dz  z
  | dz  dz  z
  d	| dz  z  d#z  z
  d| d	z  z  d$z  z
  d| dz  z  d%z  z
  t        | d
z        z   }||k(  sJ t        t        |       | z         j                  d      }t        d&      }t        |       | z   j                  d      }|j                  |d'dt        t              z  z        |k(  sJ t        t        | dz  | z               j                  d      t        | dz  | z         j                  d      k(  sJ t        d| z  d| dz  z  z
  t        dd      z        j                         d| z  d| dz  z  z
  t        dd      z  j                         k(  sJ t        t        | dz  | z
              j                         t        | dz  | z
        j                         k(  sJ t        t        |       dz  | dz  z  d'g d(i)      j                  d      t        |       dz  | dz  z  j                  d      k(  sJ t        t        |       dz  | dz  z  d*      j                  d      j                         t        |       dz  | dz  z  j                  dd+      j                         k(  sJ t        t        | dz
        dz  | dz
  dz  z  dd'g d(i,      j                  d      t        | dz
        dz  | dz
  dz  z  j                  dd-      k(  sJ y ).Nr)   r*   r+   r   r,   r6   re   r.   r-   r0   *   r2   r   r3   rI   rU   r/   i     r1   i  r   r7   i  rV   i   iN  i  i{  iH  r^   r4      i  rk   rM   i  r   r]   r,   r   rh   r   rm   )re   rn   )rn   r   )rn   re   )r   r   r%   r8   r   seriesr#   r   r   r   rr   r   r   r   r   together)	r)   r>   r*   r?   r@   rX   rY   tr   s	            rA   test_seriesr   $  s   A!""2"21"5t<EAr"a%!A#b&.!QA7>>>DA	AqDF
QT"Wq!tBw&Ac1AaeH<A6M6"q&!$00Aq1#>A"a%!)QAq62A	
QA	AqDF
QT"Wr!Q$ws{*SAXd]:Qq"uXEA6M61q5"a%-",aQF;A	
QR A	A1qAvax"QT'"*,r!Q$wrz9C1HSLH1WS[	A:e#	$&)!Q$hsl	356q"uX	>A6M61QqS51a4<BqD1a4K!Q$,>+BB	
1QT6!AqD&"a% !"A1v	//5vv{ 	AqDF
Qq!tVBYAb(2ad73;61a4@A6M61QqS51a4<BqD1a4K!Q$,>+BB	
1QT6!AqD&"a% !"A1v	//5vv{ 	AadF1Hq!tAv!Q$r	)AadF2I51a4Ca1gMA6M6#a&1*%,,r,2A
%.C	Q!b!A66#r1T"X:'1,,,T!Q$(^,33b39T!Q$(^=R=RUW=R=XXXXacAadFlXa^;<CCE1Q3QRSTVWSWQW<ZbcdfgZhJhIpIpIrrrrd1a46l+224ad1f8M8M8OOOOSVQYq!t^Z0@AHH2HNSVWXSY[\S\]^`a]aSaRiRilnRiRooooSVQYq!t^299B9?HHJsSTvWXyYZ\]Y]~NeNehjopNeNqNzNzN||||S1Xq[!A#1aR<LMTTWYTZ!HaK1q ((A(45 5 5rC   c                     t        d      } t        t        j                  |       d      \  }}t	        d| z   |dz  z  |z   | dddg      }g d}d}t        |j                  |d	      d
         |k(  sJ ddt        z  z   g}t        d      D ]#  }|j                  |d
   dz   dt        z  z          % t        d      D ]#  }|j                  |d
   dz   dt        z  z
         % d}t        |j                  |d	      d
         |k(  sJ t	        |dz  dz   | dddg      }d}t        |j                  |d	      d
         |k(  sJ dg}t        d      D ]  }|j                  |d
   dz           |j                  t        dz         d}t        |j                  |d	      d
         |k(  sJ dt        z  g}t        d      D ]   }|j                  |d
   dt        z  z          " t        d      D ]  }|j                  |d
   dz           |j                  t        dz  t        z          t        d      D ]   }|j                  |d
   dt        z  z
         " d}t        |j                  |d	      d
         |k(  sJ t	        |dz  dz   | dddg      }dg}t        d      D ]  }|j                  |d
   dz           |j                  t               d}t        |j                  |d	      d
         |k(  sJ dt        z  g}t        d      D ]   }|j                  |d
   dt        z  z          " t        d      D ]  }|j                  |d
   dz           t        d      D ]   }|j                  |d
   dt        z  z
         " t	        |dz  dz   | dddg      j                  |d	      }d}t        |d
         |k(  sJ y )Nr)   r*   r,   r+   r   
皙?g?g333333?g?g      ?g333333?gffffff?g?g?r,   z0.699525841805253Euler)methodrh   r   r2   r6   z'1.07530466271334 - 0.0251200594793912*Iz*0.905546532085401 - 6.93889390390723e-18*IrJ   z1.08016557252834rK   z*0.976882381836257 - 1.65557671738537e-16*I皙?=   z-1.08140824719196r4   z*0.501421652861245 - 3.88578058618805e-16*I)r   r   r&   r8   r   r"   evalfr   rc   appendr   r)   r>   r*   r?   rX   rY   is          rA   test_evalf_eulerr   H  s   A!""2"21"5t<EAr 	1q5"a%-",aQF;A 	9AA'*2./1444 
s1uA1X "	2s3q5!"2Y "	2s3q5!"
 	2A'*2./1444 	"a%!)QAq62A4A'*2./1444 
A2Y 	2HHRTNA'*2./1444 
QA1X 	2s1u2Y 	2sHHRT!V2Y 	2s1u 	5A'*2./1444 	"a%!)QAq62A	A2Y 	2tHHRLA'*2./1444 
QA1X 	2s1u2Y 	2s2Y 	2s1u 	"a%!)QAa5177'7JA4A";!rC   c                     t        d      } t        t        j                  |       d      \  }}t	        d| z   |dz  z  |z   | dddg      }g d}d}t        |j                  |      d         |k(  sJ d	d	t        z  z   g}t        d
      D ]#  }|j                  |d   d	z   d	t        z  z          % t        d      D ]#  }|j                  |d   d	z   d	t        z  z
         % d}t        |j                  |      d   j                  d            |k(  sJ t	        |dz  dz   | dddg      }d}t        |j                  |      d         |k(  sJ d	g}t        d      D ]  }|j                  |d   d	z           |j                  t        dz         d}t        |j                  |      d         |k(  sJ d	t        z  g}t        d
      D ]   }|j                  |d   d	t        z  z          " t        d      D ]  }|j                  |d   d	z           |j                  t        dz  t        z          t        d      D ]   }|j                  |d   d	t        z  z
         " d}t        |j                  |      d         |k(  sJ t	        |dz  dz   | dddg      }dg}t        d      D ]  }|j                  |d   dz           |j                  t               d}t        |j                  |      d         |k(  sJ d	t        z  g}t        d
      D ]   }|j                  |d   d	t        z  z          " t        d      D ]  }|j                  |d   d	z           t        d      D ]   }|j                  |d   d	t        z  z
         " t	        |dz  dz   | dddg      j                  |      }d}t        |d         |k(  sJ y )Nr)   r*   r,   r+   r   r   z0.693146363174626rh   r   r2   r6   z1.098616 + 1.36083e-7*Ir0   z)0.90929463522785 + 1.52655665885959e-16*IrJ   z0.999999895088917rK   z)1.00000003415141 + 6.11940487991086e-16*Ir   r   z-0.999999993238714r4   z*0.493152791638442 - 1.41553435639707e-15*I)r   r   r&   r8   r   r"   r   r   rc   r   re   r   r   s          rA   test_evalf_rk4r     s   A!""2"21"5t<EAr 	1q5"a%-",aQF;A 	9AA
21$$$ 
s1uA1X "	2s3q5!"2Y "	2s3q5!"
 	"A
2  #$))) 	"a%!)QAq62A3A
21$$$ 
A2Y 	2HHRTNA
21$$$ 
QA1X 	2s1u2Y 	2sHHRT!V2Y 	2s1u 	4A
21$$$ 	"a%!)QAq62A	A2Y 	2tHHRLA
21$$$ 
QA1X 	2s1u2Y 	2s2Y 	2s1u 	"a%!)QAa5177:A4A";!rC   c                  ~   t        d      } t        t        j                  |       d      \  }}t	        t        |       | z  dz        }t        d| z  d| dz  z  dz   |z  z   d| z  |dz  z  z   | dz  |dz  z  z   | dd	dt        d
d      g      }||k(  sJ t	        d	d	| dz  z   dz  z        }t        d| z  | dz  d	z   |z  z   | dd	g      }||k(  sJ t	        t        |       t        |       z  | t        d	| z         z  z         }t        d| dz  z  d| dz  z  z   d| z  z   dz   d
| dz  z  d| dz  z  z
  d| dz  z  z
  d| z  z
  |z  z   d| dz  z  d| dz  z  z   d| dz  z  z   d| dz  z  z   d| z  z   dz
  |dz  z  z   d
| dz  z  d| dz  z  z
  d| dz  z  z
  d| dz  z  z   | z
  dz   |dz  z  z   | dz  d| dz  z  z   | dz  z
  d| dz  z  dz  z
  | z   t        dd      z   |dz  z  z   | dg d      }||k(  sJ t	        | t        |       z  t        |       z   d	z         }t        |  dz
  |z  | dz   |dz  z  z   |  dz
  |dz  z  z   | dz   |dz  z  z   | dg d      }||k(  sJ | t        |       z  t        |       z   d	z   j                  d      |j                  d      k(  sJ t	        t        d	| z         dz  d	z         }t        |d| z  dz   |dz  z  z   | dz  d| z  z   d	z   |dz  z  z   | dg d      }||k(  sJ t	        t        |       dz  | z         }t        d| dz  z  d| dz  z  z
  dz   |dz  z  d| dz  z  | dz  z
  |dz  z  z   | dz  t        d	d      z   |dz  z  z   | ddd	dt        z  dg      }||k(  sJ t	        t        |       | z        }t        | dz   dz   d| z  |z  z
  | dz  |dz  z  z   | ddd	g      }||k(  sJ t	        t        d|             }t        | dz  dz
  | |z  z   | dz  |dz  z  z   | dddg      }||k(  sJ t	        t        d|       t        |       z         }t        | dz   | dz  z
  t         j"                  z   | dz  | dz  z
  t        dd      z
  |z  z   | dz   | dz  z   d	z   |dz  z  z   | dz  | dz  z   |dz  z  z   | ddd	t         j"                  g      }||k(  sJ t	        t        |       dz  | z        }t        dd| z  |z  z   d|dz  z  z   | |dz  z  z   | dg d      }||k(  sJ t	        t        |       dz  | z  d      }t        dd| z  |z  z   d|dz  z  z   | |dz  z  z   | dt        d      dz  dz  t        d      t        d      z  t        d      dz  dz  z
  dt        d      dz  z  dz  t        d      dz  z   t        d      t        d      z  z
  g      }||k(  sJ t	        t        |       dz  t%        d| z        dz  z
  t%        d      dz  z         }t        d|z  d| z  |dz  z  z   d|dz  z  z   | |dz  z  z   | dt        d       dz  t&        dz  z
  t%        d      dz  z   dd	dg      }||k(  sJ |j)                         }t        |       dz  t%        d| z        dz  z
  t%        d      dz  z   }||k(  sJ t	        | t         j"                  z  d	      }t        | |z  t         j"                  z
  | d	d	g      }||k(  sJ t	        t+        d	| dz  z               }t        |  | dz  d	z   |z  z   | dd	g      }||k(  sJ t	        t+        |       t+        d| z        z         j)                         t+        |       t+        d| z        z   z
  j-                         dk(  sJ t	        d| z  dt+        |       z  z         j)                         d| z  dt+        |       z  z   k(  sJ t	        | dz  | dz  z   d| dz  z  z   d| z  z   dz   | dz  z  d      }t        d
| dz  z  | dz  z
  d| z  z   dz   | dz  | dz  z   d| dz  z  z   d| dz  z  z   d| z  z   |z  z   | dd
g di      }||k(  sJ t	        d	| d	z
  dz  z  dd	      }t        d| d	z
  |z  z   | d	d
g di      }||k(  sJ t        d      }t	        t+        || z        |       }|j)                         t+        |      t+        |       z  k(  sJ y )Nr)   r*   r+   r1   r3   r/   r.   r   r,   r]   r6   r4   rN   r-   r0   )r   r,   r3   rh   )r+   r,   r,   r.   r   )r,   r   r+   )r   r,   r   rm   ri   lenics)r+   r.   r-   )r   rn   r,   r   r   rd   r)   )r   r   r&   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   r   r   rq   r   simplify)r)   r>   r*   r?   r@   rd   s         rA   test_expr_to_holonomicr     s
   A!""2"21"5t<EAr3q6!8a-(A!A#1a4!R/!A#b!e);ad2q5jH!Q	
AxA	!A6M6!Qq!tVaK-(A!A#A2-q!aS9A6M6#a&Q-#ac(
23A1QT6Bq!tG+bd2R7Bq!tGbAg<MPRSTVWSWPW<W
Q$=< 1fqAvo!Q$.1a47"Q$>BBEIJ	AqD1QT6	AadF	"Qq!tV	+a	/!	3RU:;>?dQq!tVmaQRd>R	!Q$q??1~?&')1u>-- /0M	CA 6M6!CF(3q6/!+,AA262+QA5!aQF!a%QSUVQVVXY	<	A6M6c!fHSVOA%%%+qxx"x~===#a!e*a-!+,A"!aQ.!Q$1*q."a%1GGAyYA6M6#a&!)a-(A1QT6AadF?Q.A51a4!A#r1u8LL	
Ax1~	r1u$%&'Q1R4O	=A6M6$q'!)$AAqD519qs2v-1RU
:Aq1a&IA6M6'!Q-(A1a4!8qt+ad2q5j8!QAGA6M6'!Q-#a&01AAqD51Q3;/AqD1Q3J!Q4OQS3SSXY[\X\W\_`ab_bWbefWfhjlmhmVmm	
A!RUq1a.	2A6M6#a&!)A+&A!ac"f*qQw.2q58!Q	JA6M6#a&!)A+!,A11b.Ar1u942q5y@!QQQRSTAs1vA	!#RA	\!^c!fai%?#a&Q-%OIQ 	RA6M6#a&(R!WQY.Aq89A!B$1RU*Qr1uW4qQw>1
a&Z\	!BqE!G	+Q15	7A6M6			AAq2ac719r!uQw&A6M6!QVV)*A!B$-As3A6M6$q1a4x.)AA2!Q$(B.1qc:A6M6d1gQqS	12::<	a4!9	'xzQ/ / /QqS47]+3351QtAwYFFF1a419Qq!tV+AaC/11a47BA2ad7QT>AaC/!31q!ta1f8LqQRTUQUv8U	!98 AI	(A6M6!QqS1H*Q15A1Q
*Aq2y/BA6M6A$qs)q)A99;$q'$q'/)))rC   c                  F   t        d      } t        t        j                  |       d      \  }}t	        |dz
  | ddg      j                         }dt        g g d| z        z  }||k(  sJ t        t	        d| z   |z  dz
  | ddg      j                               j                         }d| dz  z  d| dz  z  z   d| z  z   dz   }||k(  sJ t	        d| z   |dz  z  |z   | dddg      j                         }| dz   t        dd	|        z  dz  | z   }||k(  sJ t	        d| z  |z  |dz  z   | dddt        t              z  g      j                         }d| z  t        t        j                  ft        dd      f| dz         z  t        t              z  }||k(  sJ t        t	        d| z  |z  |dz  z   | ddd
t        t              z  g      j                               }t        |       }|j                  t              |k(  sJ t        t	        | dz  dz
  | |z  z   | dz  |dz  z  z   | ddt        j                  g      j                               }t!        d|       }||k(  sJ t        t	        | |dz  z  |z   | z   | dddg      j                               }t!        d|       }||k(  sJ y )Nr)   r*   r+   r   r.   r,   r/   )r+   r+   r,   )r.   r+   r]   )r   r   r&   r8   r   to_hyperr    r$   rs   r   r   r   rp   r   r   rewriter   r=   s        rA   test_to_hyperr   +  s   A!""2"21"5t<EAr"q&!Q,557A	E"b!A#A6M6%q1ulQ&61qcBKKMNUUWA	!Q$1a4!A#!A6M61q5"a%-",aQF;DDFA	
AeIvr**1,q0A6M6!A#b&2q5.!QAd2hJ@IIKA	!E166)hq!n.A66tBx?A6M6%ac"fr1unaQ48<LMVVXYAQA99T?a	&1qAbD'81a4A:'E	1q!&&k#8:
'A1A6M6%aAglQ&61q!fENNPQA1A6M6rC   c                  P   t        d      } t        t        j                  |       d      \  }}t	        |dz
  | ddg      j                         }t        |       }||k(  sJ t	        |dz  dz   | dddg      j                         }t        |       }||k(  sJ t	        |dz  dz
  | dddg      j                         }t        |       }||k(  sJ t	        dd| z  dz
  |z  z   | dz  | z
  |dz  z  z   | dddg      j                         j                         }d| dz  d| z  z
  dz   z  }||k(  sJ t        t        |       dz  | z        j                  | d| f      j                         }t        |       dz  | z  j                  | d| f      }||k(  sJ t        d      \  }}}}t        t        d| dz  z               j                         }|t        | dz  dz         z  }||k(  sJ t        t        d| dz  z               j                         j                         }|| z  | dz  dz   z  }||k(  sJ t        t        |       | z         j                         }d|z  | z  dt!        t"              z  |z  t        |       z  dz  z
  | z   d| z  t!        t"              z  z   }||k(  sJ t        t!        |       d	      j                         }|t!        |       k(  sJ t        t!        |             j                         t!        |       k(  sJ t        t!        d| dz  z               j                         }|t!        d| dz  z         k(  sJ t        d| dz  z  dz   t%        dd      z        j                         }|d| dz  z  dz   t%        dd      z  k(  sJ t        t!        | dz   d| z  z               j                         }|t!        |       t!        |  dz         z  k(  sJ t        d
| dz  z  d| z  z   t%        dd      z        j                         }| t%        dd      z  d
| dz  z  dz   t%        dd      z  z  }||k(  sJ t'        t)        dt*        j,                  f|             }t/        t)        dt*        j,                  f|             }	t1        d      }
t1        d      }|j                         j3                  |d|
di      |	z
  j5                         dk(  sJ ddgt*        j,                  dgi|_        |j                         |	k(  sJ t        | dz        j                         | dz  k(  sJ t        d| dz  z  d| dz  z  z
        j                         j                         d| dz  z  d| dz  z  z
  k(  sJ t        d      }t        d| z        t        || z  |       z  j                         }d|z  | dz  z  }||k(  sJ t        d| z        t        || z  |       z   j                         }| |dz   z  }||k(  sJ t        d| z        t        |       z   j                         }|d| z  k(  sJ y )Nr)   r*   r,   r   r+   r3   r   r.   rm   r]   r0   r]   ri   D_0r   r-   rd   gffffff?g333333@)r   r   r%   r8   r   rq   r   r   r   rs   r   r   	integrater   rW   r   r   r   r   r   r    r   rp   r$   r   rr   r   r   )r)   r>   r*   r?   r@   r   ro   r   r   rY   r   rd   s               rA   test_to_exprr   E  s   A!""2"21"5t<EAr"q&!Q,446AAA6M6"a%!)QAq62::<AAA6M6"a%!)QAq62::<AQA6M6!qsQwl*	
A2q5QA	((/	&&( 	1a4!A#:>A6M6#a&!)A+&00!Q;CCEA	Q1Aq	*A6M6 !56Cc3#a1f+&..0AC1qMA6M6#a1f+&++-557AAq!taxA6M6#a&1*%--/A	#a!DH*S.Q'))A-!DH<A6M6$q'a(002AQ<<T!W%--/47:::$q1a4x.)113AQq!tV1QT6A:A67??AA1a4!hq!n,,,,$1uQqSy/*224AQaR!V$$$$2ad71Q3;!Q78@@BA	8Aq>2ad7Q;!Q77A6M65AFF:q12AE(QVVJ23A
-C
-CIIKc!S^,q0::<AAAsAFFQC AD99;!QT"**,1444Qq!tVAadF]+335<<>	!Q$qAv  A	3q5	!"3AaC";	;DDFAAad
A6M6	3q5	!"3AaC";	;DDFA	1s7A6M6	3q5	!"3A"6	6??AAA::rC   c                  .
   t        d      } t        t        j                  |       d      \  }}t	        t        |       dz  | z  d      j                  | ddf      }d}t        |      |k(  sJ t	        t        |             j                  | d| f      j                         }dt        |       z
  }||k(  sJ t	        t        |             j                  | ddf      }dt        d      z
  }||k(  sJ t	        t        |       | z  d      j                  | ddf      }d	}t        |      |k(  sJ t	        t        |       dz  | z  d      j                  | ddf      }d
}t        |      |k(  sJ t	        t        |       | z        }|j                  |       j                         t        |       k(  sJ |j                  | ddf      t        d      k(  sJ t	        t        |       dz  | z        }|j                         }|j                  |       j                         |j                  | d| f      k(  sJ |j                  | ddf      |j                  | ddf      k(  sJ t	        d| z  d      j                  |       j                         t        |       k(  sJ t	        | dz   dz  t        |        z  d      j                  |       j                         }| dz   d| dz  z  z
  d| z  z
  dt        | dz         z  z   dz
  t        |        z  }||k(  sJ t	        t        |       dz  | dz  z  dg di      j                  |       j                         }t        d| z         t        |       dz  | z  z
  }||k(  sJ t	        t        | dz  | z               j                  |       j                         }| t        dd      z  d| dz  z  d| z  z   dz   z  | t        | dz         z  t        t        |             z  z
  d| z  t        | dz         z  z  }||k(  sJ t	        t        | dz  dz               j                  |       j                         }t        | dz  dz         j                  |       }||z
  j!                         dk(  sJ t	        d| dz  z  dg di      }t	        d| dz  z  d      }||k(  sJ t	        t        |       dz        }||z  j                  |       j                         t        d| z         t        |       dz  | z  z
  k(  sJ y )Nr)   r*   r+   r,   rm   r.   z0.166270406994788r   z0.659329913368450z-0.423690480850035rh   r/   rK   r^   r]   r   r   r3   r   r   )r   r   r%   r8   r   r   r   r"   rq   r   r   r   r   r   r   r   r   r`   s         rA   test_integrater     s   A!""2"21"5t<EAr#a&!)A+!,661ayAAA7a<<#a&!++Q1I6>>@A	CF
A6M6#a&!++Q1I6A	CF
A6M6#a&(q)33Q1I>AA7a<<#a&!)A+!,661ayAAA7a<<#a&(#A;;q>!!#r!u,,,;;1ay!RU***#a&!)A+&A			A;;q>!!#q{{Aq!9'====;;1ay!Q[[!Q%;;;;QqSQ'11!4<<>#a&HHH1q51*S!W,4>>qAIIKA
Q$1a4"Q$	3q1u:	-	2CG;A6M6#a&!)AqD.b*-=>HHKSSUA	AaC3q619Q;A6M6$q!tAv,'11!4<<>A	
HQN	AadFQqSL1,	-$q1u+eDGn0L	LqQRsSWXY\]X]S^_A6M6$q!tAv,'11!4<<>A	ad1f  #AaC>>q   !AqD&b^4A!AqD&+A6M6#a&!)$AaC??1%%'BqsG8c!faik+AAAArC   c                     t        d      \  } }t        t        j                  |       d      \  }}t	        | |dz  z  dz   | dddg      }|j                         j                         |j                         j                         j                         k(  sJ t	        |dz  dz
  | dddg      }|j                  | d      j                         |j                         k(  sJ t        t        |             }|j                         j                         t        |       | z  k(  sJ |j                  |      dk(  sJ t        d      \  }}}}t        |       }	|j                  |       j                         |	j                         k(  sJ |j                  | d      j                         j                  |t        dd            j                         |	j                  | d      j                         k(  sJ |j                  | d      j                         j                  |t        dd      |di      |	j                  | d      j                         k(  sJ y )	Nzx, yr*   r+   r,   r   r   rh   r.   )r   r   r%   r8   r   rW   rq   r   r   r   r   rr   r   cancelr   )
r)   yr>   r*   r?   r   ro   r   r   r@   s
             rA   	test_diffr     s   6?DAq!""2"21"5t<EAr!BE'A+q!aV4A668!1!1!3!<!<!>>>>"a%!)QAq62A66!Q<!QYY[000"Q% A668Q)))66!9>> !56Cc3
1A66!9!&&(***66!Q<!&&sHRO<CCEPQSTI\I\I^^^^66!Q< %%sHROS!&DEPQSTI\I\I^^^^rC   c                  n   t        d      } t        dt        d| z        z        }|j                         dt        d| z        z  k(  sJ t	        |j                  |       j                               dk(  sJ t        t        j                  |       d      \  }}t        d| z        }t        dd| z  |z  z   | dd	dgi      }||k(  sJ |j                         d| z  k(  sJ t	        |j                  | d	d
f            t	        d| z  j                  | d	d
f            k(  sJ t        d      \  }}t        t        | |z  |z        |       }|j                         t        | |z  |z        k(  sJ |j                  |       j                         t        | |z  |z         d	z   ||z  z  k(  sJ t        t        | |z  |z         |       j                  |       j                         }t        |      t        | |z  |z         z
  |z  }||k(  sJ t        d      }t        || z  |       }|j                         || z  k(  sJ |j                  |       j                         || d
z  z  d
z  k(  sJ t        d      \  }}	t        |       t        dt        |       z        z   }|j                         j                  |d      }|| z
  dt        d| z        z  z
  dk(  sJ t        |       t        dt        |       z        z  }|j                         j                  |	d      }|d| z  t        d| z        z  z
  dk(  sJ y )Nr)   g333333?g@z0.387096774193548*sin(3.1*x)r*   gݷ:>j ?gݷ:>j r   r,   r+   zy, zr   rd   zD_2, C_1g      ?)r   r   r   rq   r"   r   r   r'   r8   r   r   rr   )
r)   r?   r   r*   r@   r   zrd   D_2ro   s
             rA   )test_extended_domain_in_expr_to_holonomicr     s   A#c#a%j.)A99;#c#a%j.(((A&&()-KKKK!""2"21"5t<EAr,q.)A=\!^R,??AL>GZ[A6M699;,q.(((Q1I&'4a0J0JAqRS90U+VVVV6?DAq#ac!e**A99;#ac!e*$$$;;q>!!#QqSUa!A#'>>>>#acAg,!,66q9AACA	Q#acAg,	!A6M6A!A#q!A99;!A#;;q>!!#qAvax///z"HC!0SV<<A			a Aq53s3q5z>!Q&&&!0SV<<A			a As1uSQZ1$$$rC   c            	         t        d      } t        t        t        |             j	                               t        |       k(  sJ t        t        t        |             j	                               t        |       k(  sJ t        t        t        |             j	                               t        |       k(  sJ t        t        t        |             j	                               j                         t        |       k(  sJ t        d| dz  z  dz  dz         j	                         d| dz  z  dz  dz   k(  sJ t        t        t        d|       d      j	                               t        d|       k(  sJ t        t        dd      dfd	|       }t        |      j	                         t        |      k(  sJ t        t        j                  t        d      ft        d      f|       }t        t        |      j	                               t        |      z
  j                         d
k(  sJ t        t        dt        j                   f|             }t        t        dt        j                   f|             }t#        d      }t#        d      }t#        d      }t        |j	                               j%                  |d|d
i      |z
  j                         d
k(  sJ d
dgt        j                   d
gi|_        t        |j	                               |z
  j                         d
k(  sJ t        t        t        j                   |       d      }|j)                         |t        |       z  |t        |       z  z   |t        |       z  z   t+        |       z  z
  j                         d
k(  sJ t        t        t        j                   |       t        dd      t+        d      t+        t,              z  t+        d      t+        t,              z  gi      }|j)                         t        t        j                   |       z
  t        t        dd      |       z
  j                         d
k(  sJ y )Nr)   r3   r+   r.   r0   r   rh   ri    r   r   r   ro   r   r,   F)initcondr   )r   r$   r   r   
to_meijergr   r   r   r   r   r    r   r   r   Oners   rp   r   rr   r   rq   r   r   )r)   r?   rY   r   ro   r   s         rA   test_to_meijergr     sl   A(Q0;;=>#a&HHH(Q0;;=>#a&HHH(Q0;;=>#a&HHH(Q0;;=>GGISQRVSSSQq!tVAX\*5571QT6!8a<GGG(AqALLNOSZ[\^_S````xA#R+Aa=##%Q777quuadmadXq)A
10023k!nDLLNRSSSS5AFF:q12AE(QVVJ23A
-C
-C
-C',,c!S^<q@JJLPQQQQsAFFQC AD'!+5571<<<'!&&!,u=AIIK3s1v:CF
2SQZ?aHHRRTXYYYY'!&&!,(2q/DGDQSHDTVZ[\V]^bce^fVfCg1hiAIIK'!&&!,,wxA/JJTTVZ[[[[rC   c                     t        d      \  } }t        dd      }t        | |f   j                         }t        d      t	        |  |z   dz   d|dz  z  z        z  dt        t
              z  |z  z  }t        |||      }t        |j                  |      d      \  }}t        |  |dz  z  ||dz  z  z   d|z  z   |      }||k(  sJ y )	Nzmu xsdTpositiver+   domainr*   r,   )
r   r&   	get_fieldr   r   r   r   r   r8   r   )	mur)   r   Qeh1r   r*   h2s	            rA   test_gaussianr     s    FOEB		%B
2r6
AQrcAg\M1RU7+,,aRjm<A	1a	*B!!//!"4d;EAr	RCAI"a%/Ar691	=B8O8rC   c                  R   t        dd      \  } }}|| dz
  z  | dz   |dz
  z  z  t        | |      z  }t        | |f   j                         }t	        |||      }t        |j                  |      d      \  }}t        | ||  |z
  dz   z  z   dz
  |dz  |z
  |z  z   |      }||k(  sJ y )Na b xTr   r,   r   r*   r+   )r   r   r&   r   r   r   r8   r   	rd   br)   r   r   r   r   r*   r   s	            rA   	test_betar     s    g-GAq!	AE
QBFa!e$$T!QZ/A
1a4A	1a	*B!!//!"4d;EAr	AA26A:.2q!taxmCQ	GB8O8rC   c                  L   t        dd      \  } }}||  z  || dz
  z  z  t        | |z        z  t        |       z  }t        | |f   j	                         }t        |||      }t        |j                  |      d      \  }}t        |  dz   ||z  z   ||z  z   |      }||k(  sJ y )Nr   Tr   r,   r   r*   )	r   r   r   r&   r   r   r   r8   r   r   s	            rA   
test_gammar     s    g-GAq!	QBAE
3r!t9$U1X-A
1a4A	1a	*B!!//!"4d;EAr	QBFQqSLQF2A	6B8O8rC   c                      t        d      \  } }t        |   j                         }t        |j	                  |       d      \  }}t        d| |z  z   |       | z  }t        || |z  z   |       }||k(  sJ y )Nx nr*   rh   r   r&   r   r   r8   r   r)   re   r   r   r*   r   r   s          rA   test_symbolic_powerr     sr    5>DAq
1A!!//!"4d;EAr	B1b&=!	,	2B	A!R<	+B8O8rC   c                      t        d      } t        t        j                  |       d      \  }}t	        d| |z  z   |       dz  }t	        d| |z  z   |       }||k(  sJ y )Nr)   r*   rh   r]   r+   )r   r   r&   r8   r   )r)   r   r*   r   r   s        rA   test_negative_powerr   )  s^    A!""2"21"5t<EAr	B1b&=!	,	2B	A!R<	+B8O8rC   c                      t        d      \  } }t        |   j                         }t        |j	                  |       d      \  }}t        d| |z  z   |       |dz
  z  }t        | dz   | |z  z   |       }||k(  sJ y )Nr   r*   rh   r.   r   r   s          rA   test_expr_in_powerr   2  s{    5>DAq
1A!!//!"4d;EAr	B1b&=!	,Q	7B	QBFq"f,a	0B8O8rC   c                  4   t        dd      } t        t        j                  |       d      \  }}t	        | dz  |j
                  j                  |j
                  j                  g|      }t	        | dz  d| g|      }||k(  rJ |j                  d   }||k(  rJ y )Nr)   Tr   r*   r+   r,   r   )r   r   r&   r8   r   r:   r;   
listofpoly)r)   r>   r*   dodo2p2s         rA   test_DifferentialOperatorEqPolyr  <  s    T"A!""2"21"5t<EAr	q!tQVV[[!&&++>	BB
1a|Q
/CSy= 
	Bby=yrC   c                  V   t        dd      } t        t        j                  |       d      \  }}t	        | dz  |j
                  j                  |j
                  j                  g|      }t	        |j
                  j                  g|      }t        d      D ]  }|||z  k(  sJ ||z  } y )Nr)   Tr   r*   r+   r6   )	r   r   r&   r8   r   r:   r;   r<   rc   )r)   r>   r   r   rd   re   s         rA   test_DifferentialOperatorPowr  L  s    T"A !1!1!!4d;DAq	q!tQVV[[!&&++>	BBaffjj\1-A2Y BEzz	RrC   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'   rB   rZ   ra   rf   rt   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   rC   rA   <module>r     s   > > N ! 0 0 " / = ? 9 ? 2 7 G G 9 : #   2 . 0 ,"D4 1F#!L4*$&8"5HKZK\F*P4;|*BZ_"%>\4
		 rC   