Ë
    7^(h¬c  ã                   óÌ  — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 d dlm7Z7 d dl8m9Z9m:Z: d dl;m<Z< d dl=m>Z>m?Z? d dl@mAZA d dlBmCZCmDZD d d lEmFZFmGZGmHZHmIZI d d!l'mJZJ  ed"«      \  ZKZLZMZN ed#«      \  ZOZPZQZRZSZTZUZVZWZXZYZZZ[d$„ Z\d%„ Z]d&„ Z^d'„ Z_d(„ Z`d)„ Zad*„ Zbd+„ Zcd,„ Zdd-„ Zed.„ ZfeCd/„ «       Zgd0„ ZheCd1„ «       ZieCd2„ «       ZjeCd3„ «       Zkd4„ Zld5„ Zmd6„ Znd7„ Zod8„ Zpd9„ Zqd:„ Zrd;„ Zsd<„ Ztd=„ Zud>„ Zvd?„ Zwd@„ ZxdA„ ZydB„ ZzdC„ Z{dD„ Z|dE„ Z}dF„ Z~dG„ ZdH„ Z€eCdI„ «       Z�dJ„ Z‚dK„ ZƒdL„ Z„dM„ Z…dN„ Z†dO„ Z‡dP„ ZˆdQ„ Z‰dR„ ZŠdS„ Z‹dT„ ZŒdU„ Z�dV„ ZŽdW„ Z�dX„ Z�dY„ Z‘dZ„ Z’eCd[„ «       Z“d\„ Z”eCd]„ «       Z•d^„ Z–eCd_„ «       Z—d`„ Z˜da„ Z™db„ Zšy)cé    )ÚreduceN)Úadd)ÚMatrixSolve)ÚAdd)ÚTuple)ÚUnevaluatedExpr)ÚFunction)ÚMul)ÚPow)ÚEq)ÚS)ÚSymbolÚsymbols)Úsympify)Úexp)Úsqrt)Ú	Piecewise)ÚcosÚsin)ÚMatrix)ÚInverseÚMatAddÚMatMulÚ	Transpose)ÚCRootOf)ÚO©Úcse)Úsignsimp)ÚIdxÚIndexedBase©Ú	count_ops)Úsub_preÚsub_post)Úmeijerg)Úcse_mainÚcse_opts)Úsubsets)ÚXFAILÚraises)ÚMutableDenseMatrixÚMutableSparseMatrixÚImmutableDenseMatrixÚImmutableSparseMatrix)ÚMatrixSymbolzw,x,y,zzx:13c                  óX  — t        j                  d¬«      } t        t        j                  | dd«      «      t        dd«      D �cg c]  }t        d|z  «      ‘Œ c}k(  sJ ‚t        j                  d¬«      } t        t        j                  | dd«      «      t        dd«      D �cg c]  }t        d|z  «      ‘Œ c}k(  sJ ‚t        j                  «       } t        t        j                  | dd«      «      t        dd«      D �cg c]  }t        d|z  «      ‘Œ c}k(  sJ ‚y c c}w c c}w c c}w )NÚy)Úprefixr   é
   zy%sé   zx%s)r'   Únumbered_symbolsÚlistÚ	itertoolsÚisliceÚranger   )ÚnsÚis     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/simplify/tests/test_cse.pyÚtest_numbered_symbolsr>   +   s#  € Ü	×	"Ñ	"¨#Ô	.€BÜ”	× Ñ Ø
ˆAˆróó Ü38¸¸B³<Ö@¨aœ˜u q™yÕ)Ò@òAð Að Aä	×	"Ñ	"¨#Ô	.€BÜ”	× Ñ Ø
ˆB�óó Ü49¸"¸b³MÖB¨qœ ¨¡	Õ*ÒBòCð Cð Cä	×	"Ñ	"Ó	$€BÜ”	× Ñ Ø
ˆAˆróó Ü38¸¸B³<Ö@¨aœ˜u q™yÕ)Ò@òAð Añ Aùò Aùò Cùò As   ÁDÂ#D"Ä D'c                 ó   — | t         z   S ©N)r2   ©Úexprs    r=   Úopt1rC   9   s   € Ø”!‰8€Oó    c                 ó   — | t         z  S r@   )ÚzrA   s    r=   Úopt2rG   =   s   € Ø”‰6€MrD   c                  óê  — t        j                  t        t        d fg«      t        t        z   k(  sJ ‚t        j                  t        d t        fg«      t        k(  sJ ‚t        j                  t        dg«      t        k(  sJ ‚t        j                  t        t        t
        fg«      t        t        z   k(  sJ ‚t        j                  t        t        d ft
        d fg«      t        t        z   t        z  k(  sJ ‚y ©N)NN)r'   Úpreprocess_for_cseÚxrC   r2   rG   rF   © rD   r=   Útest_preprocess_for_cserM   A   sÄ   € Ü×&Ñ&¤q¬D°$¨<¨.Ó9¼QÄ¹UÒBÐBÐBÜ×&Ñ&¤q¨D´$¨<¨.Ó9¼QÒ>Ð>Ð>Ü×&Ñ&¤q¨<¨.Ó9¼QÒ>Ð>Ð>Ü×&Ñ&¤q¬D´$¨<¨.Ó9¼QÄ¹UÒBÐBÐBÜ×&Ñ&Ü	ŒT�4ˆLœ4 ˜,Ð'ó)Ü-.´©U´A©Iò6ð 6ñ 6rD   c                  óê  — t        j                  t        t        d fg«      t        k(  sJ ‚t        j                  t        d t        fg«      t        t        z   k(  sJ ‚t        j                  t        dg«      t        k(  sJ ‚t        j                  t        t        t
        fg«      t        t        z  k(  sJ ‚t        j                  t        d t        fd t
        fg«      t        t        z  t        z   k(  sJ ‚y rI   )r'   Úpostprocess_for_cserK   rC   r2   rG   rF   rL   rD   r=   Útest_postprocess_for_cserP   J   sÄ   € Ü×'Ñ'¬¬T°4¨L¨>Ó:¼aÒ?Ð?Ð?Ü×'Ñ'¬¨T´4¨L¨>Ó:¼aÄ!¹eÒCÐCÐCÜ×'Ñ'¬¨L¨>Ó:¼aÒ?Ð?Ð?Ü×'Ñ'¬¬T´4¨L¨>Ó:¼aÄ¹cÒAÐAÐAä×'Ñ'Ü	ˆT”4ˆL˜4¤˜,Ð'ó)Ü,-¬a©C´!©Gò4ð 4ñ 4rD   c                  ó”  — t        t        t        t        z   d«      t	        t        t        z   «      «      } t        | g«      \  }}|t        t        t        z   fgk(  sJ ‚|t	        t        «      t        dz  z   gk(  sJ ‚t        dg«      \  }\  }t        |«      dk(  r|dk(  sJ ‚t        dg«      \  }\  }t        |«      dk(  r|dk(  sJ ‚y )Né   é*   r   ç      à?)r   r   rK   r2   r   r   Úx0Úlen©ÚeÚsubstsÚreducedÚsubst42Úred42Ú
subst_halfÚred_halfs          r=   Útest_cse_singler_   T   s»   € äŒC””A‘�q‹Mœ4¤¤A¡›;Ó'€AÜ˜1˜#“h�O€FˆGØ”rœ1œq™5�k�]Ò"Ð"Ð"Ø”tœB“x¤" a¡%Ñ'Ð(Ò(Ð(Ð(ä˜R˜D›	Ñ€G‰XˆeÜˆw‹<˜1Ò ¨"¢Ð,Ð,Ü! 3 %›jÑ€J‘�Üˆz‹?˜aÒ H°¢OÐ3Ð3 OrD   c                  óê  — t        t        t        t        z   d«      t	        t        t        z   «      «      } t        | «      \  }}|t        t        t        z   fgk(  sJ ‚|t	        t        «      t        dz  z   gk(  sJ ‚t        t        dgg«      «      \  }}t        |d   t        «      sJ ‚t        d«      \  }\  }t        |«      dk(  r|dk(  sJ ‚t        d«      \  }\  }t        |«      dk(  r|dk(  sJ ‚y )NrR   é   r   rS   rT   )
r   r   rK   r2   r   r   rU   r   Ú
isinstancerV   rW   s          r=   Útest_cse_single2rc   a   sß   € äŒC””A‘�q‹Mœ4¤¤A¡›;Ó'€AÜ˜!“f�O€FˆGØ”rœ1œq™5�k�]Ò"Ð"Ð"Ø”tœB“x¤" a¡%Ñ'Ð(Ò(Ð(Ð(Üœ& 1 # ›-Ó(�O€FˆGÜ�g˜a‘j¤&Ô)Ð)Ð)ä˜B›Ñ€G‰XˆeÜˆw‹<˜1Ò ¨"¢Ð,Ð,Ü! #›hÑ€J‘�Üˆz‹?˜aÒ H°¢OÐ3Ð3 OrD   c                  ó
  — t        t        t        «      } t        | g«      \  }}|g k(  sJ ‚|t        t        z   gk(  sJ ‚t	        dt        dfdg t        «      t	        dt        dfdg t        «      z   }t        |«      g |gfk(  sJ ‚y )N)ra   rR   é   )é   )ra   é   )r   rK   r2   r   r&   )rX   rY   rZ   Úeqs       r=   Útest_cse_not_possibleri   p   sƒ   € äŒAŒq‹	€AÜ˜1˜#“h�O€FˆGØ�RŠ<Ðˆ<Ø”qœ1‘u�gÒÐÐä
�&œ1˜a˜& $¨¬AÓ
.Ü
�&œ1˜a˜& $¨¬AÓ
.ñ/€Bäˆr‹7�r˜B˜4�jÒ Ð Ñ rD   c                  ó&  — t        t        t        t        z  t        z   d«      t        t        t        z  t        z   «      «      } t        | g«      \  }}|t        t        t        z  t        z   fgk(  sJ ‚|t        t        «      t        dz  z   gk(  sJ ‚y ©NrR   )r   r   ÚwrK   r2   r   r   rU   )rX   rY   rZ   s      r=   Útest_nested_substitutionrm   |   sq   € äŒC””!‘”a‘˜‹OœT¤!¤A¡#¬¡'›]Ó+€AÜ˜1˜#“h�O€FˆGØ”rœ1œQ™3¤™7�m�_Ò$Ð$Ð$Ø”tœB“x¤" a¡%Ñ'Ð(Ò(Ð(Ñ(rD   c                  óÄ  — t         t        z
  t        t        z
  z  t        t         t        z
  t        t        z
  z  «      z   } t	        | gt
        j                  t
        j                  fg¬«      \  }}|t        t         t        z
  t        t        z
  z  fgk(  sJ ‚|t         t        t         «      z   gk(  sJ ‚t         t        z
   t        t        z
  z  t        t         t        z
   t        t        z
  z  «      z   } t	        | gt
        j                  t
        j                  fg¬«      \  }}|t        t         t        z
  t        t        z
  z  fgk(  sJ ‚|t        t        t        «      z   gk(  sJ ‚ddt         z  z   }|t         z  | dz  z  d|z  t         z  z
  } t	        | t
        j                  t
        j                  fg¬«      g dgfk(  sJ ‚t	        t        t         z   t        z   t        z   t        t        z
  t        z
  z  t        t         z   dz  z  «      t        t        t         z   ft        t        t        z   fgt        t        z
  t        t        z   z  t        dz  z  gfk(  sJ ‚y )N©Úoptimizationséÿÿÿÿra   rR   r   rg   )rK   r2   rF   r   r   r(   r$   r%   rU   rl   Úx1)rX   rY   rZ   Úns       r=   Útest_subtraction_optrt   „   sü  € ä	
