Ë
    O/æjÂ�  ã                  ó  — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZ 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mZ ddlmZmZ  G d„ de«      Z ee«      d„ «       Z  G d„ de«      Z! ee!«      d„ «       Z"y)zI
A Printer for generating readable representation of most SymPy classes.
é    )Úannotations)ÚAny)ÚSÚRationalÚPowÚBasicÚMulÚNumber)Ú_keep_coeff)ÚInteger)Ú
Relational)Údefault_sort_key)Úsifté   )Ú
precedenceÚ
PRECEDENCE)ÚPrinterÚprint_function)Úprec_to_dpsÚto_strc                  ól  — e Zd ZU dZddddddddœZded<   i Zd	ed
<   d�d„Zd‘d„Zd„ Z	d’d„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zd!„ Zd"„ Zd#„ Zd$„ Z d%„ Z!d&„ Z"d'„ Z#d(„ Z$d)„ Z%d*„ Z&d+„ Z'd,„ Z(d-„ Z)d.„ Z*d/„ Z+d0„ Z,d1„ Z-d2„ Z.d3„ Z/d4„ Z0d5„ Z1d6„ Z2d7„ Z3d8„ Z4d9„ Z5d:„ Z6d;„ Z7d<„ Z8d=„ Z9d>„ Z:d?„ Z;d@„ Z<dA„ Z=dB„ Z>dC„ Z?dD„ Z@dE„ ZAdF„ ZBdG„ ZCdH„ ZDdI„ ZEdJ„ ZFdK„ ZGdL„ ZHdM„ ZIdN„ ZJdO„ ZKdP„ ZLdQ„ ZMd�dR„ZNdS„ ZOdT„ ZPdU„ ZQdV„ ZRdW„ ZSdX„ ZTdY„ ZUdZ„ ZVd[„ ZWd\„ ZXd]„ ZYd^„ ZZd_„ Z[d`„ Z\da„ Z]db„ Z^dc„ Z_dd„ Z`de„ Zadf„ Zbdg„ Zcdh„ Zddi„ Zedj„ Zfdk„ Zgdl„ Zhdm„ Zidn„ ZjejZkejZldo„ Zmdp„ Zndq„ Zodr„ Zpds„ Zqdt„ Zrdu„ Zsdv„ Ztdw„ Zudx„ Zvdy„ Zwdz„ Zxd{„ Zyd|„ Zzd}„ Z{d~„ Z|d„ Z}d€„ Z~d�„ Zd‚„ Z€dƒ„ Z�d„„ Z‚d…„ Zƒd†„ Z„d‡„ Z…dˆ„ Z†d‰„ Z‡dŠ„ Zˆd‹„ Z‰dŒ„ ZŠd�„ Z‹dŽ„ ZŒd�„ Z�y)“Ú
StrPrinterÚ	_sympystrNÚautoFT)ÚorderÚ	full_precÚsympy_integersÚabbrevÚperm_cyclicÚminÚmaxzdict[str, Any]Ú_default_settingszdict[str, str]Ú_relationalsc                óˆ   — t        |«      |k  s|s"t        |«      |k  rd| j                  |«      z  S | j                  |«      S )Nú(%s))r   Ú_print)ÚselfÚitemÚlevelÚstricts       úU/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/sympy/printing/str.pyÚparenthesizezStrPrinter.parenthesize"   s@   € Ü�tÓ˜uÒ$©v¼:ÀdÓ;KÈuÒ;TØ˜DŸK™K¨Ó-Ñ-Ð-à—;‘;˜tÓ$Ð$ó    c           	     ój   — |j                  |D �cg c]  }| j                  ||«      ‘Œ c}«      S c c}w ©N)Újoinr,   )r'   ÚargsÚsepr)   r(   s        r+   Ú	stringifyzStrPrinter.stringify(   s,   € Ø�x‰xÀDÖI¸D˜×*Ñ*¨4°Õ7ÒIÓJÐJùÒIs   �0c                ór   — t        |t        «      r|S t        |t        «      rt        |«      S t        |«      S r/   )Ú
isinstanceÚstrr   Úrepr©r'   Úexprs     r+   ÚemptyPrinterzStrPrinter.emptyPrinter+   s/   € Ü�dœCÔ ØˆKÜ˜œeÔ$Ü˜“:Ðä�t“9Ðr-   c                ó   — | j                  ||¬«      }t        |«      }g }|D ]~  }| j                  |«      }|j                  d«      r|j                  sd}|dd  }nd}t        |«      |k  s|j                  r|j                  |d|z  g«       Œl|j                  ||g«       Œ€ |j                  d«      }|dk(  rd}|dj                  |«      z   S )	N©r   ú-r   ú+r%   r   Ú ú )Ú_as_ordered_termsr   r&   Ú
startswithÚis_AddÚextendÚpopr0   )	r'   r9   r   ÚtermsÚprecÚlÚtermÚtÚsigns	            r+   Ú
_print_AddzStrPrinter._print_Add3   sÐ   € Ø×&Ñ& t°5Ð&Ó9ˆä˜$ÓˆØˆØò 
	$ˆDØ—‘˜DÓ!ˆAØ�|‰|˜CÔ ¨¯ªØ�Ø�a�b�E‘à�Ü˜$Ó $Ò&¨$¯+ª+Ø—‘˜$ ¨¡
Ð+Õ,à—‘˜$ ˜Õ#ð
	$ð �u‰u�Q‹xˆØ�3Š;ØˆDØ�c—h‘h˜q“kÑ!Ð!r-   c                 ó   — y)NÚTrue© r8   s     r+   Ú_print_BooleanTruezStrPrinter._print_BooleanTrueH   s   € Ør-   c                 ó   — y)NÚFalserO   r8   s     r+   Ú_print_BooleanFalsezStrPrinter._print_BooleanFalseK   ó   € Ør-   c                óT   — d| j                  |j                  d   t        d   «      z  S )Nz~%sr   ÚNot)r,   r1   r   r8   s     r+   Ú
_print_NotzStrPrinter._print_NotN   s'   € Ø�t×(Ñ(¨¯©°1©´jÀÑ6GÓHÑIÐIr-   c                ó8  — t        |j                  «      }t        |«      D ]^  \  }}t        |t        «      sŒ|j
                  j                  t        j                  u sŒ>|j                  d|j                  |«      «       Œ` | j                  |dt        d   «      S )Nr   z & Ú
BitwiseAnd)Úlistr1   Ú	enumerater5   r   Ú	canonicalÚrhsr   ÚNegativeInfinityÚinsertrE   r3   r   )r'   r9   r1   ÚjÚis        r+   Ú
_print_AndzStrPrinter._print_AndQ   sv   € Ü�D—I‘I‹ˆÜ˜d“Oò 	,‰DˆAˆqÜ˜!œZÕ(Ø—K‘K—O‘O¤q×'9Ñ'9Ò9Ø—‘˜A˜tŸx™x¨›{Õ+ð	,ð �~‰~˜d E¬:°lÑ+CÓDÐDr-   c                óJ   — | j                  |j                  dt        d   «      S )Nz | Ú	BitwiseOr©r3   r1   r   r8   s     r+   Ú	_print_OrzStrPrinter._print_OrY   s   € Ø�~‰~˜dŸi™i¨´
¸;Ñ0GÓHÐHr-   c                óJ   — | j                  |j                  dt        d   «      S )Nz ^ Ú
BitwiseXorre   r8   s     r+   Ú
_print_XorzStrPrinter._print_Xor\   s   € Ø�~‰~˜dŸi™i¨´
¸<Ñ0HÓIÐIr-   c                óx   — | j                  |j                  «      ›d| j                  |j                  d«      ›d�S ©Nú(ú, ú))r&   Úfunctionr3   Ú	argumentsr8   s     r+   Ú_print_AppliedPredicatez"StrPrinter._print_AppliedPredicate_   s/   € à�K‰K˜Ÿ™Õ&¨¯©°t·~±~ÀtÕ(LðNð 	Nr-   c                ó²   — |j                   D �cg c]  }| j                  |«      ‘Œ }}|j                  j                  ddj	                  |«      z  z   S c c}w ©Nr%   rm   )r1   r&   Ú	__class__Ú__name__r0   )r'   r9   ÚorH   s       r+   Ú_print_BasiczStrPrinter._print_Basicc   sH   € Ø%)§Y¡YÖ/ ˆT�[‰[˜�^Ð/ˆÐ/Ø�~‰~×&Ñ&¨°$·)±)¸A³,Ñ)>Ñ>Ð>ùò 0s   �Ac                ó¦   — |j                   j                  dk(  r| j                  |j                   d   «       | j                  |j                   «      S )N)r   r   )r   r   )ÚblocksÚshaper&   )r'   ÚBs     r+   Ú_print_BlockMatrixzStrPrinter._print_BlockMatrixg   s9   € Ø�8‰8�>‰>˜VÒ#Ø�K‰K˜Ÿ™ ™Ô'Ø�{‰{˜1Ÿ8™8Ó$Ð$r-   c                 ó   — y)NÚCatalanrO   r8   s     r+   Ú_print_CatalanzStrPrinter._print_Catalanl   s   € Ør-   c                 ó   — y)NÚzoorO   r8   s     r+   Ú_print_ComplexInfinityz!StrPrinter._print_ComplexInfinityo   ó   € Ør-   c                ó  — t        |j                  |j                  fD �cg c]  }| j                  |«      ‘Œ c}«      }|j                  t
        j                  u rd|z  S || j                  |j                  «      fz  }d|z  S c c}w )NzConditionSet(%s, %s)zConditionSet(%s, %s, %s))ÚtupleÚsymÚ	conditionr&   Úbase_setr   ÚUniversalSet)r'   Úsra   r1   s       r+   Ú_print_ConditionSetzStrPrinter._print_ConditionSetr   sr   € Ü¨q¯u©u°a·k±kÐ.BÖC¨�d—k‘k !•nÒCÓDˆØ�:‰:œŸ™Ñ'Ø)¨DÑ0Ð0Ø�—‘˜QŸZ™ZÓ(Ð*Ñ*ˆØ)¨DÑ0Ð0ùò	 Ds    Bc                ó´   ‡ — |j                   }|j                  D �cg c]  }|d   dk(  r|d   n|‘Œ }}ddj                  ˆ fd„|g|z   D «       «      z  S c c}w )Nr   r   zDerivative(%s)rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   ©r&   ©Ú.0Úargr'   s     €r+   ú	<genexpr>z/StrPrinter._print_Derivative.<locals>.<genexpr>|   s   øè ø€ Ò,YÀ#¨T¯[©[¸×-=Ñ,Yùó   ƒ)r9   Úvariable_countr0   )r'   r9   Údexprra   Údvarss   `    r+   Ú_print_DerivativezStrPrinter._print_Derivativey   s_   ø€ Ø—	‘	ˆØ37×3FÑ3FÖG¨a˜˜1™ š��1’¨Ñ)ÐGˆÐGØ $§)¡)Ó,YÈ%ÈÐSXÉÔ,YÓ"ZÑZÐZùò Hs   œAc                óì   — t        |j                  «       t        ¬«      }g }|D ];  }| j                  |«      ›d| j                  ||   «      ›�}|j	                  |«       Œ= ddj                  |«      z  S )N©Úkeyz: ú{%s}rm   )ÚsortedÚkeysr   r&   Úappendr0   )r'   Údr�   Úitemsrš   r(   s         r+   Ú_print_dictzStrPrinter._print_dict~   sk   € Ü�a—f‘f“hÔ$4Ô5ˆØˆàò 	ˆCØ#Ÿ{™{¨3Õ/°·±¸Q¸s¹VÔ1DÐEˆDØ�L‰L˜Õð	ð ˜Ÿ	™	 %Ó(Ñ(Ð(r-   c                ó$   — | j                  |«      S r/   )r¡   r8   s     r+   Ú_print_DictzStrPrinter._print_Dictˆ   ó   € Ø×Ñ Ó%Ð%r-   c                ó,  — t        |d«      r"d| j                  |j                  «       «      z   S t        |d«      r=d| j                  |j                  «      z   dz   | j                  |j                  «      z   S d| j                  |j                  «      z   S )NÚ
