+
    ‹°³jÄI ã                   óD  € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIH t  ^ R	I!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtB ^ R
ICHDtDHEtE ^ RIFHGtGHHtHHItIHJtJHKtKHLtLHMtMHNtNHOtOHPtPHQtQHRtRHStS ^ RITHUtUHVtVHWtW ^ RIXHYtYHZtZH[t[ ^ RI\H]t] ^ RI^H_t_ ^ RI`Hata R tbR tcR tdR teR tf ! R R]4      tg ! R R]4      th]! R4      ti ! R R4      tj ! R R4      tk ! R R 4      tl ! R! R"4      tm ! R# R$4      tn ! R% R&]n4      to ! R' R(]n4      tp ! R) R*]n4      tq ! R+ R,]n4      tr ! R- R.]n4      ts ! R/ R0]n4      tt ! R1 R2]n4      tu ! R3 R4]n4      tv ! R5 R6]n4      tw ! R7 R8]n4      tx ! R9 R:]n4      ty ! R; R<]n4      tz ! R= R>]n4      t{ ! R? R@]n4      t|RA t}RB t~RC tRD t€RE t�RF t‚RG tƒRH t„RI t…RJ t†RK t‡RLsˆ. ]! RM4      ^^ RN3RO lt‰RP tŠRLs‹RSRQ ltŒRSRR lt�RL# )Ta@  
Expand Hypergeometric (and Meijer G) functions into named
special functions.

The algorithm for doing this uses a collection of lookup tables of
hypergeometric functions, and various of their properties, to expand
many hypergeometric functions in terms of special functions.

It is based on the following paper:
      Kelly B. Roach.  Meijer G Function Representations.
      In: Proceedings of the 1997 International Symposium on Symbolic and
      Algebraic Computation, pages 205-211, New York, 1997. ACM.

It is described in great(er) detail in the Sphinx documentation.
)Údefaultdict)Úproduct)Úreduce)Úprod)ÚSYMPY_DEBUG)ÚSÚDummyÚsymbolsÚsympifyÚTupleÚexpandÚIÚpiÚMulÚ
EulerGammaÚooÚzooÚexpand_funcÚAddÚnanÚExprÚRational)ÚMod©Údefault_sort_key)!ÚexpÚsqrtÚrootÚlogÚ
lowergammaÚcosÚbesseliÚgammaÚ
uppergammaÚexpintÚerfÚsinÚbesseljÚEiÚCiÚSiÚShiÚsinhÚcoshÚChiÚfresnelsÚfresnelcÚ
polar_liftÚ	exp_polarÚfloorÚceilingÚrfÚ	factorialÚlerchphiÚ	PiecewiseÚreÚ
elliptic_kÚ
elliptic_e)ÚpolarifyÚ
unpolarify)ÚhyperÚHyperRep_atanhÚHyperRep_power1ÚHyperRep_power2ÚHyperRep_log1ÚHyperRep_asin1ÚHyperRep_asin2ÚHyperRep_sqrts1ÚHyperRep_sqrts2ÚHyperRep_log2ÚHyperRep_cosasinÚHyperRep_sinasinÚmeijerg)ÚMatrixÚeyeÚzeros)ÚapartÚpolyÚPoly)Úresidue)Ú	powdenest)Úsiftc                 óˆ   € V P                   '       d   \        V ^4      # V P                  4       w  r\        V^4      V ,           # ©é   )Ú	is_Numberr   Úas_coeff_Add)ÚxÚcs   & Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/simplify/hyperexpand.pyÚ_mod1r\   U   s7   € ð 	‡{‡{€{Ü�1�a‹yÐØ�>‰>Ó�D€AÜˆq�!‹9�q�=Ðó    c                óÚB  a aaaa	a
€ \        R\        R7      w  oooo
VVVV V
3R lpVVVV V
3R lpV! R	R	\        S
4      4       V! S3R	\        S) S
4      4       V! SS\        P
                  ,
          3^S,          3\        \        SS
4      \        S\        P
                  ,           S
4      ^,          .4      \        ^^ ..4      \        S\        P
                  ,
          S
,          ^S
,
          ,          \        P
                  S,
          S
,          ^S
,
          ,          .S^S
,
          ,          SS
^,
          ,          ^S
,
          ,          ..4      4       V! R
R\        \        S
4      ^.4      \        RS
,          ^ ..4      \        ^ S
S
^,
          ,          .^ ^ ..4      4       V! \        P
                  ^3\	        R4      3\        \        S
4      ^.4      \        ^^ ..4      \        \        R^4      ^^S
,
          ,          ^,          .^ ^ ..4      4       V! \        P
                  \        P
                  3\	        R4      3\        \        S
4      \        \        R^4      S
4      .4      \        ^^ ..4      \        \        R^4      \        P
                  .^ S
^S
,
          ,          ^,          ..4      4       V! S\        P
                  S,           3\        P
                  3\        \        S) S
4      \        S) \        P
                  ,
          S
4      ) .4      \        ^^ ..4      \        ^ S) .S
RS,          ^,
          ,          ^,          ^S
,
          ,          \        P
                  S
RS,          ^,
          ,          ^S
,
          ,          ,
          ..4      4       V! SS) .\        P
                  .\        \        SS
4      \        SS
4      .4      \        ^^ ..4      \        ^ S) .SS
,          ^S
,
          ,          ^^S
,
          ,          ^,          ..4      4       V! ^^.^\        P
                  ,          .\        \!        S
4      ^.4      \        ^^ ..4      \        S
\        P
                  ,
          ^S
,
          ,          ^^S
,
          ,          ^,          .^ ^ ..4      4       V! \        P
                  \        P
                  .\        P"                  .\        \%        S
4      \'        S
4      .4      \        ^\(        ,          ^ ..4      \        \        R^4      R^S
,          ^,
          ,          .\        R^4      \        P
                  ..4      4       V! \        R^4      \        P
                  .\        P"                  .\        \%        S
4      \'        S
4      .4      \        ^ ^\(        ,          ..4      \        \        R^4      R^S
,          ^,
          ,          .\        R^4      \        P
                  ..4      4       V! \        R^4      ^^.\        P
                  ^.\        S
\        S
4      ,          \        S
4      ^.4      \        \        R^4      \        P"                  ) ^S
,          ,          \        ^^4      ..4      \        \        P
                  ^ S
^S
,
          ,          ^,          .^ ^ S
S
^,
          ,          .. RO.4      4       V! \        R^4      ^^.^^.\        \        \        P
                  S
4      \+        S
4      ^.4      \        \        ^^	4      ^^	S
,          ,          ,
          ^^S
,          ,          ^^	S
,          ,          ..4      \        S
^,          S
^,
          ,          ^ ^ .^^S
^,
          ,          ,          ^ \        P
                  .. RO.4      4       V! ^.S.\        S
^S,
          ,          \        S
4      ,          \-        S^,
          S
4      ,          ^.4      \        S^,
          ^ ..4      \        ^S,
          S
,           ^.^ ^ ..4      4       V! S.^S,          .\        S
\        P
                  S,
          ,          \        S
^,          4      ,          \/        S\        P
                  ,
          S
^,          4      ,          \1        S\        P
                  ,           4      ,          ^\        P
                  S,
          ,          ,          S
\        P
                  S,
          ,          \        S
^,          4      ,          \/        S\        P
                  ,           S
^,          4      ,          \1        S\        P
                  ,           4      ,          ^\        P
                  S,
          ,          ,          .4      \        ^^ ..4      \        S
^,          S
^,          .S
^,          S
^,          ^S,          ,
          ..4      4       \3        R4      S
,          pV! S.S^,           .\        VS) ,          S,          \-        SV4      ,          S\        S
4      ,          .4      \        ^^ ..4      \        S) ^.^ S
..4      4       V! \        R^4      .\        P
                  .\        S
4      \5        \(        S
,          4      \6        ) ,          \9        \6        \5        S
4      ,          4      ,          ,
          4       V! ^.\        ^^4      \        ^^4      .\        \5        \(        4      \6        \;        ^\5        S
4      ,          4      ,          \=        ^\?        S
^4      ,          \        \6        \(        ,          ^,          4      ,          \5        \(        4      ,          4      ,          \A        ^\5        S
4      ,          4      \C        ^\?        S
^4      ,          \        \6        \(        ,          ^,          4      ,          \5        \(        4      ,          4      ,          ,           ,          \        \6        ) \(        ,          ^,          4      ,          ^\?        S
^4      ,          ,          \5        \(        4      \?        S
^4      ,          \;        ^\5        S
4      ,          4      \C        ^\?        S
^4      ,          \        \6        \(        ,          ^,          4      ,          \5        \(        4      ,          4      ,          \6        \A        ^\5        S
4      ,          4      ,          \=        ^\?        S
^4      ,          \        \6        \(        ,          ^,          4      ,          \5        \(        4      ,          4      ,          ,           ,          \        \6        ) \(        ,          ^,          4      ,          ^,          ^.4      \        . RO.4      \        \        R^4      ^\        ^^4      .S
\        ^^4      ^ .. RO.4      4       V! \        P
                  S.\        ^^4      S^,           .\        S^S,          ^,
          ,          \6        ) ,          \5        \(        S
,          4      ,          \9        \6        \5        S
4      ,          4      ,          S^S,          ^,
          ,          \3        R4      S
,          S) ,          ,          \-        S\3        R4      S
,          4      ,          S^S,          ^,
          ,          \        S
4      ,          .4      \        . RO.4      \        \        R^4      ^ ^.^ S) ^.^ ^ S
..4      4       V! ^^.^^.\        \E        S
4      \G        S
4      ,
          \        S
4      ^\H        .4      \        ^S
,          ^ ^ RS
,          ..4      \        . RO^ S
^ ^ .. RO. RO.4      4       V! R	\        P
                  3\A        ^\5        S
4      ,          4      4       V! . S.\        \1        S4      S
^S,
          ^,          ,          ,          \/        S^,
          ^\5        S
4      ,          4      ,          \1        S4      S
^S^,          ,
          ,          ,          \/        S^\5        S
4      ,          4      ,          .4      \        ^^ ..4      \        ^ ^.S
^S,
          ..4      4       ^S
\        ^^4      ,          ,          o	V	3R lpV	3R lpV! . \        P
                  SS\        P
                  ,           .\        V! ^S,          ^,
          S
4      V! ^S,          S
4      S
\        ^^4      ,          ,          V! ^S,          ^,
          S
4      \5        S
4      ,          V! ^S,          S
4      S
\        ^^4      ,          ,          .4      ^RS,          ,          ,          \1        ^S,          4      ,          S
^^S,          ,
          ^,          ,          ,          \        . RO.4      \        . RO^ \        P
                  S,
          ^^ .^ ^ \        P
                  ^.S
^ ^ ^S,
          ..4      4       ^^S
,          \        ^^4      ,          ,          \K        \6        \(        ,          ^,          4      ,          o	V! . SS\        P
                  ,           ^S,          .^\5        \3        R4      S
,          4      ,          ^^S,          ,
          ,          \1        ^S,          4      ^,          ,          \        \M        ^S,          ^,
          S	4      \/        ^S,          ^,
          S	4      ,          S	\/        ^S,          S	4      \M        ^S,          ^,
          S	4      ,          \/        ^S,          ^,
          S	4      \M        ^S,          S	4      ,          ,
          ,          S	^,          \/        ^S,          S	4      ,          \M        ^S,          S	4      ,          S	^,          \/        ^S,          S	4      \M        ^S,          ^,
          S	4      ,          \/        ^S,          ^,
          S	4      \M        ^S,          S	4      ,          ,           ,          .4      ,          \        . RO.4      \        ^ \        ^^4      ^ ^ .^ ^^S,          ,
          ^,          \        R^4      ^ .^ ^ ^^S,          ,
          \        ^^4      .RS
,          ^ ^ ^S,
          ..4      4       V! S.S\        P
                  ,
          ^S,          .\        S
\        P
                  S,
          ,          \/        S\        P
                  ,
          \5        S
4      4      ^,          ,          S
^S,
          ,          \/        S\        P
                  ,
          \5        S
4      4      ,          \/        S\        ^^4      ,
          \5        S
4      4      ,          S
\        ^^4      S,
          ,          \/        S\        ^^4      ,
          \5        S
4      4      ^,          ,          .4      \        \1        S\        P
                  ,           4      ^,          ) ^\        P
                  S,
          ,          ,          ^\1        S\        P
                  ,
          4      ,          \1        S\        P
                  ,           4      ,          ^^S,
          ,          ,          ^ ..4      \        ^^S,          ,
          ^^ .S
^,          \        P
                  S,
          \        P
                  .^ S
^ ..4      4       V! \        P
                  .S^S,
          .\(        ^S,
          ,          \O        \(        S,          4      ,          \        \/        ^S,
          \5        S
4      4      \/        S^,
          \5        S
4      4      ,          \5        S
4      \/        S) \5        S
4      4      \/        S^,
          \5        S
4      4      ,          \/        ^S,
          \5        S
4      4      \/        S\5        S
4      4      ,          ,           ,          \/        S) \5        S
4      4      \/        S\5        S
4      4      ,          .4      ,          \        . RO.4      \        S^,
          \        P
                  ^ .S
^ S
.^ \        P
                  S) ..4      4       V! \        P
                  .\        ^^4      \        ^^4      .\        \Q        ^\5        S
4      ,          4      ^,          \5        S
4      ,          \;        ^\5        S
4      ,          4      ^,          \5        S
4      ,          \A        ^\5        S
4      ,          4      .4      \        . RO.4      \        \        R^4      \        P
                  ^ .^ \        R^4      \        P
                  .^ ^S
,          ^ ..4      4       V! \        ^^4      .\        ^^4      \        ^^4      .\        \=        \        \(        \6        ,          ^,          4      \?        S
^4      ,          ^,          \5        \(        4      ,          4      \(        \        \(        \6        ,          ^,          4      \?        S
^4      ,          ^,          \5        \(        4      ,          ^,          ,          ,          \;        ^\5        S
4      ,          4      \5        S
4      ,          \A        ^\5        S
4      ,          4      .4      \        . RO.4      \        \        R^4      \        ^^4      ^ .^ \        R^4      ^.^ S
^ ..4      4       V! \        ^^4      .\        P
                  \        ^^4      .\        \5        \(        4      \        \6        ) \(        ,          ^,          4      ,          \C        ^\?        S
^4      ,          \        \6        \(        ,          ^,          4      ,          \5        \(        4      ,          4      ,          ^\?        S
^4      ,          ,          \A        ^\5        S
4      ,          4      \;        ^\5        S
4      ,          4      \5        S
4      ,          .4      \        . RO.4      \        \        R^4      \        ^^4      ^ .. RO^ S
\        P
                  ..4      4       V! SS\        P
                  ,           .^S,          S^S,          S,
          ^,           .\1        S4      \1        ^S,          S,
          ^,           4      ,          \5        S
4      ^,          ^^S,          ,
          ,          ,          \        \/        S^,
          \5        S
4      4      \/        ^S,          S,
          \5        S
4      4      ,          \5        S
4      \/        S\5        S
4      4      ,          \/        ^S,          S,
          \5        S
4      4      ,          \5        S
4      \/        S^,
          \5        S
4      4      ,          \/        ^S,          S,
          ^,           \5        S
4      4      ,          \/        S\5        S
4      4      \/        ^S,          S,
          ^,           \5        S
4      4      ,          .4      ,          \        . RO.4      \        ^ \        P
                  \        P
                  ^ .S
^,          ^S,
          ^ S
^,          .S
^,          ^ S^S,          ,
          S
^,          .^ \        P
                  \        P
                  RS,          ..4      4       V! ^^.^^\        ^^4      .\        \S        ^\5        S
4      ,          4      \G        ^\5        S
4      ,          4      ,
          \A        ^\5        S
4      ,          4      \5        S
4      \;        ^\5        S
4      ,          4      ,          ^\H        .4      \        ^S
,          ^ ^ ^ RS
,          ..4      \        ^ \        P
                  ^ \        R^4      ^ .. RO^ S
\        P
                  ^ ^ .. RO. RO.4      4       V! ^^S.^^S^,           .\        S\G        S
) 4      \U        ^S
) 4      ,           \H        ,           ,          S
S^,          ^S,          ,
          ^,           ,          ,          SS
) S) ,          ,          \1        S4      \W        SS
) 4      ,
          ,          S^,
          ^,          ,          S\        S
4      ,          S^,          ^S,          ,
          ^,           ,          SS
S^,          ^S,          ,
          ^,           ,          ,          .4      \        ^S,
          ^RS
,          ^..4      \        R^ RS
,          ^.^ S) ^^ .^ ^ S
^ .. RO.4      4       R# )zCreate our knowledge base. za b c, z)Úclsc           
      ó^   <€ \        W4      pSP                  \        VSVSSS34      4       R # ©N©ÚHyper_FunctionÚappendÚFormula)	ÚapÚbqÚresÚfuncÚaÚbrZ   ÚformulaeÚzs	   &&& €€€€€r[   ÚaddÚadd_formulae.<locals>.addh   s*   ø€ Ü˜bÓ%ˆØ�‰œ  a¨¨q°!°Q¨iÓ8Ö9r]   c                 ób   <€ \        W4      pS	P                  \        VS
R SSS3W#V4      4       R # ra   rb   )rf   rg   ÚBÚCÚMri   rj   rk   rZ   rl   rm   s   &&&&& €€€€€r[   ÚaddbÚadd_formulae.<locals>.addbl   s.   ø€ Ü˜bÓ%ˆØ�‰œ  a¨°°1°a¨y¸!ÀÓBÖCr]   z3/2c                 ó>   <€ \        V S4      \        V S4      ,           # ra   ©r!   r'   ©rj   rm   rY   s   &&€r[   ÚfpÚadd_formulae.<locals>.fp÷   ó   ø€ Ü�q˜!‹}œw q¨!›}Õ,Ð,r]   c                 ó>   <€ \        V S4      \        V S4      ,
          # ra   rw   rx   s   &&€r[   ÚfmÚadd_formulae.<locals>.fmú   r{   r]   N© )rV   rV   )é   éÿÿÿÿéþÿÿÿ)é    rƒ   rƒ   )rV   rƒ   rƒ   )rV   r�   rƒ   )rƒ   rV   r�   rƒ   )rƒ   rƒ   rƒ   rƒ   )rV   rƒ   rƒ   rƒ   )rƒ   rV   rƒ   rƒ   iàÿÿÿ)é   rƒ   rƒ   éýÿÿÿ)rƒ   rƒ   rV   )rƒ   rƒ   rV   rƒ   rƒ   )rƒ   rƒ   rƒ   rƒ   rƒ   )rƒ   rƒ   rƒ   r�   ),r	   r   r   r@   r   ÚHalfrK   rA   rB   r?   r   rC   rE   rF   rH   rI   rD   ÚOner:   r;   r   rG   r   r!   r"   r1   r   r   r%   r,   r/   r   r-   r0   r(   r   r   r2   r'   r&   r+   r.   r$   r#   )rl   rn   rt   Úmzry   r}   rj   rk   rZ   rY   rm   s   f     @@@@@r[   Úadd_formulaer‰   d   só  ý€ ä˜¬Ô/�J€A€qˆ!ˆQ÷:ñ :÷Dñ Dñ ˆˆB”�A“Ôñ ˆˆˆr”? A 2 qÓ)Ô*ñ 	ˆ!ˆQ”—‘�Zˆ˜1˜Q�3˜'Ü	”  AÓ&Ü  ¤Q§V¡V¥¨QÓ/°Õ1ð3ó 
4ä	�!�Q��Ó	Ü	�1”q—v‘v•:˜q•. ! a¥%Õ(¬1¯6©6°A­:°q­.¸!¸a½%Õ*@ÐAØ�Q˜•U•)˜Q  A¥�Y¨¨A­Õ.Ð/ð1ó 
2ô	3ñ 	ˆ�Ü	”˜qÓ! 1Ð%Ó	&¬°°Aµ°q°	¨{Ó(;Ü	�!�Q˜˜A�•Y� ! Q Ð(Ó	)ô+ñ 	Œ!�&‰&�!ˆ”q˜“x�lÜ	” Ó" AÐ&Ó	'Ü	�!�Q��Ó	Ü	”(˜2˜q“/ 1 a¨!¥e¥9¨Q¥;Ð/°!°Q°Ð8Ó	9ô;ñ 	Œ!�&‰&”!—&‘&Ð	œA˜e›H˜<Ü	” Ó"¤O´H¸RÀ³OÀQÓ$GÐHÓ	IÜ	�!�Q��Ó	Ü	”(˜2˜q“/¤1§6¡6Ð*¨Q°°1°qµ5µ	¸!µÐ,<Ð=Ó	>ô@ñ 	ˆ!ŒQ�V‰V�a�Zˆœ1Ÿ6™6˜*Ü	” !  QÓ'¬/¸1¸"¼q¿v¹v½+ÀqÓ*IÐ)IÐJÓ	KÜ	�!�Q��Ó	Ü	�!�a�R�Ø�R˜•T˜A•X•,˜q•. ! a¥%Õ(¬!¯&©&°1°b¸µd¸Qµhµ<ÀÀQÅÕ3GÕ*GÐHðJó 
KôLñ 	ˆ!ˆaˆRˆ”1—6‘6�(Ü	Ô! ! QÓ'Ô)9¸!¸QÓ)?Ð@Ó	AÜ	�!�Q��Ó	Ü	�!�a�R�˜1˜Q�3  A¥�;¨¨1¨q­5­	°!­Ð4Ð5Ó	6ô8ñ 	ˆ!ˆQˆ�!”A—F‘F•(�Ü	” Ó" AÐ&Ó	'¬°!°Q°°Ó)9Ü	�1”q—v‘v•:  A¥Õ&¨¨1¨q­5­	°!­Ð4°q¸!°fÐ=Ó	>ô@ñ
 	Œ!�&‰&”!—&‘&Ð	œAŸE™E˜7Ü	”˜A“¤
¨1£Ð.Ó	/Ü	�!”B•$˜��Ó	Ü	”(˜2˜q“/ 2 q¨¥s¨1¥u¥:Ð.Ü˜2˜q“/¤1§6¡6Ð*ð,ó 
-ô.ñ
 	Œ(�2�q‹/œ1Ÿ6™6Ð	"¤Q§U¡U GÜ	”˜A“¤
¨1£Ð.Ó	/Ü	�!�Q”r•T��Ó	Ü	”(˜2˜q“/ 2 q¨¥s¨1¥u¥:Ð.Ü˜2˜q“/¤1§6¡6Ð*ð,ó 
-ô.ñ 	Œ(�2�q‹/˜1˜aÐ	 ¤1§6¡6¨1 +Ü	�”> !Ó$Õ$¤m°AÓ&6¸Ð:Ó	;Ü	”(˜2˜q“/¤A§E¡E 6¨1¨Q­3¥<´¸!¸Q³Ð@ÐAÓ	BÜ	”!—&‘&˜!˜Q  A¥�Y q�[Ð)Ø�Q˜˜1˜q�5�	Ð"Úðó 
ôñ 	Œ(�2�q‹/˜1˜aÐ	  1 a &Ü	”¤§¡¨Ó+¬]¸1Ó-=¸qÐAÓ	BÜ	”(˜1˜a“. 2 q¨¥s¥8Õ+¨Q°°!µ­W°b¸!¸A½#µhÐ?Ð@Ó	AÜ	�!�A•#�q˜1•u•+˜q !Ð$ q¨!¨Q°­U­)¥}°a¼¿¹Ð&@Â)ÐLÓ	MôOñ 	ˆ!ˆˆqˆc”6˜1˜q 1�u�:¬¨A«Õ.´¸AÀ½EÀ1Ó1EÕEÀqÐIÓJÜ	�!�a•%˜��Ó	œv¨¨A­°­	°1 ~¸¸1°vÐ&>Ó?ôAáˆ!ˆˆq��sˆeÜ	�”Q—V‘V˜a•Z•¤ Q q¥S£Õ)¬'°!´a·f±fµ*¸aÀ½cÓ*BÕBÜ˜œQŸV™V�Ó$õ%Ø%&¬¯©°!­¥_õ5à”Q—V‘V˜a•Z•¤ Q q¥S£Õ)¬'°!´a·f±fµ*¸aÀ½cÓ*BÕBÜ˜œQŸV™V�Ó$õ%Ø%&¬¯©°!­¥_õ5ð6ó 
7ô 
�!�Q��Ó	Ü	�!�A•#�q˜•s�˜a �c A a¥C¨!¨A­#¥IÐ/Ð0Ó	1ô3ô 
�B‹˜Õ	€BÙˆ!ˆˆq�1�uˆgÜ	��q�b•˜!•œJ q¨"Ó-Õ-¨q´°Q³­xÐ8Ó	9Ü	�!�Q��Ó	Ü	�1�"�a�˜1˜a˜&Ð!Ó	"ô$ñ
 Œ�"�a‹ÐœAŸF™F˜8¤S¨£V¬d´2°aµ4«j¼1¸"­o¼cÄ!ÄDÈÃGÅ)»nÕ.LÕ%LÔMñ 	ˆ!ˆŒx˜˜1‹~œx¨¨1›~Ð.Ü	”$”r“(œAœd 1¤T¨!£W¥9›oÕ-¬h°q¼¸aÀ»µ|ÄCÌÌ"ÍÈQÍÃKÕ7OÔPTÔUWÓPXÕ7XÓ.YÕYÜ" 1¤T¨!£W¥9›o¬h°q¼¸aÀ»µ|ÄCÌÌ"ÍÈQÍÃKÕ7OÔPTÔUWÓPXÕ7XÓ.YÕYõZõ [äœ˜œ2�˜a�“Lõ!à"#¤D¨¨A£J¥,õ0ô ”r“(œ4  1›:Õ%¤t¨A¬d°1«g­I£´xÀÄ$ÀqÈ!Ã*ÅÌSÔQRÔSUÕQUÐVWÕQWË[Õ@XÔY]Ô^`ÓYaÕ@aÓ7bÕ'bÜ()¬$¨q´°a³­y«/Õ(9¼(À1ÄTÈ!ÈQÃZÅ<ÔPSÔTUÔVXÕTXÐYZÕTZÓP[ÕC[Ô\`ÔacÓ\dÕCdÓ:eÕ(eõ(fõ gäœ�rœ"•u˜Q•w“<õ à !õ"ð ðó 