ŒQ‰””Q‘‰œ#œq¤1™u¤q¬1¡u™oÓ.Ñ.€AÜØ	
ˆœX×-Ñ-¬x×/@Ñ/@ÐAÐBôD�O€FˆGà”rœA¤™E¤A¬¡E™?Ð+Ð,Ò,Ð,Ð,Øœ�sœS¤" ›X‘~Ð&Ò&Ð&Ð&Ü
Œa‰%ˆ”!”a‘%Ñœ3¤¤Q¡˜x¬¬Q©Ñ/Ó0Ñ0€AÜØ	
ˆœX×-Ñ-¬x×/@Ñ/@ÐAÐBôD�O€FˆGà”rœA¤™E¤A¬¡E™?Ð+Ð,Ò,Ð,Ð,Ø”rœC¤›G‘|�nÒ$Ð$Ð$à
ˆQŒq‰S‰€AØ	Œ!‰ˆaˆR�!‰G‰�a˜‘cœ!‘eÑ€AÜˆq¤(×"2Ñ"2´H×4EÑ4EÐ!FÐ GÔHØ	ˆaˆSˆ	òð ð ä””Q‘œ‘œQ‘¤¤Q¡¬¡Ñ+¬a´!©e°a©ZÑ7Ó8ÜŒq”1‰uˆ+œœA¤™E�{Ð	#¤q¬2¡v´´R±Ñ&8¼¸Q¹Ñ&>Ð%?Ð@òAð Añ ArD   c                  óÔ  — t         t        z   t        z  } t         t        z   t        z  }t	        | |g«      \  }}|t
        t         t        z   fgk(  sJ ‚|t
        t        z  t
        t        z  gk(  sJ ‚t        t         z  t        z  t        z   t        t        z  g}t	        |«      \  }}t	        t        |«      «      \  }}||k(  sJ ‚|t        t         t
        z  z   t
        gk(  sJ ‚t        t         z  t        z  t        t         z  t        z  t        z   t        t        z  g}t	        |«      \  }}t	        t        |«      «      \  }}||k(  sJ ‚|t        t        t        z   t
        gk(  sJ ‚t         t        z
  t        t        z
  z  t         t        z
  t        t        z
  g}t	        |«      \  }}t	        t        |«      «      \  }}|t
        t         ft        t         t
        z   ft        t
        t        z   fgk(  sJ ‚|t
        t         ft        t
        t        z   ft        t         t
        z   fgk(  sJ ‚|t        t        z  t        t        gk(  sJ ‚t        t        z  t        z   t         z   t        z   t        z   t        t         z  t        z  g}t	        |«      t
        t        t        z  fgt        t         z   t
        z   t        z   t        z   t         t
        z  gfk(  sJ ‚t	        t         t        z   t         t        z   t        z   g«      t
        t         t        z   fgt
        t        t
        z   gfk(  sJ ‚t	        t         t        z   t         t        z   g«      g t         t        z   t         t        z   gfk(  sJ ‚t	        t         t        z  t        t         t        z  z   t         t        z  t        z  dz   g«      t
        t         t        z  fgt
        t        t
        z   dt
        t        z  z   gfk(  sJ ‚y )Nrg   )	rK   r2   rF   rl   r   rU   Úreversedrr   Úx2)Úe1Úe2rY   rZ   ÚlÚrsubstsÚ_s          r=   Útest_multiple_expressionsr}   ™   sÿ  € Ü
Œa‰%”‰€BÜ
Œa‰%”‰€BÜ˜2˜r˜(“m�O€FˆGØ”rœ1œq™5�k�]Ò"Ð"Ð"Ø”rœ!‘tœR¤™T�lÒ"Ð"Ð"Ü	
Œ1‰ŒQ‰”‰”A”a‘CÐ€AÜ˜!“f�O€FˆGÜ”X˜a“[Ó!�J€GˆQØ�WÒÐÐØ”qœ1œR™4‘x¤�nÒ$Ð$Ð$Ü	
Œ1‰ŒQ‰””!‘”A‘œ‘	œ1œQ™3Ð€AÜ˜!“f�O€FˆGÜ”X˜a“[Ó!�J€GˆQØ�WÒÐÐØ”rœ2¤™6¤2Ð&Ò&Ð&Ð&Ü
Œa‰%”!”a‘%‰œ!œa™%¤¤Q¡Ð'€AÜ˜!“f�O€FˆGÜ”X˜a“[Ó!�J€GˆQØ”rœA˜2�h¤¤Q¬¡V ¬r´2¼±6¨lÐ;Ò;Ð;Ð;ØœœQ˜B�x¤"¤b¬1¡f ´´A¼±F¨|Ð<Ò<Ð<Ð<Ø”rœ"‘uœb¤"�oÒ%Ð%Ð%Ü	
Œ1‰Œq‰”1‰”q‰œ1Ñ	œa¤™c¤!™eÐ$€AÜˆq‹6œœAœa™C�y�k¤A¬¡E¬B¡J´¡N´QÑ$6¼¼"¹Ð#=Ð>Ò>Ð>Ð>Ü””A‘”qœ1‘uœq‘yÐ!Ó"¬¬Q´©U¨ }´r¼1¼r¹6°lÐ&CÒCÐCÐCÜ””A‘”qœ1‘uˆ~Ó 2¬¬A©¬q´1©u ~Ð"6Ò6Ð6Ð6Ü””!‘”Qœœ1™‘Wœa¤™c¤!™e a™iÐ(Ó)ÜŒq”‰sˆ)ˆ”rœ1œr™6 1¤r¬!¡t¡8Ð,Ð-ò.ð .ñ .rD   c                  óÐ   — t        dd¬«      \  } }}| |z  |z  | |z  g}t        |«      g |fk(  sJ ‚| |z  |z  | |z  g}t        |«      t        | |z  fgt        |z  t        gfk(  sJ ‚y ©NúA B CF©Úcommutative)r   r   rU   ©ÚAÚBÚCrz   s       r=   Útest_non_commutative_cser‡   ·   s}   € ä�g¨5Ô1�G€A€qˆ!Ø	
ˆ1‰ˆQ‰��!‘ˆ€AÜˆq‹6�b˜!�WÒÐÐØ	
ˆ1‰ˆQ‰��!‘ˆ€AÜˆq‹6œ˜A˜a™C�y�k¤B q¡D¬" :Ð.Ò.Ð.Ñ.rD   c                  óà   — t        dd¬«      \  } }}| |z  |z  | |z  g}t        |«      g |fk(  sJ ‚| |z  |z  | |z  g}t        |«      g |fk(  sJ ‚||z  | |z  |z  g}t        |«      g |fk(  sJ ‚y r   ©r   r   rƒ   s       r=   Útest_bypass_non_commutativesrŠ   Á   s•   € Ü�g¨5Ô1�G€A€qˆ!Ø	
ˆ1‰ˆQ‰��!‘ˆ€AÜˆq‹6�b˜!�WÒÐÐØ	
ˆ1‰ˆQ‰��!‘ˆ€AÜˆq‹6�b˜!�WÒÐÐØ	
ˆ1‰ˆa�‰c�!‰eˆ€AÜˆq‹6�b˜!�WÒÐÑrD   c                  ó”   — t        dd¬«      \  } }}t        dd¬«      }||z   | ||z   z  g}t        |«      |||z   fg|| |z  gfk(  sJ ‚y )Nr€   Fr�   rU   r‰   )r„   r…   r†   rU   rz   s        r=   Útest_non_commutative_orderrŒ   Ë   s^   € ä�g¨5Ô1�G€A€qˆ!Ü	� 5Ô	)€BØ	
ˆ1‰ˆa��1‘‰gˆ€AÜˆq‹6˜˜A˜a™C�y�k B¨¨"© :Ð.Ò.Ð.Ñ.rD   c                  óN  — t        t        t        dz  z  t        t        z  z   g«      t        t        t        z  fgt        t        z  t        z   gfk(  sJ ‚t        t        t        z   dt        z  t        z   g«      t        t        t        z   fgt        t        t        z   gfk(  sJ ‚t        t        dt        z  z   t        z   t
        z   t        t        z   dz   f«      t        t        t        z   fgt        t        z   t        z   t
        z   t        dz   gfk(  sJ ‚t        t        t        z   t        z   t
        z   t        t        z
  z  t        t        z   z  «      t        t        t        z   fgt        t        z   t
        z   t        t        z
  z  t        z  gfk(  sJ ‚t        d«      \  } }}}}}}}||dz  z  |z  |z  d| z  |z  |z  |z  | |z  |z  |dz  z  f}t        |«      t        ||z  ft        | |z  fg||z  |z  t        z  dt        z  t        z  ||z  |z  t        z  gfk(  sJ ‚y )NrR   ra   za, b, c, d, f, g, j, mre   )r   rK   r2   rU   rl   rF   r   rr   )	ÚaÚbÚcÚdÚfÚgÚjÚmÚexprss	            r=   Útest_issue_10228r—   Ó   sî  € ä””!�Q‘$‘œœ1™‘ˆ~Ó¤R¬¬1© I ;´´A±¼±°Ð"<Ò<Ð<Ð<Ü””A‘�qœ‘sœQ‘wÐÓ ¤r¬1¬q©5 k ]´R¼¼R¹°LÐ$AÒAÐAÐAÜ”�A”a‘C‘œ!‘œa‘¤¤Q¡¨¡Ð+Ó,Ü