as_booleanzDomain: Úsetz in z
Domain on )Úhasattrr&   r¦   Úsymbolsr§   )r'   rŸ   s     r+   Ú_print_RandomDomainzStrPrinter._print_RandomDomain‹   s~   € Ü�1�lÔ#Ø §¡¨A¯L©L«NÓ ;Ñ;Ð;Ü�Q˜ÔØ §¡¨Q¯Y©YÓ!7Ñ7¸&Ñ@Ø—K‘K §¡Ó&ñ'ð (ð   $§+¡+¨a¯i©iÓ"8Ñ8Ð8r-   c                ó    — d|j                   z   S ©NÚ_©Únamer8   s     r+   Ú_print_DummyzStrPrinter._print_Dummy”   s   € Ø�T—Y‘Y‰Ðr-   c                 ó   — y)NÚ
EulerGammarO   r8   s     r+   Ú_print_EulerGammazStrPrinter._print_EulerGamma—   s   € Ør-   c                 ó   — y)NÚErO   r8   s     r+   Ú_print_Exp1zStrPrinter._print_Exp1š   ó   € Ør-   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S rk   )r&   r9   Úcondr8   s     r+   Ú_print_ExprCondPairzStrPrinter._print_ExprCondPair�   s'   � Ø!Ÿ[™[¨¯©Õ3°T·[±[ÀÇÁÕ5KÐLÐLr-   c                ón   — |j                   j                  d| j                  |j                  d«      z  z   S rs   )Úfuncru   r3   r1   r8   s     r+   Ú_print_FunctionzStrPrinter._print_Function    s+   € Ø�y‰y×!Ñ! F¨T¯^©^¸D¿I¹IÀtÓ-LÑ$LÑLÐLr-   c                 ó   — y)NÚGoldenRatiorO   r8   s     r+   Ú_print_GoldenRatiozStrPrinter._print_GoldenRatio£   s   € Ør-   c                ón   — |j                   j                  d| j                  |j                  d«      z  z   S rs   )r¼   ru   r3   Úpargsr8   s     r+   Ú_print_HeavisidezStrPrinter._print_Heaviside¦   s-   € ð �y‰y×!Ñ! F¨T¯^©^¸D¿J¹JÈÓ-MÑ$MÑMÐMr-   c                 ó   — y)NÚTribonacciConstantrO   r8   s     r+   Ú_print_TribonacciConstantz$StrPrinter._print_TribonacciConstant«   s   € Ø#r-   c                 ó   — y©NÚIrO   r8   s     r+   Ú_print_ImaginaryUnitzStrPrinter._print_ImaginaryUnit®   r·   r-   c                 ó   — y)NÚoorO   r8   s     r+   Ú_print_InfinityzStrPrinter._print_Infinity±   ó   € Ør-   c                óº   ‡ — ˆ fd„}dj                  |j                  D �cg c]
  } ||«      ‘Œ c}«      }d‰ j                  |j                  «      ›d|›d�S c c}w )Nc                ó�   •— t        | «      dk(  r‰j                  | d   «      S ‰j                  | d   ft        | dd  «      z   «      S ©Nr   r   ©Úlenr&   r…   ©Úxabr'   s    €r+   Ú
_xab_tostrz.StrPrinter._print_Integral.<locals>._xab_tostrµ   óE   ø€ Ü�3‹x˜1Š}Ø—{‘{ 3 q¡6Ó*Ð*à—{‘{ C¨¡F 9¬u°S¸¸°W«~Ñ#=Ó>Ð>r-   rm   z	Integral(rn   ©r0   Úlimitsr&   ro   ©r'   r9   rÖ   rH   ÚLs   `    r+   Ú_print_IntegralzStrPrinter._print_Integral´   sH   ø€ ô	?ð
 �I‰I¨d¯k©kÖ:¨‘z !•}Ò:Ó;‰Ø%)§[¡[°·±Õ%?ÂÐCÐCùò ;ó    Ac                óø   — d}|j                   \  }}}}|j                  r|j                  rd}n7|j                  r|sd}n&|j                  r|sd}n|s|sd}n|r|rd}n|rd}nd} |j                  di |||dœ¤ŽS )NzInterval{m}({a}, {b})r?   z.openz.Lopenz.Ropen)ÚaÚbÚmrO   )r1   Úis_infiniteÚformat)r'   ra   Úfinrß   rà   rH   Úrrá   s           r+   Ú_print_IntervalzStrPrinter._print_Interval½   s‚   € Ø&ˆØ—V‘V‰