ô 
’�Ó	Ü	”(˜2˜q“/°´8¸A¸q³>ÐBØ !¤8¨A¨q£>ÀÐBÚBðDó 
EôFñ 	Œ!�&‰&�!ˆ”x  1“~ q¨1¥uÐ-Ü	��A�a•C˜!•G•œq˜bÕ!¤$¤r¨!¥t£*Õ,¬S´´4¸³7µ«^Õ;Ø�A�a•C˜!•G•œj¨›n¨QÕ.°1°"Õ5Õ5Ü˜Aœz¨"›~¨aÕ/Ó0õ1à�A�a•C˜!•G•œS ›VÕ#ð%ó 
&ô 
’�Ó	Ü	”(˜2˜q“/ 1 aÐ(¨1¨q¨b°!¨*°q¸!¸Q°iÐ@Ó	AôCñ 	ˆ!ˆQˆ�!�Q�Ü	”�A“œ˜Q›•¤ Q£¨¬JÐ7Ó	8Ü	�!�A•#�q˜!˜R �TÐ"Ð#Ó	$Ü	’  A q¨! ªlºLÐIÓ	JôLñ ˆŒQ�V‰VˆJœ˜Qœt A›w�Y›Ô(ÙˆˆaˆSÜ	”�q“˜!˜q 1�u a�i�.Õ(¬°°Qµ¸¼$¸q»'½	Ó)BÕBÜ�q“˜!˜a ! A¥#�g�,Õ&¤w¨q°!´D¸³Gµ)Ó'<Õ<ð>ó 
?ä	�!�Q��Ó	œ6 A q 6¨A°°Aµ¨<Ð"8Ó9ô;ð 	
ˆ!ŒX�a˜‹^Õ
Õ€Aõ-õ-ñ 	ˆŒa�f‰f�a˜œQŸV™V�Ð$Ü	‘�A�a•C˜!•G˜Q“¡ A a¥C¨£¨A¬x¸¸1«~Õ,=Õ!=Ù�A�a•C˜!•G˜Q“¤ Q£Õ'©¨A¨a­C°«°A´xÀÀ1³~Õ4EÕ)EðGó 
Hàˆr�!�t�9õ
ä˜1˜Q�3“Zõ
 à ! Q¨¨1­¥W¨a¥KÕ 0õ
1ô 
’�Ó	Ü	’Ø”Q—V‘V˜a•Z  AÐ&Ø�QœŸ™ Ð"Ø�Q˜˜1˜q�5Ð!ð#ó 
$ô%ð 	
ˆ1ˆQ�3”˜!˜Q“Õ
Õ¤	¬!¬B­$¨q­&Ó 1Õ1€AÙˆˆa�”Q—V‘V•˜Q˜q�SÐ!Ø
ŒD”˜B“ Õ!Ó"Õ
" a¨!¨A­#¥gÕ	.¬u°Q°qµS«z¸1­}Õ	<Ü	”˜˜1�˜q� !Ó$¤W¨Q¨q­S°1­W°aÓ%8Õ8Ø”G˜A˜a�C “O¤G¨A¨a­C°!­G°QÓ$7Õ7Ü˜a �c A�g qÓ)¬'°!°Aµ#°q«/Õ9õ:õ ;à�A•”g˜a �c 1“oÕ%¤g¨a°­c°1£oÕ5Ø�A•”w˜q �s A“¤w¨q°­s°Q­w¸Ó':Õ:Ü   1¥ q¥¨!Ó,¬W°Q°qµS¸!«_Õ<õ=õ >ð	?ó 
@õ
@ô 
’�Ó	Ü	�!”X˜a “^ Q¨Ð*Ø�a˜!˜A�#•g˜q•[¤(¨2¨q£/°1Ð5Ø�Q˜˜A˜a�C�¤¨!¨Q£Ð0Ø�a•%˜˜A˜q 1�uÐ%ð'ó 
(ô)ñ 	ˆ!ˆˆq”1—6‘6�z˜1˜Q�3ÐÜ	�”Q—V‘V˜a•Z•¤¨¬Q¯V©V­´T¸!³WÓ!=¸qÕ!@Õ@Ø�Q˜•U•œG A¬¯©¥J´°Q³Ó8Õ8Ü˜!œh q¨!›nÕ,¬d°1«gÓ6õ7à”X˜a “^ aÕ'Õ(¬°´X¸aÀ³^Õ1CÄTÈ!ÃWÓ)MÈqÕ)PÕPðRó 
Sô 
”5˜œQŸV™V�Ó$ aÕ'Ð'¨¬A¯F©F°Q­J­Õ7Ø”5˜œQŸV™V�Ó$Õ$¤U¨1¬q¯v©v­:Ó%6Õ6°q¸1¸q½5µzÕAØðð ó 
ô 
�!�a˜•c•'˜1˜a� 1 Q¥3¬¯©°­
´A·F±FÐ";¸aÀÀA¸YÐGÓ	HôJñ 	Œ!�&‰&ˆ�A�q˜1•u�:Ü	ˆQ��U�”Cœ˜1�“IÕ	Ü	”˜˜Q�¤ Q£Ó(¬°°Qµ¼¸Q»Ó)@Õ@Ü�a“œ' 1 "¤d¨1£gÓ.¬w°q¸1µu¼dÀ1»gÓ/FÕFÜ# A¨¥E¬4°«7Ó3´G¸A¼tÀA»wÓ4GÕGõHõ Iä˜!˜œT !›WÓ%¤g¨a´°a³Ó&9Õ9ð;ó 
<õ
<ô
 
’�Ó	Ü	�!�a•%œŸ™ Ð#Ø�Q˜�Ø”Q—V‘V˜a˜R�ð"ó 
#ô	$ñ 	Œ!�&‰&ˆ”H˜Q “N¤H¨Q°£NÐ3Ü	”�Q”t˜A“w•Y“ Õ!¤$ q£'Õ)¬4°´$°q³'µ	«?¸1Õ+<¼TÀ!»WÕ+DÜ�aœ˜Q›•i“ð"ó 
#ä	’�Ó	Ü	”(˜2˜q“/¤1§6¡6¨1Ð-°´8¸BÀ³?ÄAÇFÁFÐ/KÈaÐQRÐSTÕQTÐVWÈ[ÐYÓ	Zô	\ñ 	Œ(�1�a‹.Ð	œH Q¨›N¬H°Q¸«NÐ;Ü	ÜÜÜœ•T˜!•VóÜ!Ø˜Aóõà õ!ä!%Üó"!õ!ó#ô
 "$¤s¬2¬a­4°­6£{´4¸¸1³:Õ'=¸aÕ'?ÄÄRÃÕ'HÈ1Õ&LÕ!LõOô �A”d˜1“g•I‹œt A›wÕ&Ü�A”d˜1“g•I‹ð!ó
"ô 
’�Ó	Ü	”(˜2˜q“/¤H¨Q°£O°QÐ7Øœ8 B¨›?¨QÐ/Ø˜A QÐ'ð)ó 
*ô+ñ& 	Œ(�1�a‹.Ð	œAŸF™F¤H¨Q°£NÐ3Ü	ÜÜóÜÜ�Rœ•U˜1•Wóõä&Øœ4  1›:�¤c¬!¬B­$¨q­&£kÕ1´$´r³(Õ:ó<õ<ð >?¼tÀAÀq»z½\õKô �A”d˜1“g•I‹Ü�A”d˜1“g•I‹œt A›wÕ&ð)ó
*ô 
’�Ó	Ü	”(˜2˜q“/¤H¨Q°£N°AÐ;Ú+Ø˜A¤A§F¡FÐ+ð-ó 
.ô/ñ" 	ˆ!ˆQ”—‘�Zˆ˜1˜Q�3  1 Q¥3¨¥7¨Q¥;Ð/Ü	ˆq‹”%˜˜!�˜a� !�Ó$Õ	$¬¨Q«°­	°Q¸¸1½µWÕ'=Õ	=Ü	”˜˜Q�¤ Q£Ó(¬°°1µ°qµ¼$¸q»'Ó)BÕBÜ�a“œ ¤D¨£GÓ,Õ,¬W°Q°qµS¸1µW¼dÀ1»gÓ-FÕFÜ�a“œ  Q¥¬¨Q«Ó0Õ0´¸¸1½¸q½À1½ÄdÈ1ÃgÓ1NÕNÜ˜œD ›GÓ$¤W¨Q¨q­S°1­W°q­[¼$¸q»'Ó%BÕBðDó 
Eõ
Eô
 
’�Ó	Ü	�!”Q—V‘VœQŸV™V QÐ'Ø�A•#�q˜1•u˜a  1¥Ð%Ø�A•#�q˜!˜a �c�' 1 Q¥3Ð'Ø”Q—V‘VœQŸV™V R¨¥TÐ*ð,ó 
-ô
.ñ 	ˆ!ˆQˆ�!�Qœ  A›Ð'Ü	”�Q”t˜A“w•Y“¤# a¬¨Q«¥i£.Õ0Ü�aœ˜Q›•i“¤$ q£'¬$¨q´°a³­y«/Õ"9¸1¼jðJó 
Kä	�!�A•#�q˜!˜Q  1¥Ð%Ð&Ó	'Ü	�!”Q—V‘V˜Q¤¨¨Q£°Ð3Ú Ø�QœŸ™  1Ð%Ú Ú ð	"ó 
#ô	$ñ( 	ˆ!ˆQ�ˆ�Q˜˜1˜Q�3�KÜ	�”C˜˜“Gœf Q¨¨›mÕ+¬jÕ8Õ9¸1¸aÀ½dÀQÀqÅS½jÈ1½nÕ;MÕNØ�Q�B˜1˜"•:•œu Q›x¬*°Q¸¸Ó*;Õ;Õ<¸aÀ!½eÀa½ZÕGØ”3�q“6•˜1˜a�4 ! A¥#�:¨�>Õ*Ø�A�q˜!•t˜a �c•z A•~Õ&Õ'ð)ó 
*ô 
�!�A•#�q˜"˜Q�$ Ð"Ð#Ó	$Ü	�"�Q�r˜!•t˜A�Ø�Q�B�q˜�Ø�A�a˜�Úðó 
ö	r]   c                 ó$  a aa	a
aa€ \        \        \        R 4      4      w  oo	o
o\        R4      oVV	V
V VV3R lpVV3R lpV! SS,           .. SSS,           .. \        \	        ^S,
          4      SS,          ,          \        S4      ,          \        SS4      ,          \	        ^S,
          4      SSS,           ,          ,          .4      \        ^^ ..4      \        SS,           R.^ SS,           ..4      V4       V3R lp\        ^\        S4      ,          4      p\        ^\        S4      ,          4      p\        ^\        S4      ,          4      \        ^,          ,
          p\        ^\        S4      ,          4      pV! S.. SSS\        P                  ,
          .. \        \        \        4      SS\        P                  ,
          ,          ,          WV,          WG,          ,
          ,          \        \        4      SS,          ,          WF,          WW,          ,           ,          \        \        4      SS,          ,          .4      \        . RO.4      \        S\        P                  ,
          R^ .SS\        P                  .^ ^ S..4      V4       R# )ÚabczÚrhoc                 óN   <€ SP                  \        WW#SSS	S
S.WEWg4
      4       R # ra   )rd   ÚMeijerFormula)Úanrf   Úbmrg   rq   rr   rs   Úmatcherrj   rk   rZ   rl   rŒ   rm   s   &&&&&&&&€€€€€€r[   rn   Ú!add_meijerg_formulae.<locals>.addˆ  s+   ø€ Ø�‰œ b¨b°a¸!¸QÀÀ3¸Ø&'¨Aó8ö 	9r]   c                 óV  <€ V P                   ^ ,          pV P                  w  r#Rp\        W,
          P                  4       4      '       g   RpY2r2\        W,
          P                  4       4      '       g   W,
          ^ 8”  d   R# W!.pV'       d   W.pSVSW,
          /\	        V.. V. 4      3# )rƒ   FTN)r�   r�   r\   ÚsimplifyÚ
G_Function)ri   rY   Úyrm   ÚswappedÚlrj   rŒ   s   &     €€r[   Údetect_uppergammaÚ/add_meijerg_formulae.<locals>.detect_uppergammaŒ  s•   ø€ Ø�G‰G�A�JˆØ�w‰w‰ˆØˆÜ�a•e×%Ñ%Ó'×(Ò(ØˆGØ�Ü�!•%×!Ñ!Ó#×$Ò$¨­°¬	ÙØˆFˆßØ�ˆAØ�Q˜˜1�5Ð!¤:¨q¨c°2°q¸"Ó#=Ð=Ð=r]   c           
     ó  <€ V P                   ^ ,          pV P                  w  r#p\        W#,
          P                  4       4      ^ 8X  d[   \        W4,
          P                  4       4      ^ 8X  d   R# \        P
                  \        P
                  \        P                  3pY#Tr‡pM‹\        W,
          P                  4       4      ^ 8X  d5   \        P
                  \        P                  \        P
                  3pY#TrxpM3\        P                  \        P
                  \        P
                  3pY#Trvp\        W,
          P                  4       4      ^ 8w  gq   \        W,
          P                  4       4      ^ 8w  gM   \        W,
          P                  4       4      \        P
                  8w  g   W,
          ^ 8”  g   W,
          ^ 8”  d   R# S
V/\        V.. V U	u. uF   q‘\        P
                  ,
          V	,           NK"  	  up	. 4      3# u up	i )z.https://functions.wolfram.com/07.34.03.0984.01N)r�   r�   r\   r”   r   r†   ÚZeror•   )ri   rY   ÚuÚvÚwÚsigÚx1Úx2r–   Útrj   s   &         €r[   Údetect_3113Ú)add_meijerg_formulae.<locals>.detect_3113¡  si  ø€ à�G‰G�A�JˆØ—'‘'‰ˆˆaÜ�!•%×!Ñ!Ó#Ó$¨Ô)Ü�a•e×%Ñ%Ó'Ó(¨AÔ-ÙÜ—6‘6œ1Ÿ6™6¤1§6¡6Ð*ˆCØ˜a�AˆB�Aä�a•e×%Ñ%Ó'Ó(¨AÔ-Ü—v‘vœqŸv™v¤q§v¡vÐ.�Ø !�r��rä—v‘vœqŸv™v¤q§v¡vÐ.�Ø !�r�ä�1•6×#Ñ#Ó%Ó&¨!Ô+Ü�1•6×#Ñ#Ó%Ó&¨!Ô+Ü�1•5×"Ñ"Ó$Ó%¬¯©Ô/Ø•˜”
˜a�f qœjÙà�1ˆv”z 1 # rÁCÓ+HÁC¸q´·±­J¸¯N¨NÁCÑ+HÈ"ÓMÐMÐMùÒ+Hs   Ç&HNr�   )r‚   rƒ   rƒ   )ÚlistÚmapr   rK   r"   r   r#   r&   r   r    r*   r   r)   r   r†   )rl   rn   r™   r¤   ÚsÚc_ÚS_rr   rj   rk   rZ   rŒ   rm   s   f       @@@@@r[   Úadd_meijerg_formulaer«   „  sÞ  ý€ Ü”cœ% Ó(Ó)�J€A€qˆ!ˆQÜ
�‹,€C÷9ò 9ö>ñ ˆˆS�ˆ	�2˜˜Q �W�~ rÜ”�a˜!•e“˜Q �VÕ#¤C¨£FÕ*¬:°a¸Ó+;Õ;Ü�a˜!•e“˜Q  S¥�\Õ)ð+ó 	,ä��A�ˆxÓÜ��q•˜"�  1 s¥7˜|Ð,Ó-ØôõNô2 	ˆAŒd�1‹g�I‹€AÜ	ˆQŒt�A‹w�Y‹€BÜ	ˆAŒd�1‹g�I‹œ˜A�Õ	€BÜ
ˆ1ŒT�!‹W�9‹€AÙˆˆˆR�!�Q˜œAŸF™F�
Ð# RÜ””R“˜˜Q¤§¡�Z�Õ(¨"­%°!µ#­+Õ6Ü”R“˜˜A�•˜q�t b¥d�{Õ+Ü”R“˜˜A�•ðó 	 ô 	’
ˆ|ÓÜ�”Q—V‘V•˜R Ð# a¨¬A¯F©F ^°a¸¸A°YÐ?Ó@Øör]   c                ó   a € V 3R lpV# )z?Create a function that simplifies rational functions in ``z``. c                óî   <€ V P                  4       w  rVP                  4       p\        VS4      P                  \        VS4      4      w  r1pW1P	                  4       ,          VP	                  4       ,          # )z5Efficiently simplify the rational function ``expr``. )Úas_numer_denomr   rO   ÚcancelÚas_expr)ÚexprÚnumerÚdenomrZ   rm   s   &   €r[   ÚsimpÚmake_simp.<locals>.simpÊ  sX   ø€ à×*Ñ*Ó,‰ˆØ—‘“ˆä˜u a›.×/Ñ/´°U¸A³Ó?‰ˆ�%Ø—=‘=“?Õ" U§]¡]£_Õ4Ð4r]   r   )rm   r´   s   f r[   Ú	make_simpr¶   Ç  s   ø€ õ5ð €Kr]   c                  ób   € \         '       d#   V  F  p\        VR R7       K  	  \        4        R# R# )Ú )ÚendN)r   Úprint)Úargsrj   s   * r[   Údebugr¼   Õ  s%   € ßƒ{ÛˆAÜ�!˜×ñ äŽñ r]   c                   óŠ   a a€ ] tR tRt oRtV 3R lt]R 4       t]R 4       t]R 4       t	V 3R lt
R tR	 tR
 tR tRtVtV ;t# )rc   iÜ  z'A generalized hypergeometric function. c                óº   <€ \         SV `  V 4      p\        \        \	        \
        V4      4      !  Vn        \        \        \	        \
        V4      4      !  Vn        V# ra   )ÚsuperÚ__new__r   r¦   r§   r   rf   rg   )r_   rf   rg   ÚobjÚ	__class__s   &&& €r[   rÀ   ÚHyper_Function.__new__ß  sD   ø€ Ü‰g‰o˜cÓ"ˆÜœœS¤¨›_Ó-Ñ.ˆŒÜœœS¤¨›_Ó-Ñ.ˆŒØˆ
r]   c                ó2   € V P                   V P                  3# ra   )rf   rg   ©Úselfs   &r[   r»   ÚHyper_Function.argså  s   € à—‘˜Ÿ™Ð!Ð!r]   c                óV   € \        V P                  4      \        V P                  4      3# ra   )Úlenrf   rg   rÅ   s   &r[   ÚsizesÚHyper_Function.sizesé  s   € ä�D—G‘G“œc $§'¡'›lÐ+Ð+r]   c                ó:   € \        R V P                   4       4      # )z\
Number of upper parameters that are negative integers

This is a transformation invariant.
c              3   ót   "  € T F.  p\        VP                  ;'       d    VP                  4      x € K0  	  R # 5ira   )ÚboolÚ
is_integerÚis_negative©Ú.0rY   s   & r[   Ú	<genexpr>Ú'Hyper_Function.gamma.<locals>.<genexpr>ô  s(   é € ÐIÁ¸A”4˜Ÿ™×6Ð6¨¯©×7Ð7Ãùs   ‚8Ÿ8)Úsumrf   rÅ   s   &r[   r"   ÚHyper_Function.gammaí  s   € ô ÑIÀÇÂÓIÓIÐIr]   c                óZ   <€ \         SV `  4       V P                  V P                  3,           # ra   )r¿   Ú_hashable_contentrf   rg   ©rÆ   rÂ   s   &€r[   rØ   Ú Hyper_Function._hashable_contentö  s*   ø€ Ü‰wÑ(Ó*¨d¯g©gØ—‘ð.õ ð 	r]   c                óD   € \        V P                  V P                  V4      # ra   )r>   rf   rg   )rÆ   Úargs   &&r[   Ú__call__ÚHyper_Function.__call__ú  s   € Ü�T—W‘W˜dŸg™g sÓ+Ð+r]   c                ó¤   € \        V P                  \        4      \        V P                  \        4      r!R pV P                  V! V4      V! V4      3# )af  
Compute the invariant vector.

Explanation
===========

The invariant vector is:
    (gamma, ((s1, n1), ..., (sk, nk)), ((t1, m1), ..., (tr, mr)))
where gamma is the number of integer a < 0,
      s1 < ... < sk
      nl is the number of parameters a_i congruent to sl mod 1
      t1 < ... < tr
      ml is the number of parameters b_i congruent to tl mod 1

If the index pair contains parameters, then this is not truly an
invariant, since the parameters cannot be sorted uniquely mod1.

Examples
========

>>> from sympy.simplify.hyperexpand import Hyper_Function
>>> from sympy import S
>>> ap = (S.Half, S.One/3, S(-1)/2, -2)
>>> bq = (1, 2)

Here gamma = 1,
     k = 3, s1 = 0, s2 = 1/3, s3 = 1/2
            n1 = 1, n2 = 1,   n2 = 2
     r = 1, t1 = 0
            m1 = 2:

>>> Hyper_Function(ap, bq).build_invariants()
(1, ((0, 1), (1/3, 1), (1/2, 2)), ((0, 2),))
c           
      óF  € \        V P                  4       4      p \        ;QJ d    R  V  4       F  '       g   K   RM	  RM! R  V  4       4      '       g   V P                  R R7       \	        V  UUu. uF  w  rV'       g   K  V\        V4      3NK  	  upp4      p V # u uppi )c              3   óP   "  € T F  p\        V^ ,          \        4      x € K  	  R# 5i)rƒ   N)Ú
isinstancer   rÑ   s   & r[   rÓ   Ú>Hyper_Function.build_invariants.<locals>.tr.<locals>.<genexpr>$  s   é € Ð=±f°”z ! A¥$¬×,Ð,³fùs   ‚$&TFc                 ó&   € \        V ^ ,          4      # ©rƒ   r   ©rY   s   &r[   Ú<lambda>Ú=Hyper_Function.build_invariants.<locals>.tr.<locals>.<lambda>%  s   € Ô*:¸1¸Q½4Ô*@r]   ©Úkey)r¦   ÚitemsÚanyÚsortÚtuplerÉ   )ÚbucketÚmodÚvaluess   &  r[   ÚtrÚ+Hyper_Function.build_invariants.<locals>.tr"  s~   € Ü˜&Ÿ,™,›.Ó)ˆFß“3Ñ=±fÓ=—3—3’3Ñ=±fÓ=×=Ò=Ø—‘Ñ @�ÔAÜÁ&ô Á&±;°3Üô /˜S¤# f£+Ó.Á&ò ó ˆFàˆMùós   Á1B
ÂB
)rS   rf   r\   rg   r"   )rÆ   ÚabucketsÚbbucketsrò   s   &   r[   Úbuild_invariantsÚHyper_Function.build_invariantsý  sB   € ôF " $§'¡'¬5Ó1´4¸¿¹ÄÓ3G�(ò	ð —
‘
™B˜x›L©"¨X«,Ð7Ð7r]   c                óâ  € V P                   VP                   8w  d   R# V P                  V P                  VP                  VP                  3 Uu. uF  p\        V\        4      NK  	  upw  r4rV^ pWS3Wd33 Fñ  w  r‰\        \        VP                  4       4      \        V	P                  4       4      ,           4       F¨  p
W¨9  g,   W©9  g&   \        WŠ,          4      \        Wš,          4      8w  d   Ru u # \        WŠ,          4      p\        Wš,          4      pVP                  4        VP                  4        \        W¼4       F  w  rÞV\        WÞ,
          4      ,          pK  	  Kª  	  Kó  	  V# u upi )zWEstimate how many steps it takes to reach ``func`` from self.
Return -1 if impossible. r�   )r"   rf   rg   rS   r\   Úsetr¦   ÚkeysrÉ   rí   ÚzipÚabs)rÆ   ri   ÚparamsÚ	oabucketsÚ	obbucketsrô   rõ   Údiffrï   Úobucketrð   Úl1Úl2ÚiÚjs   &&             r[   Ú
difficultyÚHyper_Function.difficulty,  s$  € ð �:‰:˜Ÿ™Ô#ØˆIàŸ7™7 D§G¡G¨T¯W©W°d·g±gÑ>ó4@Ù>�ô 59¸ÄÖ4GÙ>ñ4@Ñ0ˆ	˜hð ˆØ!)Ð 5¸Ð7LÓM‰OˆFÜœ4 §¡£Ó.´°g·l±l³nÓ1EÕEÖF�ØÔ%¨3Ô+=Ü˜v�{Ó+¬s°7µ<Ó/@Ô@Ø”IÜ˜&�+Ó&�Ü˜'�,Ó'�Ø—‘”	Ø—‘”	Ü žK‘D�AØœC ¥›JÕ&’Dó (ó Gñ  Nð ˆùò!4@s   ÁE,c                ól  € V P                    FJ  pV P                   F7  pW,
          P                  '       g   K  W,
          P                  RJ g   K5    R# 	  KL  	  V P                    F  pV^ 8X  g   K   R# 	  V P                   F,  pVP                  '       g   K  VP                  '       g   K+   R# 	  R# )aA  
Decide if ``self`` is a suitable origin.

Explanation
===========

A function is a suitable origin iff:
* none of the ai equals bj + n, with n a non-negative integer
* none of the ai is zero
* none of the bj is a non-positive integer

Note that this gives meaningful results only when none of the indices
are symbolic.

FT)rf   rg   rÏ   rÐ   Úis_nonpositive)rÆ   rj   rk   s   &  r[   Ú_is_suitable_originÚ"Hyper_Function._is_suitable_originC  s†   € ð  —”ˆAØ—W”W�Ø•E×%×%Ò%¨1­5×*=Ñ*=ÀÕ*FÛ ó ñ ð —”ˆAØ�AŽvÚñ ð —”ˆAØ�|�|Š| × 0× 0Ò 0Úñ ñ r]   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rÀ   Úpropertyr»   rÊ   r"   rØ   rÝ   rö   r  r
  Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rÂ   Ú__classdict__s   @@r[   rc   rc   Ü  sj   ù‡ € Ù2õð ñ"ó ð"ð ñ,ó ð,ð ñJó ðJõò,ò-8ò^÷.ò r]   rc   c                   ón   a a€ ] tR tRt oRtV 3R lt]R 4       tV 3R ltR t	R t
]R 4       tR	tVtV ;t# )
r•   i`  zA Meijer G-function. c                óN  <€ \         SV `  V 4      p\        \        \	        \
        V4      4      !  Vn        \        \        \	        \
        V4      4      !  Vn        \        \        \	        \
        V4      4      !  Vn        \        \        \	        \
        V4      4      !  Vn	        V# ra   )
r¿   rÀ   r   r¦   r§   r   r�   rf   r�   rg   )r_   r�   rf   r�   rg   rÁ   rÂ   s   &&&&& €r[   rÀ   ÚG_Function.__new__c  sr   ø€ Ü‰g‰o˜cÓ"ˆÜœœS¤¨›_Ó-Ñ.ˆŒÜœœS¤¨›_Ó-Ñ.ˆŒÜœœS¤¨›_Ó-Ñ.ˆŒÜœœS¤¨›_Ó-Ñ.ˆŒØˆ
r]   c                ó^   € V P                   V P                  V P                  V P                  3# ra   )r�   rf   r�   rg   rÅ   s   &r[   r»   ÚG_Function.argsk  s!   € à—‘˜Ÿ™ $§'¡'¨4¯7©7Ð3Ð3r]   c                óB   <€ \         SV `  4       V P                  ,           # ra   )r¿   rØ   r»   rÙ   s   &€r[   rØ   ÚG_Function._hashable_contento  s   ø€ Ü‰wÑ(Ó*¨T¯Y©YÕ6Ð6r]   c                óp   € \        V P                  V P                  V P                  V P                  V4      # ra   )rJ   r�   rf   r�   rg   )rÆ   rm   s   &&r[   rÝ   ÚG_Function.__call__r  s%   € Ü�t—w‘w §¡¨¯©°$·'±'¸1Ó=Ð=r]   c                ó2  a€ \        ^4       Uu. uF  p\        \        4      NK  	  up;pw  r4rV\        W P                  V P
                  V P                  V P                  34       F/  w  rxV F$  p	V\        V	4      ,          P                  V	4       K&  	  K1  	  \        VR4       FB  w  rzVP                  4        F)  w  r¼V^ ,          oVP                  V3R lV