Œa”!‰eˆˆœœQ™¤™
¤Q™¬¨Q©Ð/ð11ò 1ð 1ð 1ä””Q‘œ‘œQ‘¤¤Q¡Ñ'¬!¬a©%Ñ0Ó1Ü
Œa”!‰eˆˆœœa™¤!™¤a¬!¡eÑ,¬RÑ/Ð0ð62ò 2ð 2ð 2ä$Ð%=Ó>Ñ€A€qˆ!ˆQ��1�a˜Øˆq�!‰t‰V�A‰X�a‰Z˜˜1™˜Q™˜q™ ™ A a¡C¨¡E¨!¨Q©$¡JÐ/€EÜˆu‹:Ü
ˆa�‰cˆ”R˜˜1™�IÐ  1¡ Q¡¤r¡¨1¬R©4´©7°A°a±C¸±E¼"±HÐ =ðò ð ñ rD   c                  óª   — t        t        t        dz  z  t        t        z  z   «      t        t        t        z  fgt        t        z  t        z   gfk(  sJ ‚y rk   )r   rK   r2   rU   rL   rD   r=   Útest_powersr™   á   s>   € äŒq”�A‘‰vœœ!™‰|Ó¤2¤q¬¡s ) ¬r´!©t´b©y¨kÐ :Ò:Ð:Ñ:rD   c                  ó®   — t        t        t        t        z
  z  t        t        t        z
  z  z   d¬«      g t        t        z
  t        t        z
  z  gfk(  sJ ‚y )NÚbasicro   )r   rl   rK   r2   rF   rL   rD   r=   Útest_issue_4498rœ   æ   sG   € ÜŒq”!”a‘%‰yœ1œa¤!™e™9Ñ$°GÔ<Ø	Œq”1‰u”qœ1‘u‰oÐÐò ð  ñ  rD   c                  óÒ   — t        t        dz  t        dz  z   t        dz  z   t        dz  z   d¬«      t        t        dz  fgt        t        dz  t        z   t        z   dz   z  gfk(  sJ ‚y )Nrf   re   rg   rR   r›   ro   ra   )r   rK   rU   rL   rD   r=   Útest_issue_4020rž   ë   sd   € ÜŒq�!‰t”a˜‘d‰{œQ ™TÑ!¤A q¡DÑ(¸Ô@Ü”!�Q‘$ˆZˆLœ2œq !™t¤a™x¬"™}¨qÑ0Ñ1Ð2Ð3ò4ð 4ñ 4rD   c                  óº   — t        t        t        t        z  «      t        t        z  z  «      t        t        t        z  fgt        t        «      t        z  gfk(  sJ ‚y r@   )r   r   rK   rU   rL   rD   r=   Útest_issue_4203r    ð   s>   € ÜŒs”1”a‘4‹yœœA™‰~Ó¤R¬¬A© J <´#´b³'¼"±*°Ð">Ò>Ð>Ñ>rD   c                  ó†   — t        t        t         dz   z  t        t        dz
  z  z   d«      } t        | d¬«      g dgfk(  sJ ‚y )Nra   r   r›   ro   T)r   rK   r   )rX   s    r=   Útest_issue_6263r¢   ô   s@   € Ü
Œ1Œqˆb�1‰f‰:œœ1˜q™5™	Ñ! 1Ó%€AÜˆq Ô(¨R°$°¨LÒ8Ð8Ñ8rD   c                  ó  — t        d«      } t        dd¬«      }t        | |dz  z  | |dz  |dz  z
  z  z   «      d   d   }|j                  }t        |«      t        |D �ch c]  }|j                  ’Œ c}«      k(  sJ ‚y c c}w )Nr�   rU   T)ÚrealrR   re   rq   )r   r   Úfree_symbolsrV   Úname)r�   rK   Úcse_exprÚfreer<   s        r=   Útest_issue_25043r©   ù   s|   € Ü�‹€AÜ�˜4Ô €AÜ�1�Q˜‘T‘6˜A˜q !™t a¨¡d™{™OÑ+Ó,¨RÑ0°Ñ4€HØ× Ñ €DÜˆt‹9œ¨TÖ2¨˜QŸV›VÒ2Ó3Ò3Ð3Ñ3ùÒ2s   ÁA=
c            
      óL  — ddl m}  t        d«      }t        d«      }t         |  |t        t
        «      t        t
        fd«       |  |t        t
        «      t        t
        fd«      z   «      \  }\  }|g k(  sJ ‚| |  |t        t
        «      t        t
        fd«       |  |t        t
        «      t        t
        fd«      z   k(  sJ ‚t         |  |t        t
        «      t        t
        fdt        t
        z   f«       |  |t        t
        «      t        t
        fdt        t
        z   f«      z   «      \  }\  }|t        t        t
        z   fgk(  sJ ‚| |  |t        t
        «      t        t
        fdt        f«       |  |t        t
        «      t        t
        fdt        f«      z   k(  sJ ‚y )Nr   )ÚSubsr’   r“   ©r   ra   )Úsympy.core.functionr«   r	   r   rK   r2   rU   )r«   r’   r“   Úname_valrB   s        r=   Útest_dont_cse_tuplesr¯     sa  € Ý(Ü�‹€AÜ�‹€AäÙ‰QŒq”!‹W”qœ!�f˜fÓ%Ù
‰q””A‹wœœA˜ Ó
'ñ	(ó)Ñ€H‰gˆtð �rŠ>Ðˆ>Ø‘D™œ1œa›¤1¤a &¨&Ó1Ù‘1”Qœ“7œQ¤˜F FÓ+ñ,ò -ð -ð -ô Ù‰QŒq”!‹W”qœ!�f˜q¤!¤a¡%˜jÓ)Ù
‰q””A‹wœœA˜ ¤A¬¡E 
Ó
+ñ	,ó-Ñ€H‰gˆtð œœQ¤™U˜�}Ò$Ð$Ð$Ø‘4™œ!œQ›¤!¤Q ¨!¬R¨Ó1Ù‰QŒq”!‹W”qœ!�f˜q¤"˜gÓ&ñ'ò 'ð 'ñ 'rD   c            	      ó´  — t        dt        dz  z  t        dz  z   «      t        t        dz  fgt        dt        z  z   gfk(  sJ ‚t        t        dz  ddt        dz  z  z   t        dz  z  z   «      t        t        dz  ft        dt        z  fgt        t        t        dz   z  z   gfk(  sJ ‚t        dt        dz  z  ddt        dz  z  z   t        dz  z  z   «      t        t        dz  ft        dt        z  fgt        t        dz   z  t        z   gfk(  sJ ‚t        t	        dt        dz  z  «      t        dt        dz  z  «      z   «      t        t        dz  fgt        t        «      t	        t        «      z   gfk(  sJ ‚t        t	        t        dz  «      t        t        dz  «      z   «      t        t        dz  fgt        t        «      t	        t        «      z   gfk(  sJ ‚t        t        dt        dz  z   z  t        t        dz  z  t        z  z   «      t        t        dz  fgt        t        dz   z  t        t        t        z  z  z   gfk(  sJ ‚t        t        t        dz  «      t        dz  t	        dt        dz  z  «      z  z   «      t        t        dz  fgt        t	        dt        z  «      z  t        t        «      z   gfk(  sJ ‚t        ddt        dz  z  z   t        dz  z  «      t        t        dz  fgt        t        dz   z  gfk(  sJ ‚t        t        dt        z  z  t        dt        z  z  z   «      t        t        dt        z  z  fgt        dt        z  z   gfk(  sJ ‚y )Nra   rR   éþÿÿÿ)	r   rK   rU   rr   r   r   r2   rF   r   rL   rD   r=   Útest_pow_invpowr²     s  € Üˆq”�A‘‰vœ˜1™‰}ÓÜŒq�!‰tˆ*ˆœ˜Qœr™T™	�{Ð#ò$ð $ð $äŒq�!‰t�q˜1œQ ™T™6‘z¤1 a¡4Ñ'Ñ'Ó(ÜŒq�!‰tˆ*”r˜1œR™4�jÐ	!¤B¬¬R°!©V©Ñ$4Ð#5Ð6ò7ð 7ð 7äˆq”�A‘‰v˜˜Qœq !™t™V™¤Q¨¡TÑ)Ñ)Ó*ÜŒq�!‰tˆ*”r˜1œR™4�jÐ	!¤B¬¨Q©¡K´"Ñ$4Ð#5Ð6ò7ð 7ð 7äŒs�1”Q˜‘T‘6‹{œS ¤1 a¡4¡›[Ñ(Ó)ÜŒq�2‰wˆ-ˆœ3œr›7¤S¬£WÑ,Ð-Ð.ò/ð /ð /äŒs”1�a‘4‹yœ3œq !™t›9Ñ$Ó%ÜŒq�!‰tˆ*ˆœœB›¤#¤b£'Ñ)Ð*Ð+ò,ð ,ð ,äŒq�!”a˜‘d‘(‰|œa¤ 1¡™f¤Q™hÑ&Ó'ÜŒq�!‰tˆ*ˆœœ2 ™6™
¤Q¬¬1©¡XÑ-Ð.Ð/ò0ð 0ð 0äŒs”1�a‘4‹yœ1˜a™4¤ A¤a¨¡d¡F£Ñ+Ñ+Ó,ÜŒq�!‰tˆ*ˆœœ3˜q¤™t›9™¤s¬2£wÑ.Ð/Ð0ò1ð 1ð 1ä��A”a˜‘d‘F‘
œA˜q™DÑ Ó!ÜŒq�2‰wˆ-ˆœ2œr A™v™;˜-Ð(ò)ð )ð )äŒq�1”Q‘3‰xœ!˜b¤™d™)Ñ#Ó$ÜŒq�1”Q‘3‰xˆ.Ð	œB ¤2¡™I˜;Ð'ò(ð (ñ (rD   c                  ó  — t         dz   t        t         dz   t        dz   z  «      z   t        t        dz   «      z   } t	        | t        t         t        dz   «      t        dz
  t        dz   t         dz   z  gt        j                  ¬«      t        t        dz   ft        t        dz   ft         t        ft        t         dz   fgt        t        t        t        z  «      z   t        t        «      z   t        dz
  t        t        z  ggk(  sJ ‚y )Nra   rR   ©Úpostprocess)rK   r   r2   r   r   r   rF   r'   Úcse_separaterU   rw   rr   ©rh   s    r=   Útest_postprocessr¸   ,  sÇ   € Ü