ˆˆ1ˆa�Ø�=Š=˜QŸ]š]Ø‰AØ�]Š]¡1Ø‰AØ�]Š]¡1Ø‰AÙ™1Ø‰AÙ‘1Ø‰AÙØ‰AàˆAØˆs�z‰zÑ5 !¨!°!Ñ4Ñ5Ð5r-   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )NzAccumBounds(rm   rn   )r&   r    r!   )r'   ra   s     r+   Ú_print_AccumulationBoundsz$StrPrinter._print_AccumulationBoundsÐ   s,   � Ø(,¯©°A·E±EÕ(:Ø(,¯©°A·E±EÕ(:ð<ð 	<r-   c                óN   — d| j                  |j                  t        d   «      z  S )Nz%s**(-1)r   ©r,   r‘   r   )r'   rÉ   s     r+   Ú_print_InversezStrPrinter._print_InverseÔ   s#   € Ø˜D×-Ñ-¨a¯e©e´ZÀÑ5FÓGÑGÐGr-   c                óÄ   — |j                   }|j                  }t        |«      dk(  r|d   j                  r|d   }d| j	                  |«      ›d| j	                  |«      ›d�S )Nr   r   zLambda(rm   rn   )r9   Ú	signaturerÓ   Ú	is_symbolr&   )r'   Úobjr9   Úsigs       r+   Ú_print_LambdazStrPrinter._print_Lambda×   sR   € Ø�x‰xˆØ�m‰mˆÜˆs‹8�qŠ=˜S ™V×-Ò-Ø�a‘&ˆCøØ#'§;¡;¨sÕ#3°T·[±[ÀÕ5FÐGÐGr-   c                ó¢   ‡ — t        |j                  t        ¬«      }|j                  j                  ddj                  ˆ fd„|D «       «      z  z   S )Nr™   r%   rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   r�   s     €r+   r’   z.StrPrinter._print_LatticeOp.<locals>.<genexpr>à   s   øè ø€ Ò6XÈC°t·{±{À3×7GÑ6Xùr“   )rœ   r1   r   r¼   ru   r0   ©r'   r9   r1   s   `  r+   Ú_print_LatticeOpzStrPrinter._print_LatticeOpÞ   s>   ø€ Ü�d—i‘iÔ%5Ô6ˆØ�y‰y×!Ñ! F¨T¯Y©YÓ6XÐSWÔ6XÓ-XÑ$XÑXÐXr-   c           
     óp   — |j                   \  }}}}dt        t        | j                  ||||f«      «      z  S )NzLimit(%s, %s, %s, dir='%s'))r1   r…   Úmapr&   )r'   r9   ÚeÚzÚz0Údirs         r+   Ú_print_LimitzStrPrinter._print_Limitâ   s7   € ØŸ	™	‰ˆˆ1ˆb�#Ø,¬u´S¸¿¹ÀqÈ!ÈRÐQTÀoÓ5VÓ/WÑWÐWr-   c                ó,   — d| j                  |d«      z  S )Nú[%s]rm   )r3   r8   s     r+   Ú_print_listzStrPrinter._print_listç   s   € Ø˜Ÿ™ t¨TÓ2Ñ2Ð2r-   c                ó$   — | j                  |«      S r/   )rÿ   r8   s     r+   Ú_print_ListzStrPrinter._print_Listê   r¤   r-   c                ó$   — |j                  | «      S r/   )Ú_format_strr8   s     r+   Ú_print_MatrixBasezStrPrinter._print_MatrixBaseí   r¤   r-   c                óÄ   — | j                  |j                  t        d   d¬«      d| j                  |j                  «      ›d| j                  |j
                  «      ›d�z   S )NÚAtomT©r*   ú[rm   ú])r,   Úparentr   r&   ra   r`   r8   s     r+   Ú_print_MatrixElementzStrPrinter._print_MatrixElementð   sN   € Ø× Ñ  §¡¬j¸Ñ.@ÈÐ ÔNØ ŸK™K¨¯©Õ/°·±¸T¿V¹VÕ1DÐEñFð 	Fr-   c                ó
  ‡ — ˆ fd„}‰ j                  |j                  t        d   d¬«      dz    ||j                  |j                  j                  «      z   dz    ||j
                  |j                  j                  «      z   dz   S )Nc                ó˜   •— t        | «      } | d   dk(  r| d= | d   dk(  rd| d<   | d   |k(  rd| d<   dj                  ˆfd„| D «       «      S )Né   r   r   r?   ú:c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   r�   s     €r+   r’   zBStrPrinter._print_MatrixSlice.<locals>.strslice.<locals>.<genexpr>ý   s   øè ø€ Ò;°#˜TŸ[™[¨×-Ñ;ùr“   )rZ   r0   )ÚxÚdimr'   s     €r+   Ústrslicez/StrPrinter._print_MatrixSlice.<locals>.strsliceõ   s[   ø€ Ü�Q“ˆAØ�‰t�qŠyØ�a�DØ�‰t�qŠyØ��!‘Ø�‰t�sŠ{Ø��!‘Ø—8‘8Ó;¸Ô;Ó<Ð<r-   r  Tr  r  rm   r	  )r,   r
  r   ÚrowsliceÚrowsÚcolsliceÚcols)r'   r9   r  s   `  r+   Ú_print_MatrixSlicezStrPrinter._print_MatrixSliceô   s€   ø€ ô	=ð ×!Ñ! $§+¡+¬z¸&Ñ/AÈ$Ð!ÓOÐRUÑUÙ˜Ÿ™¨¯©×(8Ñ(8Ó9ñ:Ø<@ñAá˜Ÿ™¨¯©×(8Ñ(8Ó9ñ:à<?ñ@ð 	Ar-   c                ó   — |j                   S r/   r®   r8   s     r+   Ú_print_DeferredVectorz StrPrinter._print_DeferredVector  ó   € Ø�y‰yÐr-   c           	     ó^
  — t        |«      }|j                  }|d   t        j                  u st	        d„ |dd  D «       «      �rÐt        |d„ d¬«      \  }}t        |«      D ]’  \  }}|j                  j                  r|j                   }n=t        |j                  j                  «      }	|	d    |	d<   t        j                  |	«      }|dz
  rt        |j                  |d¬«      n|j                  ||<   Œ” g }
|rC|d   j                  s4|d   j                  «       r!| j!                  |j#                  d«      «      g}
|
|D �cg c]  }| j%                  ||d¬	«      ‘Œ c}z   }|sd
g}t'        |«      dkD  r5|d   j                  «       r"| j!                  |j#                  d«      «      g}
ng }
|
|D �cg c]  }| j%                  ||d¬	«      ‘Œ c}z   }dj)                  |«      }dj)                  |«      }t'        |«      dkD  r|›d|›d�S |r|›d|›�S |S |j+                  «       \  }}|dk  rt-        | |«      }d}nd}g }g }g }| j.                  dvr|j1                  «       }nt        j2                  |«      }d„ }|D �]‡  }|j4                  rßt7        |t        «      rÏt9        |j                  j+                  «       d   dk  «      r¦|j                  t        j:                  ur|j=                   ||«      «       Œ}t'        |j                  d   j                  «      dk7  r1t7        |j                  t        t        f«      r|j=                  |«       |j=                  |j                  «       Œï|j>                  r||t        j@                  urj|jB                  dk7  r$|j=                  tE        |jB                  «      «       |jF                  dk7  s�ŒQ|j=                  tE        |jF                  «      «       �Œw|j=                  |«       �ŒŠ |xs t        j                  g}|D �cg c]  }| j%                  ||d¬	«      ‘Œ }}|D �cg c]  }| j%                  ||d¬	«      ‘Œ }}|D ]N  }|j                  |v sŒd||jI                  |j                  «         z  ||jI                  |j                  «      <   ŒP |s|dj)                  |«      z   S t'        |«      dk(  r|dj)                  |«      z   dz   |d   z   S |dj)                  |«      z   ddj)                  |«      z  z   S c c}w c c}w c c}w c c}w )Nr   c              3  ó”   K  — | ]@  }t        |t        «      xs* |j                  xr t        d „ |j                  D «       «      –— ŒB y­w)c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr/   )Ú
is_Integer)r�   Úais     r+   r’   z2StrPrinter._print_Mul.<locals>.<genexpr>.<genexpr>  s   è ø€ Ò @°2 §¥Ñ @ùs   ‚N)r5   r
   Úis_PowÚallr1   )r�   rß   s     r+   r’   z(StrPrinter._print_Mul.<locals>.<genexpr>  sH   è ø€ ò ##ð ô ˜1œfÓ%ò AØ—‘Ò@œSÑ @¸¿¹Ô @Ó@óAñ##ùs   ‚AAr   c                óx   — t        | t        «      xr) t        | j                  j	                  «       d   dk  «      S ©Nr   )r5   r   ÚboolÚexpÚas_coeff_Mul)r  s    r+   ú<lambda>z'StrPrinter._print_Mul.<locals>.<lambda>  s2   € Ü˜1œcÓ"ÒH¤t¨A¯E©E×,>Ñ,>Ó,@ÀÑ,CÀaÑ,GÓ'Hð r-   T)ÚbinaryF©Úevaluater  Ú1Ú*z/(rn   ú/r=   r?   )ÚoldÚnonec                óD  — | j                  «       \  }}t        t        j                  |«      «      }|d   t        j
                  u r|dd  }n	|d    |d<   t        j                  |«      }t        | t        «      r| j                  ||d¬«      S | j                  |d¬«      S )Nr   r   Fr*  )
Úas_base_exprZ   r	   Ú	make_argsr   ÚNegativeOneÚ
_from_argsr5   r   r¼   )ra   rà   rø   Úeargss       r+   Úapowz#StrPrinter._print_Mul.<locals>.apowK  sŽ   € Ø—=‘=“?‰DˆAˆqÜœŸ™ qÓ)Ó*ˆEØ�Q‰xœ1Ÿ=™=Ñ(Ø˜a˜b˜	‘à! !™H˜9��a‘Ü—‘˜uÓ%ˆAÜ˜!œSÔ!Ø—v‘v˜a ¨U�vÓ3Ð3Ø—6‘6˜! e�6Ó,Ð,r-   r%   z/(%s))%r   r1   r   ÚOneÚanyr   r[   r&  Ú	is_NumberrZ   r	   r5  r   ÚbaserC   Úcould_extract_minus_signr&   rE   r,   rÓ   r0   r'  r   r   Úas_ordered_factorsr3  Úis_commutativer5   r%  r4  rž   Úis_RationalÚInfinityÚpr   ÚqÚindex)r'   r9   rG   r1   rŸ   Únra   Údirø   ÚdargsÚprerß   ÚnfactorsÚdfactorsÚcrK   rà   Ú	pow_parenr7  r(   r  Úa_strÚb_strs                          r+   Ú
_print_MulzStrPrinter._print_Mul  s¯  € ä˜$Óˆð �y‰yˆØ�‰7”a—e‘eÑœsñ ##ð ˜a˜b˜ô##õ  #ô ˜ñ Iàô‰DˆAˆqô # 1›ò M‘��2Ø—6‘6×#Ò#ØŸ™˜‘Aä  §¡§¡Ó-�EØ % a¡˜y�E˜!‘HÜŸ™ uÓ-�AØ:;¸aº%”s˜2Ÿ7™7 A°Õ6ÀRÇWÁW��!’ðMð ˆCá˜˜1™Ÿš¨¨1©×)FÑ)FÔ)HØ—{‘{ 1§5¡5¨£8Ó,Ð-�àØöØð #×/Ñ/°°4ÀÐ/ÕFò ñ ˆHáØ˜5�ô �1‹v˜Šz˜a ™d×;Ñ;Ô=Ø—{‘{ 1§5¡5¨£8Ó,Ð-‘à�ØØöØð #×/Ñ/°°4ÀÐ/ÕFò ñ ˆHð —‘˜Ó"ˆAØ—‘˜Ó"ˆAÜ�8‹}˜qÒ Ú$%¢qÐ)Ð)ÙÚ"#¡QÐ'Ð'ØˆHà× Ñ Ó"‰ˆˆ1ØˆqŠ5Ü ˜r 1Ó%ˆDØ‰DàˆDàˆØˆàˆ	à�:‰:˜_Ñ,Ø×*Ñ*Ó,‰Dô —=‘= Ó&ˆDò
	-ð ó 	ˆDØ×#Ò#Ü˜t¤SÔ)Ü˜Ÿ™×.Ñ.Ó0°Ñ3°aÑ7Ô8Ø—8‘8¤1§=¡=Ñ0Ø—H‘H™T $›ZÕ(ä˜DŸI™I a™L×-Ñ-Ó.°!Ò3Ü& t§y¡y´3¼°*Ô=à!×(Ñ(¨Ô.Ø—H‘H˜TŸY™YÕ'Ø×!Ò! d´!·*±*Ñ&<Ø—6‘6˜Q’;Ø—H‘HœX d§f¡fÓ-Ô.Ø—6‘6˜Q”;Ø—H‘HœX d§f¡fÓ-Ö.à—‘˜–ð%	ð( ŠL”!—%‘%�ˆàCDÖE¸a�×"Ñ" 1 d°5Ð"Õ9ÐEˆÐEØCDÖE¸a�×"Ñ" 1 d°5Ð"Õ9ÐEˆÐEð ò 	OˆDØ�y‰y˜AŠ~Ø,2°U¸1¿7¹7À4Ç9Á9Ó;MÑ5NÑ,N��a—g‘g˜dŸi™iÓ(Ò)ð	Oñ Ø˜#Ÿ(™( 5›/Ñ)Ð)Ü�‹V�qŠ[Ø˜#Ÿ(™( 5›/Ñ)¨CÑ/°%¸±(Ñ:Ð:à˜#Ÿ(™( 5›/Ñ)¨G°c·h±h¸u³oÑ,EÑEÐEùòmùòùò~ FùÚEs   ÅTÆ0T Ð T%ÑT*c                óœ  — |j                  «       \  }}d}|j                  rb|j                  «       \  }}|j                  r|j                  rt        | |«      }d}n'|j                  r|j                  rt        | |«      }d}|dj                  |j                  D �cg c]  }| j                  |t        |«      «      ‘Œ c}«      z   S c c}w )Nr?   r=   r-  )