R7       WÇV&   K+  	  KD  	  \        V Uu. uF  p\        V4      NK  	  up4      # u upi u upi )a+  
Compute buckets for the fours sets of parameters.

Explanation
===========

We guarantee that any two equal Mod objects returned are actually the
same, and that the buckets are sorted by real part (an and bq
descendending, bm and ap ascending).

Examples
========

>>> from sympy.simplify.hyperexpand import G_Function
>>> from sympy.abc import y
>>> from sympy import S

>>> a, b = [1, 3, 2, S(3)/2], [1 + y, y, 2, y + 3]
>>> G_Function(a, b, [2], [y]).compute_buckets()
({0: [3, 2, 1], 1/2: [3/2]},
{0: [2], y: [y, y + 1, y + 3]}, {0: [2]}, {y: [y]})

c                 ó   <€ V S,
          # ra   r   )rY   Úx0s   &€r[   rç   Ú,G_Function.compute_buckets.<locals>.<lambda>•  s	   ø€ ¨¨R®r]   )rê   Úreverse)TFFT)Úranger   r¦   rû   r�   rf   r�   rg   r\   rd   rë   rí   rî   Údict)rÆ   r  ÚdictsÚpanÚpapÚpbmÚpbqÚdicÚlisrY   ÚflipÚmrë   rŸ   r"  s   &             @r[   Úcompute_bucketsÚG_Function.compute_bucketsu  sî   ø€ ô0 BGÀqÄÓ%JÁ¸A¤k´$Ö&7ÁÑ%JÐJˆÑ"�˜#Ü˜E§G¡G¨T¯W©W°d·g±g¸t¿w¹wÐ#GÖH‰HˆCÛ�Ø”E˜!“H•×$Ñ$ QÖ'ó ñ Iô ˜UÐ$>Ö?‰IˆCØŸI™IžK‘�Ø˜1•X�Ø—
‘
Ô/¸�
Ô>Ø�A“ó (ñ @ô ¡uÓ-¡u !”d˜1–g¡uÑ-Ó.Ð.ùò &Kùò .s   �DÃ4Dc                ó¦   € \        V P                  4      \        V P                  4      \        V P                  4      \        V P                  4      3# ra   )rÉ   r�   rf   r�   rg   rÅ   s   &r[   Ú	signatureÚG_Function.signatureš  s1   € ä�D—G‘G“œc $§'¡'›l¬C°·±«L¼#¸d¿g¹g»,ÐGÐGr]   r   )r  r  r  r  r  rÀ   r  r»   rØ   rÝ   r0  r3  r  r  r  r  s   @@r[   r•   r•   `  sM   ù‡ € Ù õð ñ4ó ð4õ7ò>ò#/ðJ ñHó ÷Hð Hr]   r•   rY   c                   óJ   a € ] tR tRt o RtR tR	R lt]R 4       tR t	Rt
V tR# )
re   i¢  aí  
This class represents hypergeometric formulae.

Explanation
===========

Its data members are:
- z, the argument
- closed_form, the closed form expression
- symbols, the free symbols (parameters) in the formula
- func, the function
- B, C, M (see _compute_basis)

Examples
========

>>> from sympy.abc import a, b, z
>>> from sympy.simplify.hyperexpand import Formula, Hyper_Function
>>> func = Hyper_Function((a/2, a/3 + b, (1+a)/2), (a, b, (a+b)/7))
>>> f = Formula(func, z, None, [a, b])

c                óÊ  € V P                   P                   Uu. uF  p\        V,           NK  	  ppV P                   P                   Uu. uF  p\        V,           ^,
          NK  	  pp\        \	        V!  ,          V P
                  \	        V!  ,          ,
          p\        V\        4      pVP                  ! 4       ^,
          pV.p\        V4       FE  p	VP                  V P
                  VR,          P                  V P
                  4      ,          4       KG  	  \        V4      V n        \        ^.^ .V,          ,           .4      V n        \        V4      p
V
P                  ^ \!        V^4      4      p
VP"                  ! 4       R,          pVP%                  4        V
P'                  V\        V.4      ) VP"                  ! 4       ^ ,          ,          4      V n        R# u upi u upi )z‚
Compute a set of functions B=(f1, ..., fn), a nxn matrix M
and a 1xn matrix C such that:
   closed_form = C B
   z d/dz B = M B.
ºrV   NNNr�   )ri   rf   Ú_xrg   r   rm   rP   Údegreer%  rd   r   rK   rq   rr   rL   Ú
col_insertrM   Ú
all_coeffsr$  Ú
row_insertrs   )rÆ   Úclosed_formrj   Úafactorsrk   Úbfactorsr±   rO   ÚnÚ_r/  r˜   s   &&          r[   Ú_compute_basisÚFormula._compute_basisº  sU  € ð %)§I¡I§L¢LÓ1¡L˜q”B˜—F�F¡LˆÐ1Ø(,¯	©	¯ªÓ5© 1”B˜•F˜Q—J�J©ˆÐ5Ü”#�x‘.Õ  4§6¡6¬#¨x©.Õ#8Õ8ˆÜ�Dœ"‹~ˆà�KŠK‹M˜AÕˆØˆMˆÜ�q–ˆAØ�H‰H�T—V‘V˜A˜b�EŸJ™J t§v¡vÓ.Õ.Ö/ñ ô ˜“ˆŒÜ˜!˜ ˜s 1�u�˜Ó&ˆŒä�‹FˆØ�L‰L˜œE ! Q›KÓ(ˆØ�OŠOÓ˜bÕ!ˆØ	�	‰	ŒØ—‘˜a¤&¨!¨£+ ¨d¯oªoÓ.?ÀÕ.BÕ!BÓCˆŽùò# 2ùÚ5s   ™GÁ	G Nc                ó  € \        V4      p\        V4      p\        V4       Uu. uF  q�P                  V4      '       g   K  VNK  	  ppW n        W@n        WPn        W`n        Wpn        Wn        Ve   V P                  V4       R # R # u upi ra   )	r
   Úhasrm   r	   rq   rr   rs   ri   rB  )	rÆ   ri   rm   rh   r	   rq   rr   rs   rY   s	   &&&&&&&& r[   Ú__init__ÚFormula.__init__Ô  sv   € Ü�A‹JˆÜ�c‹lˆÜ% gÔ.Ó>Ñ.˜·(±(¸1·+—1�1Ñ.ˆÐ>àŒØŒØŒØŒØŒØŒ	ð
 Š?Ø×Ñ Ö$ñ ùò ?s   ¤BÁBc                óv   € \        R  \        V P                  V P                  4      \        P
                  4      # )c                 ó<   € W^ ,          V^,          ,          ,           # rå   r   ©r¨   r/  s   &&r[   rç   Ú%Formula.closed_form.<locals>.<lambda>è  ó   €  ! a¥D¨¨1­¥I¦+r]   ©r   rû   rr   rq   r   rœ   rÅ   s   &r[   r=  ÚFormula.closed_formæ  ó%   € äÑ-¬s°4·6±6¸4¿6¹6Ó/BÄAÇFÁFÓKÐKr]   c                óJ	  a a!€ ^ RI Hp VP                  pVP                  p\	        V4      \	        S P
                  P                  4      8w  g.   \	        V4      \	        S P
                  P                  4      8w  d   \        R4      h. pS P                   F€  pVS P
                  P                  P                  9   d   VP                  V4       K;  VS P
                  P                  P                  9   d   VP                  V4       Ks  \        RV: 24      h	  \        V!   Uu. uF+  p\        \        \        S P                  V4      4      4      NK-  	  ppW43 U	u. uF  p	\        V	\         4      NK  	  up	w  r«W«3 UUUu. uF1  pVP#                  4        UUu/ uF  w  rmV\	        V4      bK  	  uppNK3  	  upppw  rïS P                   Uu. uF  p^ .NK  	  pp. p\%        4       pV EF‹  o!S P
                  P                  S P
                  P                  3 U	u. uF  p	\        V	V!3R l4      NK  	  up	w  ppV
V3VV33 EF€  w  pp\'        \        VP)                  4       4      \        VP)                  4       4      ,           4       EF4  pVV9  g/   VV9  g(   \	        VV,          4      \	        VV,          4      8w  d    Kƒ  \        S P                  V4       FÞ  w  rmS!V,          P*                  '       d   K   VV,           Uu. uF  pVP-                  V4      '       g   K  VNK   	  ppS!P/                  4       pVV;;,          V,          uu&   V Fb  pVV,           FR  pV! VP1                  V4      V,
          V4      w  pVP*                  '       d   \        R4      hVP                  V4       KT  	  Kd  	  Kà  	  EK7  	  EKƒ  	  . p\        S P                  V4       Fo  w  rmS!V,          p\3        \5        V4      4      p\7        \9        V4      4      pTP                  \;        VV^,           4       U u. uF  p VV ,           NK  	  up 4       Kq  	  VP=                  V 3R l\        V!   4       4       EKŽ  	  V# u upi u up	i u uppi u upppi u upi u up	i u upi u up i )z»
Find substitutions of the free symbols that match ``func``.

Return the substitution dictionaries as a list. Note that the returned
instantiations need not actually match, or be valid!

)Úsolvez-Cannot instantiate other number of parametersz?At least one of the parameters of the formula must be equal to c                 ó8   <€ \        V P                  S4      4      # ra   )r\   Úxreplace)rY   Úrepls   &€r[   rç   Ú-Formula.find_instantiations.<locals>.<lambda>	  s   ø€ ´U¸1¿:¹:ÀdÓ;KÔ5Lr]   zValue should not be truec           	   3   ót   <"  € T F-  p\        \        \        SP                  V4      4      4      x € K/  	  R # 5ira   )r&  r¦   rû   r	   )rÒ   r˜   rÆ   s   & €r[   rÓ   Ú.Formula.find_instantiations.<locals>.<genexpr>#  s+   øé € ÐYÑHXÀ1œd¤4¬¨D¯L©L¸!Ó(<Ó#=×>Ð>ÓHXùs   ƒ58)Úsympy.solversrQ  rf   rg   rÉ   ri   Ú	TypeErrorr	   r»   rd   Ú
ValueErrorr   r&  r¦   rû   rS   r\   rë   r   rù   rú   Úfree_symbolsrE  ÚcopyrS  r3   Úminr4   Úmaxr%  Úextend)"rÆ   ri   rQ  rf   rg   Úsymbol_valuesrj   rñ   Ú	base_replrý   rô   rõ   rï   ÚvalsÚa_invÚb_invrA  Úcritical_valuesÚresultÚ_nÚsymb_aÚsymb_br  rð   r±   ÚexprsÚrepl0ÚtargetÚn0Úa0Úmin_Úmax_r@  rT  s"   f&                               @r[   Úfind_instantiationsÚFormula.find_instantiationsê  s¼  ù€ õ 	(Ø�W‰WˆØ�W‰WˆÜˆr‹7”c˜$Ÿ)™)Ÿ,™,Ó'Ô'¬3¨r«7´c¸$¿)¹)¿,¹,Ó6GÔ+GÜÐKÓLÐLØˆØ—”ˆAØ�D—I‘I—L‘L×%Ñ%Ô%Ø×$Ñ$ RÖ(Ø�d—i‘i—l‘l×'Ñ'Ô'Ø×$Ñ$ RÖ(å Ú9:ð"=ó >ð >ñ ô & }Ò5ó7Ù5�Fô œ$œs 4§<¡<°Ó8Ó9Ö:Ù5ð 	ð 7àACÁÓIÁ°fœd 6¬5Ö1ÁÑIÑˆà'Ñ2õ4Ù2�Fð 6<·\±\´^ÔD±^©'¨!˜œC ›Iš±^ÕDÙ2ó4‰ˆà(,¯ªÓ5© 1˜A›3©ˆÐ5ØˆÜ‹WˆÜˆDà#Ÿy™yŸ|™|¨T¯Y©Y¯\©\Ñ:ó<Ù:�Fô # 6Ô+LÖMÙ:ñ<‰NˆF�Fà%-¨vÐ$6¸À6Ð8JÔ#K‘�˜Üœt F§K¡K£MÓ2´T¸'¿,¹,».Ó5IÕI×J�CØ 6Ô)¨s¸'Ô/AÜ" 6¨#¥;Ó/´3°w¸sµ|Ó3DÔDÚÜ#& t§|¡|°_Ö#E™˜Ø �7×/×/Ð/Ù$Ø29¸#¶,Ó N±,¨$À$Ç(Á(È1Ç+§ ±,˜Ð NØ $§	¡	£˜Ø˜aŸ B�›Û$)˜DØ*0°¯+¨+ Ù&+¨D¯M©M¸%Ó,@À6Õ,IÈ2Ó&N¡ Ø#%§?§? ?Ü*4Ð5OÓ*PÐ$PØ $§¡¨B¦ó	 +6ó %*ô $Fô	 Kñ $Lð$ �Ü" 4§<¡<°ÖA‘G�AØ˜a��BÜ ¤ T£Ó+�DÜ"¤3 t£9Ó-�DØ—M‘M´5¸¸tÀa½xÔ3HÓ"IÑ3H¨a 2¨§6 6Ñ3HÑ"IÖJñ	  Bð
 —‘ÔYÌÐQWÒHXÓY×Yñ7 ð8 ˆùòI7ùâIùÛDùô 4ùâ5ùò<ùò !Oùò #JsB   Ä#1Q:ÅQ?Æ R