ˆa‰%”#”q˜1‘uœq 1™u‘oÓ&Ñ
&¬¬Q°©U«Ñ
3€BÜ�”B”qœ!˜a™%“L¤! a¡%¬!¨a©%´!°a±%©Ð9Ü×)Ñ)ô+äŒq�1‰uˆ+œœA ™E�{¤Q¬ G¬b´!°a±%¨[Ð	9Ü	Œc”"”R‘%‹j‰œ3œr›7Ñ	"¤A¨¡E¬2¬b©5Ð1ð	3ò3ð 3ñ 3rD   c                  ól  — ddl m} m} t        d«      }t        d«      }t	        | | t
        j                  z   d| z  |d| z  |z
  dz   t        t        «      dz  d| z  dz   z   |d| z  |z
  t        t        «      «      z   ||dz
  t        t        «      «      z   ||«      z   |d| z  |z
  dz   «      z  t        t        «      t        t        «      dz  d| z  dz   z  z   ||t        t        «      «      z   |d| z  |z
  t        t        «      «      z   ||«      z   |d| z  |z
  dz   «      z  t        t        «      t        t        «      dz  d| z  dz   z  z   ||dz
  t        t        «      «      z   |d| z  |z
  dz   t        t        «      «      z   ||«      z   |d| z  |z
  dz   «      z  t        t        «      dz  d| z  dz   z   ||t        t        «      «      z   |d| z  |z
  dz   t        t        «      «      z   ||«      z   |d| z  |z
  dz   «      z  ddt
        j                  t        dz  | dz   d| z  |z   d| z  fŽ }t        |«      }t        d| z  ft        | t        z   ft        t        dz   ft        |dz
  ft        t        t        «      ft         |t        t        «      ft         t        dz  dt        z
  z   ||«      z   |t        «      z  ft"        t          |t        t        «      z  ft$         ||t        «      ft&        t          |t        t        «      z  fg
| | t
        j                  z   t        |t        t        t"        z  t        t"        z  t$        z  t        t        z  t&        z  t$        t&        z  ddt
        j                  t        dz  t         t         t         fgf}||k(  sJ ‚y )Nr   )rŽ   r�   r…   ÚGrR   ra   r±   )Ú	sympy.abcrŽ   r�   r	   r   r   ÚHalfr   rF   r   rU   rr   rw   Úx3Úx4Úx5Úx6Úx7Úx8Úx9)rŽ   r�   r…   rº   Útr�   Úanss          r=   Útest_issue_4499rÆ   4  sZ  € çÜ�‹€AÜ�‹€AÜØ	
ˆA”—‘‰J˜˜!™˜Q  !¡ a¡¨!¡¬d´1«g°a©i¸2¸a¹4À!¹8Ñ-DÁQÀqÈÁsØ	ñH
Ü”‹7óFñ .Ù�a˜!‘eœT¤!›WÓ%ñ.&Ù&'¨£dñ.+Ù+,¨Q¨q©S°1©W°q©[«>ñ.:äŒQ‹””a“˜‘˜b ™d Q™hÑ'Ñ'©¨!¬T´!«W«Ñ5±a¸¸!¹¸a¹ÜŒQ‹ó7ñ 	Ù�1“ñ	Ù˜˜!™˜a™ !™“nñ	%Ü&*¬1£g¬t´A«w°q©y¸B¸q¹DÀ1¹HÑ.EÑ&EÁaÈÈAÉÜŒQ‹óGñ 'Ù�1�Q‘3˜‘7˜Q‘;¤¤Q£Ó(ñ')Ù)*¨1«ñ'.Ù./°°!±°a±¸!±«nñ'=ä	Œa‹�‰�b˜‘d˜Q‘hÑ¡ !¤T¬!£W£Ñ-©a°°!±°a±¸!±ÜŒQ‹ó/ñ 	Ù�1“ñ	Ù˜˜!™˜a™ !™“nñ	%Ø&'¨¬A¯F©F´A°a±C¸!¸¸a¹ÀÀAÁÈÁØ
ˆ1‰ð	ð	€Aô 	ˆA‹€Aä
ˆa�‰cˆ”R˜!˜œb™�M¤B¬¨Q© <´"°a¸!±e°¼rÄ4ÌÃ7¸mÜ
‰a””B‹iˆœ2¤ 1¡¨¬B©Ñ/±°!³Ñ4±Q´r³UÑ:Ð;¼bÄ"ÁQÄrÌ2ÃYÁ,Ð=OÜ
‰a�”2‹hˆœ"œb¡¤2¤r£™lÐ+ð	-ð ˆQ”—‘‰Zœ˜Q¤¤B¤r¡E¬2¬b©5´©8´R¼±U¼2±X¼rÄ"¹uØ
ˆQ”—‘œ˜!™œb˜S¤2 #¬ sð
,ð 	-ð	.€Cð �!Š8€O‰8rD   c                  ó&  — t        t        dz  dt        dz  z  z
  dz
  d«      } t        | «      g | gfk(  sJ ‚t        t	        t         t
        z
  t        z  t        z
  t
        z
  «      «      t         t        t
        z   z  t        z
  t
        z
  k(  sJ ‚y )Né   re   rf   rR   ra   )r   rK   r   r%   r$   r2   rF   )Úrs    r=   Útest_issue_6169rÊ   L  s{   € Ü”�1‘�qœ˜A™‘v‘ Ñ! 1Ó%€AÜˆq‹6�b˜1˜#�YÒÐÐô ”Gœa˜R¤!™V¤Q™J¬™N¬QÑ.Ó/Ó0´Q°B¼¼A¹±JÄ±NÄQÑ4FÒFÐFÑFrD   c                  óú   — d} t        d| f¬«      }t        d| f¬«      }t        d| dz
  «      }||dz      ||   z
  ||dz      ||   z
  z  }d||dz      ||   z
  z  }t        ||g«      \  }}t        |«      dkD  sJ ‚y )Nrf   r2   )ÚshaperK   r<   ra   r   )r!   r    r   rV   )Úlen_yr2   rK   r<   Úexpr1Úexpr2ÚreplacementsÚreduced_exprss           r=   Útest_cse_IndexedrÒ   T  sœ   € Ø€EÜ�C ˜xÔ(€AÜ�C ˜xÔ(€AÜˆC��q‘Ó€Aàˆq�‰s‰V�A�a‘D‰[˜1˜Q˜q™S™6 ! A¡$™;Ñ'€EØˆq��1‘‰v�a˜‘d‰{‰O€EÜ"% u¨e nÓ"5Ñ€L�-Üˆ|Ó˜qÒ Ð Ñ rD   c                  ó†  — t        ddd«      } t        | «      g | gfk(  sJ ‚t        dd¬«      }t        d||«      }t        |«      g |gfk(  sJ ‚t        | d   | d   z  «      g | d   | d   z  gfk(  sJ ‚t        | d   | d	   z  | d   | d	   z  | d
   z  z   «      t        | d   | d	   z  fgt        | d
   z  t        z   gfk(  sJ ‚y )Nr„   rg   rs   T)Úintegerr…   r   )r   r   r¬   )r   rR   )r0   r   r   rU   )r„   rs   r…   s      r=   Útest_cse_MatrixSymbolrÕ   `  sô   € ä�S˜!˜QÓ€AÜˆq‹6�b˜1˜#�YÒÐÐä�˜TÔ"€AÜ�S˜!˜QÓ€AÜˆq‹6�b˜1˜#�YÒÐÐäˆq�‰t�a˜‘d‰{Ó  Q q¡T¨!¨A©$¡Y KÐ0Ò0Ð0Ð0äˆq�‰v�a˜‘f‰}˜q ™v a¨¡f™}¨Q¨s©VÑ3Ñ3Ó4¼2¸qÀ¹wÀqÈÁw¹Ð:OÐ9PÔSUÐVWÐX\ÑV]ÑS]Ô`bÑSbÐRcÐ8dÒdÐdÑdrD   c                  óH  — t        ddd«      } t        ddd«      }| j                  | z  j                  | z  |z  }| j                  | z  | z  |z  }t        ||g«      \  }}t	        |«      dkD  sJ ‚t        ||z   |g«      \  }}|sJ ‚t        | dz  | | dz  z   g«      \  }}|sJ ‚y )Nr„   rg   r2   ra   r   rR   )r0   ÚTÚIr   rV   )r„   r2   rÎ   rÏ   rÐ   rÑ   s         r=   Útest_cse_MatrixExprrÙ   m  s»   € Ü�S˜!˜QÓ€AÜ�S˜!˜QÓ€Aà�S‰S�‰U�I‰I˜‰M˜AÑ€EØ�S‰S�‰U�a‰K˜!‰O€EÜ"% u¨e nÓ"5Ñ€L�-Üˆ|Ó˜qÒ Ð Ð ä"% u¨u¡}°eÐ&<Ó"=Ñ€L�-ÙÐˆ<ä"% q¨!¡t¨Q°°A±©XÐ&6Ó"7Ñ€L�-ÙÐ‰<rD   c                  óD  — t        t         t        t        z  z   t	        t        d«      ft         t        t        z  z
  df«      } t        | «      }t        t        t        z  fgt        t        t        z
  t	        t        d«      ft         t        z
  df«      gf}||k(  sJ ‚y )Nr   T)r   rF   rK   r2   r   r   rU   )r’   rÅ   Ú