Úas_coeff_mmulÚ	is_numberÚas_real_imagÚis_zeroÚis_negativer   r0   r1   r,   r   )r'   r9   rJ  rá   rK   ÚreÚimr‘   s           r+   Ú_print_MatMulzStrPrinter._print_MatMul{  s¯   € Ø×!Ñ!Ó#‰ˆˆ1àˆØ�;Š;Ø—^‘^Ó%‰FˆB�Ø�zŠz˜bŸnšnÜ" A 2 qÓ)�Ø‘Ø—’ §¢Ü" A 2 qÓ)�Ø�à�c—h‘hØAEÇÁÖK¸#ˆT×Ñ˜s¤J¨tÓ$4Õ5ÒKó
ñ 
ð 	
ùÚKs   Â"C	
c                ól   — dj                  |j                  | j                  |j                  «      «      S )Nz{}.({}))rã   ro   r&   r9   r8   s     r+   Ú_print_ElementwiseApplyFunctionz*StrPrinter._print_ElementwiseApplyFunctionŒ  s,   € Ø×ÑØ�M‰MØ�K‰K˜Ÿ	™	Ó"ó
ð 	
r-   c                 ó   — y)NÚnanrO   r8   s     r+   Ú
_print_NaNzStrPrinter._print_NaN’  rƒ   r-   c                 ó   — y)Nz-oorO   r8   s     r+   Ú_print_NegativeInfinityz"StrPrinter._print_NegativeInfinity•  rƒ   r-   c                óZ  — |j                   rt        d„ |j                  D «       «      rdt        |j                   «      dk  rd| j	                  |j
                  «      z  S d| j                  |j
                  f|j                   z   dd«      z  S d| j                  |j                  dd«      z  S )Nc              3  ó@   K  — | ]  }|t         j                  u –— Œ y ­wr/   )r   ÚZero)r�   rA  s     r+   r’   z*StrPrinter._print_Order.<locals>.<genexpr>™  s   è ø€ Ò$E°Q Q¬!¯&©&¤[Ñ$Eùs   ‚r   zO(%s)rm   r   )Ú	variablesr"  ÚpointrÓ   r&   r9   r3   r1   r8   s     r+   Ú_print_OrderzStrPrinter._print_Order˜  s‡   € Ø�~Š~¤Ñ$E¸$¿*¹*Ô$EÔ!EÜ�4—>‘>Ó" aÒ'Ø §¡¨T¯Y©YÓ!7Ñ7Ð7à §¡°·±°¸t¿~¹~Ñ0MÈtÐUVÓ!WÑWÐWà˜TŸ^™^¨D¯I©I°t¸QÓ?Ñ?Ð?r-   c                ó"   — |j                  «       S r/   ©Ú__str__r8   s     r+   Ú_print_OrdinalzStrPrinter._print_Ordinal¡  ó   € Ø�|‰|‹~Ðr-   c                ó"   — |j                  «       S r/   rf  r8   s     r+   Ú_print_CyclezStrPrinter._print_Cycle¤  ri  r-   c                óJ  — ddl m}m} ddlm} |j
                  }|� |d|› d�ddd¬	«       n| j                  j                  d
d«      }|r~|j                  sy  ||«      |j                  dz
  «      j                  «       t        d«      d  }|j                  d«      }|dk(  sd||d  vr||d  |d | z   }|j                  dd«      }|S |j                  «       }|sK|j                  dk  rd| j                  |j                  «      z  S d| j                  |j                  «      z  S | j                  |j                  d |d   dz    «      d| j                  |j                  «      z  z   }| j                  |j                  «      x}	}
t        |«      t        |
«      k  r|}	d|	z  S )Nr   )ÚPermutationÚCycle)Úsympy_deprecation_warningzw
                Setting Permutation.print_cyclic is deprecated. Instead use
                init_printing(perm_cyclic=z).
                z1.6z#deprecated-permutation-print_cyclicé   )Údeprecated_since_versionÚactive_deprecations_targetÚ
stacklevelr   Tz()r   rn  rl   ú,r?   é   zPermutation(%s)zPermutation([], size=%s)éÿÿÿÿz	, size=%s)Ú sympy.combinatorics.permutationsrm  rn  Úsympy.utilities.exceptionsro  Úprint_cyclicÚ	_settingsÚgetÚsizeÚ__repr__rÓ   ÚrfindÚreplaceÚsupportr&   Ú
array_form)r'   r9   rm  rn  ro  r   rŠ   ÚlastÚtrimÚuseÚfulls              r+   Ú_print_PermutationzStrPrinter._print_Permutation§  sš  € ßGÝHà!×.Ñ.ˆØÐ"Ù%ð+à+6¨-ð 8ðð */Ø+PØöð Ÿ.™.×,Ñ,¨]¸DÓAˆKáØ—9’9Øð ‘�d“˜DŸI™I¨™MÓ*×3Ñ3Ó5´c¸'³l°mÐDˆAØ—7‘7˜3“<ˆDØ˜1’9 ¨A¨d¨e¨HÑ!4Ø�d�e�H˜q  $˜xÑ'�Ø—	‘	˜#˜rÓ"ˆAØˆHà—‘“ˆAÙØ—9‘9˜q’=Ø,¨t¯{©{¸4¿?¹?Ó/KÑKÐKØ1°D·K±KÀÇ	Á	Ó4JÑJÐJØ—;‘;˜tŸ™¨z°°"±¸±	Ð:Ó;¸kÈDÏKÉKÐX\×XaÑXaÓLbÑ>bÑbˆDØŸ™ T§_¡_Ó5Ð5ˆC�$Ü�4‹yœ3˜t›9Ò$Ø�Ø$ sÑ*Ð*r-   c                óØ   — |j                   \  }}}t        |j                  «      dk(  r
|d   }|d   }d| j                  |«      ›d| j                  |«      ›d| j                  |«      ›d�S )Nr   r   zSubs(rm   rn   )r1   rÓ   rc  r&   )r'   rï   r9   r/  Únews        r+   Ú_print_SubszStrPrinter._print_SubsÐ  sb   € ØŸ™‰ˆˆc�3Üˆs�y‰y‹>˜QÒØ�a‘&ˆCØ�a‘&ˆCøà�K‰K˜Õ˜tŸ{™{¨3Õ/°·±¸SÕ1AðCð 	Cr-   c                ó"   — |j                  «       S r/   rŽ   r8   s     r+   Ú_print_TensorIndexzStrPrinter._print_TensorIndexØ  ó   € Ø�{‰{‹}Ðr-   c                ó"   — |j                  «       S r/   rŽ   r8   s     r+   Ú_print_TensorHeadzStrPrinter._print_TensorHeadÛ  rŒ  r-   c                ó"   — |j                  «       S r/   rŽ   r8   s     r+   Ú_print_TensorzStrPrinter._print_TensorÞ  rŒ  r-   c                ó¨   — |j                  «       \  }}|dj                  |D �cg c]  }| j                  |t        |«      «      ‘Œ c}«      z   S c c}w )Nr-  )Ú!_get_args_for_traditional_printerr0   r,   r   )r'   r9   rK   r1   r‘   s        r+   Ú_print_TensMulzStrPrinter._print_TensMulá  sO   € à×;Ñ;Ó=‰
ˆˆdØ�c—h‘hØAEÖF¸#ˆT×Ñ˜s¤J¨tÓ$4Õ5ÒFó
ñ 
ð 	
ùÚFs   ¤"A
c                ó"   — |j                  «       S r/   rŽ   r8   s     r+   Ú_print_TensAddzStrPrinter._print_TensAddè  rŒ  r-   c                ó8   — | j                  |j                  «      S r/   ©r&   r¯   r8   s     r+   Ú_print_ArraySymbolzStrPrinter._print_ArraySymbolë  s   € Ø�{‰{˜4Ÿ9™9Ó%Ð%r-   c           
     óÌ   — | j                  |j                  t        d   d«      ›ddj                  |j                  D �cg c]  }| j                  |«      ‘Œ c}«      ›d�S c c}w )NÚFuncTr  rm   r	  )r,   r¯   r   r0   Úindicesr&   )r'   r9   ra   s      r+   Ú_print_ArrayElementzStrPrinter._print_ArrayElementî  sS   € à×Ñ˜dŸi™i¬°FÑ);¸TÕBÀDÇIÁIÐgk×gsÑgsÖNtÐbcÈtÏ{É{Ð[\Í~ÒNtÕDuðwð 	wùÚNts   ¿A!c                óŠ   — |j                   D �cg c]  }d| j                  |«      z  ‘Œ }}ddj                  |«      z  S c c}w )Nz    %szPermutationGroup([