ÆRÆ/R
ÇRÈRÌRÌ#RÐ4R ÒR
)rq   rr   rs   ri   r	   rm   )NNN)r  r  r  r  r  rB  rF  r  r=  rq  r  r  ©r  s   @r[   re   re   ¢  s5   ø‡ € ñò.Dô4%ð$ ñLó ðL÷:ð :r]   re   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚFormulaCollectioni)  z,A collection of formulae to use as origins. c                óª  € / V n         / V n        . V n        \        V P                  4       V P                   F˜  pVP                  P
                  p\        VP                  4      ^ 8”  d.   V P                   P                  V. 4      P                  V4       K`  VP                  P                  4       pWP                  P                  V/ 4      V&   Kš  	  R# )z6Doing this globally at module init time is a pain ... N)Úsymbolic_formulaeÚconcrete_formulaerl   r‰   ri   rÊ   rÉ   r	   Ú
setdefaultrd   rö   )rÆ   ÚfrÊ   Úinvs   &   r[   rF  ÚFormulaCollection.__init__,  s    € à!#ˆÔØ!#ˆÔØˆŒä�T—]‘]Ô#ð
 —”ˆAØ—F‘F—L‘LˆEÜ�1—9‘9‹~ Ô!Ø×&Ñ&×1Ñ1°%¸Ó<×CÑCÀAÖFà—f‘f×-Ñ-Ó/�ØDE×&Ñ&×1Ñ1°%¸Ó<¸SÓAó r]   c                ó  € VP                  4       pVP                  pW0P                  9   d2   W P                  V,          9   d   V P                  V,          V,          # W0P                  9  d   R# . pV P                  V,           F}  pVP	                  V4      pV Fc  pVP
                  P                  V4      pVP                  4       '       g   K6  VP                  V4      p	V	R8X  d   KP  VP                  W—WX34       Ke  	  K  	  VP                  R R7       V Fë  w  r§rX\        W…P                  R. VP                  P                  V4      VP                  P                  V4      VP                   P                  V4      4      p\"        ;QJ d=    R VP                  VP                   VP                  3 4       F  '       g   K   RM2	  RM.! R VP                  VP                   VP                  3 4       4      '       d   Ké  Vu # 	  R# )aû  
Given the suitable target ``func``, try to find an origin in our
knowledge base.

Examples
========

>>> from sympy.simplify.hyperexpand import (FormulaCollection,
...     Hyper_Function)
>>> f = FormulaCollection()
>>> f.lookup_origin(Hyper_Function((), ())).closed_form
exp(_z)
>>> f.lookup_origin(Hyper_Function([1], ())).closed_form
HyperRep_power1(-1, _z)

>>> from sympy import S
>>> i = Hyper_Function([S('1/4'), S('3/4 + 4')], [S.Half])
>>> f.lookup_origin(i).closed_form
HyperRep_sqrts1(-1/4, _z)
Nc                 ó   € V ^ ,          # rå   r   ræ   s   &r[   rç   Ú1FormulaCollection.lookup_origin.<locals>.<lambda>k  s   €  A a¦Dr]   ré   c              3   ó~   "  € T F3  qP                  \        P                  \        \        ) \        4      x € K5  	  R # 5ira   )rE  r   ÚNaNr   r   )rÒ   Úes   & r[   rÓ   Ú2FormulaCollection.lookup_origin.<locals>.<genexpr>o  s(   é € ÐNÑ;M°a—u‘uœQŸU™U¤B¬¨¬S×1Ð1Ó;Mùs   ‚;=TFr�   )rö   rÊ   rx  rw  rq  ri   rS  r
  r  rd   rí   re   rm   rq   Úsubsrr   rs   rì   )rÆ   ri   r{  rÊ   Úpossiblerz  ÚreplsrT  Úfunc2r   rA  Úf2s   &&          r[   Úlookup_originÚFormulaCollection.lookup_origin?  s”  € ð* ×#Ñ#Ó%ˆØ—
‘
ˆØ×*Ñ*Ô*Ø×-Ñ-¨eÕ4Ô4Ø×)Ñ)¨%Õ0°Õ5Ð5ð ×.Ñ.Ô.ÙàˆØ×'Ñ'¨×.Ð.ˆAØ×)Ñ)¨$Ó/ˆEÛ�ØŸ™Ÿ™¨Ó-�Ø×0Ñ0×2Ò2ÙØ×'Ñ'¨Ó-�Ø˜2”:ÙØ—‘ ¨QÐ 6Ö7ó ñ /ð 	�‰™.ˆÔ)Û!)ÑˆA�QÜ˜§¡ T¨2¨q¯s©s¯x©x¸«~Ø—C‘C—H‘H˜T“N A§C¡C§H¡H¨T£Nó4ˆBç“3ÑN¸B¿D¹DÀ"Ç$Á$ÈÏÉÑ;MÓN—3—3’3ÑN¸B¿D¹DÀ"Ç$Á$ÈÏÉÑ;MÓN×NÔNØ’	ñ	 "*ñ r]   )rx  rl   rw  N©	r  r  r  r  r  rF  r‰  r  r  rs  s   @r[   ru  ru  )  s   ø‡ € Ù7òF÷&3ð 3r]   ru  c                   ó@   a € ] tR tRt o RtR t]R 4       tR tRt	V t
R# )rŽ   iu  zË
This class represents a Meijer G-function formula.

Its data members are:
- z, the argument
- symbols, the free symbols (parameters) in the formula
- func, the function
- B, C, M (c/f ordinary Formula)
c                óä   € WW43 Uu. uF#  p\        \        \        \        V4      4      !  NK%  	  upw  rr4\	        WW44      V n        WPn        W`n        W n        Wpn	        W€n
        W�n        R # u upi ra   )r   r¦   r§   r   r•   ri   rm   r	   Ú_matcherrq   rr   rs   )rÆ   r�   rf   r�   rg   rm   r	   rq   rr   rs   r‘   rŸ   s   &&&&&&&&&&& r[   rF  ÚMeijerFormula.__init__€  sc   € ØACÈÑ@PÓQÑ@P¸1œ%¤¤c¬&°!£nÓ!5Ô6Ñ@PÑQ‰ˆ�Ü˜r rÓ.ˆŒ	ØŒØŒØŒØŒØŒØŽùò Rs   ‡)A-c                óv   € \        R  \        V P                  V P                  4      \        P
                  4      # )c                 ó<   € W^ ,          V^,          ,          ,           # rå   r   rJ  s   &&r[   rç   Ú+MeijerFormula.closed_form.<locals>.<lambda>Œ  rL  r]   rM  rÅ   s   &r[   r=  ÚMeijerFormula.closed_formŠ  rO  r]   c                ó¨  € VP                   V P                  P                   8w  d   R# V P                  V4      pVe–   Vw  r4\        VP                  VP
                  VP                  VP                  V P                  . V P                  P                  V4      V P                  P                  V4      V P                  P                  V4      R4
      # R# )zg
Try to instantiate the current formula to (almost) match func.
This uses the _matcher passed on init.
N)r3  ri   rŽ  rŽ   r�   rf   r�   rg   rm   rq   r„  rr   rs   )rÆ   ri   rh   r„  Únewfuncs   &&   r[   Útry_instantiateÚMeijerFormula.try_instantiateŽ  s›   € ð
 �>‰>˜TŸY™Y×0Ñ0Ô0ÙØ�m‰m˜DÓ!ˆØŠ?Ø‰MˆDÜ  §¡¨W¯Z©Z¸¿¹ÀWÇZÁZØ!%§¡¨Ø!%§¡§¡¨TÓ!2°D·F±F·K±KÀÓ4EØ!%§¡§¡¨TÓ!2°Dó:ð :ñ r]   )rq   rr   rs   rŽ  ri   r	   rm   N)r  r  r  r  r  rF  r  r=  r–  r  r  rs  s   @r[   rŽ   rŽ   u  s/   ø‡ € ñòð ñLó ðL÷:ð :r]   rŽ   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerFormulaCollectioniž  z5
This class holds a collection of meijer g formulae.
c                óú   € . p\        V4       \        \        4      V n        V F9  pV P                  VP                  P
                  ,          P                  V4       K;  	  \        V P                  4      V n        R # ra   )r«   r   r¦   rl   ri   r3  rd   r&  )rÆ   rl   Úformulas   &  r[   rF  Ú MeijerFormulaCollection.__init__£  sV   € ØˆÜ˜XÔ&Ü#¤DÓ)ˆŒÛˆGØ�M‰M˜'Ÿ,™,×0Ñ0Õ1×8Ñ8¸ÖAñ  ä˜TŸ]™]Ó+ˆŽr]   c                óº   € VP                   V P                  9  d   R# V P                  VP                   ,           F  pVP                  V4      pVf   K  Vu # 	  R# )z)Try to find a formula that matches func. N)r3  rl   r–  )rÆ   ri   r›  rh   s   &&  r[   r‰  Ú%MeijerFormulaCollection.lookup_origin«  sI   € à�>‰> §¡Ô.ÙØ—}‘} T§^¡^×4Ð4ˆGØ×)Ñ)¨$Ó/ˆCØŒØ’
ó 5r]   )rl   Nr‹  rs  s   @r[   r™  r™  ž  s   ø‡ € ñò,÷ð r]   r™  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚOperatoriµ  aL  
Base class for operators to be applied to our functions.

Explanation
===========

These operators are differential operators. They are by convention
expressed in the variable D = z*d/dz (although this base class does
not actually care).
Note that when the operator is applied to an object, we typically do
*not* blindly differentiate but instead use a different representation
of the z*d/dz operator (see make_derivative_operator).

To subclass from this, define a __init__ method that initializes a
self._poly variable. This variable stores a polynomial. By convention
the generator is z*d/dz, and acts to the right of all coefficients.

Thus this poly
    x**2 + 2*z*x + 1
represents the differential operator
    (z*d/dz)**2 + 2*z**2*d/dz.

This class is used only in the implementation of the hypergeometric
function expansion algorithm.
c                óN  € V P                   P                  4       pVP                  4        V.pVR,           F!  pVP                  V! VR,          4      4       K#  	  V^ ,          V^ ,          ,          p\	        VR,          VR,          4       F  w  rWWeV,          ,          pK  	  V# )aX  
Apply ``self`` to the object ``obj``, where the generator is ``op``.

Examples
========

>>> from sympy.simplify.hyperexpand import Operator
>>> from sympy.polys.polytools import Poly
>>> from sympy.abc import x, y, z
>>> op = Operator()
>>> op._poly = Poly(x**2 + z*x + y, x)
>>> op.apply(z**7, lambda f: f.diff(z))
y*z**7 + 7*z**7 + 42*z**5
r7  r�   )Ú_polyr;  r$  rd   rû   )rÆ   rÁ   ÚopÚcoeffsÚdiffsrZ   ÚrÚds   &&&     r[   ÚapplyÚOperator.applyÐ  sˆ   € ð —‘×&Ñ&Ó(ˆØ�‰ÔØ�ˆØ˜—�ˆAØ�L‰L™˜E "�I›Ö'ñ à�1�I�e˜A•hÕˆÜ˜˜r�
 E¨"¥IÖ.‰DˆAØ�1•�HŠAñ /àˆr]   r   N)r  r  r  r  r  r¨  r  r  rs  s   @r[   r   r   µ  s   ø‡ € ñ÷4ð r]   r   c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚMultOperatoriê  z Simply multiply by a "constant" c                ó0   € \        V\        4      V n        R # ra   )rP   r8  r¢  )rÆ   Úps   &&r[   rF  ÚMultOperator.__init__í  s   € Ü˜!œR“[ˆŽ
r]   ©r¢  N)r  r  r  r  r  rF  r  r  rs  s   @r[   r«  r«  ê  s   ø‡ € Ù+÷!ð !r]   r«  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚShiftAiñ  zIncrement an upper index. c                óŽ   € \        V4      pV^ 8X  d   \        R4      h\        \        V,          ^,           \        4      V n        R# )rƒ   z"Cannot increment zero upper index.N©r
   rZ  rP   r8  r¢  )rÆ   Úais   &&r[   rF  ÚShiftA.__init__ô  s4   € Ü�R‹[ˆØ�Œ7ÜÐAÓBÐBÜœ"˜R�% !�)¤RÓ(ˆŽ
r]   c                ó`   € R ^V P                   P                  4       ^ ,          ,          ,          # )z<Increment upper %s.>©r¢  r;  rÅ   s   &r[   Ú__str__ÚShiftA.__str__ú  s$   € Ø&¨!¨D¯J©J×,AÑ,AÓ,CÀAÕ,FÕ*FÕGÐGr]   r¯  N©	r  r  r  r  r  rF  r¸  r  r  rs  s   @r[   r±  r±  ñ  s   ø‡ € Ù%ò)÷Hð Hr]   r±  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚShiftBiþ  zDecrement a lower index. c                óœ   € \        V4      pV^8X  d   \        R4      h\        \        V^,
          ,          ^,           \        4      V n        R# )rV   z"Cannot decrement unit lower index.Nr³  ©rÆ   Úbis   &&r[   rF  ÚShiftB.__init__  s8   € Ü�R‹[ˆØ�Œ7ÜÐAÓBÐBÜœ"˜b 1�f�+¨�/¬2Ó.ˆŽ
r]   c                ón   € R ^V P                   P                  4       ^ ,          ,          ^,           ,          # )z<Decrement lower %s.>r·  rÅ   s   &r[   r¸  ÚShiftB.__str__  s)   € Ø&¨!¨D¯J©J×,AÑ,AÓ,CÀAÕ,FÕ*FÈÕ*JÕKÐKr]   r¯  Nrº  rs  s   @r[   r¼  r¼  þ  s   ø‡ € Ù$ò/÷Lð Lr]   r¼  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚUnShiftAi  zDecrement an upper index. c                óP  € \        \        \        WV.4      4      w  rpWn        W n        W0n        \        V4      p\        V4      pVP                  V4      ^,
          pV^ 8X  d   \        R4      h\        WE,          \        4      pV F%  pV\        \        V,           \        4      ,          pK'  	  \        R4      p\        WX,          V,
          V4      ;ršV F(  pWšV^,
          P                  V4      ,           ,          p	K*  	  V	P                  ^ 4      ) pV^ 8X  d   \        R4      h\        \        V	P                  4       RR V4      P                  4       P                  V\        V,          ^,           4      \        4      p	\        W–,
          V,          \        4      V n        R# )úNote: i counts from zero! z"Cannot decrement unit upper index.ÚAz0Cannot decrement upper index: cancels with lowerNr�   ©r¦   r§   r
   Ú_apÚ_bqÚ_iÚpoprZ  rP   r8  r   Úas_polyÚnthr;  r°   r„  r¢  )rÆ   rf   rg   r  rm   r´  r/  rj   rÇ  r@  ÚDrk   Úb0s   &&&&&        r[   rF  ÚUnShiftA.__init__  sN  € äœœW r¨q kÓ2Ó3‰	ˆ�àŒØŒØŒä�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆà�Œ7ÜÐAÓBÐBä�•”r‹NˆÛˆAØ””b˜1•fœbÓ!Õ!ŠAñ ô �#‹JˆÜ�R•T˜B•Y Ó"Ð"ˆÛˆAØ�a˜!•e—_‘_ QÓ'Õ'Õ'ŠAñ ð �e‰e�A‹hˆYˆØ�Œ7Üð 2ó 3ð 3ô ”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<¸QÄÀ2ÅÈÅ	ÓJÌBÓOˆä˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó\   € R V P                   : RV P                  : RV P                  : R2# )z<Decrement upper index #ú of ú, ú.>©rË  rÉ  rÊ  rÅ   s   &r[   r¸  ÚUnShiftA.__str__/  ó"   � Ø;?¿7¼7Ø8<¿¼À$Ç(Ä(ðLð 	Lr]   ©rÉ  rÊ  rË  r¢  Nrº  rs  s   @r[   rÄ  rÄ    s   ø‡ € Ù%ò*÷BLð Lr]   rÄ  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚUnShiftBi4  zIncrement a lower index. c                ó¦  € \        \        \        WV.4      4      w  rpWn        W n        W0n        \        V4      p\        V4      pVP                  V4      ^,           pV^ 8X  d   \        R4      h\        \        V^,
          ,          \        4      pV F,  pV\        \        V,           ^,
          \        4      ,          pK.  	  \        R4      p\        V^,
          V,          V,
          ^,           V4      p	\        WH4      p
V F!  pW©VP                  V4      ,           ,          p
K#  	  V
P                  ^ 4      pV^ 8X  d   \        R4      h\        \        V
P                  4       RR V4      P                  4       P                  V\        V^,
          ,          ^,           4      \        4      p
\        Wj,
          V,          \        4      V n        R# )rÆ  z Cannot increment -1 lower index.rq   z*Cannot increment index: cancels with upperNr�   rÈ  )rÆ   rf   rg   r  rm   r¿  r/  rk   rq   rÏ  r@  rj   rÐ  s   &&&&&        r[   rF  ÚUnShiftB.__init__7  sg  € äœœW r¨q kÓ2Ó3‰	ˆ�àŒØŒØŒä�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆà�Œ7ÜÐ?Ó@Ð@ä”�R˜!•V•œbÓ!ˆÛˆAØ””b˜1•f˜q•j¤"Ó%Õ%ŠAñ ô �#‹JˆÜ�"�q•&˜!•˜b• 1Õ$ aÓ(ˆÜ�‹JˆÛˆAØ�a—i‘i “lÕ"Õ#ŠAñ ð �U‰U�1‹XˆØ�Œ7ÜÐIÓJÐJä”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<ØŒr�2˜•6�{˜Q�ó Ü!#ó%ˆô ˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó\   € R V P                   : RV P                  : RV P                  : R2# )z<Increment lower index #rÓ  rÔ  rÕ  rÖ  rÅ   s   &r[   r¸  ÚUnShiftB.__str__Y  rØ  r]   rÙ  Nrº  rs  s   @r[   rÛ  rÛ  4  s   ø‡ € Ù$ò *÷DLð Lr]   rÛ  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerShiftAi^  zIncrement an upper b index. c                ó\   € \        V4      p\        V\        ,
          \        4      V n        R # ra   ©r
   rP   r8  r¢  r¾  s   &&r[   rF  ÚMeijerShiftA.__init__a  s   € Ü�R‹[ˆÜ˜"œr�'¤2Ó&ˆŽ
r]   c                óR   € R V P                   P                  4       ^,          ,          # )z<Increment upper b=%s.>r·  rÅ   s   &r[   r¸  ÚMeijerShiftA.__str__e  s   € Ø(¨D¯J©J×,AÑ,AÓ,CÀAÕ,FÕGÐGr]   r¯  Nrº  rs  s   @r[   rá  rá  ^  s   ø‡ € Ù'ò'÷Hð Hr]   rá  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerShiftBii  zDecrement an upper a index. c                ój   € \        V4      p\        ^V,
          \        ,           \        4      V n        R# ©rV   Nrã  r¾  s   &&r[   rF  ÚMeijerShiftB.__init__l  s!   € Ü�R‹[ˆÜ˜!˜b�&¤2�+¤rÓ*ˆŽ
r]   c                ó`   € R ^V P                   P                  4       ^,          ,
          ,          # )z<Decrement upper a=%s.>r·  rÅ   s   &r[   r¸  ÚMeijerShiftB.__str__p  s$   € Ø(¨A°·
±
×0EÑ0EÓ0GÈÕ0JÕ,JÕKÐKr]   r¯  Nrº  rs  s   @r[   rè  rè  i  s   ø‡ € Ù'ò+÷Lð Lr]   rè  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerShiftCit  zIncrement a lower b index. c                ó^   € \        V4      p\        V) \        ,           \        4      V n        R # ra   rã  r¾  s   &&r[   rF  ÚMeijerShiftC.__init__w  s   € Ü�R‹[ˆÜ˜2˜#¤�(¤BÓ'ˆŽ
r]   c                óT   € R V P                   P                  4       ^,          ) ,          # )z<Increment lower b=%s.>r·  rÅ   s   &r[   r¸  ÚMeijerShiftC.__str__{  s"   € Ø(¨T¯Z©Z×-BÑ-BÓ-DÀQÕ-GÐ,GÕHÐHr]   r¯  Nrº  rs  s   @r[   rï  rï  t  s   ø‡ € Ù&ò(÷Ið Ir]   rï  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerShiftDi  zDecrement a lower a index. c                ój   € \        V4      p\        V^,
          \        ,
          \        4      V n        R# rê  rã  r¾  s   &&r[   rF  ÚMeijerShiftD.__init__‚  s!   € Ü�R‹[ˆÜ˜"˜q�&¤2�+¤rÓ*ˆŽ