actual_anss      r=   Útest_PiecewiserÜ   }  sƒ   € Ü”A�2œœ!™‘8œR¤ 1›XÐ&¬!¨¬a´©c©°4Ð(8Ó9€AÜ
ˆa‹&€CÜœœ!™�9�+Ü	”Bœ‘FœBœq !›HÐ%¬¨¬R©° Ó	7Ð8ð:€Jà�*ÒÐÑrD   c                  ó(  — t        t        «      j                  t        dd«      t        t        t        dz  z   «      z   dz
  } t        | «      g t        t        dz  t        z   «      t        z   t        dz  dz  z   t        t        dz  «      z   gfk(  sJ ‚y )Nr   rg   ra   rR   )r   rK   Úseriesr   r2   r   r   r·   s    r=   Útest_ignore_order_termsrß   …  ss   € Ü	ŒQ‹�‰”q˜˜1Ó	¤¤A¤a¨¡d¡F£Ñ	+¨aÑ	/€BÜˆr‹7�rœC¤ 1¡¤q¡›M¬AÑ-´°1±°Q±Ñ6¼¼1¸a¹4»Ñ@ÐAÐBÒBÐBÑBrD   c                  ó  — t         t        z   } t        t        z   }t	        | «      | z   t	        |«      |z   t         t        z   g}t        |«      \  }}|D �cg c]  }|j                  t        |«      «      ‘Œ c}|k(  sJ ‚y c c}w r@   )rU   r2   rw   r½   r   r   Úsubsrv   ©Úz1Úz2rz   rY   rZ   rX   s         r=   Útest_name_conflictrå   Š  sk   € Ü	Œa‰€BÜ	Œb‰€BÜ	ˆR‹�2‰”s˜2“w ‘|¤R¬"¡WÐ-€AÜ˜!“f�O€FˆGØ.5Ö6¨ˆA�F‰F”8˜FÓ#Õ$Ò6¸!Ò;Ð;Ñ;ùÒ6s   Á!A?c                  ó  — t         t        z   } t        t        z   }t	        | «      | z   t	        |«      |z   t         t        z   g}t        |t        d«      «      \  }}|D �cg c]  }|j                  t        |«      «      ‘Œ c}|k(  sJ ‚y c c}w )Nzx:10)	rU   r2   rw   r½   r   r   r   rá   rv   râ   s         r=   Útest_name_conflict_cust_symbolsrç   ’  sr   € Ü	Œa‰€BÜ	Œb‰€BÜ	ˆR‹�2‰”s˜2“w ‘|¤R¬"¡WÐ-€AÜ˜!œW V›_Ó-�O€FˆGØ.5Ö6¨ˆA�F‰F”8˜FÓ#Õ$Ò6¸!Ò;Ð;Ñ;ùÒ6s   Á!B	c                  ó,  — t        t        t        z   «      t        z   t        z   t        t        t        z   «      z   t	        t        t        z   «      z   } t        t        t
        g}t        t        «      5  t        | |¬«       d d d «       y # 1 sw Y   y xY w)N)r   )	r   rK   r2   rl   r   rF   r+   Ú
ValueErrorr   )rz   Úsyms     r=   Útest_symbols_exhausted_errorrë   š  sc   € ÜŒAŒa‰C‹”‰
”1‰”Sœœ1™“XÑœc¤!¤A¡#›hÑ&€AÜŒa”ˆ)€CÜ	”
Ó	ñ ÜˆA�sÕ÷÷ ñ ús   Á3B
Â
Bc                  óœ  — t        d«      } t        d«      }| j                  d|«      } i }d|d<   d|d<   | j                  |«      }t        | «      \  }}|D ]&  }|d   j                  |«      ||d	   j                  <   Œ( |d	   j                  |«      }||k(  sJ ‚t        d
«      }t        |«      \  }}|d	   |k(  sJ ‚t	        |«      dk  sJ ‚y )NziPiecewise((C391 - 1.65, C390 < 0.5), (Piecewise((C391 - 1.65,         C391 > 2.35), (C392, True)), True))zGPiecewise((2.05*C390**(-1.03), C390 < 0.5), (2.5*C390**(-0.625), True))ÚC391g¹²gv­‚æ?ÚC390g‘þÉ¥:ð?ÚC392ra   r   a  Piecewise((Symbol('ON'), Equality(Symbol('mode'), Symbol('ON'))),         (Piecewise((Piecewise((Symbol('OFF'), StrictLessThan(Symbol('x'),         Symbol('threshold'))), (Symbol('ON'), true)), Equality(Symbol('mode'),         Symbol('AUTO'))), (Symbol('OFF'), true)), true)))r   rá   r   r¦   rV   )	ÚC393rí   ÚsubÚ	ss_answerÚsubstitutionsÚnew_eqnÚpairÚ
cse_answerrB   s	            r=   Útest_issue_7840r÷   ¡  sø   € äð	-ó€Dô ØQó€Dð �9‰9�V˜DÓ!€Dà
€CØ€Cˆ�KØ€Cˆ�KØ—	‘	˜#“€Iä ›IÑ€M�'Øò .ˆØ  ™GŸL™L¨Ó-ˆˆD�‰G�L‰LÒð.à˜‘—‘ Ó%€Jà˜
Ò"Ð"Ð"ô ð	:ó€Dô ! ›YÑ€M�7à�1‰:˜ÒÐÐäˆ}Ó Ò!Ð!Ñ!rD   c            	      ó*  — t         t        t        t        fD ]z  }  | ddt        t
        z   dddg«      }t        t        t
        z   |g«      }t        t        t
        z   fgt         | t        dgddgg«      gf}||k(  sJ ‚t        |d   d   | «      rŒzJ ‚ y )NrR   r   ra   rq   )	r,   r-   r.   r/   rK   r2   r   rU   rb   )Úclsr•   ÚresrÅ   s       r=   Útest_issue_8891rû   Æ  sš   € Ü"Ô$7Ü Ô"7ð9ò +ˆá��1”qœ1‘u˜a  AÐ&Ó'ˆÜ”1”q‘5˜!�*‹oˆÜ”Qœ‘U�ˆ}œr¡3¬¨Q¨°!°Q°Ð'8Ó#9Ð:Ð;ˆØ�cŠzÐˆzÜ˜#˜a™& ™* cÕ*Ð*Ð*ñ+rD   c                  óD  — t        d«      \  } }}}}}| |z  |z  |z  |z  | |z  |dz  z  |z  ||z  |dz  z  |z  g}t        |«      \  }}t        d„ |D «       «      rJ ‚ddlm}	 ddlm}
 t        d«      }t        d«      D �cg c]'  }t        t        d	«      D �cg c]
  } |	|«      ‘Œ c}Ž ‘Œ) }}t        |d
«      D ]t  }t        |«      }t        |«      \  }}t        d„ |D «       «      rJ ‚t        |«      D ]0  }t        t        |«      «      D ]  } ||   j                  |Ž ||<   Œ Œ2 ||k(  rŒtJ ‚ t        d«      D �cg c]*  }t        t        d	«      D �cg c]  } |	|d d «      ‘Œ c}Ž ‘Œ, }}t        |d
«      D ]ˆ  }t        |«      }t        |«      \  }}t        d„ |D «       «      rJ ‚t        |«      D ]0  }t        t        |«      «      D ]  } ||   j                  |Ž ||<   Œ Œ2 ||D �cg c]
  } |