%s])z,
)r1   r&   r0   )r'   r9   rß   rA  s       r+   Ú_print_PermutationGroupz"StrPrinter._print_PermutationGroupò  s>   € Ø04·	±	Ö:¨1ˆX˜Ÿ™ A›Ó&Ð:ˆÐ:Ø)¨E¯J©J°q«MÑ9Ð9ùò ;s   �A c                 ó   — y)NÚpirO   r8   s     r+   Ú	_print_PizStrPrinter._print_Piö  rÎ   r-   c                óÄ   ‡ — ddj                  ˆ fd„|j                  D «       «      ›d‰ j                  |j                  «      ›d‰ j                  |j                  «      ›d�S )NzPolynomial ring in rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   )r�   Úrsr'   s     €r+   r’   z-StrPrinter._print_PolyRing.<locals>.<genexpr>û  s   øè ø€ Ò?¨B˜Ÿ™ BŸÑ?ùr“   ú over ú with ú order©r0   r©   r&   Údomainr   )r'   Úrings   ` r+   Ú_print_PolyRingzStrPrinter._print_PolyRingù  sB   ø� à�Y‰YÓ?°$·,±,Ô?Õ@Ø�K‰K˜Ÿ™Õ$ d§k¡k°$·*±*Õ&=ð?ð 	?r-   c                óÄ   ‡ — ddj                  ˆ fd„|j                  D «       «      ›d‰ j                  |j                  «      ›d‰ j                  |j                  «      ›d�S )NzRational function field in rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   )r�   Úfsr'   s     €r+   r’   z.StrPrinter._print_FracField.<locals>.<genexpr>   s   øè ø€ Ò@¨B˜Ÿ™ BŸÑ@ùr“   r¥  r¦  r§  r¨  ©r'   Úfields   ` r+   Ú_print_FracFieldzStrPrinter._print_FracFieldþ  sD   ø� à�Y‰YÓ@°%·-±-Ô@ÕAØ�K‰K˜Ÿ™Õ% t§{¡{°5·;±;Õ'?ðAð 	Ar-   c                ó"   — |j                  «       S r/   rf  )r'   Úelms     r+   Ú_print_FreeGroupElementz"StrPrinter._print_FreeGroupElement  s   € Ø�{‰{‹}Ðr-   c                ó<   — d|j                   ›d|j                  ›d�S )Nrl   ú + z*I))r  Úy©r'   Úpolys     r+   Ú_print_GaussianElementz!StrPrinter._print_GaussianElement  s   � Ø $§£¨¯«Ð/Ð/r-   c                ó2   — |j                  | t        dd«      S )Nz%s**%sr-  )r6   r   r¸  s     r+   Ú_print_PolyElementzStrPrinter._print_PolyElement	  s   € Ø�x‰x˜œj¨(°CÓ8Ð8r-   c                óú   — |j                   dk(  r| j                  |j                  «      S | j                  |j                  t        d   d¬«      }| j                  |j                   t        d   d¬«      }|dz   |z   S )Nr   r	   Tr  r  r.  )Údenomr&   Únumerr,   r   )r'   Úfracr¿  r¾  s       r+   Ú_print_FracElementzStrPrinter._print_FracElement  so   € Ø�:‰:˜Š?Ø—;‘;˜tŸz™zÓ*Ð*à×%Ñ% d§j¡j´*¸UÑ2CÈDÐ%ÓQˆEØ×%Ñ% d§j¡j´*¸VÑ2DÈTÐ%ÓRˆEØ˜3‘; Ñ&Ð&r-   c                ó(  — t         d   dz
  }g |j                  D �cg c]  }| j                  ||«      ‘Œ }}}|j                  «       D �]F  \  }}g }t	        |«      D ]?  \  }	}
|
dkD  sŒ|
dk(  r|j                  ||	   «       Œ&|j                  ||	   d|
z  z   «       ŒA dj                  |«      }|j                  r,|rd| j                  |«      z   dz   }nq| j                  |«      }n_|rL|t        j                  u r|j                  d|g«       ŒÇ|t        j                  u r|j                  d	|g«       Œí| j                  |«      }|s|}n|dz   |z   }|j                  d	«      r|j                  d	|dd  g«       �Œ4|j                  d|g«       �ŒI |d   d
v r!|j                  d«      }|d	k(  rd	|d   z   |d<   |j                  j                   dz   }ddlm} 	 |d|j'                  «       z  z  }|dz  }t	        |«      D ]F  \  }}t+        |«      dkD  sŒ|d d dk(  sŒ|t+        |«      dz
  d  dk(  sŒ3|dt+        |«      dz
   ||<   ŒH |dj                  |«      dj                  |«      fz  S c c}w # |$ r |d|j)                  «       z  z  }Y Œ w xY w)Nr  r   r   z**%dr-  rl   rn   r>   r=   )r=   r>   z(%s, %s)ÚPolynomialErrorz, modulus=%sz, domain='%s'r  r@   rm   )r   Úgensr,   rF   r[   rž   r0   rC   r&   r   r8  rD   r4  rB   rE   rt   ru   Úsympy.polys.polyerrorsrÃ  Úget_modulusÚ
get_domainrÓ   )r'   r9   Ú	ATOM_PRECrŠ   rF   rÄ  ÚmonomÚcoeffÚs_monomra   rø   Ús_coeffÚs_termÚmodifierrã   rÃ  rC  r(   s                     r+   Ú_print_PolyzStrPrinter._print_Poly  s   € Ü˜vÑ&¨Ñ*ˆ	ØÀTÇYÁYÖPÀ˜D×-Ñ-¨a°Õ;ÐPˆtÐPˆà ŸJ™J›Ló %	,‰LˆE�5ØˆGä! %Ó(ò =‘��1Ø�q“5Ø˜A’vØŸ™ t¨A¡wÕ/àŸ™ t¨A¡w°¸!±Ñ';Õ<ð=ð —h‘h˜wÓ'ˆGà�|Š|ÙØ! D§K¡K°Ó$6Ñ6¸Ñ<‘Gà"Ÿk™k¨%Ó0‘GáØ¤§¡‘~ØŸ™ c¨7 ^Ô4Ø à¤§¡Ñ-ØŸ™ c¨7 ^Ô4Ø àŸ+™+ eÓ,�áØ ‘à  3™¨Ñ0�à× Ñ  Ô%Ø—‘˜c 6¨!¨" :Ð.Ö/à—‘˜c 6˜]Ö+ðK%	,ðN �‰8�zÑ!Ø—y‘y “|ˆHà˜3ŠØ  q¡™>��a‘à—‘×(Ñ(¨9Ñ4ˆå:ð	:Ø�n t×'7Ñ'7Ó'9Ñ9Ñ9ˆFð 	�#‰ˆä$ T›?ò 	4‰KˆE�4Ü�4‹y˜1‹} $ r¨ (¨c£/°d¼3¸t»9Àq¹=¸>Ð6JÈcÓ6QØ" 1¤S¨£Y°¡]Ð3��U’ð	4ð ˜Ÿ™ %›¨$¯)©)°D«/Ð:Ñ:Ð:ùò} Qøðj ò 	:Ø�o¨¯©Ó(9Ñ9Ñ9ŠFð	:ús   œI.ÇI3 É3JÊJc                 ó   — y)Nr‰   rO   )r'   rA  s     r+   Ú_print_UniversalSetzStrPrinter._print_UniversalSetV  s   € Ør-   c                ó²   — |j                   r-| j                  |j                  «       j                  «       «      S | j                  |j                  «       «      S r/   )Ú
is_aliasedr&   Úas_polyÚas_exprr8   s     r+   Ú_print_AlgebraicNumberz!StrPrinter._print_AlgebraicNumberY  s<   € Ø�?Š?Ø—;‘;˜tŸ|™|›~×5Ñ5Ó7Ó8Ð8à—;‘;˜tŸ|™|›~Ó.Ð.r-   c                óp  ‡ — t        |«      }|j                  t        j                  u r |sd‰ j	                  |j
                  «      z  S |j                  r­|j                   t        j                  u r3|s1dt        ˆ fd„t        j                  |j
                  fD «       «      z  S |j                  t        j                   u r@‰ j	                  t        j                  «      ›d‰ j                  |j
                  |d¬«      ›�S ‰ j                  |j                  |d¬«      }‰ j                  dk(  rf|j                  j                  rP|j                  j                  dk7  r7|j                  d	«      r&‰ j                  |j
                  |d¬«      ›d
|dd ›�S ‰ j                  |j
                  |d¬«      ›d
|›�S )a$  Printing helper function for ``Pow``

        Parameters
        ==========

        rational : bool, optional
            If ``True``, it will not attempt printing ``sqrt(x)`` or
            ``x**S.Half`` as ``sqrt``, and will use ``x**(1/2)``
            instead.

            See examples for additional details

        Examples
        ========

        >>> from sympy import sqrt, StrPrinter
        >>> from sympy.abc import x

        How ``rational`` keyword works with ``sqrt``:

        >>> printer = StrPrinter()
        >>> printer._print_Pow(sqrt(x), rational=True)
        'x**(1/2)'
        >>> printer._print_Pow(sqrt(x), rational=False)
        'sqrt(x)'
        >>> printer._print_Pow(1/sqrt(x), rational=True)
        'x**(-1/2)'
        >>> printer._print_Pow(1/sqrt(x), rational=False)
        '1/sqrt(x)'

        Notes
        =====

        ``sqrt(x)`` is canonicalized as ``Pow(x, S.Half)`` in SymPy,
        so there is no need of defining a separate printer for ``sqrt``.
        Instead, it should be handled here as well.
        zsqrt(%s)z%s/sqrt(%s)c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   r�   s     €r+   r’   z(StrPrinter._print_Pow.<locals>.<genexpr>Ž  s   øè ø€ Ò-]À3¨d¯k©k¸#×.>Ñ-]ùr“   r.  Fr  Ú