r]   c                ó`   € R V P                   P                  4       ^,          ^,           ,          # )z<Decrement lower a=%s.>r·  rÅ   s   &r[   r¸  ÚMeijerShiftD.__str__†  s$   € Ø(¨D¯J©J×,AÑ,AÓ,CÀAÕ,FÈÕ,JÕKÐKr]   r¯  Nrº  rs  s   @r[   rõ  rõ    s   ø‡ € Ù&ò+÷Lð Lr]   rõ  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerUnShiftAiŠ  zDecrement an upper b index. c           
     óp  a€ \        \        \        WW4V.4      4      w  rr4pWn        W n        W0n        W@n        WPn        \        V4      p\        V4      p\        V4      p\        V4      pVP                  V4      ^,
          p\        ^\        4      \        R V 4       4      ,          \        R V 4       4      ,          p\        R4      p	\        Wy,
          V	4      o\        Wi4      \        V3R lV 4       4      ,          \        V3R lV 4       4      ,          p
V
P                  ^ 4      pV^ 8X  d   \        R4      h\        \        V
P                  4       RR V	4      P!                  4       P#                  W—\        ,
          4      \        4      p
\        WŠ,
          V,          \        4      V n        R# )	rÆ  c              3   óX   "  € T F   p\        V\        ,
          \        4      x € K"  	  R # 5ira   ©rP   r8  ©rÒ   rk   s   & r[   rÓ   Ú*MeijerUnShiftA.__init__.<locals>.<genexpr>�  s   é € Ð<¹°Aœt A¬¥F¬B×/Ð/»ùó   ‚(*c              3   óX   "  € T F   p\        \        V,
          \        4      x € K"  	  R # 5ira   rþ  rÿ  s   & r[   rÓ   r   �  s"   é € ÐCaÑ^`ÐYZÄDÌÈaÍÔQS×DTÐDTÓ^`ùr  rÇ  c              3   óD   <"  € T F  pS^,           V,
          x € K  	  R# 5irê  r   ©rÒ   rj   rÏ  s   & €r[   rÓ   r   ¡  s   øé € Ð6±2¨a˜q 1�u qŸyšy³2ùs   ƒ c              3   óF   <"  € T F  pS) V,           ^,
          x € K  	  R# 5irê  r   r  s   & €r[   rÓ   r   ¡  s   øé € Ð=WÑTVÈqÀ¸rÀA½vÈ¿zºzÓTVùs   ƒ!z(Cannot decrement upper b index (cancels)Nr�   )r¦   r§   r
   Ú_anrÉ  Ú_bmrÊ  rË  rÌ  rP   r8  r   r   rÎ  rZ  r;  r°   r„  r¢  )rÆ   r�   rf   r�   rg   r  rm   r¿  r/  rÇ  r@  rÐ  rÏ  s   &&&&&&&     @r[   rF  ÚMeijerUnShiftA.__init__�  sH  ø€ ä ¤¤W¨r°r¸qÐ.AÓ!BÓCÑˆ�˜àŒØŒØŒØŒØŒä�"‹XˆÜ�"‹XˆÜ�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆä�”B‹Kœ$Ñ<¹Ó<Ó<Õ<¼tÑCaÑ^`ÓCaÓ?aÕaˆä�#‹JˆÜ�•˜‹OˆÜ�‹JœÔ6±2Ó6Ó6Õ6¼Ô=WÑTVÓ=WÓ9WÕWˆà�U‰U�1‹XˆØ�Œ7ÜÐGÓHÐHä”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<¸QÄRÅÓHÌ"ÓMˆä˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó”   € R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : R2# )z<Decrement upper b index #rÓ  rÔ  rÕ  ©rË  r  rÉ  r  rÊ  rÅ   s   &r[   r¸  ÚMeijerUnShiftA.__str__«  ó.   � ØEIÇWÄWØ&*§h¤h°·´¸$¿(¼(ÀDÇHÄHðNð 	Nr]   ©r  rÉ  r  rÊ  rË  r¢  Nrº  rs  s   @r[   rû  rû  Š  s   ø‡ € Ù'ò*÷<Nð Nr]   rû  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerUnShiftBi°  zIncrement an upper a index. c           
     óô  € \        \        \        WW4V.4      4      w  rr4pWn        W n        W0n        W@n        WPn        \        V4      p\        V4      p\        V4      p\        V4      pVP                  V4      ^,           p\        V\        4      pV F,  p	V\        ^V	,
          \        ,           \        4      ,          pK.  	  V F,  p	V\        V	^,
          \        ,
          \        4      ,          pK.  	  \        R4      p
\        W§,           ^,
          V
4      p\        ^V
4      pV F  pWË) V,           ,          pK  	  V F  pWËV,
          ,          pK  	  VP                  ^ 4      pV^ 8X  d   \        R4      h\        \        VP                  4       RR V
4      P                  4       P!                  V
^V,
          \        ,           4      \        4      p\        WŒ,
          V,          \        4      V n        R# )rÆ  rq   z(Cannot increment upper a index (cancels)Nr�   ©r¦   r§   r
   r  rÉ  r  rÊ  rË  rÌ  rP   r8  r   rÎ  rZ  r;  r°   r„  r¢  ©rÆ   r�   rf   r�   rg   r  rm   r´  r/  rj   rq   rÏ  r@  rk   rÐ  s   &&&&&&&        r[   rF  ÚMeijerUnShiftB.__init__³  s�  € ä ¤¤W¨r°r¸qÐ.AÓ!BÓCÑˆ�˜àŒØŒØŒØŒØŒä�"‹XˆÜ�"‹XˆÜ�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆä�”B‹KˆÛˆAØ”�a˜!•eœb•j¤"Ó%Õ%ŠAñ ãˆAØ”�a˜!•eœb•j¤"Ó%Õ%ŠAñ ô �#‹JˆÜ�•˜!•˜QÓˆÜ��A‹JˆÛˆAØ�"�q•&�MŠAñ ãˆAØ�a•%�LŠAñ ð �U‰U�1‹XˆØ�Œ7ÜÐGÓHÐHä”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<Øˆq�2�vœ�{óÜó!ˆô ˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó”   € R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : R2# )z<Increment upper a index #rÓ  rÔ  rÕ  r
  rÅ   s   &r[   r¸  ÚMeijerUnShiftB.__str__Ú  r  r]   r  Nrº  rs  s   @r[   r  r  °  s   ø‡ € Ù'ò%*÷NNð Nr]   r  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerUnShiftCiß  zDecrement a lower b index. c           
     óÖ  € \        \        \        WW4V.4      4      w  rr4pWn        W n        W0n        W@n        WPn        \        V4      p\        V4      p\        V4      p\        V4      pVP                  V4      ^,
          p\        ^\        4      pV F%  p	V\        V	\        ,
          \        4      ,          pK'  	  V F%  p	V\        \        V	,
          \        4      ,          pK'  	  \        R4      p
\        Wz,           V
4      p\        Wj4      pV F  pWË^,           V,
          ,          pK  	  V F  pWË) V,           ^,
          ,          pK  	  VP                  ^ 4      pV^ 8X  d   \        R4      h\        \        VP                  4       RR V
4      P                  4       P!                  V
\        V,
          4      \        4      p\        WŒ,
          V,          \        4      V n        R# )rÆ  rr   z(Cannot decrement lower b index (cancels)Nr�   r  )rÆ   r�   rf   r�   rg   r  rm   r¿  r/  rk   rr   rÏ  r@  rj   rÐ  s   &&&&&&&        r[   rF  ÚMeijerUnShiftC.__init__ç  s  € ä ¤¤W¨r°r¸qÐ.AÓ!BÓCÑˆ�˜àŒØŒØŒØŒØŒä�"‹XˆÜ�"‹XˆÜ�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆä�”B‹KˆÛˆAØ”�aœ"•fœbÓ!Õ!ŠAñ ãˆAØ””b˜1•fœbÓ!Õ!ŠAñ ô �#‹JˆÜ�•˜‹OˆÜ�‹JˆÛˆAØ�a•%˜!•)ÕŠAñ ãˆAØ�"�q•&˜1•*ÕŠAñ ð �U‰U�1‹XˆØ�Œ7ÜÐGÓHÐHä”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<¸QÄÀRÅÓHÌ"ÓMˆä˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó”   € R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : R2# )z<Decrement lower b index #rÓ  rÔ  rÕ  r
  rÅ   s   &r[   r¸  ÚMeijerUnShiftC.__str__  r  r]   r  Nrº  rs  s   @r[   r  r  ß  s   ø‡ € Ù&ò$*÷LNð Nr]   r  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚMeijerUnShiftDi  zIncrement a lower a index. c           
     óô  € \        \        \        WW4V.4      4      w  rr4pWn        W n        W0n        W@n        WPn        \        V4      p\        V4      p\        V4      p\        V4      pVP                  V4      ^,           p\        V\        4      pV F,  p	V\        ^V	,
          \        ,           \        4      ,          pK.  	  V F,  p	V\        V	^,
          \        ,
          \        4      ,          pK.  	  \        R4      p
\        V^,
          V
,
          V
4      p\        ^V
4      pV F  pWË) V,           ,          pK  	  V F  pWËV,
          ,          pK  	  VP                  ^ 4      pV^ 8X  d   \        R4      h\        \        VP                  4       RR V
4      P                  4       P!                  W§^,
          \        ,
          4      \        4      p\        WŒ,
          V,          \        4      V n        R# )rÆ  rq   z(Cannot increment lower a index (cancels)Nr�   r  r  s   &&&&&&&        r[   rF  ÚMeijerUnShiftD.__init__  s�  € ä ¤¤W¨r°r¸qÐ.AÓ!BÓCÑˆ�˜àŒØŒØŒØŒØŒä�"‹XˆÜ�"‹XˆÜ�"‹XˆÜ�"‹XˆØ�V‰V�A‹Y˜�]ˆä�”B‹KˆÛˆAØ”�a˜!•eœb•j¤"Ó%Õ%ŠAñ ãˆAØ”�a˜!•eœb•j¤"Ó%Õ%ŠAñ ô �#‹JˆÜ��a•˜!•˜QÓˆÜ��A‹JˆÛˆAØ�"�q•&�MŠAñ ãˆAØ�a•%�LŠAñ ð �U‰U�1‹XˆØ�Œ7ÜÐGÓHÐHä”�a—l‘l“n S bÐ)¨1Ó-×5Ñ5Ó7×<Ñ<Ø�A�vœ�{óÜó!ˆô ˜1�5 "�*¤bÓ)ˆŽ