|«      ‘Œ c}k(  rŒˆJ ‚ y c c}w c c}w c c}w c c}w c c}w )Nza b f k l irR   c              3   óV   K  — | ]!  }|j                   D ]  }|j                  –— Œ Œ# y ­wr@   ©ÚargsÚis_Mul©Ú.0rŽ   r<   s      r=   ú	<genexpr>z#test_issue_11230.<locals>.<genexpr>Õ  s$   è ø€ Ò7 °·±Ò7¨1�1—8•8Ð7�8Ñ7ùó   ‚')r   )Úchoice)Ú
expand_mulza:mé   rf   rg   c              3   óV   K  — | ]!  }|j                   D ]  }|j                  –— Œ Œ# y ­wr@   rþ   r  s      r=   r  z#test_issue_11230.<locals>.<genexpr>à  ó$   è ø€ Ò; A°A·F±FÒ;¨q�q—x•xÐ;�xÑ;ùr  c              3   óV   K  — | ]!  }|j                   D ]  }|j                  –— Œ Œ# y ­wr@   )rÿ   Úis_Addr  s      r=   r  z#test_issue_11230.<locals>.<genexpr>ê  r	  r  )r   r   ÚanyÚsympy.core.randomr  r­   r  r:   r
   r)   r7   rv   rV   rá   r   )rŽ   r�   r’   Úkrz   r<   ÚpÚRr†   r  r  ÚsÚexÚris                 r=   Útest_issue_11230r  Ð  s/  € ä˜}Ó-Ñ€A€qˆ!ˆQ��1Ø	
ˆ1‰ˆQ‰ˆq‰�‰�A�a‘C˜˜1™‘H˜Q‘J  !¡ A q¡D¡¨¡
Ð+€AÜˆq‹6�D€A€qÜÑ7 QÔ7Ô7Ð7Ð7õ )Ý.Ü�‹€Aä7<¸Q³xÖ	@°!Œ#¤5¨£8Ö,˜a‘�q•	Ò,Ò
-Ð	@€BÐ	@Ü�R˜‹^ò ˆÜ�‹GˆÜ�1‹v‰ˆˆ1ÜÑ;¨Ô;Ô;Ð;Ð;Ü˜1“+ò 	&ˆBÜœ3˜q›6“]ò &�Ø �q˜‘t—y‘y "�~��!’ñ&ð	&ð �A‹vˆˆvðô <AÀ»8Ö	D°aŒ#¤u¨Q£xÖ0 !‘�q˜˜!�u•Ò0Ò
1Ð	D€BÐ	DÜ�R˜‹^ò /ˆÜ�‹GˆÜ�1‹v‰ˆˆ1ÜÑ;¨Ô;Ô;Ð;Ð;Ü˜1“+ò 	&ˆBÜœ3˜q›6“]ò &�Ø �q˜‘t—y‘y "�~��!’ñ&ð	&ð ¨AÖ. q‘Z •]Ò.Ó.Ð.Ð.ñ/ùò -ùÒ	@ùò 1ùÒ	Dùò /s6   ÂHÂH	Â(HÅ HÅHÅ)HÇ0HÈ	HÈHc                  ó  — d„ } t         dz  t        dz  z  t         dz  t        z  z   t         dz  z   }t        |«      t        t         dz  ft        t         t        z  fgt         dz  t        t        z  t        z  z   t        t        z  z   gfk(  sJ ‚ | |«       t         dz  t        dz   dz  z  t         t        dz   z  z   }t        |«      t        t        dz   fgt         dz  t        dz  z  t         t        z  z   gfk(  sJ ‚ | |«       y )Nc                 óš   — t        | «      \  }}| j                  «       t        |«      t        d„ |D «       «      z   t        |«      z   k\  sJ ‚y )Nc              3   óB   K  — | ]  }|d    j                  «       –— Œ y­w)ra   Nr"   )r  r<   s     r=   r  z2test_issue_11577.<locals>.check.<locals>.<genexpr>ú  s   è ø€ Ò5¨a˜˜1™Ÿ™×)Ñ5ùó   ‚)r   r#   rV   Úsum)rh   rÉ   r�   s      r=   Úcheckztest_issue_11577.<locals>.check÷  sJ   € Ü�2‹w‰ˆˆ1Ø�|‰|‹~Ü�‹F”SÑ5°1Ô5Ó5Ñ5Ü�a‹Lñòð 	ñ rD   rf   rR   re   ra   )rK   r2   r   rU   rr   )r  rh   s     r=   Útest_issue_11577r  õ  s÷   € òô 
ˆA‰Œa�‰d‰”Q˜‘Tœ!‘VÑ	œa ™dÑ	"€BÜˆr‹7Ü
Œa�‰dˆ”bœ!œA™#�YÐ¤! Q¡$¬¬B©¬q©¡.´2´b±5Ñ"8Ð!9ð;ò ;ð ;ð ;ñ 
ˆ"„Iä	
ˆA‰Œq�1‰u�q‰j‰œ1œa !™e™9Ñ	$€BÜˆr‹7Ü
Œa�!‰eˆˆœ˜1™œR ™U™
¤Q¤r¡TÑ)Ð*ð,ò ,ð ,ð ,ñ 
ˆ"…IrD   c                  óL   — t         dz   t         dz   g} t        | «      g | fk(  sJ ‚y )Nrg   re   )rK   r   r·   s    r=   Útest_hollow_rejectionr    s)   € Ü
ˆa‰%”�Q‘ˆ€BÜˆr‹7�r˜2�hÒÐÑrD   c                  óœ  — t        t        «      dt        z  dt        t        dz   «      z  z   z  t        t        «      dt        z  dt        t        dz   «      z  z   z  g} t	        | «      \  }}t        d„ |D «       «      sJ d«       ‚t	        | t        f¬«      \  }}t        d„ |D «       «      rJ d«       ‚t        d	„ |D «       «      sJ d
«       ‚y )Nrg   ra   rf   c              3   óF   K  — | ]  \  }}t         |j                  v –— Œ y ­wr@   ©r2   r¥   ©r  r|   rñ   s      r=   r  z"test_cse_ignore.<locals>.<genexpr>  s   è ø€ Ò:©¨¨CŒq�C×$Ñ$Ô$Ñ:ùó   ‚!z&cse failed to identify any term with y©Úignorec              3   óF   K  — | ]  \  }}t         |j                  v –— Œ y ­wr@   r   r!  s      r=   r  z"test_cse_ignore.<locals>.<genexpr>  s   è ø€ Ò>©V¨Q°”1˜×(Ñ(Ô(Ñ>ùr"  z,Sub-expressions containing y must be ignoredc              3   óR   K  — | ]  \  }}|t        t        d z   «      z
  dk(  –— Œ! y­w)ra   r   N)r   rK   r!  s      r=   r  z"test_cse_ignore.<locals>.<genexpr>  s&   è ø€ Ò;©&¨!¨Sˆs”Tœ!˜a™%“[Ñ  AÕ%Ñ;ùs   ‚%'z4cse failed to identify sqrt(x + 1) as sub-expression)r   r2   r   rK   r   r  )r–   Úsubst1Úred1Úsubst2Úred2s        r=   Útest_cse_ignorer+    sµ   € Ü”‹V�Q”q‘S˜1œT¤! A¡#›Y™;Ñ&Ñ'¬¬Q«°´1±°q¼¼aÀ¹c»±{Ñ1BÑ)CÐD€EÜ�u“:�L€FˆDÜÑ:°6Ô:Ô:ÐdÐ<dÓdÐ:ä�u¤a TÔ*�L€FˆDÜÑ>°vÔ>Ô>ÐnÐ@nÓnÐ>ÜÑ;°FÔ;Ô;ÐsÐ=sÓsÑ;rD   c                  óB  — t         t        t        «      z  t        t         «      z  t        t        «      t        t        «      z  t        t         «      z  g} t        | t        f¬«      \  }}|D �cg c]  }|j                  t        |«      «      ‘Œ }}|| k(  sJ ‚y c c}w )Nr#  )rl   r   rK   rF   r2   r   rá   rv   )rz   rY   rZ   rX   Úrls        r=   Útest_cse_ignore_issue_15002r.    s~   € ä	Œ#Œa‹&‰””a�R“ÑÜŒA‹Œs”1‹v‰”cœ1˜"“gÑð	€Aô ˜!¤Q DÔ)�O€FˆGØ,3Ö	4 qˆ!�&‰&”˜&Ó!Õ
"Ð	4€BÐ	4Ø�Š7€N‰7ùò 
5s   Á1!Bc                  óä   — t        t        dz   «      } t        d| z
  d| z
  z  g«      \  \  \  }}\  }|| k(  r|d|z
  d|z
  z  k(  sJ ‚y ||  k(  r|d|z   d|z   z  k(  sJ ‚y d| › d|  › d|› �}J |«       ‚)Nra   rq   zExpected common subexpression z or z, instead got )r   rK   r   )Úxp1rU   ÚueÚredÚmsgs        r=   Útest_cse_unevaluatedr4  $  s¡   € Ü
œ!˜a™%Ó
 €Cä˜b 3™h¨1¨s©7Ñ3Ð4Ó5Ñ�J�X€bˆ"‘�Ø	ˆS‚yØ�r˜B‘w 1 r¡6Ñ*Ò*Ð*Ñ*Ø	�ˆtŠØ�r˜B‘w 1 r¡6Ñ*Ò*Ð*Ñ*à.¨s¨e°4¸¸°v¸^ÈBÈ4ÐPˆØ�cÓˆurD   c                  óä  — d\  } }t        d|z  «      }t        | «      D ��cg c]5  }t        t        t        |«      D �cg c]  }||   d||z   z  z  ‘Œ c}«      ‘Œ7 }}}|d   |d   z   j	                  «       dk(  sJ ‚t        |«      \  }}t        |«      dkD  sJ d«       ‚t        |«      D ]8  \  }}|j                  t        |«      «      ||   z
  j	                  «       dk(  rŒ8J ‚ y c c}w c c}}w )N)rg   r5   zx:%drq   r   ra   z!exprs[0] == -exprs[2], i.e. a CSE)