_sympyreprr   z	(Rationalú**rv  )r   r&  r   ÚHalfr&   r;  r>  r…   r8  r,   Úprintmethodr?  rB  rB   )r'   r9   ÚrationalÚPRECrø   s   `    r+   Ú
_print_PowzStrPrinter._print_Pow_  sf  ø€ ôL ˜$Óˆà�8‰8”q—v‘vÑ¡hØ §¡¨D¯I©IÓ 6Ñ6Ð6à×ÒØ—‘ˆyœAŸF™FÑ"©8ð %¤uÓ-]Ì1Ï5É5ÐRV×R[ÑR[ÐJ\Ô-]Ó'^Ñ^Ð^Ø�x‰xœAŸE™E˜6Ñ!à"&§+¡+¬a¯e©eÕ"4Ø"&×"3Ñ"3°D·I±I¸tÈEÐ"3Ô"RðTð Tð ×Ñ˜dŸh™h¨°UÐÓ;ˆØ×Ñ˜|Ò+°·±×0DÒ0DÈÏÉÏÉÐWXÊð �|‰|˜KÔ(Ø#'×#4Ñ#4°T·Y±YÀÈUÐ#4Õ#SÐUVÐWXÐY[ÑU\Ð]Ð]Ø×,Ñ,¨T¯Y©Y¸ÀUÐ,ÕKÉQÐOÐOr-   c                ó>   — | j                  |j                  d   «      S r$  ©r&   r1   r8   s     r+   Ú_print_UnevaluatedExprz!StrPrinter._print_UnevaluatedExprœ  s   € Ø�{‰{˜4Ÿ9™9 Q™<Ó(Ð(r-   c                ó–   — t        |«      }| j                  |j                  |d¬«      ›d| j                  |j                  |d¬«      ›�S )NFr  rÚ  )r   r,   r;  r&  )r'   r9   rÞ  s      r+   Ú_print_MatPowzStrPrinter._print_MatPowŸ  sJ   € Ü˜$ÓˆØ×,Ñ,¨T¯Y©Y¸ÀUÐ,ÕKØ×*Ñ*¨4¯8©8°TÀ%Ð*ÔHðJð 	Jr-   c                ón   — | j                   j                  dd«      rd|z  S t        |j                  «      S )Nr   FzS(%s))rz  r{  r6   rA  r8   s     r+   Ú_print_IntegerzStrPrinter._print_Integer¤  s0   € Ø�>‰>×ÑÐ.°Ô6Ø˜dÑ#Ð#Ü�4—6‘6‹{Ðr-   c                 ó   — y)NÚIntegersrO   r8   s     r+   Ú_print_IntegerszStrPrinter._print_Integers©  ó   € Ør-   c                 ó   — y)NÚNaturalsrO   r8   s     r+   Ú_print_NaturalszStrPrinter._print_Naturals¬  rê  r-   c                 ó   — y)NÚ	Naturals0rO   r8   s     r+   Ú_print_Naturals0zStrPrinter._print_Naturals0¯  ó   € Ør-   c                 ó   — y)NÚ	RationalsrO   r8   s     r+   Ú_print_RationalszStrPrinter._print_Rationals²  rñ  r-   c                 ó   — y)NÚRealsrO   r8   s     r+   Ú_print_RealszStrPrinter._print_Realsµ  rT   r-   c                 ó   — y)NÚ	ComplexesrO   r8   s     r+   Ú_print_ComplexeszStrPrinter._print_Complexes¸  rñ  r-   c                 ó   — y)NÚEmptySetrO   r8   s     r+   Ú_print_EmptySetzStrPrinter._print_EmptySet»  rê  r-   c                 ó   — y)NÚEmptySequencerO   r8   s     r+   Ú_print_EmptySequencezStrPrinter._print_EmptySequence¾  s   € Ør-   c                ó   — t        |«      S r/   ©r6   r8   s     r+   Ú
_print_intzStrPrinter._print_intÁ  ó   € Ü�4‹yÐr-   c                ó   — t        |«      S r/   r  r8   s     r+   Ú
_print_mpzzStrPrinter._print_mpzÄ  r  r-   c                óð   — |j                   dk(  rt        |j                  «      S | j                  j	                  dd«      rd|j                  ›d|j                   ›�S |j                  ›d|j                   ›�S )Nr   r   FzS(z)/r.  )rB  r6   rA  rz  r{  r8   s     r+   Ú_print_RationalzStrPrinter._print_RationalÇ  sV   € Ø�6‰6�QŠ;Ü�t—v‘v“;Ðà�~‰~×!Ñ!Ð"2°EÕ:Ø%)§V£V¨T¯VªVÐ4Ð4Ø"Ÿf›f d§f¢fÐ-Ð-r-   c                ó€   — |j                   dk(  rt        |j                  «      S d|j                  |j                   fz  S )Nr   z%d/%d)rB  r6   rA  r8   s     r+   Ú_print_PythonRationalz StrPrinter._print_PythonRationalÏ  s3   € Ø�6‰6�QŠ;Ü�t—v‘v“;Ðà˜dŸf™f d§f¡fÐ-Ñ-Ð-r-   c                ó€   — |j                   dk(  rt        |j                  «      S |j                  ›d|j                   ›�S ©Nr   r.  ©Údenominatorr6   Ú	numeratorr8   s     r+   Ú_print_FractionzStrPrinter._print_FractionÕ  ó4   € Ø×Ñ˜qÒ Ü�t—~‘~Ó&Ð&à"Ÿn›n¨d×.>Ò.>Ð?Ð?r-   c                ó€   — |j                   dk(  rt        |j                  «      S |j                  ›d|j                   ›�S r  r  r8   s     r+   Ú
_print_mpqzStrPrinter._print_mpqÛ  r  r-   c                ó,  — |j                   }|dk  rd}nt        |j                   «      }| j                  d   du rd}n5| j                  d   du rd}n!| j                  d   dk(  r| j                  dkD  }d| j                  v r| j                  d   nd }d	| j                  v r| j                  d	   nd }t	        |j
                  |||¬
«      }|j                  d«      r	d|dd  z   }n|j                  d«      rd|dd  z   }|j                  d«      r|dd  }|S )Nru  r   r   TFr   r   r    r!   )Ústrip_zerosÚ	min_fixedÚ	max_fixedz-.0z-0.é   z.0z0.r  r>   )Ú_precr   rz  Ú_print_levelÚmlib_to_strÚ_mpf_rB   )r'   r9   rG   ÚdpsÚstripÚlowÚhighÚrvs           r+   Ú_print_FloatzStrPrinter._print_Floatá  s  € Ø�z‰zˆØ�!Š8Ø‰Cä˜dŸj™jÓ)ˆCØ�>‰>˜+Ñ&¨$Ñ.Ø‰EØ�^‰^˜KÑ(¨EÑ1Ø‰EØ�^‰^˜KÑ(¨FÒ2Ø×%Ñ%¨Ñ)ˆEØ',°·±Ñ'>ˆd�n‰n˜UÒ#ÀDˆØ(-°·±Ñ(?ˆt�~‰~˜eÒ$ÀTˆÜ˜Ÿ™ S°eÀsÐVZÔ[ˆØ�=‰=˜ÔØ˜˜A˜B˜‘‰BØ�]‰]˜4Ô Ø˜˜1˜2˜‘ˆBØ�=‰=˜Ôà�A�B�ˆBØˆ	r-   c           
     óÊ  — ddddddddd	œ}|j                   |v rJ||j                      ›d