r]   c                ó”   € R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : R2# )z<Increment lower a index #rÓ  rÔ  rÕ  r
  rÅ   s   &r[   r¸  ÚMeijerUnShiftD.__str__>  r  r]   r  Nrº  rs  s   @r[   r  r    s   ø‡ € Ù&ò%*÷NNð Nr]   r  c                   ó`   a € ] tR tRt o RtR t]R 4       t]R 4       t]R 4       t	R t
RtV tR	# )
ÚReduceOrderiC  z7Reduce Order by cancelling an upper and a lower index. c                óÄ  € \        V4      p\        V4      pW,
          pVP                  '       d   V^ 8  d   R# VP                  '       d   VP                  '       d   R# \        P                  V 4      p\        P                  p\        V4       F+  pV\        V,           V,           W&,           ,          ,          pK-  	  \        V\        4      Vn        Wn        W$n        V# )z;For convenience if reduction is not possible, return None. N)r
   Ú
is_IntegerrÏ   r	  r   rÀ   r   r‡   r%  r8  rP   r¢  Ú_aÚ_b)r_   r´  Úbjr@  r±   r­  Úks   &&&    r[   rÀ   ÚReduceOrder.__new__F  s¢   € ä�R‹[ˆÜ�R‹[ˆØ�GˆØ�|�|ˆ|˜q 1œuÙØ�=�=ˆ=˜R×.×.Ð.Ùä×Ñ Ó$ˆä�E‰EˆÜ�q–ˆAØ”"�r•'˜A•+ ¥Õ'Õ'ŠAñ ô ˜!œR“[ˆŒ
ØŒØŒàˆr]   c                óú  € \        V4      p\        V4      pW,
          pVP                  '       g   VP                  '       g   R# \        P	                  V 4      p\
        P                  p\        V4       F$  pWc\        ,          V,           V,           ,          pK&  	  \        V\        4      Vn
        VR8X  d   Wn        W%n        V# \        ^V^,
          RR7      Vn        \        ^V^,
          RR7      Vn        V# )zACancel b + sign*s and a + sign*s
This is for meijer G functions. NF)Úevaluater�   )r
   rÐ   r%  r   rÀ   r   r‡   r%  r8  rP   r¢  r&  r'  r   )r_   rk   rj   Úsignr@  r±   r­  r)  s   &&&&    r[   Ú_meijerÚReduceOrder._meijer\  sÂ   € ô �A‹JˆÜ�A‹JˆØ�EˆØ�=�=ˆ= §§ Ùä×Ñ Ó$ˆä�E‰EˆÜ�q–ˆAØ”r•'˜A•+ •/Õ"ŠAñ ô ˜!œR“[ˆŒ
Ø�2Œ:ØŒGØŒGð
 ˆô ˜!˜Q �U¨UÔ3ˆDŒGÜ˜!˜Q �U¨UÔ3ˆDŒGàˆr]   c                ó&   € V P                  WR4      # ©rV   r�   ©r.  )r_   rk   rj   s   &&&r[   Úmeijer_minusÚReduceOrder.meijer_minusv  s   € à�{‰{˜1 Ó$Ð$r]   c                óD   € V P                  ^V,
          ^V,
          ^4      # rU   r2  )r_   rj   rk   s   &&&r[   Úmeijer_plusÚReduceOrder.meijer_plusz  s   € à�{‰{˜1˜q�5 ! a¥%¨Ó+Ð+r]   c                ó@   € R V P                   : RV P                  : R2# )z"<Reduce order by cancelling upper z with lower rÕ  )r&  r'  rÅ   s   &r[   r¸  ÚReduceOrder.__str__~  s   � à�WŒW�d—g”gðð 	r]   r   N)r  r  r  r  r  rÀ   Úclassmethodr.  r3  r6  r¸  r  r  rs  s   @r[   r#  r#  C  sS   ø‡ € ÙBòð, ñó ðð2 ñ%ó ð%ð ñ,ó ð,÷ð r]   r#  c                ón  € \        V 4      p \        V4      pV P                  VR7       VP                  VR7       . p. pV  Fn  pRp\        \        V4      4       F)  pV! WaV,          4      pVf   K  VP	                  V4        M	  Vf   VP                  V4       K]  VP                  V4       Kp  	  WAV3# )z>Order reduction algorithm used in Hypergeometric and Meijer G ré   N)r¦   rí   r%  rÉ   rÌ  rd   )	rf   rg   Úgenrê   ÚnapÚ	operatorsrj   r£  r  s	   &&&&     r[   Ú_reduce_orderr?  ƒ  s¨   € ä	ˆb‹€BÜ	ˆb‹€Bà‡G�G�€GÔØ‡G�G�€GÔà
€Cà€IÛˆØˆÜ”s˜2“w–ˆAÙ�Q˜1�“ˆBØŒ~Ø—‘�q”	Ùñ	  ð
 Š:Ø�J‰J�qŽMà×Ñ˜RÖ ñ ð �IÐÐr]   c                ó”   € \        V P                  V P                  \        \        4      w  rp\        \        V!  \        V!  4      V3# )a¬  
Given the hypergeometric function ``func``, find a sequence of operators to
reduces order as much as possible.

Explanation
===========

Return (newfunc, [operators]), where applying the operators to the
hypergeometric function newfunc yields func.

Examples
========

>>> from sympy.simplify.hyperexpand import reduce_order, Hyper_Function
>>> reduce_order(Hyper_Function((1, 2), (3, 4)))
(Hyper_Function((1, 2), (3, 4)), [])
>>> reduce_order(Hyper_Function((1,), (1,)))
(Hyper_Function((), ()), [<Reduce order by cancelling upper 1 with lower 1.>])
>>> reduce_order(Hyper_Function((2, 4), (3, 3)))
(Hyper_Function((2,), (3,)), [<Reduce order by cancelling
upper 4 with lower 3.>])
)r?  rf   rg   r#  r   rc   r   )ri   r=  Únbqr>  s   &   r[   Úreduce_orderrB  �  s<   € ô. (¨¯©°·±¼+ÔGWÓXÑ€Cˆiäœ% ™+¤u¨c¡{Ó3°YÐ>Ð>r]   c                ó   € \        V P                  V P                  \        P                  R 4      w  rp\        V P
                  V P                  \        P                  \        4      w  rEp\        WWB4      W6,           3# )aË  
Given the Meijer G function parameters, ``func``, find a sequence of
operators that reduces order as much as possible.

Return newfunc, [operators].

Examples
========

>>> from sympy.simplify.hyperexpand import (reduce_order_meijer,
...                                         G_Function)
>>> reduce_order_meijer(G_Function([3, 4], [5, 6], [3, 4], [1, 2]))[0]
G_Function((4, 3), (5, 6), (3, 4), (2, 1))
>>> reduce_order_meijer(G_Function([3, 4], [5, 6], [3, 4], [1, 8]))[0]
G_Function((3,), (5, 6), (3, 4), (1,))
>>> reduce_order_meijer(G_Function([3, 4], [5, 6], [7, 5], [1, 5]))[0]
G_Function((3,), (), (), (1,))
>>> reduce_order_meijer(G_Function([3, 4], [5, 6], [7, 5], [5, 3]))[0]
G_Function((), (), (), ())
c                 ó   € \        V ) 4      # ra   r   ræ   s   &r[   rç   Ú%reduce_order_meijer.<locals>.<lambda>Ð  s   € Ô-=¸q¸bÔ-Ar]   )
r?  r�   rg   r#  r6  r�   rf   r3  r   r•   )ri   r   rA  Úops1Únbmr=  Úops2s   &      r[   Úreduce_order_meijerrI  ¹  se   € ô, # 4§7¡7¨D¯G©G´[×5LÑ5LÙ#AóC�N€Cˆdä" 4§7¡7¨D¯G©G´[×5MÑ5MÜ#3ó5�N€Cˆdô �c Ó)¨4­;Ð6Ð6r]   c                ó   a a€ V V3R lpV# )z>Create a derivative operator, to be passed to Operator.apply. c                 óˆ   <€ SV P                  S4      ,          V S,          ,           pVP                  \        S4      4      pV# ra   )r   Ú	applyfuncr¶   )rr   r¦  rs   rm   s   & €€r[   ÚdoitÚ&make_derivative_operator.<locals>.doitÙ  s4   ø€ Øˆa�f‰f�Q‹i�K˜!˜A�#ÕˆØ�K‰Kœ	 !›Ó%ˆØˆr]   r   )rs   rm   rM  s   ff r[   Úmake_derivative_operatorrO  ×  s   ù€ öð €Kr]   c                óP   € T p\        V4       F  pVP                  W24      pK  	  V# )z_
Apply the list of operators ``ops`` to object ``obj``, substituting
``op`` for the generator.
)Úreversedr¨  )rÁ   Úopsr£  rh   Úos   &&&  r[   Úapply_operatorsrT  à  s*   € ð
 €CÜ�cŽ]ˆØ�g‰g�cÓŠñ à€Jr]   c           	     ó  aa€ V P                   V P                  VP                   VP                  3 Uu. uF  p\        V\        4      NK  	  upw  rErg\	        \        VP                  4       4      4      \	        \        VP                  4       4      4      8w  gH   \	        \        VP                  4       4      4      \	        \        VP                  4       4      4      8w  d   \        V : RV: 24      h. pR oVV3R lp	VV3R lp
\        \        VP                  4       4      \        VP                  4       4      ,           \        R7       EFœ  pRpRpRpRpW´9   d   WK,          pWk,          pWµ9   d   W[,          pW{,          p\	        V4      \	        V4      8w  g   \	        V4      \	        V4      8w  d   \        V : RV: 24      hWÍWï3 Uu. uF  p\        V\        R7      NK  	  upw  rÍrïR pV! Wk4      pV! W{4      p\	        V4      ^ 8X  d   WŠ! . WþVV4      ,          pM½\	        V4      ^ 8X  d   W‰! V. VVV4      ,          pMšVR	,          pVR	,          pV^ ,          V,
          ^ 8:  g   V^ ,          V,
          ^ 8:  d   \        R4      hVV,
          ^ 8”  d$   W‰! WßVVV4      ,          pWŠ! WÏVVV4      ,          pM"WŠ! WßVVV4      ,          pW‰! WÞVVV4      ,          pWÆV&   WçV&   EKŸ  	  VP                  4        V# u upi u upi )
a¨  
Devise a plan (consisting of shift and un-shift operators) to be applied
to the hypergeometric function ``target`` to yield ``origin``.
Returns a list of operators.

Examples
========

>>> from sympy.simplify.hyperexpand import devise_plan, Hyper_Function
>>> from sympy.abc import z

Nothing to do:

>>> devise_plan(Hyper_Function((1, 2), ()), Hyper_Function((1, 2), ()), z)
[]
>>> devise_plan(Hyper_Function((), (1, 2)), Hyper_Function((), (1, 2)), z)
[]

Very simple plans:

>>> devise_plan(Hyper_Function((2,), ()), Hyper_Function((1,), ()), z)
[<Increment upper 1.>]
>>> devise_plan(Hyper_Function((), (2,)), Hyper_Function((), (1,)), z)
[<Increment lower index #0 of [], [1].>]

Several buckets:

>>> from sympy import S
>>> devise_plan(Hyper_Function((1, S.Half), ()),
...             Hyper_Function((2, S('3/2')), ()), z) #doctest: +NORMALIZE_WHITESPACE
[<Decrement upper index #0 of [3/2, 1], [].>,
<Decrement upper index #0 of [2, 3/2], [].>]

A slightly more complicated plan:

>>> devise_plan(Hyper_Function((1, 3), ()), Hyper_Function((2, 2), ()), z)
[<Increment upper 2.>, <Decrement upper index #0 of [2, 2], [].>]

Another more complicated plan: (note that the ap have to be shifted first!)

>>> devise_plan(Hyper_Function((1, -1), (2,)), Hyper_Function((3, -2), (4,)), z)
[<Decrement lower 3.>, <Decrement lower 4.>,
<Decrement upper index #1 of [-1, 2], [4].>,
<Decrement upper index #1 of [-1, 3], [4].>, <Increment upper -2.>]
z not reachable from c                 óö   € . p\        \        V 4      4       F^  pW,          W,          ,
          ^ 8”  d   Tp^pMTpRpW,          W,          8w  g   K;  WF! W4      .,          pW;;,          V,          uu&   K:  	  V# )rƒ   r�   )r%  rÉ   )ÚfroÚtoÚincÚdecrR  r  ÚshÚchs   &&&&    r[   Ú	do_shiftsÚdevise_plan.<locals>.do_shifts"  sj   € ØˆÜ”s˜3“x–ˆAØ�u�s•v�~ Ô!Ø�Ø‘à�Ø�à•%˜3�6–/Ø˜˜3›
�|Õ#�Ø—˜"••ñ !ð ˆ
r]   c           	     ó.   <aaa€ S! WR VVVV3R l4      # )z'Shift us from (nal, nbk) to (al, nbk). c                 ó$   € \        W,          4      # ra   )r±  ©r­  r  s   &&r[   rç   Ú2devise_plan.<locals>.do_shifts_a.<locals>.<lambda>4  s
   € ¬v°aµd¬|r]   c                 ó<   <€ \        V S,           SS,           VS4      # ra   )rÄ  )r­  r  ÚaotherÚbotherÚnbkrm   s   &&€€€€r[   rç   rb  5  s   ø€ ¤h¨q°6­z¸3À½<ÈÈAÔ&Nr]   r   )Únalrf  Úalrd  re  r]  rm   s   &f&ff€€r[   Údo_shifts_aÚ devise_plan.<locals>.do_shifts_a2  s   û€ á˜Ñ";ßNóPð 	Pr]   c                ó.   <a aa€ S! WVVV V3R lR 4      # )z'Shift us from (nal, nbk) to (nal, bk). c                 ó<   <€ \        SS,           V S,           VS4      # ra   )rÛ  )r­  r  rd  re  rg  rm   s   &&€€€€r[   rç   Ú2devise_plan.<locals>.do_shifts_b.<locals>.<lambda>:  s   ø€ ¤h¨s°V­|¸QÀ½ZÈÈAÔ&Nr]   c                 ó$   € \        W,          4      # ra   )r¼  ra  s   &&r[   rç   rm  ;  s
   € ¤f¨Q­T¤lr]   r   )rg  rf  Úbkrd  re  r]  rm   s   f&&ff€€r[   Údo_shifts_bÚ devise_plan.<locals>.do_shifts_b7  s   û€ á˜ßNÙ2ó4ð 	4r]   ré   c                 óZ   € . pV  F"  pW18w  g   K  VP                  W,          4       K$  	  V# ra   )r_  )r,  rê   r˜   r)  s   &&  r[   ÚothersÚdevise_plan.<locals>.othersN  s+   € ØˆAÛ�Ø–8Ø—H‘H˜S�VÖ$ñ ð ˆHr]   zNon-suitable parameters.r   r�   )rf   rg   rS   r\   rÉ   r¦   rú   rZ  Úsortedr   r$  )rl  Úoriginrm   rý   rô   rõ   Ú	nabucketsÚ	nbbucketsrR  ri  rp  r¦  rh  rg  ro  rf  rŸ   rs  rd  re  ÚnamaxÚamaxr]  s   &&f                   @r[   Údevise_planr{  ë  s¹  ù€ ð^ —y‘y &§)¡)¨V¯Y©Y¸¿	¹	ÑBó0DÙBˆFô 15°V¼UÖ0CÙBñ0DÑ,€H˜	ô Œ4�—‘“Ó Ó!¤S¬¨i¯n©nÓ.>Ó)?Ó%@Ô@Ü”�X—]‘]“_Ó%Ó&¬#¬d°9·>±>Ó3CÓ.DÓ*EÔEÜ³vºvÐFÓGÐGà
€Còö Pö
4ô ”D˜Ÿ™›Ó)¬D°·±³Ó,AÕAÔGW×XÐXˆØˆØˆØˆØˆØŒ=Ø•ˆBØ•,ˆCØŒ=Ø•ˆBØ•,ˆCÜˆr‹7”c˜#“hÔ¤# b£'¬S°«XÔ"5Ü»6Â6ÐJÓKÐKð ˜rÑ'ó)Ù'�ô # 1Ô*:×;Ù'ñ)Ñˆ�ò	ñ ˜	Ó%ˆÙ˜	Ó%ˆäˆr‹7�aŒ<à�;˜r 3¨F°FÓ;Õ;‰CÜ�‹W˜Œ\à�;˜s B¨¨F°FÓ;Õ;‰Cà˜•GˆEØ�b•6ˆDà�1�v˜�~ Ô" b¨¥e¨d¥l°aÔ&7Ü Ð!;Ó<Ð<à�t�|˜aÔà�{ 3¨R°¸Ó@Õ@�Ø�{ 2¨B°¸Ó?Õ?‘ð �{ 3¨R°¸Ó@Õ@�Ø�{ 3¨B°¸Ó?Õ?�à�!‰Ø�!Œñc Yðf ‡K�K„MØ€Jùòq0Dùòd)s   ³K>ÇLc                ó´  € \        V P                  \        4      \        V P                  \        4      r2\	        V\
        P                  ,          4      ^8w  d   R# V\
        P                  ,          ^ ,          pV^ 8:  d   R# \
        P                  V9  d   R# \        V\
        P                  ,          4      pVP                  4        V^ ,          pV^ 8:  d   R# \        V P                  4      pVP                  V4       \        V P                  4      pVP                  V4       V^,          pV U	u. uF  q™V,
          NK  	  pp	V U	u. uF  q™V,
          NK  	  pp	. p
\        V^,
          4       F$  pV
P                  \        V^,           4      4       K&  	  V
P                  4        \        V4      W,          ,          pT\        V Uu. uF  p\!        WÖ4      NK  	  up!  ,          pT\        V Uu. uF  p\!        Wæ4      NK  	  up!  ,          pV
\#        V4      .,          p
^ p\        V4       Fv  pW,          \        V4      ,          pT\        V Uu. uF  p\!        Wë4      NK  	  up!  ,          pT\        V Uu. uF  p\!        WÛ4      NK  	  up!  ,          pVV,          pKx  	  \%        Wx4      W¯) 3# u up	i u up	i u upi u upi u upi u upi )z>Try to recognise a hypergeometric sum that starts from k > 0. N)rS   rf   r\   rg   rÉ   r   rœ   r¦   rí   Úremover%  rd   r±  r$  r6   r   r5   r«  rc   )ri   rm   rô   rõ   r¦  r˜   r)  r=  rA  rY   rR  r@  Úfacrk   rj   r­  r/  s   &&               r[   Útry_shifted_sumr  t  s2  € ä˜dŸg™g¤uÓ-¬t°D·G±G¼UÓ/CˆhÜ
ˆ8”A—F‘FÕÓ Ô!ÙØ”—‘Õ˜Õ€AØˆA„vÙÜ‡v�v�XÔÙÜˆX”a—f‘fÕÓ€AØ‡F�F„HØ	ˆ!�€AØˆA„vÙä
ˆt�w‰w‹-€CØ‡J�Jˆq„MÜ
ˆt�w‰w‹-€CØ‡J�Jˆq„MØˆ…F€AÙÓ
™#�Qˆq�5ˆ5™#€CÐ
ÙÓ
™#�Qˆq�5ˆ5™#€CÐ
à
€CÜ�1�q•5Ž\ˆØ�
‰
”6˜!˜a�%“=Ö!ñ à‡K�K„Mä
�A‹,�q•tÕ
€CØŒ3¡3Ó'¡3˜a”�A–¡3Ñ'Ñ(Õ(€CØŒ3¡3Ó'¡3˜a”�A–¡3Ñ'Ñ(Õ(€CàŒL˜ÓÐÕ€Cà	€AÜ�1ŽXˆØ�D”˜1“ÕˆØ	ŒS¡SÓ)¡S ”2�a–8¡SÑ)Ñ*Õ*ˆØ	ŒS¡SÓ)¡S ”2�a–8¡SÑ)Ñ*Õ*ˆØ	ˆQ�Šñ	 ô ˜#Ó# S¨"Ð,Ð,ùò+ ùÚ
ùò (ùÚ'ùò *ùÚ)s$   Ä4J<ÅKÇK
Ç5K
ÉKÊKc           	     óÂ  a€ \        V P                  \        4      \        V P                  \        4      r2V\        P
                  ,          pV\        P
                  ,          pVP                  4        VP                  4        V Uu. uF  qf^ 8:  g   K  VNK  	  ppV Uu. uF  qf^ 8:  g   K  VNK  	  upoS'       dG   \        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       d   \        # V'       g   R# VR,          p^p	\        P                  p
\        \        \        V) 4      4      !   F‚  pW‘,          p	W›^,           ,          p	T	\        V P                   Uu. uF  qˆV,           NK  	  up!  ,          p	T	\        V P                   Uu. uF  qÌV,           NK  	  up!  ,          p	W©,          p
K„  	  V
# u upi u upi u upi u upi )zaRecognise polynomial cases. Returns None if not such a case.
Requires order to be fully reduced. c              3   ó:   <"  € T F  qSR,          8  x € K  	  R# 5i)rV   Nr�   r   )rÒ   rj   Úbl0s   & €r[   rÓ   Ú!try_polynomial.<locals>.<genexpr>¬  s   øé € Ð,© 1�s˜2•w–;«ùs   ƒFTNr�   )rS   rf   r\   rg   r   rœ   rí   Úallr   r‡   r   r¦   r%  r   )ri   rm   rô   rõ   rn  rÐ  rY   Úal0rj   r~  rh   r@  rk   r‚  s   &&           @r[   Útry_polynomialr†  ¡  s^  ø€ ô ˜dŸg™g¤uÓ-¬t°D·G±G¼UÓ/CˆhØ	”!—&‘&Õ	€BØ	”!—&‘&Õ	€BØ‡G�G„IØ‡G�G„IÙÓ
#‘b� ™F�1ˆ1‘b€CÐ
#ÙÓ
#‘b� ™F�1ˆ1‘bÑ
#€Cç
�s‹sÔ,©Ó,�s�sŠsÔ,©Ó,×,Ò,Üˆ	ßÙàˆB�€AØ
€CÜ
�%‰%€CÜ”Dœ ˜r›“OÔ$ˆØ�ˆØ�1�u�ˆØŒs D§G¢GÓ,¡G˜q˜—U�U¡GÑ,Ñ-Õ-ˆØŒs D§G¢GÓ,¡G˜q˜—U�U¡GÑ,Ñ-Õ-ˆØ�
Šñ %ð €Jùò# $ùÚ
#ùò -ùÚ,s$   ÂGÂGÂ GÂ-GÅ3GÆ#Gc           	     ór  € \        V P                  \        4      \        V P                  \        4      r!/ pVP	                  4        FG  w  rEV^ 8w  d
   WB9  d    R# W$,          p\        V4      \        V4      3W4&   VP                  VR4       KI  	  V/ 8w  d   R# \        P                  V9  d   R# V\        P                  ,          w  rxWx^.,           3V\        P                  &   \        R4      p	\        P                  p
\        P                  pVP	                  4        F¸  w  pw  rÆ\        V4      \        V4      8w  d    R# \        WÆ4       F…  w  rÞWÞ,
          P                  '       d6   WÞ,
          pV
\        Wé,           V4      ,          p
V\        Wï4      ,          pKR  Wí,
          pV
\        Wß4      ,          p
V\        WÙ,           V4      ,          pK‡  	  Kº  	  \        W«,          V	4      p\         P"                  ! V4      p. p/ pV EF¢  pVP%                  4       w  r«VP'                  V	4      '       gQ   \)        W©4      pVP*                  '       g   \-        R4      hVP/                  4       w  w  ríVWÛ,          V3.,          pK}  V
P'                  V	4      '       d   \1        R4      hVP3                  V	4      w  pw  p^pVP4                  '       d   VP6                  pVP8                  pVV	8X  d   ^ pM�VP:                  '       dq   VP=                  V	4      w  pp^pVV	8w  d   VP=                  V	4      w  ppVWé,          V,           8w  d   \1        RV,          4      hWÞ,          pVVV,          ,          pM\1        R4      hVP?                  V. 4      PA                  V
V,          V34       EK¥  	  / p/ p\        R4      pVPC                  R R	7       ^ ^^V,
          ,          /pV'       dJ   \E        VR,          ^,          4       F,  pVVV,          PG                  V4      ,          VV^,           &   K.  	  V FC  w  ppVP?                  \        P                  . 4      PA                  VVV,          ,          4       KE  	  VP	                  4        Fè  w  ppV F1  w  p pVP?                  \I        VWý4      . 4      PA                  V 4       K3  	  VPC                  R
 R	7       \E        ^VR,          ^,          ^,           4       F5  pV) \I        VWý4      3^\I        VV^,
          V4      3.V\I        VWý4      &   K7  	  V) \I        V^V4      3^^V,
          ,          \        P                  3.V\I        V^V4      &   Kê  	  / p!\K        \        P                  .\        VPM                  4       4      ,           4       F  w  ppVV!V&   K  	  \O        V!P	                  4       R R	7       UUu. uF  w  pp\Q        V4      NK  	  p"pp\S        V"4      p#\S        ^ .\        V#4      ,          .4      p$VP	                  4        F  w  pp \!        V !  V$V!V,          &   K  	  \U        \        V#4      4      p%VP	                  4        F'  w  ppV F  w  p p&V V%V!V,          V!V&,          3&   K  	  K)  	  \W        V VR. V#V$V%4      # u uppi )z‰
Try to find an expression for Hyper_Function ``func`` in terms of Lerch
Transcendents.

Return None if no such expression can be found.
Nr£   zp should be monomialz<Need partial fraction decomposition with linear denominatorszunrecognised form %sz%unrecognised form of partial fractionrm   c                 ó   € V ^,          # rU   r   ræ   s   &r[   rç   Útry_lerchphi.<locals>.<lambda>   s   €   1¦r]   ré   c                 ó   € V ^,          # rU   r   ræ   s   &r[   rç   r‰  *  s   € ˜Q˜qžTr]   c                 ó   € V ^,          # rU   r   ræ   s   &r[   rç   r‰  4  s   € ¸aÀ¾dr]   r�   ),rS   rf   r\   rg   rë   r¦   rÌ  r   rœ   r   r‡   rÉ   rû   Úis_positiver5   rN   r   Ú	make_argsr®   rE  rP   Úis_monomialrY  ÚLTÚNotImplementedErrorÚas_coeff_mulÚis_Powr   ÚbaseÚis_AddÚas_independentry  rd   rí   r%  r   r7   Ú	enumeraterú   ru  r   rK   rM   re   )'ri   rô   rõ   Úpairedrê   ÚvalueÚbvalueÚaintsÚbintsr£   r²   r³   Úavaluerj   rk   r)  Úpartr»   Ú	monomialsÚtermsrÜ   r­  ÚindepÚdepr@  ÚtmprA  Úderivr¤  rm   Úmonr˜   rZ   ÚtransÚbasisrq   rr   rs   Úb2s'   &                                      r[   Útry_lerchphir¨  ½  s¡  € ô ˜dŸg™g¤uÓ-¬t°D·G±G¼UÓ/Cˆhà€FØ—n‘nÖ&‰
ˆØ�!Œ8˜Ô+ÚØ•ˆÜ˜E“{¤D¨£LÐ1ˆ‰Ø�‰�S˜$Öñ 'ð �2„~ÙÜ‡v�v�XÔÙØœ!Ÿ&™&•>�L€Eà a S�[Ð)€FŒ1�6‰6�Näˆc‹
€AÜ�E‰E€EÜ�E‰E€EØ!'§¡¦ÑˆÑˆfÜˆv‹;œ#˜f›+Ô%Úô ˜Ö'‰DˆAØ•×"×"Ð"Ø•E�Øœ˜A�E 1›Õ%�Øœ˜A›Õ!’à•E�Øœ˜A›Õ!�Øœ˜A�E 1›Õ%’ó (ñ "0ô( �•˜aÓ €DÜ�=Š=˜Ó€DØ€IØ€EÜˆØ×)Ñ)Ó+‰ˆØ�y‰y˜�|Š|Ü�U“ˆAØ—=—=�=ÜÐ 6Ó7Ð7ØŸ™›‰J‰UˆaØ˜1�7 A˜,˜Õ'ˆIÙØ�9‰9�Q�<Š<Ü%ð 'Bó Cð Cà×)Ñ)¨!Ó,‰ˆ‰u�ØˆØ�:�:ˆ:Ø—‘ˆAØ—(‘(ˆCØ�!Œ8Ø‰AØ�Z�ZˆZØ×'Ñ'¨Ó*‰FˆAˆsØˆAØ�aŒxØ×)Ñ)¨!Ó,‘��1Ø�a•c˜A•gŒ~Ü)Ð*@À3Õ*FÓGÐGØ�FˆAØ�Q˜•T�M‰Eä%Ð&MÓNÐNØ×Ñ˜˜BÓ×&Ñ&¨¨e­°QÐ'7×8ñ= ðL €EØ€FÜˆc‹
€AØ‡N�N‘~€NÔ&Øˆa��Q•�iˆ.€CßÜ�y •} QÕ'Ö(ˆAØ˜3˜q�6Ÿ;™; q›>Õ)ˆC��A•‹Jñ )ã‰ˆˆ1Ø×Ñœ!Ÿ%™% Ó$×+Ñ+¨A¨c°!­f­HÖ5ñ à—‘–‰ˆˆ1Û‰DˆAˆqØ×Ñœh q¨!Ó/°Ó4×;Ñ;¸AÖ>ñ à	�‰‘>ˆÔ"Ü�q˜!˜B�% �( Q�,Ö'ˆAØ*+¨¬X°a¸Ó->Ð(?Ø)*¬H°Q¸¸A½¸qÓ,AÐ(Bð(DˆE”(˜1˜aÓ#Ó$ñ (ð '( R¬°!°Q¸Ó):Ð$;Ø%&¨¨A­¥Y´·±Ð$6ð$8ˆŒh�q˜!˜QÓÓ ñ ð €EÜœ1Ÿ5™5˜'¤D¨¯©«Ó$6Õ6Ö7‰ˆˆ1Øˆˆa‹ñ 8ä*0°·±³Ù5Bõ+Dô Eñ +D¡  AŒ[˜Ž^ñ +D€Eñ Eäˆu‹€AÜ��”C˜“F•
ˆ|Ó€AØ—‘–‰ˆˆ1Ü˜1‘gˆˆ%��(‹ñ äŒc�!‹f‹€AØ—‘–‰ˆˆ1Û‰EˆAˆrØ%&ˆAˆe�A�h˜˜b�	Ð!Ó"ó ñ ô �4˜˜D " a¨¨AÓ.Ð.ùóEs   ×$Z3c           	     ó
  € \        R4      pV P                  '       Ed•   V P                   Uu. uF  p\        V,           NK  	  ppV P                   Uu. uF  p\        V,           ^,
          NK  	  pp\        \	        V!  ,          V\	        V!  ,          ,
          p\        V\        4      pVP                  ! 4       p. p	\        V4      p
\        V4       F€  pV P                  ^ ,          V,           pV	\        V.\        V P                  R,          4      ,           V P                  V4      .,          p	W¸^,
          8  g   Km  V) W«V3&   W*W»^,           3&   K‚  	  \        V	4      p\        ^.^ .V^,
          ,          ,           .4      p\        V4      .p\        V4       F!  pVP                  W®V,          ,          4       K#  	  VP                  ! 4       pVP                  4        ^ .V,          p\!        V4       FD  w  pp\!        WÞV,          ,          4       F"  w  ppVV;;,          VV,          ,          uu&   K$  	  KF  	  \!        V4       FU  w  ppV) Wè^,
          ,          ^ V^,
          3,          ,          VP                  ! 4       ^ ,          ,          W¨^,
          V3&   KW  	  \#        WR. WÍV
4      # . p	\        V P                  R,          4      p\        \%        V4      4       F-  pV	\        . VV4      .,          p	VV;;,          ^,          uu&   K/  	  V	\        . VV4      .,          p	\        V	4      p\%        V4      p\        ^.^ .V^,
          ,          ,           .4      p\        V4      p
V\	        V P                  !  ,          V
^ V^,
          3&   \        ^V4       FG  pV P                  V^,
          ,          W«V^,
          3&   V P                  V^,
          ,          ) W«V3&   KI  	  \#        WR. WÍV
4      # u upi u upi )zM
Create a formula object representing the hypergeometric function ``func``.

rm   r7  N:NNN)r   rf   r8  rg   r   rP   r9  rM   r%  r>   r¦   rK   rL   rd   r;  r$  r–  re   rÉ   )ri   rm   rj   r>  rk   r?  r±   rO   r@  r¦  rs   r)  rq   rr   Úderivsr˜   rh   rZ   r¦  r§  rg   r  s   &                     r[   Úbuild_hypergeometric_formular«  @  s5  € ô 	ˆc‹
€AØ‡w‡w�wØ$(§G¢GÓ,¡G˜q”B˜—F�F¡GˆÐ,Ø(,¯ªÓ0© 1”B˜•F˜Q—J�J©ˆÐ0Ü”#�x‘.Õ  1¤S¨(¡^Õ#3Õ3ˆÜ�Dœ"‹~ˆØ�KŠK‹MˆØˆÜ�!‹HˆÜ�q–ˆAØ—‘˜•
˜Q•ˆAØ”e˜Q˜C¤$ t§w¡w¨r¥{Ó"3Õ3°T·W±W¸aÓ@ÐAÕAˆEØ�q•5ŽyØ˜"��Q�$‘Ø�!˜•U�(“ñ ô �5‹MˆÜ�Q�C˜1˜#˜q 1�u�+Õ%Ð&Ó'ˆÜ�a“&�ˆÜ�q–ˆAØ�M‰M˜! 1�I�+Ö&ñ à�OŠOÓˆØ	�	‰	ŒØˆc�!�eˆÜ˜a–L‰DˆAˆqÜ! !¨1¥I¥+Ö.‘��1Ø�A—˜!˜A�#••ó /ñ !ô ˜c–N‰DˆAˆqØ˜"˜V¨¥E�]¨1¨a°!­e¨8Õ4Õ4°T·_²_Ó5FÀqÕ5IÕIˆA�!�e�Qˆh‹Kñ #ä�t  b¨!°Ó2Ð2ð ˆÜ�$—'‘'˜!•*ÓˆÜ”s˜2“w–ˆAØ”e˜B  AÓ&Ð'Õ'ˆEØˆq�E�Q�J�Eñ  ð 	”%˜˜B Ó"Ð#Õ#ˆÜ�5‹MˆÜ�‹FˆÜ�Q�C˜1˜#˜q 1�u�+Õ%Ð&Ó'ˆÜ�!‹HˆØœ˜TŸW™W™•oˆˆ!ˆQ��Uˆ(‰Ü�q˜!–ˆAØŸ'™' ! a¥%�.ˆA��Q•ˆh‰KØ—w‘w˜q 1�u•~�oˆA�ˆd‹Gñ ô �t  b¨!°Ó2Ð2ùòY -ùÚ0s   ­O;ÁP c                óZ  € \        V 4      \        V4      rCTp\        V4      pV^ 8X  d   \        P                  # ^ RIHp V^8X  EdÚ   V^8X  EdÒ   W,           w  rxp	V^8X  dU   \        W—,
          V,
          4      \        V	4      ,          \        W—,
          4      ,          \        W˜,
          4      ,          # VR8X  d   V! W‡,
          V	,           4      ^8X  d   YxrxVR8X  EdA   V! Wx,
          V	,           4      ^8X  Ed&   VP                  '       d¢   VP                  '       d�   ^\        \        V,          ^,          4      ,          \        V) 4      ,          \        W‡,
          ^,           4      ,          \        V) ^,          4      ,          \        V^,          V,
          ^,           4      ,          # \        V^,          ^,           4      \        W‡,
          ^,           4      ,          \        V^,           4      ,          \        V^,          V,
          ^,           4      ,          # \        WV4      # )zÑ
Try to find a closed-form expression for hyper(ap, bq, z), where ``z``
is supposed to be a "special" value, e.g. 1.

This function tries various of the classical summation formulae
(Gauss, Saalschuetz, etc).
©r”   r�   )rÉ   r=   r   r‡   Úsympy.simplify.simplifyr”   r"   rÏ   rÐ   r    r   r>   )
rf   rg   rm   r­  ÚqÚz_r”   rj   rk   rZ   s
   &&&       r[   Úhyperexpand_specialr±  z  s‡  € ô ˆr‹7”C˜“G€qØ	
€BÜ�1‹€AØˆA„vÜ�u‰uˆÝ0ØˆA…v�!�q•&à•'‰ˆˆaØ�Œ6ä˜� �Ó#¤E¨!£HÕ,¬U°1µ5«\Õ9¼%ÀÅ»,ÕFÐFØ�Œ7‘x ¥¨¥	Ó*¨aÔ/ØˆqØ��7‘x ¥¨¥	Ó*¨aÕ/à�|�|ˆ| §§ ØœœR �T !�V›•}¤U¨A¨2£YÕ.¬u°QµU¸QµYÓ/?Õ?Ü˜A˜2˜a�4“[õ!Ü!& q¨¥s¨Q¥w°¥{Ó!3õ4ð 4ô ˜Q˜q�S 1�W“~¤e¨A­E°A­IÓ&6Õ6Ü˜1˜q�5“\õ"Ü"'¨¨!­¨a­°!­Ó"4õ5ð 5ô �˜ÓÐr]   NÚz0Údefaultc                ón  aaaaaa€ SP                   '       d   \        P                  # ^ RIHp \        SRR7      oSR8X  d   RoVVVVVV3R lp\        f   \        4       s\        RV 4       \        V 4      w  r	V	'       d   \        RV 4       M\        R	4       \        V S4      p
V
eU   \        R
4       \        W©V3R l4      p\        VS,          SV3R l4      p\        V! V4      P                  SS4      4      # \        P                  p\        V S4      p
V
e   V
w  rp\        RV 4       Wœ,          p	\        W¹V3R l4      p\        VS,          SV3R l4      pV! V4      P                  SS4      p\        S4      R9   d~   \!        V P"                  4      \!        V P$                  4      3R8X  dO   \'        V 4      pV! WÙ4      P)                  \*        \,        4      pVP/                  \*        4      '       g	   Wë,           # \        P1                  V 4      pVf   \3        V 4      pVf   \        RR4       \'        V 4      p\        RVP4                  RVP6                  4       V	\9        WP6                  S4      ,          p	V! Wù4      V,           p\;        VRR7      P)                  \*        \,        4      # )a  
Try to find an expression for the hypergeometric function ``func``.

Explanation
===========

The result is expressed in terms of a dummy variable ``z0``. Then it
is multiplied by ``premult``. Then ``ops0`` is applied.
``premult`` must be a*z**prem for some a independent of ``z``.
r­  F)r„  r³  Únonrepsmallc                 óØ  <€ \        V P                  P                  V P                  S
4      V\	        V P
                  P                  V P                  S
4      S
4      4      p\        VS\	        V P
                  P                  V P                  S
4      S\        V P
                  P                  ^ ,          4      ,          ,           S
4      4      pS^8X  d   VP                  \        S
4      4      p\        R \        W P                  P                  V P                  S
4      4      \        P                  4      S,          pVP                  S
S	4      pS'       d   VP                  S4      pV# )rƒ   c                 ó<   € W^ ,          V^,          ,          ,           # rå   r   rJ  s   &&r[   rç   Ú5_hyperexpand.<locals>.carryout_plan.<locals>.<lambda>Á  s   € ˜q 1¥ a¨¥d¥ž{r]   )rT  rr   r„  rm   rO  rs   rL   ÚshaperL  r¶   r   rû   rq   r   rœ   Úrewrite)rz  rR  rr   r¦  rh   Úops0ÚpremÚpremultrº  rm   r²  s   &&   €€€€€€r[   Úcarryout_planÚ#_hyperexpand.<locals>.carryout_plan¸  s  ø€ Ü˜AŸC™CŸH™H Q§S¡S¨"Ó-¨sÜ4°Q·S±S·X±X¸a¿c¹cÀ2Ó5FÈÓKóMˆä˜A˜tÜ4°Q·S±S·X±X¸a¿c¹cÀ2Ó5FØ+/´°A·C±C·I±I¸aµLÓ0AÕ+Aõ6BØCEóGóHˆð �aŒ<Ø—‘œI b›MÓ*ˆAÜÑ*¬C°·3±3·8±8¸A¿C¹CÀÓ3DÓ,EÄqÇvÁvÓNÈwÕVˆØ�f‰f�R˜‹mˆßØ—+‘+˜gÓ&ˆCØˆ
r]   z)Trying to expand hypergeometric function ú  Reduced order to ú  Could not reduce order.z  Recognised polynomial.c                 ó4   <€ SV P                  S4      ,          # ra   ©r   ©rz  r²  s   &€r[   rç   Ú_hyperexpand.<locals>.<lambda>Ý  s   ø€ °°1·6±6¸"³:¶r]   c                 ó4   <€ SV P                  S4      ,          # ra   rÃ  rÄ  s   &€r[   rç   rÅ  Þ  s   ø€ °r¸!¿&¹&À»*¶}r]   z+  Recognised shifted sum, reduced order to c                 ó4   <€ SV P                  S4      ,          # ra   rÃ  rÄ  s   &€r[   rç   rÅ  ê  s   ø€ ¨"¨Q¯V©V°B«Z®-r]   c                 ó4   <€ SV P                  S4      ,          # ra   rÃ  rÄ  s   &€r[   rç   rÅ  ë  s   ø€ °2°a·f±f¸R³j¶=r]   z  Could not find an origin. z@Will return answer in terms of simpler hypergeometric functions.z  Found an origin: Ú T©Úpolarr1  )r€   rV   )Úis_zeror   r‡   r®  r”   r<   Ú_collectionru  r¼   rB  r†  rT  r=   r„  rœ   r  rÉ   rf   rg   r«  Úreplacer>   r±  rE  r‰  r¨  r=  ri   r{  rR   )ri   rm   r»  r²  r½  r¼  rº  r”   r¾  rR  rh   r­  Únopsrz  r¦  r›  s   &ffffff         r[   Ú_hyperexpandrÐ  ¢  sD  ý€ ð 	‡y‡y€yÜ�u‰uˆå0ä�˜Ô€AØ�)ÔØˆ÷ò ô* ÒÜ'Ó)ˆä	Ð
5°tÔ<ô ˜TÓ"�I€Dß
ÜÐ# TÕ*äÐ)Ô*ô ˜˜rÓ
"€CØ
‚ÜÐ(Ô)Ü˜CÔ&=Ó>ˆÜ˜A˜g�I tÔ-DÓEˆÜ™( 1›+×*Ñ*¨2¨qÓ1Ó2Ð2ô 	
�‰€AÜ
˜$ Ó
#€CØ
‚Ø‰ˆ�AÜÐ;¸TÔBØ�ˆô 	˜Ô 7Ó8€AÜ˜˜'�	 4Ô)@ÓA€AÙ�‹×Ñ˜˜QÓ€Aô �!ƒ}˜Ô¤S¨¯©£\´3°t·w±w³<Ð$@ÀFÔ$JÜ(¨Ó.ˆÙ˜!Ó!×)Ñ)¬%Ô1DÓEˆØ�u‰u”U�|Š|Ø•5ˆLô ×'Ñ'¨Ó-€Gð ‚Ü˜tÓ$ˆà‚ÜÐ,ð2ô	3ô /¨tÓ4ˆä	Ð
 ×!4Ñ!4°c¸7¿<¹<ÔHð Œ;�tŸ\™\¨2Ó.Õ.€Cñ 	�gÓ# aÕ'€Aä�Q˜dÔ#×+Ñ+¬EÔ3FÓGÐGr]   c           	     óø  aaaa	a
€ R p\        V P                  4      o\        V P                  4      o\        V P                  4      o	\        V P                  4      o
. pRpV'       EdŽ   RpV! SVP                  VVV	V
V3R l^S	S
,           4      pVe   WF.,          pRpKA  V! SVP                  VVV	V
V3R l^S	S
,           4      pVe   WF.,          pRpKw  V! S	VP                  VVV	V
V3R lRSS,           4      pVe   WF.,          pRpK­  V! S
VP                  VVV	V
V3R lRSS,           4      pVe   WF.,          pRpKã  V! SVP                  V3R lR. 4      pVe   WF.,          pRpEK  V! SVP                  V3R	 lR. 4      pVe   WF.,          pRpEK;  V! S	VP                  V	3R
 l^. 4      pVe   WF.,          pRpEKg  V! S
VP                  V
3R l^. 4      pVf   EKˆ  WF.,          pRpEK–  S\        VP                  4      8w  gO   S\        VP                  4      8w  g5   S	\        VP                  4      8w  g   S
\        VP                  4      8w  d   \        R4      hVP                  4        V# )a^  
Find operators to convert G-function ``fro`` into G-function ``to``.

Explanation
===========

It is assumed that ``fro`` and ``to`` have the same signatures, and that in fact
any corresponding pair of parameters differs by integers, and a direct path
is possible. I.e. if there are parameters a1 b1 c1  and a2 b2 c2 it is
assumed that a1 can be shifted to a2, etc. The only thing this routine
determines is the order of shifts to apply, nothing clever will be tried.
It is also assumed that ``fro`` is suitable.

Examples
========

>>> from sympy.simplify.hyperexpand import (devise_plan_meijer,
...                                         G_Function)
>>> from sympy.abc import z

Empty plan:

>>> devise_plan_meijer(G_Function([1], [2], [3], [4]),
...                    G_Function([1], [2], [3], [4]), z)
[]

Very simple plans:

>>> devise_plan_meijer(G_Function([0], [], [], []),
...                    G_Function([1], [], [], []), z)
[<Increment upper a index #0 of [0], [], [], [].>]
>>> devise_plan_meijer(G_Function([0], [], [], []),
...                    G_Function([-1], [], [], []), z)
[<Decrement upper a=0.>]
>>> devise_plan_meijer(G_Function([], [1], [], []),
...                    G_Function([], [2], [], []), z)
[<Increment lower a index #0 of [], [1], [], [].>]

Slightly more complicated plans:

>>> devise_plan_meijer(G_Function([0], [], [], []),
...                    G_Function([2], [], [], []), z)
[<Increment upper a index #0 of [1], [], [], [].>,
<Increment upper a index #0 of [0], [], [], [].>]
>>> devise_plan_meijer(G_Function([0], [], [0], []),
...                    G_Function([-1], [], [1], []), z)
[<Increment upper b=0.>, <Decrement upper a=0.>]

Order matters:

>>> devise_plan_meijer(G_Function([0], [], [0], []),
...                    G_Function([1], [], [1], []), z)
[<Increment upper a index #0 of [0], [], [1], [].>, <Increment upper b=0.>]
c                ón  a€ \        \        W4      4       F›  w  pw  opSV,
          P                  '       g   K$  VS,
          V,          ^ 8”  g   K;  \        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   K}  V! V4      pW;;,          V,          uu&   Vu # 	  R# )a  Try to apply ``shifter`` in order to bring some element in ``f``
nearer to its counterpart in ``to``. ``diff`` is +/- 1 and
determines the effect of ``shifter``. Counter is a list of elements
blocking the shift.

Return an operator if change was possible, else None.
c              3   ó.   <"  € T F
  pSV8g  x € K  	  R # 5ira   r   )rÒ   rY   rj   s   & €r[   rÓ   Ú8devise_plan_meijer.<locals>.try_shift.<locals>.<genexpr>R  s   øé € Ð0© 1˜˜Qž«ùs   ƒFTN)r–  rû   rÏ   r„  )	rz  r£   Úshifterr   ÚcounterÚidxrk   r[  rj   s	   &&&&&   @r[   Ú	try_shiftÚ%devise_plan_meijer.<locals>.try_shiftG  sy   ø€ ô %¤S¨£YÖ/‰KˆC‘�!�Qà�Q•×"×"Ò"¨¨A­¨t¥|°aÖ'7ß“CÔ0©Ó0—C—C’CÔ0©Ó0×0Ô0Ù˜S“\�Ø—˜$•“Ø’	ó 0r]   TFc                 ó$   <€ \        SSSSV S4      # ra   )r  ©r  ÚfanÚfapÚfbmÚfbqrm   s   &€€€€€r[   rç   Ú$devise_plan_meijer.<locals>.<lambda>_  ó   ø€ ¤°°S¸#¸sÀAÀqÔ!Ir]   c                 ó$   <€ \        SSSSV S4      # ra   )r  rÛ  s   &€€€€€r[   rç   rà  f  rá  r]   c                 ó$   <€ \        SSSSV S4      # ra   )rû  rÛ  s   &€€€€€r[   rç   rà  m  rá  r]   c                 ó$   <€ \        SSSSV S4      # ra   )r  rÛ  s   &€€€€€r[   rç   rà  t  rá  r]   c                 ó(   <€ \        SV ,          4      # ra   )rè  )r  rÜ  s   &€r[   rç   rà  z  ó   ø€ ¬\¸#¸a½&Ô-Ar]   c                 ó(   <€ \        SV ,          4      # ra   )rõ  )r  rÝ  s   &€r[   rç   rà    ræ  r]   c                 ó(   <€ \        SV ,          4      # ra   )rá  )r  rÞ  s   &€r[   rç   rà  „  ræ  r]   c                 ó(   <€ \        SV ,          4      # ra   )rï  )r  rß  s   &€r[   rç   rà  ‰  ræ  r]   zCould not devise plan.r�   )r¦   r�   rf   r�   rg   r�  r$  )rW  rX  rm   rØ  rR  Úchanger£  rÜ  rÝ  rÞ  rß  s   &&f    @@@@r[   Údevise_plan_meijerrë    sC  ü€ òtô ˆs�v‰v‹,€CÜ
ˆs�v‰v‹,€CÜ
ˆs�v‰v‹,€CÜ
ˆs�v‰v‹,€CØ
€CØ€Fß
ˆ&ØˆÙ�s˜BŸE™EßIÐIØ˜# �)ó%ˆð Š>Ø�4�KˆCØˆFÙÙ�s˜BŸE™EßIÐIØ˜# �)ó%ˆð Š>Ø�4�KˆCØˆFÙÙ�s˜BŸE™EßIÐIØ˜3 �9ó&ˆð Š>Ø�4�KˆCØˆFÙÙ�s˜BŸE™EßIÐIØ˜3 �9ó&ˆð Š>Ø�4�KˆCØˆFÙÙ�s˜BŸE™EÔ#AÀ2ÀrÓJˆØŠ>Ø�4�KˆCØˆFÚÙ�s˜BŸE™EÔ#AÀ2ÀrÓJˆØŠ>Ø�4�KˆCØˆFÚÙ�s˜BŸE™EÔ#AÀ1ÀbÓIˆØŠ>Ø�4�KˆCØˆFÚÙ�s˜BŸE™EÔ#AÀ1ÀbÓIˆØ�>Ø�4�KˆCØˆFÚØ
Œd�2—5‘5‹kÔ˜S¤D¨¯©£KÔ/°3¼$¸r¿u¹u»+Ô3EØ”4˜Ÿ™“;ÔÜ!Ð":Ó;Ð;Ø‡K�K„MØ€Jr]   c           
     óÚ
  aaa€ \         f   \        4       s VR8X  d   RpT p\        RV 4       \        R4      p\	        V 4      w  p oS'       d   \        RV 4       M\        R4       \         P                  V 4      pVeþ   \        RVP                  4       S\        VP                  W4      ,          o\        VP                  P                  VP                  V4      S\        VP                  P                  VP                  V4      V4      4      pVP                  \        V4      4      pW‡P                   P                  VP                  V4      ,          p	V	^ ,          P                  Wa4      p	\#        V	RR	7      # \        R
4       R oVVV3R lp
\        R4      oV
! V P$                  V P&                  V P(                  V P*                  Wa4      w  r¼R pS FE  p\-        VP.                  P                  V^S,          \0        \0        ) /4      \0        4      Vn        KG  	  V
! V! V P&                  4      V! V P$                  4      V! V P*                  4      V! V P(                  4      S^V,          4      w  pp\#        VP                  Wa4      RR	7      p\#        VP                  S^V,          4      RR	7      p\3        V\4        4      '       g   VP                  S^V,          4      pV ! V4      pVP6                  ^ 8”  gt   VP6                  ^ 8X  ds   \9        VP(                  4      \9        VP*                  4      8X  dF   \;        VP<                  4      R8  RJd*   \?        V4      \?        ^4      8X  d   VRJd   RpVRJd   RpVRJ d   TPA                  T;'       g    R4      pMTPA                  T;'       g    R4      pVRJ d   TPA                  T;'       g    R4      pMTPA                  T;'       g    R4      pVRJd   VRJd   V^ 8X  d   RpV\B        8X  d   Rp\3        V\4        4      '       g   VP                  Wa4      p\3        V\4        4      '       g   VP                  Wa4      pR pV! W¼4      pV! VV4      p\E        VV4      ^ ^\F        38:  d   VV8  d   V# V# \I        V^ ,          V^ ,          4      ^8:  d8   \I        V^,          V^,          4      ^8:  d   \K        W¼3VV3V! V4      R34      # \K        W¼3VV3V! V4      R34      p	V	PM                  \N        4      '       d   V'       g   \        R4       V	PM                  \N        4      '       d	   V'       d   V	# V! V4      # )af  
Try to find an expression for the Meijer G function specified
by the G_Function ``func``. If ``allow_hyper`` is True, then returning
an expression in terms of hypergeometric functions is allowed.

Currently this just does Slater's theorem.
If expansions exist both at zero and at infinity, ``place``
can be set to ``0`` or ``zoo`` for the preferred choice.
Nr³  z1Try to expand Meijer G function corresponding to rm   rÀ  rÁ  z  Found a Meijer G formula: TrÊ  z;  Could not find a direct formula. Trying Slater's theorem.c                óº   € V  FT  p\        W,          4      ^8”  g   K  ^ pW!9   d   \        W,          4      pV^,           \        W,          4      8  g   KS   R# 	  R# )zTest if slater applies. FT)rÉ   )r*  r)  r  r˜   s   &&  r[   Úcan_doÚ_meijergexpand.<locals>.can_doÍ  sH   € ãˆAÜ�3•6‹{˜QŽØ�Ø”8Ü˜C�F›�AØ�q•5œ3˜s�v›;Ö&Ú ñ ñ r]   c                 óv  <a€ \        WW#4      pVP                  4       w  rxr—S+! W‰4      '       g   \        P                  R 3# \	        V 4      \	        V4      ,           \	        V4      \	        V4      ,           8  p
\	        V 4      \	        V4      ,           \	        V4      \	        V4      ,           8X  d   \        S4      ^8  p
V
R J d   \        P                  R 3# \        P                  pV EF%  p\	        WŒ,          4      ^8X  Ed´   WŒ,          ^ ,          p^p\        V4      pVP                  V4       V F  pV\        VV,
          4      ,          pK  	  V  F#  pV\        ^V,           V,
          4      ,          pK%  	  V F#  pV\        ^V,           V,
          4      ,          pK%  	  V F  pV\        VV,
          4      ,          pK  	  \        V 4      \        V4      ,            Uu. uF  p^V,           V,
          NK  	  pp\        V4      \        V4      ,            Uu. uF  p^V,           V,
          NK  	  pp\        \        P                  \	        V4      \	        V4      ,
          ,          4      pVV,          pS-V,          V,          p\        \        VV4      VS,S-VVRR7      pW¾V,          ,          pEKÎ  WŒ,          ^ ,          pWŒ,          R,           Uu. uF  pVV,
          NK  	  pp\	        V4      pWœ,          RV^,             Uu. uF  pVV,
          NK  	  pp\        V4      pWŒ,           F  pVP                  V4       K  	  \        V4      p Wœ,          RV  F  pV P                  V4       K  	  VR,          p!\        VV4       U"Uu. uF  w  p"pV"V,
          NK  	  p#p"p\        R4      p$SV$,          p%V FT  p\        V^4      '       g'   VP                   '       d   \#        \%        V4      4      pV%\        VV$,
          4      ,          p%KV  	  V  F#  pV%\        ^V,
          V$,           4      ,          p%K%  	  V F#  pV%\        ^V,
          V$,           4      ,          p%K%  	  V F  pV%\        VV$,
          4      ,          p%K  	  \'        V%4      p%\)        \#        \%        V!4      4      4       F1  p&\+        V%V$VV&,           4      p'\-        V'S,V3R l4      p'VV',          pK3  	  VV!,           p(\        \        P                  \	        V 4      \	        V4      ,           ^,           ,          4      pVV,          pS-V,          V(,          p\        V 4      \        V4      ,            Uu. uF  p^V(,           V,
          NK  	  up^.,           p\        V4      \        V4      ,            Uu. uF  p^V(,           V,
          NK  	  pp\        \        VV4      VS,S-VV(RR7      p\        P                  V!,          \/        V!4      ,          p)\)        V4       FU  p*V)\        P                  V#V*,          ,          \1        V!VV*,          ,
          ^,           V#V*,          4      ,          ,          p)KW  	  V  F#  pV)\        ^V,
          V(,           4      ,          p)K%  	  V F  pV)\        VV(,
          4      ,          p)K  	  V  F  pV)\        VV(,
          4      ,          p)K  	  V F#  pV)\        ^V,
          V(,           4      ,          p)K%  	  VV)V,          ,          pEK(  	  Wº3# u upi u upi u upi u upi u upp"i u upi u upi )FN©rº  r7  r¨   c                 ó4   <€ SV P                  S4      ,          # ra   rÃ  )rz  rm   s   &€r[   rç   Ú3_meijergexpand.<locals>.do_slater.<locals>.<lambda>!	  s   ø€ À!ÀAÇFÁFÈ1ÃIÆ+r]   r�   )r•   r0  r   rœ   rÉ   rü   r¦   r}  r"   r1   ÚNegativeOnerÐ  rc   rû   r   r   rW   ÚintÚroundr   r%  rQ   rT  r6   r5   ).r�   r�   rf   rg   rm   Úzfinalri   rA  r*  r)  Úcondrh   r/  Úbhr~  Úbor(  Úajrj   r=  rk   rA  r)  Úhargr½  ÚhypÚb_r¿  Úkir�   r´  ÚliÚaoÚlur˜   Údir¨   Ú	integrandr¦  ÚresidÚaurr   r  rî  rR  r£   s.   &&&&f&                                     €€€r[   Ú	do_slaterÚ!_meijergexpand.<locals>.do_slaterØ  sÅ  ù€ ô ˜" "Ó)ˆØ×-Ñ-Ó/‰ˆ�Ù�c×ÒÜ—6‘6˜5�=Ð ä�2‹wœ˜R›Õ ¤3 r£7¬S°«WÕ#4Ñ4ˆÜˆr‹7”S˜“WÕ¤ B£¬#¨b«'Õ 1Ô1Ü�q“6˜A‘:ˆDØ�5‹=Ü—6‘6˜5�=Ð ä�f‰fˆÜˆAÜ�3•6‹{˜aÕØ•V˜A•Y�Ø�Ü˜"“X�Ø—	‘	˜"”Û�BØœ5  b¥›>Õ)’Cñ ã�BØœ5  R¥¨"¥Ó-Õ-’Cñ ã�BØœ5  R¥¨"¥Ó-Õ-’Cñ ã�BØœ5  b¥›>Õ)’Cñ ä+/°«8´d¸2³hÖ+>Ó?Ñ+> a�q˜2•v —z�zÑ+>�Ð?Ü+/°«8´d¸2³hÖ+>Ó?Ñ+> a�q˜2•v —z�zÑ+>�Ð?äœqŸ}™}¬s°2«w¼¸R»Õ/@ÕAÓB�Ø˜•x�ð ˜Q�3 �)�Ü"¤>°#°sÓ#;¸TÀ3Ø#$ g¨r¸4ôA�à˜S•yÕ “à•V˜A•Y�Ø(+­¨r®
Ó3©
 "�b˜2—g�g©
�Ð3Ü˜“G�Ø(+­¨v°°Aµ©Ó7© "�b˜2—g�g©�Ð7Ü˜"“X�ØŸ˜�AØ—I‘I˜a–Lñ  ä˜"“X�Ø�  ›�AØ—I‘I˜a–Lñ $à˜•V�Ü*-¨b°"¬+Ô6©+¡  A�a˜!—e�e©+�Ñ6ô ˜#“J�Ø˜q�D�	Û�AÜ˜q !Ÿ9š9¨¯¯¨Ü¤ a£›M˜Ø¤ q¨1¥u£Õ-’Iñ ó �AØ¤ q¨1¥u¨q¥yÓ!1Õ1’Iñ ã�AØ¤ q¨1¥u¨q¥yÓ!1Õ1’Iñ ã�AØ¤ q¨1¥u£Õ-’Iñ ô
 (¨	Ó2�	Üœs¤5¨£9›~Ö.�AÜ# I¨q°"°qµ&Ó9�EÜ+¨E°3Ô8MÓN�EØ˜5•L’Cñ /ð ˜"•W�ÜœqŸ}™}¬s°2«w¼¸R»Õ/@À1Õ/DÕEÓF�Ø˜•x�Ø˜Q�3 �)�Ü+/°«8´d¸2³hÖ+>Ó?Ñ+> a�q˜2•v —z�zÑ+>Ñ?À1À#ÕE�Ü+/°«8´d¸2³hÖ+>Ó?Ñ+> a�q˜2•v —z�zÑ+>�Ð?ä"¤>°#°sÓ#;¸TÀ3Ø#$ g¨r¸4ôA�ô —M‘M BÕ'¬	°"«Õ5�Ü˜qž�AØœŸ™¨¨1­Õ-¬b°°b¸µeµ¸aµÀÀAÅÓ.GÕGÕG’Añ "ã�AØœ˜q 1�u r�zÓ*Õ*’Añ ã�AØœ˜q 2�v›Õ&’Añ ã�AØœ˜q 2�v›Õ&’Añ ã�AØœ˜q 1�u r�zÓ*Õ*’Añ ð �q˜•u•“ñi ðl ˆyÐùòQ @ùÚ?ùò 4ùâ7ùó 7ùò: @ùÚ?s*   Ç%\È\Ë\!Ì\&Î\+Õ&\1Ö'\6r£   c                 ó>   € V  Uu. uF  p^V,
          NK  	  up# u upi rU   r   )r˜   rY   s   & r[   rò   Ú_meijergexpand.<locals>.trB	  s    € Ù Ó!™q˜!��A—�™qÑ!Ð!ùÒ!s   …FÚnonreprµ  c                 óÎ   € VR J d   ^ pMVRJ d   ^pM^pV P                  \        \        \        ) \        4      '       d   ^pW P	                  \
        4      V P                  4       3# )TF)rE  r   r   r   Úcountr>   Ú	count_ops)r±   rø  Úc0s   && r[   ÚweightÚ_meijergexpand.<locals>.weightr	  sX   € Ø�4‹<Ø‰BØ�U‹]Ø‰BàˆBØ�8‰8”Bœœb˜S¤#×&Ò&ð ˆBØ—J‘JœuÓ% t§~¡~Ó'7Ð8Ð8r]   z@  Could express using hypergeometric functions, but not allowed.r�   )(Ú_meijercollectionr™  r¼   r   rI  r‰  ri   rë  rT  rr   r„  rm   rO  rs   rL  r¶   rq   rR   r�   r�   rf   rg   rP   r¢  r8  râ   rÎ   ÚdeltarÉ   r9   Únur1   rº  r   r]  r   r^  r8   rE  r>   )ri   r²  Úallow_hyperrº  ÚplaceÚfunc0rm   rz  rr   r¦  r  Úslater1Úcond1rò   r£  Úslater2Úcond2r/  r  Úw1Úw2rî  rR  r£   s   &&&&&                @@@r[   Ú_meijergexpandr  —  s_  ú€ ô Ò Ü3Ó5ÐØ�)ÔØˆà€EÜ	Ð
=¸tÔDô 	ˆc‹
€Aä# DÓ)�I€Dˆ#ß
ÜÐ# TÕ*äÐ)Ô*ô 	×'Ñ'¨Ó-€AØ‚}ÜÐ,¨a¯f©fÔ5ØÔ! !§&¡&¨$Ó2Õ2ˆô ˜AŸC™CŸH™H Q§S¡S¨!Ó,¨cÜ4°Q·S±S·X±X¸a¿c¹cÀ1Ó5EÀqÓIóKˆð �K‰Kœ	 !›Ó%ˆØ�c‰c�h‰h�q—s‘s˜AÓÕˆØˆa�D�I‰I�aÓˆÜ˜ $Ô'Ð'ä	Ð
GÔHò	÷eôN 	ˆc‹
€AÙ˜tŸw™w¨¯©°·±¸$¿'¹'À1ÓI�N€Gò"ó ˆÜ˜Ÿ™Ÿ™ q¨!¨A­#¬r´B°3Ð&7Ó8¼"Ó=ˆŽñ á™r $§'¡'›{©B¨t¯w©w«K¹¸D¿G¹G»ÁbÈÏÉÃkØ  ! B¥$ó(�N€GˆUô ˜Ÿ™ QÓ+°4Ô8€GÜ˜Ÿ™ Q¨¨"­Ó-°TÔ:€GÜ�eœT×"Ò"Ø—
‘
˜1˜a �cÓ"ˆáˆQ‹€AØ‡w�w�„{Ø	
�‰�AŒœ#˜aŸd™d›)¤s¨1¯4©4£yÔ0Ü�—‘‹X˜‰] 5Ó(¬Z¸«^¼zÈ!»}Ô-Lð ˜ÓØˆEØ˜ÓØˆEà�ƒ}Ø—/‘/ '×"5Ð"5¨XÓ6‰à—/‘/ '×":Ð":¨]Ó;ˆØ�ƒ}Ø—/‘/ '×"5Ð"5¨XÓ6‰à—/‘/ '×":Ð":¨]Ó;ˆà�EÓ˜e¨5Ó0à�AŒ:ØˆEØ”CŒ<ØˆEä�eœT×"Ò"Ø—
‘
˜1Ó!ˆÜ�eœT×"Ò"Ø—
‘
˜1Ó!ˆò9ñ 
�Ó	€BÙ	�˜Ó	€BÜ
ˆ2ˆrƒ{�q˜!œR�jÔ Ø�Œ7ØˆNàˆNÜ
ˆ2ˆa�5�"�Q•%Ó˜AÔ¤# b¨¥e¨R°­UÓ"3°qÔ"8Ü˜'Ð)¨G°UÐ+;¹eÀB»iÈÐ=NÓOÐOô
 	�7Ð" W¨eÐ$4±u¸R³yÀ$Ð6GÓH€AØ‡u�uŒU‡|‚|ŸKÜð !ô 	"à�5‰5”�<Š<Ÿ;Øˆá�‹9Ðr]   c                óŽ   aaa€ \        V 4      p V3R lpVVV3R lpV P                  \        V4      P                  \        V4      # )a°  
Expand hypergeometric functions. If allow_hyper is True, allow partial
simplification (that is a result different from input,
but still containing hypergeometric functions).

If a G-function has expansions both at zero and at infinity,
``place`` can be set to ``0`` or ``zoo`` to indicate the
preferred choice.

Examples
========

>>> from sympy.simplify.hyperexpand import hyperexpand
>>> from sympy.functions import hyper
>>> from sympy.abc import z
>>> hyperexpand(hyper([], [], z))
exp(z)

Non-hyperegeometric parts of the expression and hypergeometric expressions
that are not recognised are left unchanged:

>>> hyperexpand(1 + hyper([1, 1, 1], [], z))
hyper((1, 1, 1), (), z) + 1
c                 óV   <€ \        \        W4      VSR 7      pVf   \        WV4      # V# )rñ  )rÐ  rc   r>   )rf   rg   rm   r¦  rº  s   &&& €r[   Ú
do_replaceÚhyperexpand.<locals>.do_replace²	  s-   ø€ Üœ¨Ó/°¸GÔDˆØŠ9Ü˜ Ó#Ð#àˆHr]   c           	      óÒ   <€ \        \        V ^ ,          V ^,          V^ ,          V^,          4      VSSSR7      pVP                  \        \        \
        \
        ) 4      '       g   V# R# )rƒ   )rº  r  N)r  r•   rE  r   r   r   )rf   rg   rm   r¦  r  r  rº  s   &&& €€€r[   Ú	do_meijerÚhyperexpand.<locals>.do_meijer¹	  sT   ø€ Üœ: b¨¥e¨R°­U°B°qµE¸2¸a½5ÓAÀ1Ø¨°uô>ˆà�u‰u”Sœ#œr¤B 3×'Ò'ØˆHñ (r]   )r
   rÎ  r>   rJ   )rz  r  rº  r  r!  r$  s   &fff  r[   Úhyperexpandr&  —	  s8   ú€ ô2 	�‹
€Aõ÷ð
 �9‰9”U˜JÓ'×/Ñ/´¸ÓCÐCr]   )Fr³  N)Žr  Úcollectionsr   Ú	itertoolsr   Ú	functoolsr   Úmathr   Úsympyr   Ú
sympy.corer   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Úsympy.core.modr   Úsympy.core.sortingr   Úsympy.functionsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Ú$sympy.functions.elementary.complexesr<   r=   Úsympy.functions.special.hyperr>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   Úsympy.matricesrK   rL   rM   Úsympy.polysrN   rO   rP   Úsympy.seriesrQ   Úsympy.simplify.powsimprR   Úsympy.utilities.iterablesrS   r\   r‰   r«   r¶   r¼   rc   r•   r8  re   ru  rŽ   r™  r   r«  r±  r¼  rÄ  rÛ  rá  rè  rï  rõ  rû  r  r  r  r#  r?  rB  rI  rO  rT  r{  r  r†  r¨  r«  r±  rÍ  rÐ  rë  r  r  r&  r   r]   r[   Ú<module>r7     si  ðñõt $Ý Ý Ý å ÷@÷ @÷ @÷ @õ @å Ý /÷H÷ H÷ H÷ H÷ H÷ H÷ H÷ Hõ H÷ F÷5÷ 5÷ 5õ 5÷ .Ñ -ß )Ñ )Ý  Ý ,Ý *òò]ò@	@òFòôA�Tô AôH<H�ô <Hñ@ ˆ3ƒZ€÷Bñ B÷NIñ I÷X&:ñ &:÷Rñ ÷.2ñ 2ôj!�8ô !ô
HˆXô 
Hô
LˆXô 
Lô&Lˆxô &LôR'Lˆxô 'LôTH�8ô HôL�8ô LôI�8ô IôL�8ô Lô#N�Xô #NôL,N�Xô ,Nô^0N�Xô 0Nôf.N�Xô .Nôb=�(ô =ò@ò4?ò87ò<òòFòR*-òZò8@/òF73òt#ðJ €ð  "¡e¨D£k¸1À1Ø"ôhHòVEðN Ð ô}ö@'Dr]   