r   r:   r   r   Úsimplifyr   rV   Ú	enumeraterá   rv   )	ÚnexprsÚntermsrK   r<   r”   r–   Úsubstr2  rX   s	            r=   Útest_cse__performancer;  1  sü   € Ø�N€FˆFÜ�˜‘Ó €Aô �v“÷àô 	Œs¬u°V«}Ö=¨!�Q�q‘T˜2  1¡™+Ó%Ò=Õ>ð€Eñ ð �!‰H�u˜Q‘xÑ×)Ñ)Ó+¨qÒ0Ð0Ð0Ü�U“�J€Eˆ3Üˆu‹:˜Š>Ð>Ð>Ó>ˆ>Ü˜#“ò D‰ˆˆ1Ø—‘”x “Ó'¨%°©(Ñ2×<Ñ<Ó>À!ÓCÐCÐCñDùò >ùós   ¢C,¾C'Á	C,Ã'C,c                  ó
  — t         t        z   dt         z   t        z   t         t        z   t        z   dt         z   t        z   t        z   g} t        | «      \  }}dt	        |«      t        d„ |D «       «      z   t        |«      z   k\  sJ ‚y )NrR   rg   rÈ   c              3   óB   K  — | ]  \  }}|j                  «       –— Œ y ­wr@   r"   )r  r  Úvs      r=   r  z#test_issue_12070.<locals>.<genexpr>B  s   è ø€ Ò!B±D°A°q !§+¡+§-Ñ!Bùr  )rK   r2   rF   r   rV   r  r#   )r–   r:  r2  s      r=   Útest_issue_12070r?  ?  sq   € Ü”‰U�Aœ‘EœA‘Iœq¤1™u¤q™y¨!¬a©%´!©)´a©-Ð8€EÜ�U“�J€Eˆ3Ø”�U“œcÑ!B¸EÔ!BÓBÑBÜ˜3“ñ ò !ð !ñ !rD   c                  ón   — t         dt         dz  z  t        dz  z   z  } t        | «      d   d   }|| k(  sJ ‚y )NéüÿÿÿrR   ra   r   )rK   r2   r   )rh   Úcse_eqs     r=   Útest_issue_13000rC  F  s9   € Ü	
ˆBŒq�!‰t‰G”a˜‘d‰NÑ	€BÜ�‹W�Q‰Z˜‰]€FØ�RŠ<Ð‰<rD   c                  ó¬   — t        t        dz  dt        z  z   dz
  d«      t        t        dz  dt        z  z   dz
  d«      z   } t        | «      g | gfk(  sJ ‚y )Nrf   é   rR   r   ra   )r   rK   r   r·   s    r=   Útest_issue_18203rF  L  sR   € Ü	”�A‘˜œ1™‘˜q‘ !Ó	$¤w¬q°!©t°b¼±d©{¸Q©ÀÓ'BÑ	B€BÜˆr‹7�r˜B˜4�jÒ Ð Ñ rD   c                  ó¤   — t        t        t        z   t        t        z   d¬«      } t        | «      t        t        t        z   fgt        dz  gfk(  sJ ‚y )NF©ÚevaluaterR   )r
   rK   r2   r   rU   r·   s    r=   Útest_unevaluated_mulrJ  Q  s?   € Ü	ŒQ”‰U”Aœ‘E EÔ	*€BÜˆr‹7œœQ¤™U˜�}¤r¨1¡u gÐ.Ò.Ð.Ñ.rD   c                  ó   — ddl m}  t        d«      \  }}}}}t        t        z   dz
  dz  t        t        t        z   t        t        z   dt        z  dz   z  t        t        z   dz
  dz  z   dt        z  dz   t        t        z   z  g}t        || ¬«      \  }}|s’J |t        t        t        z   ft        t        dz
  dz  ft        dt        z  dz   f|t        t        z  t        z   f|t        t        z  ft        d f|t        ft        d f|t        ft        d f|t        fg|||||ffk(  «       ‚|j                  «        |D �	�
cg c]  \  }	}
|
€Œ	|	|
f‘Œ }}	}
||D �cg c]  }|j                  |«      ‘Œ c}k(  sJ ‚y c c}
}	w c c}w )Nr   )Úcse_release_variablesz_:5ra   rR   r´   )Úsympy.simplify.cse_mainrL  r   rK   r2   r   rU   rr   rw   Úreverserá   )rL  Ú_0Ú_1Ú_2Ú_3Ú_4ÚeqsrÉ   rX   r  r>  r<   s               r=   Útest_cse_release_variablesrU  V  sq  € Ý=Ü  ›Ñ€BˆˆB��BÜ”‰E�A‰I˜‰>œ1Ü	ŒA‰””A‘˜œ!™˜a™Ñ ¤A¬¡E¨A¡I°¡>Ñ1Ø	
Œ1‰ˆq‰”Aœ‘EÑð€Cô ˆsÐ 5Ô6�D€A€qáð FˆaÜŒŒQ‰€K”"”r˜A‘v ‘kÐ"¤R¨¬1©¨q© MØŒŒB‰”‰Ð�rœ2œr™6�l¤R¨ J°´R°Üˆ€J�”R�œ2˜t˜* r¬1 gð/ð 24°R¸¸RÀÐ0DðFñ Fó Fˆ1ð ‡I�I„KØ×/‘D�A�q ¡ˆ!ˆQŠÐ/€AÑ/Ø aÖ( �1—6‘6˜!•9Ò(Ò(Ð(Ñ(ùó 	0ùÚ(s   Ä<
E5ÅE5ÅE;c                  ó*  — d„ }  | t         «      g t         fk(  sJ ‚ | d«      g dfk(  sJ ‚t         g}t        t        t        fD ]  } |  ||«      «      g  ||«      fk(  rŒJ ‚  | t	        |Ž «      g t	        |Ž fk(  sJ ‚t         di} | |«      g |fk(  sJ ‚y )Nc                 ó   — t        | d¬«      S )NF)r7   r   )rK   s    r=   ú<lambda>ztest_cse_list.<locals>.<lambda>h  s   € ”S˜ Ô'€ rD   rK   ra   )rK   r7   ÚtupleÚsetr   )Ú_cseÚitr�   r‘   s       r=   Útest_cse_listr]  g  s¯   € Ù'€DÙ”‹7�rœ1�gÒÐÐÙ�‹9˜˜S˜	Ò!Ð!Ð!Ü
ˆ€BÜ”Eœ3Ðò *ˆÙ‘A�b“E‹{˜r¡1 R£5˜kÓ)Ð)Ð)ð*ñ ”�r�
Ó ¤E¨2 JÐ/Ò/Ð/Ð/Ü	
ˆAˆ€AÙ�‹7�r˜1�gÒÐÑrD   c                  óZ   — t        ddd«      } t        |  | z  | z
  «      |  | z  | z
  k(  sJ ‚y )Nr„   rR   )r0   r   )r„   s    r=   Útest_issue_18991r_  s  s7   € Ü�S˜!˜QÓ€AÜ�Q�B˜‘F˜Q‘JÓ A 2¨¡6¨A¡:Ò-Ð-Ñ-rD   c                  óF   — t        ddd¬«      g} t        | «      g | fk(  sJ ‚y )Nra   rR   FrH  )r
   r   )r•   s    r=   Útest_unevaluated_Mulra  x  s)   € Ü	ˆQ�˜EÔ	"Ð#€AÜˆq‹6�b˜!�WÒÐÑrD   c                  óž   — t        t        d«      «      j                  dd«      } t        | «      }t	        |«      }|g t        | «      gfk(  sJ ‚y ©NúA:4rR   )r.   r   Úreshaper   r   ©r„   rK   r§   s      r=   Ú"test_cse_matrix_expression_inverserg  }  sH   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜ�‹
€AÜ�1‹v€HØ˜œW Q›Z˜LÐ)Ò)Ð)Ñ)rD   c                  óÈ   — t        t        d«      «      j                  dd«      } t        t        d«      «      }t        t	        | «      |«      }t        |«      }|g |gfk(  sJ ‚y ©Nrd  rR   zb:2)r.   r   re  r   r   r   ©r„   r�   rK   r§   s       r=   Ú)test_cse_matrix_expression_matmul_inverserk  „  sX   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜœW U›^Ó,€AÜŒw�q‹z˜1Ó€AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c                  óª   — t        t        d«      «      j                  dd«      } t        t        j
                  | «      }t        |«      }|g |gfk(  sJ ‚y rc  ©r.   r   re  r   r   ÚNegativeOner   rf  s      r=   Útest_cse_matrix_negate_matrixro  Œ  sJ   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒq�}‰}˜aÓ €AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c                  óô   — t        t        d«      «      j                  dd«      } t        t        d«      «      j                  dd«      }t        t        j
                  | |«      }t        |«      }|g |gfk(  sJ ‚y ©Nrd  rR   zB:4rm  ©r„   r…   rK   r§   s       r=   Ú+test_cse_matrix_negate_matmul_not_extractedrs  “  sg   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒq�}‰}˜a Ó#€AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c                  ó8  — t        t        d«      «      j                  dd«      } t        t        d«      «      j                  dd«      }t        t        j
                  t        | |«      «      }t        |«      }|g t        t        j
                  | |«      gfk(  sJ ‚y rq  rm  rr  s       r=   Ú'test_cse_matrix_nested_matmul_collapsedru  ›  sz   € äœW U›^Ó,×4Ñ4°Q¸Ó:€AÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒq�}‰}œf Q¨›lÓ+€AÜ�1‹v€HØ˜œV¤A§M¡M°1°aÓ8Ð9Ð:Ò:Ð:Ñ:rD   c                  ó°   — t        t        d«      «      j                  dd«      } t        t        t        | «      «      «      }t	        |«      }|g | gfk(  sJ ‚y rc  )r.   r   re  r   r   rf  s      r=   Ú0test_cse_matrix_optimize_out_single_argument_mulrw  ¤  sM   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒv”f˜Q“iÓ Ó!€AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c            	      ó  — t        t        d«      «      j                  dd«      } t        t	        t	        t	        | «      «      «      t	        t	        | «      «      t	        | «      | «      }t        |«      }|g t	        d| «      gfk(  sJ ‚y ©Nrd  rR   re   )r.   r   re  r   r   r   rf  s      r=   Ú9test_cse_matrix_optimize_out_single_argument_mul_combinedrz  «  ól   € äœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒv”fœV A›YÓ'Ó(¬&´¸³Ó*;¼VÀA»YÈÓJ€AÜ�1‹v€HØ˜œV A q›\˜NÐ+Ò+Ð+Ñ+rD   c            	      óÂ   — t        t        d«      «      j                  dd«      } t        t        t        t        | «      «      «      «      }t	        |«      }|g | gfk(  sJ ‚y rc  )r.   r   re  r   r   rf  s      r=   Ú0test_cse_matrix_optimize_out_single_argument_addr}  ³  sR   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜŒv”fœV A›YÓ'Ó(Ó)€AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c            	      ó  — t        t        d«      «      j                  dd«      } t        t	        t	        t	        | «      «      «      t	        t	        | «      «      t	        | «      | «      }t        |«      }|g t        d| «      gfk(  sJ ‚y ry  )r.   r   re  r   r   r   rf  s      r=   Ú9test_cse_matrix_optimize_out_single_argument_add_combinedr  º  r{  rD   c                  ó¶   — t        t        d«      «      j                  dd«      } t        t        d«      «      }t        | |«      }t	        |«      }|g |gfk(  sJ ‚y ri  )r.   r   re  r   r   rj  s       r=   Ú'test_cse_matrix_expression_matrix_solver�  Â  sT   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜœW U›^Ó,€AÜ�A�qÓ€AÜ�1‹v€HØ˜˜Q˜C�yÒ Ð Ñ rD   c            	      ót  — t        t        d«      «      j                  dd«      } t        t        d«      «      }t        t	        t        t        | «      | «      «      t        | «      |«      }t        |«      }t        ddd«      }t        t	        t        || «      «      ||«      }||t        | «      fg|gfk(  sJ ‚y )NzX:4rR   zy:2rU   )r.   r   re  r   r   r   r   r0   )ÚXr2   r�   r§   rU   Úreduced_expr_expecteds         r=   Ú!test_cse_matrix_matrix_expressionr…  Ê  s¡   € ÜœW U›^Ó,×4Ñ4°Q¸Ó:€AÜœW U›^Ó,€AÜŒw”vœi¨›l¨AÓ.Ó/´¸1³¸qÓA€AÜ�1‹v€HÜ	�d˜A˜qÓ	!€BÜ"¤7¬6°"°a«=Ó#9¸2¸qÓAÐØ˜"œi¨›lÐ+Ð,Ð/DÐ.EÐFÒFÐFÑFrD   c                  óŽ  — d} t        t        d| › �«      «      }t        t        d| | z  › �«      «      j                  | | «      }t        t        d| | z  › �«      «      j                  | | «      }t        t        d| | z  › �«      «      j                  | | «      }t        t        d| › �«      «      }t        |t	        |t        |«      t        t        |t	        ||t        |«      «      «      «      t        t	        ||«      t	        t        j                  |«      «      «      «      }t        |t	        t        j                  |t        |«      t        t        |t	        ||t        |«      «      «      «      ||«      «      }t        ||g«      }t        d| | «      }	t        d| | «      }
|	t        |«      f|
t        t        |t	        |||	«      «      «      fg}t        |t	        ||	|
t        t	        ||«      t	        t        j                  |«      «      «      «      t        |t	        t        j                  ||	|
||«      «      g}|||fk(  sJ ‚y	)
aÇ  Kalman Filter example from Matthew Rocklin's SciPy 2013 talk.

    Talk titled: "Matrix Expressions and BLAS/LAPACK; SciPy 2013 Presentation"

    Video: https://pyvideo.org/scipy-2013/matrix-expressions-and-blaslapack-scipy-2013-pr.html

    Notes
    =====

    Equations are:

    new_mu = mu + Sigma*H.T * (R + H*Sigma*H.T).I * (H*mu - data)
           = MatAdd(mu, MatMul(Sigma, Transpose(H), Inverse(MatAdd(R, MatMul(H, Sigma, Transpose(H)))), MatAdd(MatMul(H, mu), MatMul(S.NegativeOne, data))))
    new_Sigma = Sigma - Sigma*H.T * (R + H*Sigma*H.T).I * H * Sigma
              = MatAdd(Sigma, MatMul(S.NegativeOne, Sigma, Transpose(H)), Inverse(MatAdd(R, MatMul(H*Sigma*Transpose(H)))), H, Sigma))

    rR   zmu:zSigma:zH:zR:zdata:rU   rr   N)r.   r   re  r   r   r   r   r   rn  r   r0   )ÚNÚmuÚSigmaÚHr  ÚdataÚnew_muÚ	new_Sigmar§   rU   rr   Úreplacements_expectedÚreduced_exprs_expecteds                r=   Útest_cse_matrix_kalman_filterr�  Ô  s:  € ð$ 	
€AÜ	œg¨¨A¨3 iÓ0Ó	1€BÜ ¤¨6°!°a±%°Ð)9Ó!:Ó;×CÑCÀAÀqÓI€EÜœW r¨!¨a©%¨ \Ó2Ó3×;Ñ;¸A¸qÓA€AÜœW r¨!¨a©%¨ \Ó2Ó3×;Ñ;¸A¸qÓA€AÜ¤¨%°¨s¨Ó 4Ó5€DÜ�Bœ˜u¤i°£l´G¼FÀ1ÄfÈQÐPUÔW`ÐabÓWcÓFdÓ<eÓ4fÔhnÔouÐvwÐy{Óo|ô  Eô  FG÷  FSñ  FSð  UYó  Zó  i[ó  \ó  ]€FÜ�uœf¤Q§]¡]°E¼9ÀQ»<ÌÔQWÐXYÔ[aÐbcÐejÔluÐvwÓlxÓ[yÓQzÓI{Ð}~ð  AFó  Gó  H€IÜ�F˜IÐ&Ó'€HÜ	�d˜A˜qÓ	!€BÜ	�d˜A˜qÓ	!€Bà	ŒY�q‹\ÐØ	ŒW”V˜Aœv a¨°Ó3Ó4Ó5Ð6ðÐô
 	ˆr”6˜%  R¬´°q¸"³¼vÄaÇmÁmÐUYÓ?ZÓ)[Ó\Ó]Üˆu”fœQŸ]™]¨E°2°r¸1¸eÓDÓEðÐð Ð-Ð/EÐFÒFÐFÑFrD   )›Ú	functoolsr   r8   Úoperatorr   Úsympy.codegen.matrix_nodesr   Úsympy.core.addr   Úsympy.core.containersr   Úsympy.core.exprr   r­   r	   Úsympy.core.mulr
   Úsympy.core.powerr   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.matrices.denser   Úsympy.matrices.expressionsr   r   r   r   Úsympy.polys.rootoftoolsr   Úsympy.series.orderr   rM  r   Úsympy.simplify.simplifyr   Úsympy.tensor.indexedr    r!   r#   Úsympy.simplify.cse_optsr$   r%   Úsympy.functions.special.hyperr&   Úsympy.simplifyr'   r(   Úsympy.utilities.iterablesr)   Úsympy.testing.pytestr*   r+   Úsympy.matricesr,   r-   r.   r/   r0   rl   rK   r2   rF   rU   rr   rw   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   Úx10Úx11Úx12r>   rC   rG   rM   rP   r_   rc   ri   rm   rt   r}   r‡   rŠ   rŒ   r—   r™   rœ   rž   r    r¢   r©   r¯   r²   r¸   rÆ   rÊ   rÒ   rÕ   rÙ   rÜ   rß   rå   rç   rë   r÷   rû   r  r  r  r+  r.  r4  r;  r?  rC  rF  rJ  rU  r]  r_  ra  rg  rk  ro  rs  ru  rw  rz  r}  r  r�  r…  r�  rL   rD   r=   ú<module>r°     sh  ðÝ Û Ý å 2Ý Ý 'Ý +Ý (Ý Ý  Ý $Ý "ß /Ý &Ý 6Ý 9Ý :ß ?Ý 'ß IÓ IÝ +Ý  Ý 'Ý ,ß 3å )ß 5Ý 1ß -Ý -ß .÷5ó 5å 3ñ �YÓ�
€€1€aˆÙ8?À»Ñ 5€€BˆˆB��B˜˜B  B¨¨S°#ò	Aòòò6ò4ò
4ò4ò	!ò)òAò*.ð< ñ/ó ð/òð ñ/ó ð/ð ñó ðð ñ;ó ð;ò ò
4ò
?ò9ò
4ò'ò,(ò*3òò0Gò	!òeòò òCò
<ò<òò""òJ+ò"/ðJ ñó ðò*ò
tòò
òDò!òò!ò
/ò
)ò"
ò.ò
ò
*ò!ò!ò!ð ñ;ó ð;ò!ð ñ,ó ð,ò!ð ñ,ó ð,ò!òGó%GrD   