| j                  |j                  «      ›d| j                  |j                  «      ›d�S | j	                  |j                  t        |«      «      ›d| j                  j                  |j                   «      xs |j                   ›d| j	                  |j                  t        |«      «      ›�S )NÚEqÚNeÚ
AssignmentÚAddAugmentedAssignmentÚSubAugmentedAssignmentÚMulAugmentedAssignmentÚDivAugmentedAssignmentÚModAugmentedAssignment)z==z!=z:=z+=z-=z*=z/=z%=rl   rm   rn   r@   )Úrel_opr&   Úlhsr]   r,   r   r#   r{  )r'   r9   Úcharmaps      r+   Ú_print_RelationalzStrPrinter._print_Relationalù  sÊ   € ð ØØØ*Ø*Ø*Ø*Ø*ñ	
ˆð �;‰;˜'Ñ!Ø#*¨4¯;©;Ó#7¸¿¹ÀTÇXÁXÕ9NØ#'§;¡;¨t¯x©xÕ#8ð:ð :ð "×.Ñ.¨t¯x©x¼ÀDÓ9IÕJØ×,Ñ,×0Ñ0°·±Ó=ÒLÀÇÁÑLØ×,Ñ,¨T¯X©X´zÀ$Ó7GÔHðJð 	Jr-   c                óZ   — d| j                  |j                  d¬«      |j                  fz  S )NzCRootOf(%s, %d)Úlexr<   )rL   r9   rC  r8   s     r+   Ú_print_ComplexRootOfzStrPrinter._print_ComplexRootOf  s.   € Ø  D§O¡O°D·I±IÀe OÓ$LØ$(§J¡Jð$0ñ 0ð 	0r-   c                óò   — | j                  |j                  d¬«      g}|j                  t        j                  ur*|j                  | j                  |j                  «      «       ddj                  |«      z  S )Nr1  r<   zRootSum(%s)rm   )rL   r9   Úfunr   ÚIdentityFunctionrž   r&   r0   rô   s      r+   Ú_print_RootSumzStrPrinter._print_RootSum  sY   € Ø—‘ §	¡	°�Ó7Ð8ˆà�8‰8œ1×-Ñ-Ñ-Ø�K‰K˜Ÿ™ D§H¡HÓ-Ô.à˜tŸy™y¨›Ñ.Ð.r-   c                óÞ  — |j                   j                  }|j                  D �cg c]  }| j                  ||j                  ¬«      ‘Œ! }}ddj                  |«      z  }|j                  D �cg c]  }| j                  |«      ‘Œ }}d| j                  |j                  «      z  }d| j                  |j                  «      z  }|g|z   ||gz   }	|›ddj                  |	«      ›d�S c c}w c c}w )Nr<   rþ   rm   zdomain='%s'z
order='%s'rl   rn   )	rt   ru   ÚexprsrL   r   r0   rÄ  r&   r©  )
r'   ÚbasisÚclsr‘   r8  ÚgenrÄ  r©  r   r1   s
             r+   Ú_print_GroebnerBasiszStrPrinter._print_GroebnerBasis  sÌ   € Ø�o‰o×&Ñ&ˆàDIÇKÁKÖP¸S�—‘ ¨E¯K©K�Õ8ÐPˆÐPØ˜Ÿ™ 5Ó)Ñ)ˆà-2¯Z©ZÖ9 c�—‘˜SÕ!Ð9ˆÐ9Ø §¡¨U¯\©\Ó!:Ñ:ˆØ˜tŸ{™{¨5¯;©;Ó7Ñ7ˆàˆw˜‰~ ¨ Ñ/ˆâ §	¡	¨$¥Ð0Ð0ùò Qùò :s   ¥$C%Á-C*c                ój   ‡ — t        |t        ¬«      }dj                  ˆ fd„|D «       «      }|syd|z  S )Nr™   rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   ©r�   r(   r'   s     €r+   r’   z(StrPrinter._print_set.<locals>.<genexpr>+  ó   øè ø€ Ò=¨t˜Ÿ™ T×*Ñ=ùr“   zset()r›   )rœ   r   r0   ©r'   rŠ   r    r1   s   `   r+   Ú
_print_setzStrPrinter._print_set(  s4   ø€ Ü�qÔ.Ô/ˆà�y‰yÓ=°uÔ=Ó=ˆÙØØ˜‰}Ðr-   c                óÔ   ‡ ‡— ddl mŠ t        |t        ¬«      }dj	                  ˆ fd„|D «       «      }t        ˆfd„|D «       «      rdj                  |«      S dj                  |«      S )	Nr   )Ú	FiniteSetr™   rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   r?  s     €r+   r’   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>4  r@  r“   c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr/   )Úhas)r�   r(   rD  s     €r+   r’   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>5  s   øè ø€ Ò5 tˆt�x‰x˜	×"Ñ5ùr“   zFiniteSet({})z{{{}}})Úsympy.sets.setsrD  rœ   r   r0   r9  rã   )r'   rŠ   r    r1   rD  s   `   @r+   Ú_print_FiniteSetzStrPrinter._print_FiniteSet0  sU   ù€ Ý-Ü�qÔ.Ô/ˆà�y‰yÓ=°uÔ=Ó=ˆÜÓ5¨uÔ5Ô5Ø"×)Ñ)¨$Ó/Ð/Ø�‰˜tÓ$Ð$r-   c                ó|   ‡ — t        |t        ¬«      }dj                  ˆ fd„|D «       «      }dj                  |«      S )Nr™   rm   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr/   rŽ   r�   s     €r+   r’   z.StrPrinter._print_Partition.<locals>.<genexpr><  s   øè ø€ Ò;¨c˜Ÿ™ S×)Ñ;ùr“   zPartition({}))rœ   r   r0   rã   rA  s   `   r+   Ú_print_PartitionzStrPrinter._print_Partition9  s5   ø€ Ü�qÔ.Ô/ˆà�y‰yÓ;°UÔ;Ó;ˆØ×%Ñ% dÓ+Ð+r-   c                ó0   — |syd| j                  |«      z  S )Nzfrozenset()zfrozenset(%s))rB  ©r'   rŠ   s     r+   Ú_print_frozensetzStrPrinter._print_frozenset?  s   € ÙØ Ø §¡°Ó!3Ñ3Ð3r-   c                óº   ‡ — ˆ fd„}dj                  |j                  D �cg c]
  } ||«      ‘Œ c}«      }d‰ j                  |j                  «      ›d|›d�S c c}w )Nc                ó�   •— t        | «      dk(  r‰j                  | d   «      S ‰j                  | d   ft        | dd  «      z   «      S rÑ   rÒ   rÔ   s    €r+   rÖ   z)StrPrinter._print_Sum.<locals>._xab_tostrE  r×   r-   rm   zSum(rn   rØ   rÚ   s   `    r+   Ú
_print_SumzStrPrinter._print_SumD  sH   ø€ ô	?ð
 �I‰I¨d¯k©kÖ:¨‘z !•}Ò:Ó;‰Ø $§¡¨D¯M©MÕ :ºAÐ>Ð>ùò ;rÝ   c                ó   — |j                   S r/   r®   r8   s     r+   Ú_print_SymbolzStrPrinter._print_SymbolM  r  r-   c                 ó   — yrÈ   rO   r8   s     r+   Ú_print_IdentityzStrPrinter._print_IdentityR  r·   r-   c                 ó   — y)NÚ0rO   r8   s     r+   Ú_print_ZeroMatrixzStrPrinter._print_ZeroMatrixU  r·   r-   c                 ó   — y)Nr,  rO   r8   s     r+   Ú_print_OneMatrixzStrPrinter._print_OneMatrixX  r·   r-   c                ó    — d|j                   z  S )NzQ.%sr®   r8   s     r+   Ú_print_PredicatezStrPrinter._print_Predicate[  s   € Ø˜Ÿ	™	Ñ!Ð!r-   c                ó   — t        |«      S r/   r  r8   s     r+   Ú
_print_strzStrPrinter._print_str^  r  r-   c                óv   — t        |«      dk(  rd| j                  |d   «      z  S d| j                  |d«      z  S )Nr   z(%s,)r   r%   rm   )rÓ   r&   r3   r8   s     r+   Ú_print_tuplezStrPrinter._print_tuplea  s;   € Üˆt‹9˜Š>Ø˜TŸ[™[¨¨a©Ó1Ñ1Ð1à˜DŸN™N¨4°Ó6Ñ6Ð6r-   c                ó$   — | j                  |«      S r/   )ra  r8   s     r+   Ú_print_TuplezStrPrinter._print_Tupleg  s   € Ø× Ñ  Ó&Ð&r-   c                óN   — d| j                  |j                  t        d   «      z  S )Nz%s.Tr   rê   )r'   ÚTs     r+   Ú_print_TransposezStrPrinter._print_Transposej  s#   € Ø˜×)Ñ)¨!¯%©%´¸EÑ1BÓCÑCÐCr-   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )NzUniform(rm   rn   )r&   rß   rà   r8   s     r+   Ú_print_UniformzStrPrinter._print_Uniformm  s'   � Ø$(§K¡K°·±Õ$7¸¿¹ÀTÇVÁVÕ9LÐMÐMr-   c                óv   — | j                   j                  dd«      rd|j                  z  S d|j                  z  S )Nr   Fz%s)rz  r{  r   r¯   r8   s     r+   Ú_print_QuantityzStrPrinter._print_Quantityp  s4   € Ø�>‰>×Ñ˜h¨Ô.Ø˜$Ÿ+™+Ñ%Ð%Ø�d—i‘iÑÐr-   c                óü   — |j                   D �cg c]  }| j                  |t        d   d¬«      ‘Œ }}|d   gt        |dd  d«      D ��cg c]  \  }}|dz   |z   ‘Œ c}}z   }dj	                  |«      S c c}w c c}}w )	Nr	   Tr  r   r   Úijkr-  r¶  )r1   r,   r   Úzipr0   )r'   r9   ra   rŠ   r`   rß   s         r+   Ú_print_QuaternionzStrPrinter._print_Quaternionu  s{   € ØKOÏ9É9ÖUÀaˆT×Ñ˜q¤*¨UÑ"3¸DÐÕAÐUˆÐUØˆq‰TˆF¬#¨a°°¨e°UÓ*;×<¡$ ! Q�a˜‘e˜A“gÓ<Ñ<ˆØ�z‰z˜!‹}Ðùò VùÛ<s   �"A3Á
A8c                ó   — t        |«      S r/   r  r8   s     r+   Ú_print_DimensionzStrPrinter._print_Dimensionz  r  r-   c                ó    — |j                   dz   S r¬   r®   r8   s     r+   Ú_print_WildzStrPrinter._print_Wild}  ó   € Ø�y‰y˜3‰Ðr-   c                ó    — |j                   dz   S r¬   r®   r8   s     r+   Ú_print_WildFunctionzStrPrinter._print_WildFunction€  rs  r-   c                ó   — |j                   S r/   r®   r8   s     r+   Ú_print_WildDotzStrPrinter._print_WildDotƒ  r  r-   c                ó   — |j                   S r/   r®   r8   s     r+   Ú_print_WildPluszStrPrinter._print_WildPlus†  r  r-   c                ó   — |j                   S r/   r®   r8   s     r+   Ú_print_WildStarzStrPrinter._print_WildStar‰  r  r-   c                óp   — | j                   j                  dd«      ry| j                  t        d«      «      S )Nr   FzS(0)r   )rz  r{  ræ  r   r8   s     r+   Ú_print_ZerozStrPrinter._print_ZeroŒ  s/   € Ø�>‰>×ÑÐ.°Ô6ØØ×"Ñ"¤7¨1£:Ó.Ð.r-   c                ó¸   — |j                   j                  }| j                  |j                  «       «      }| j                  |j                  «      }|›d|›d|›d�S rk   )rt   ru   r&   Úto_listÚdom)r'   rA  r:  Úrepr€  s        r+   Ú
_print_DMPzStrPrinter._print_DMP‘  sD   € Ø�k‰k×"Ñ"ˆØ�k‰k˜!Ÿ)™)›+Ó&ˆØ�k‰k˜!Ÿ%™%Ó ˆâ"¢CªÐ-Ð-r-   c                óì   — |j                   j                  }| j                  |j                  «      }| j                  |j                  «      }| j                  |j
                  «      }|›d|›d|›d|›d�S rk   )rt   ru   r&   ÚnumÚdenr€  )r'   r9   r:  r„  r…  r€  s         r+   Ú
_print_DMFzStrPrinter._print_DMF˜  sV   € Ø�n‰n×%Ñ%ˆØ�k‰k˜$Ÿ(™(Ó#ˆØ�k‰k˜$Ÿ(™(Ó#ˆØ�k‰k˜$Ÿ(™(Ó#ˆâ#&ªªS²#Ð6Ð6r-   c                ó    — d|j                   z  S )NzObject("%s")r®   )r'   rï   s     r+   Ú_print_ObjectzStrPrinter._print_Object   s   € Ø §¡Ñ(Ð(r-   c                ó    — d|j                   z  S )NzIdentityMorphism(%s))r©  ©r'   Úmorphisms     r+   Ú_print_IdentityMorphismz"StrPrinter._print_IdentityMorphism£  s   € Ø%¨¯©Ñ7Ð7r-   c                óV   — d|j                   ›d|j                  ›d|j                  ›d�S )NzNamedMorphism(rm   z, "z"))r©  Úcodomainr¯   rŠ  s     r+   Ú_print_NamedMorphismzStrPrinter._print_NamedMorphism¦  s#   � à—“ ×!2Ó!2°H·M³MðCð 	Cr-   c                ó    — d|j                   z  S )NzCategory("%s")r®   )r'   Úcategorys     r+   Ú_print_CategoryzStrPrinter._print_Categoryª  s   € Ø (§-¡-Ñ/Ð/r-   c                ó.   — |j                   j                   S r/   r®   )r'   Úmanifolds     r+   Ú_print_ManifoldzStrPrinter._print_Manifold­  s   € Ø�}‰}×!Ñ!Ð!r-   c                ó.   — |j                   j                   S r/   r®   )r'   Úpatchs     r+   Ú_print_PatchzStrPrinter._print_Patch°  s   € Ø�z‰z�‰Ðr-   c                ó.   — |j                   j                   S r/   r®   )r'   Úcoordss     r+   Ú_print_CoordSystemzStrPrinter._print_CoordSystem³  s   € Ø�{‰{×ÑÐr-   c                ó\   — |j                   j                  |j                     j                  S r/   ©Ú
_coord_sysr©   Ú_indexr¯   r¯  s     r+   Ú_print_BaseScalarFieldz!StrPrinter._print_BaseScalarField¶  s#   € Ø×Ñ×'Ñ'¨¯©Ñ5×:Ñ:Ð:r-   c                ób   — d|j                   j                  |j                     j                  z  S )Nze_%sr�  r¯  s     r+   Ú_print_BaseVectorFieldz!StrPrinter._print_BaseVectorField¹  s(   € Ø˜×(Ñ(×0Ñ0°·±Ñ>×CÑCÑCÐCr-   c                óº   — |j                   }t        |d«      r0d|j                  j                  |j                     j
                  z  S d| j                  |«      z  S )Nrž  zd%szd(%s))Ú_form_fieldr¨   rž  r©   rŸ  r¯   r&   )r'   Údiffr°  s      r+   Ú_print_DifferentialzStrPrinter._print_Differential¼  sQ   € Ø× Ñ ˆÜ�5˜,Ô'Ø˜5×+Ñ+×3Ñ3°E·L±LÑA×FÑFÑFÐFà˜TŸ[™[¨Ó/Ñ/Ð/r-   c                óJ   — d›d| j                  |j                  d   «      ›d�S )NÚTrrl   r   rn   rá  r8   s     r+   Ú	_print_TrzStrPrinter._print_TrÃ  s   € â §¡¨T¯Y©Y°q©\Õ!:Ð;Ð;r-   c                ó8   — | j                  |j                  «      S r/   r—  rN  s     r+   Ú
_print_StrzStrPrinter._print_StrÇ  s   € Ø�{‰{˜1Ÿ6™6Ó"Ð"r-   c                ó²   — |j                   }| j                  |«      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d�S rk   )ro   r&   r-  r]   )r'   r9   Úrels      r+   Ú_print_AppliedBinaryRelationz'StrPrinter._print_AppliedBinaryRelationÊ  sA   € Ø�m‰mˆØ#Ÿ{™{¨3Õ/Ø#Ÿ{™{¨4¯8©8Õ4Ø#Ÿ{™{¨4¯8©8Õ4ð6ð 	6r-   )F)r   r/   )Žru   Ú
__module__Ú__qualname__rÜ  r"   Ú__annotations__r#   r,   r3   r:   rL   rP   rS   rW   rb   rf   ri   rq   rw   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  rN  rW  rY  r\  r^  rd  rh  rk  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ý  r   r  r  r  r
  r  r  r"  r/  r2  r6  r<  rB  rI  rL  rO  rR  rT  Ú_print_MatrixSymbolÚ_print_RandomSymbolrV  rY  r[  r]  r_  ra  rc  rf  rh  rj  rn  rp  rr  ru  rw  ry  r{  r}  r‚  r†  rˆ  rŒ  r�  r’  r•  r˜  r›  r   r¢  r¦  r©  r«  r®  rO   r-   r+   r   r      s  … Ø€KàØØØØØØñ)Ð�~ó ð $&€L�.Ó%ó%óKòó"ò*òòJòEòIòJòNò?ò%ò
òò1ò[ò
)ò&ò9òòòòMòMòòNò
$òòòDò6ò&<òHòHòYòXò
3ò&ò&òFòAòòtFòl
ò"
òòò@òòò'+òRCòòòò
òò&òwò:òò?ò
Aò
ò0ò9ò'ò@;òDò/ó;Pòz)òJò
ò
òòòòòòòòòò.ò.ò@ò@òò0Jò*0ò/ò1òò%ò,ò4ò
?òà'ÐØ'Ðòòòò"òò7ò'òDòNò ò
ò
òòòòòò/ò
.ò7ò)ò8òCò0ò"òò ò;òDò0ò<ò#ó6r-   r   c                ó>   — t        |«      }|j                  | «      }|S )ab  Returns the expression as a string.

    For large expressions where speed is a concern, use the setting
    order='none'. If abbrev=True setting is used then units are printed in
    abbreviated form.

    Examples
    ========

    >>> from sympy import symbols, Eq, sstr
    >>> a, b = symbols('a b')
    >>> sstr(Eq(a + b, 0))
    'Eq(a + b, 0)'
    )r   Údoprint©r9   ÚsettingsrA  rŠ   s       r+   Ússtrr¸  Ñ  s    € ô" 	�8Ó€AØ	�	‰	�$‹€Aà€Hr-   c                  ó   — e Zd ZdZd„ Zd„ Zy)ÚStrReprPrinterz(internal) -- see sstrreprc                ó   — t        |«      S r/   )r7   rN  s     r+   r_  zStrReprPrinter._print_strë  s   € Ü�A‹wˆr-   c                ól   — |j                   j                  ›d| j                  |j                  «      ›d�S )Nrl   rn   )rt   ru   r&   r¯   rN  s     r+   r«  zStrReprPrinter._print_Strî  s$   € àŸ;™;×/Ó/°·±¸Q¿V¹VÕ1DÐEÐEr-   N)ru   r¯  r°  Ú__doc__r_  r«  rO   r-   r+   rº  rº  è  s   „ Ù$òóFr-   rº  c                ó>   — t        |«      }|j                  | «      }|S )zÞreturn expr in mixed str/repr form

       i.e. strings are returned in repr form with quotes, and everything else
       is returned in str form.

       This function could be useful for hooking into sys.displayhook
    )rº  rµ  r¶  s       r+   Ússtrreprr¿  ó  s    € ô 	�xÓ €AØ	�	‰	�$‹€Aà€Hr-   N)#r½  Ú
__future__r   Útypingr   Ú
sympy.corer   r   r   r   r	   r
   Úsympy.core.mulr   Úsympy.core.numbersr   Úsympy.core.relationalr   Úsympy.core.sortingr   Úsympy.utilities.iterablesr   r   r   Úprinterr   r   Úmpmath.libmpr   r   r  r   r¸  rº  r¿  rO   r-   r+   ú<module>rÊ     s   ðñõ #Ý ç ;× ;Ý &Ý &Ý ,Ý /Ý *ß .ß ,ç ;ôz6�ô z6ñz �
Óñó ðô,F�Zô Fñ �Óñó  ñr-   