§
    ¬³ÙgÂ�  ã                  ó6  — 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"dS )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                  ón  — 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*d0„ Z+d1„ Z,d2„ Z-d3„ Z.d4„ Z/d5„ Z0d6„ Z1d7„ Z2d8„ Z3d9„ Z4d:„ Z5d;„ Z6d<„ Z7d=„ Z8d>„ Z9d?„ Z:d@„ Z;dA„ Z<dB„ Z=dC„ Z>dD„ Z?dE„ Z@dF„ ZAdG„ ZBdH„ ZCdI„ ZDdJ„ ZEdK„ ZFdL„ ZGdM„ ZHdN„ ZIdO„ ZJdP„ ZKdQ„ ZLdR„ ZMd‘dS„ZNdT„ ZOdU„ ZPdV„ ZQdW„ ZRdX„ ZSdY„ ZTdZ„ ZUd[„ ZVd\„ ZWd]„ ZXd^„ ZYd_„ ZZd`„ Z[da„ Z\db„ Z]dc„ Z^dd„ Z_de„ Z`df„ Zadg„ Zbdh„ Zcdi„ Zddj„ Zedk„ Zfdl„ Zgdm„ Zhdn„ Zido„ ZjejZkejZldp„ Zmdq„ Zndr„ Zods„ Zpdt„ Zqdu„ Zrdv„ Zsdw„ Ztdx„ Zudy„ Zvdz„ Zwd{„ 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�dS )”Ú
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|                      |¦  «        z  S |                      |¦  «        S )Nú(%s))r   Ú_print)ÚselfÚitemÚlevelÚstricts       úH/granary/edev/quantum/lib/python3.11/site-packages/sympy/printing/str.pyÚparenthesizezStrPrinter.parenthesize"   sU   € Ý�tÑÔ˜uÒ$Ð$¨vÐ$½:ÀdÑ;KÔ;KÈuÒ;TÐ;TØ˜DŸKšK¨Ñ-Ô-Ñ-Ð-à—;’;˜tÑ$Ô$Ð$ó    r   c                óJ   ‡ ‡— |                      ˆˆ fd„|D ¦   «         ¦  «        S )Nc                ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS © ©r,   )Ú.0r(   r)   r'   s     €€r+   ú
<listcomp>z(StrPrinter.stringify.<locals>.<listcomp>)   s)   ø€ ÐIÐIÐI¸D˜×*Ò*¨4°Ñ7Ô7ÐIÐIÐIr-   )Újoin)r'   ÚargsÚsepr)   s   `  `r+   Ú	stringifyzStrPrinter.stringify(   s.   øø€ Ø�xŠxÐIÐIÐIÐIÐIÀDÐIÑIÔIÑJÔJÐJr-   c                ó–   — t          |t          ¦  «        r|S t          |t          ¦  «        rt          |¦  «        S t          |¦  «        S ©N)Ú
isinstanceÚstrr   Úrepr©r'   Úexprs     r+   ÚemptyPrinterzStrPrinter.emptyPrinter+   sC   € Ý�d�CÑ Ô ð 	ØˆKÝ˜�eÑ$Ô$ð 	Ý˜‘:”:Ðå�t‘9”9Ðr-   c                óÞ  — |                       ||¬¦  «        }t          |¦  «        }g }|D ]Ž}|                      |¦  «        }|                     d¦  «        r|j        sd}|dd …         }nd}t          |¦  «        |k     s|j        r|                     |d|z  g¦  «         Œw|                     ||g¦  «         Œ�|                     d¦  «        }|dk    rd}|d                     |¦  «        z   S )	N©r   ú-r   ú+r%   r   Ú ú )Ú_as_ordered_termsr   r&   Ú
startswithÚis_AddÚextendÚpopr4   )	r'   r>   r   ÚtermsÚprecÚlÚtermÚtÚsigns	            r+   Ú
_print_AddzStrPrinter._print_Add3   s  € Ø×&Ò& t°5Ð&Ñ9Ô9ˆå˜$ÑÔˆØˆØð 
	$ð 
	$ˆDØ—’˜DÑ!Ô!ˆAØ�|Š|˜CÑ Ô ð ¨¬ð Ø�Ø�a�b�b”E��à�Ý˜$ÑÔ $Ò&Ð&¨$¬+Ð&Ø—’˜$ ¨¡
Ð+Ñ,Ô,Ð,Ð,à—’˜$ ˜Ñ#Ô#Ð#Ð#Ø�uŠu�Q‰xŒxˆØ�3Š;ˆ;ØˆDØ�c—h’h˜q‘k”kÑ!Ð!r-   c                ó   — dS )NÚTruer0   r=   s     r+   Ú_print_BooleanTruezStrPrinter._print_BooleanTrueH   s   € Øˆvr-   c                ó   — dS )NÚFalser0   r=   s     r+   Ú_print_BooleanFalsezStrPrinter._print_BooleanFalseK   ó   € Øˆwr-   c                ó`   — d|                       |j        d         t          d         ¦  «        z  S )Nz~%sr   ÚNot)r,   r5   r   r=   s     r+   Ú
_print_NotzStrPrinter._print_NotN   s(   € Ø�t×(Ò(¨¬°1¬µjÀÔ6GÑHÔHÑIÐIr-   c                óD  — t          |j        ¦  «        }t          |¦  «        D ][\  }}t          |t          ¦  «        rA|j        j        t          j        u r)| 	                    d| 
                    |¦  «        ¦  «         Œ\|                      |dt          d         ¦  «        S )Nr   z & Ú
BitwiseAnd)Úlistr5   Ú	enumerater:   r   Ú	canonicalÚrhsr   ÚNegativeInfinityÚinsertrJ   r7   r   )r'   r>   r5   ÚjÚis        r+   Ú
_print_AndzStrPrinter._print_AndQ   s†   € Ý�D”I‰ŒˆÝ˜d‘O”Oð 	,ð 	,‰DˆAˆqÝ˜!�ZÑ(Ô(ð ,Ø”K”O¥qÔ'9Ð9Ð9Ø—’˜A˜tŸxšx¨™{œ{Ñ+Ô+Ð+øØ�~Š~˜d E­:°lÔ+CÑDÔDÐDr-   c                óP   — |                       |j        dt          d         ¦  «        S )Nz | Ú	BitwiseOr©r7   r5   r   r=   s     r+   Ú	_print_OrzStrPrinter._print_OrY   s   € Ø�~Š~˜dœi¨µ
¸;Ô0GÑHÔHÐHr-   c                óP   — |                       |j        dt          d         ¦  «        S )Nz ^ Ú
BitwiseXorri   r=   s     r+   Ú
_print_XorzStrPrinter._print_Xor\   s   € Ø�~Š~˜dœi¨µ
¸<Ô0HÑIÔIÐIr-   c                ót   — |                       |j        ¦  «        ›d|                      |j        d¦  «        ›d�S ©Nú(ú, ú))r&   Úfunctionr7   Ú	argumentsr=   s     r+   Ú_print_AppliedPredicatez"StrPrinter._print_AppliedPredicate_   s=   € à�KŠK˜œÑ&Ô&Ð&Ð&¨¯ª°t´~ÀtÑ(LÔ(LÐ(LÐ(LðNð 	Nr-   c                ót   ‡ — ˆ fd„|j         D ¦   «         }|j        j        dd                     |¦  «        z  z   S )Nc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r0   ©r&   )r2   Úor'   s     €r+   r3   z+StrPrinter._print_Basic.<locals>.<listcomp>d   s#   ø€ Ð/Ð/Ð/ ˆT�[Š[˜‰^Œ^Ð/Ð/Ð/r-   r%   rq   )r5   Ú	__class__Ú__name__r4   )r'   r>   rM   s   `  r+   Ú_print_BasiczStrPrinter._print_Basicc   s=   ø€ Ø/Ð/Ð/Ð/ T¤YÐ/Ñ/Ô/ˆØŒ~Ô&¨°$·)²)¸A±,´,Ñ)>Ñ>Ð>r-   c                ó–   — |j         j        dk    r |                      |j         d         ¦  «         |                      |j         ¦  «        S )N)r   r   )r   r   )ÚblocksÚshaper&   )r'   ÚBs     r+   Ú_print_BlockMatrixzStrPrinter._print_BlockMatrixg   s=   € ØŒ8Œ>˜VÒ#Ð#Ø�KŠK˜œ œÑ'Ô'Ð'Ø�{Š{˜1œ8Ñ$Ô$Ð$r-   c                ó   — dS )NÚCatalanr0   r=   s     r+   Ú_print_CatalanzStrPrinter._print_Catalanl   s   € Øˆyr-   c                ó   — dS )NÚzoor0   r=   s     r+   Ú_print_ComplexInfinityz!StrPrinter._print_ComplexInfinityo   ó   € Øˆur-   c                óÈ   ‡ — t          ˆ fd„|j        |j        fD ¦   «         ¦  «        }|j        t          j        u rd|z  S |‰                      |j        ¦  «        fz  }d|z  S )Nc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r0   rx   ©r2   re   r'   s     €r+   r3   z2StrPrinter._print_ConditionSet.<locals>.<listcomp>s   s#   ø€ ÐCÐCÐC¨�d—k’k !‘n”nÐCÐCÐCr-   zConditionSet(%s, %s)zConditionSet(%s, %s, %s))ÚtupleÚsymÚ	conditionÚbase_setr   ÚUniversalSetr&   )r'   Úsr5   s   `  r+   Ú_print_ConditionSetzStrPrinter._print_ConditionSetr   sn   ø€ ÝÐCÐCÐCÐC¨q¬u°a´kÐ.BÐCÑCÔCÑDÔDˆØŒ:�œÐ'Ð'Ø)¨DÑ0Ð0Ø�—’˜QœZÑ(Ô(Ð*Ñ*ˆØ)¨DÑ0Ð0r-   c                ó„   ‡ — |j         }d„ |j        D ¦   «         }dd                     ˆ fd„|g|z   D ¦   «         ¦  «        z  S )Nc                ó:   — g | ]}|d          d k    r|d         n|‘ŒS )r   r   r0   )r2   re   s     r+   r3   z0StrPrinter._print_Derivative.<locals>.<listcomp>{   s,   € ÐGÐGÐG¨a˜˜1œ š˜��1”�¨ÐGÐGÐGr-   zDerivative(%s)rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   ©r2   Úargr'   s     €r+   ú	<genexpr>z/StrPrinter._print_Derivative.<locals>.<genexpr>|   s/   øè è € Ð,YÐ,YÀ#¨T¯[ª[¸Ñ-=Ô-=Ð,YÐ,YÐ,YÐ,YÐ,YÐ,Yr-   )r>   Úvariable_countr4   )r'   r>   ÚdexprÚdvarss   `   r+   Ú_print_DerivativezStrPrinter._print_Derivativey   sS   ø€ Ø”	ˆØGÐG°4Ô3FÐGÑGÔGˆØ $§)¢)Ð,YÐ,YÐ,YÐ,YÈ%ÈÐSXÉÐ,YÑ,YÔ,YÑ"ZÔ"ZÑZÐZr-   c                ó   — t          |                     ¦   «         t          ¬¦  «        }g }|D ]J}|                      |¦  «        ›d|                      ||         ¦  «        ›�}|                     |¦  «         ŒKdd                     |¦  «        z  S )N©Úkeyz: ú{%s}rq   )ÚsortedÚkeysr   r&   Úappendr4   )r'   Údr¢   ÚitemsrŸ   r(   s         r+   Ú_print_dictzStrPrinter._print_dict~   sŒ   € Ý�a—f’f‘h”hÕ$4Ð5Ñ5Ô5ˆØˆàð 	ð 	ˆCØ#Ÿ{š{¨3Ñ/Ô/Ð/Ð/°·²¸Q¸s¼VÑ1DÔ1DÐ1DÐEˆDØ�LŠL˜ÑÔÐÐà˜Ÿ	š	 %Ñ(Ô(Ñ(Ð(r-   c                ó,   — |                       |¦  «        S r9   )r¦   r=   s     r+   Ú_print_DictzStrPrinter._print_Dictˆ   ó   € Ø×Ò Ñ%Ô%Ð%r-   c                óF  — t          |d¦  «        r*d|                      |                     ¦   «         ¦  «        z   S t          |d¦  «        r;d|                      |j        ¦  «        z   dz   |                      |j        ¦  «        z   S d|                      |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Ñ#Ô#ð 	9Ø §¢¨A¯LªL©N¬NÑ ;Ô ;Ñ;Ð;Ý�Q˜ÑÔð 	9Ø §¢¨Q¬YÑ!7Ô!7Ñ7¸&Ñ@Ø—K’K ¤Ñ&Ô&ñ'ð (ð   $§+¢+¨a¬iÑ"8Ô"8Ñ8Ð8r-   c                ó   — d|j         z   S ©NÚ_©Únamer=   s     r+   Ú_print_DummyzStrPrinter._print_Dummy”   s   € Ø�T”Y‰Ðr-   c                ó   — dS )NÚ
EulerGammar0   r=   s     r+   Ú_print_EulerGammazStrPrinter._print_EulerGamma—   s   € Øˆ|r-   c                ó   — dS )NÚEr0   r=   s     r+   Ú_print_Exp1zStrPrinter._print_Exp1š   ó   € Øˆsr-   c                ót   — d|                       |j        ¦  «        ›d|                       |j        ¦  «        ›d�S ro   )r&   r>   Úcondr=   s     r+   Ú_print_ExprCondPairzStrPrinter._print_ExprCondPair�   s7   € € Ø!Ÿ[š[¨¬Ñ3Ô3Ð3Ð3°T·[²[ÀÄÑ5KÔ5KÐ5KÐ5KÐLÐLr-   c                óX   — |j         j        d|                      |j        d¦  «        z  z   S ©Nr%   rq   )Úfuncr{   r7   r5   r=   s     r+   Ú_print_FunctionzStrPrinter._print_Function    s'   € ØŒyÔ! F¨T¯^ª^¸D¼IÀtÑ-LÔ-LÑ$LÑLÐLr-   c                ó   — dS )NÚGoldenRatior0   r=   s     r+   Ú_print_GoldenRatiozStrPrinter._print_GoldenRatio£   s   € Øˆ}r-   c                óX   — |j         j        d|                      |j        d¦  «        z  z   S rÁ   )rÂ   r{   r7   Úpargsr=   s     r+   Ú_print_HeavisidezStrPrinter._print_Heaviside¦   s)   € ð ŒyÔ! F¨T¯^ª^¸D¼JÈÑ-MÔ-MÑ$MÑMÐMr-   c                ó   — dS )NÚTribonacciConstantr0   r=   s     r+   Ú_print_TribonacciConstantz$StrPrinter._print_TribonacciConstant«   s   € Ø#Ð#r-   c                ó   — dS ©NÚIr0   r=   s     r+   Ú_print_ImaginaryUnitzStrPrinter._print_ImaginaryUnit®   r¼   r-   c                ó   — dS )NÚoor0   r=   s     r+   Ú_print_InfinityzStrPrinter._print_Infinity±   ó   € Øˆtr-   c                óž   ‡ ‡— ˆ fd„Šd                      ˆfd„|j        D ¦   «         ¦  «        }d‰                      |j        ¦  «        ›d|›d�S )Nc                óÈ   •— t          | ¦  «        dk    r‰                     | d         ¦  «        S ‰                     | d         ft          | dd …         ¦  «        z   ¦  «        S ©Nr   r   ©Úlenr&   rŒ   ©Úxabr'   s    €r+   Ú
_xab_tostrz.StrPrinter._print_Integral.<locals>._xab_tostrµ   óS   ø€ Ý�3‰xŒx˜1Š}ˆ}Ø—{’{ 3 q¤6Ñ*Ô*Ð*à—{’{ C¨¤F 9­u°S¸¸¸´W©~¬~Ñ#=Ñ>Ô>Ð>r-   rq   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r0   r0   ©r2   rM   rÜ   s     €r+   r3   z.StrPrinter._print_Integral.<locals>.<listcomp>º   ó!   ø€ Ð:Ð:Ð:¨�z�z !‘}”}Ð:Ð:Ð:r-   z	Integral(rr   ©r4   Úlimitsr&   rs   ©r'   r>   ÚLrÜ   s   `  @r+   Ú_print_IntegralzStrPrinter._print_Integral´   sl   øø€ ð	?ð 	?ð 	?ð 	?ð 	?ð
 �IŠIÐ:Ð:Ð:Ð:¨d¬kÐ:Ñ:Ô:Ñ;Ô;ˆˆØ%)§[¢[°´Ñ%?Ô%?Ð%?Ð%?ÀÀÀÐCÐCr-   c                ó¼   — d}|j         \  }}}}|j        r
|j        rd}n-|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})rD   z.openz.Lopenz.Ropen)ÚaÚbÚmr0   )r5   Úis_infiniteÚformat)r'   re   Úfinrç   rè   rM   Úrré   s           r+   Ú_print_IntervalzStrPrinter._print_Interval½   sÂ   € Ø&ˆØ”V‰
ˆˆ1ˆa�ØŒ=ð 	˜Qœ]ð 	ØˆAˆAØŒ]ð 	 1ð 	ØˆAˆAØŒ]ð 		 1ð 		ØˆAˆAØð 	˜1ð 	ØˆAˆAØð 	�1ð 	ØˆAˆAØð 	ØˆAˆAàˆAØˆsŒzÐ5Ð5 !¨!°!Ð4Ð4Ð5Ð5Ð5r-   c                ót   — d|                       |j        ¦  «        ›d|                       |j        ¦  «        ›d�S )NzAccumBounds(rq   rr   )r&   r    r!   )r'   re   s     r+   Ú_print_AccumulationBoundsz$StrPrinter._print_AccumulationBoundsÐ   s<   € € Ø(,¯ª°A´EÑ(:Ô(:Ð(:Ð(:Ø(,¯ª°A´EÑ(:Ô(:Ð(:Ð(:ð<ð 	<r-   c                óT   — d|                       |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µZÀÔ5FÑGÔGÑGÐGr-   c                óÌ   — |j         }|j        }t          |¦  «        dk    r|d         j        r|d         }d|                      |¦  «        ›d|                      |¦  «        ›d�S )Nr   r   zLambda(rq   rr   )r>   Ú	signaturerÙ   Ú	is_symbolr&   )r'   Úobjr>   Úsigs       r+   Ú_print_LambdazStrPrinter._print_Lambda×   sc   € ØŒxˆØŒmˆÝˆs‰8Œ8�qŠ=ˆ=˜S œVÔ-ˆ=Ø�a”&ˆCøØ#'§;¢;¨sÑ#3Ô#3Ð#3Ð#3°T·[²[ÀÑ5FÔ5FÐ5FÐ5FÐGÐGr-   c                óœ   ‡ — t          |j        t          ¬¦  «        }|j        j        dd                     ˆ fd„|D ¦   «         ¦  «        z  z   S )Nrž   r%   rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   r–   s     €r+   r˜   z.StrPrinter._print_LatticeOp.<locals>.<genexpr>à   s/   øè è € Ð6XÐ6XÈC°t·{²{À3Ñ7GÔ7GÐ6XÐ6XÐ6XÐ6XÐ6XÐ6Xr-   )r¡   r5   r   rÂ   r{   r4   ©r'   r>   r5   s   `  r+   Ú_print_LatticeOpzStrPrinter._print_LatticeOpÞ   sO   ø€ Ý�d”iÕ%5Ð6Ñ6Ô6ˆØŒyÔ! F¨T¯YªYÐ6XÐ6XÐ6XÐ6XÐSWÐ6XÑ6XÔ6XÑ-XÔ-XÑ$XÑXÐXr-   c           
     ól   — |j         \  }}}}dt          t          | j        ||||f¦  «        ¦  «        z  S )NzLimit(%s, %s, %s, dir='%s'))r5   rŒ   Úmapr&   )r'   r>   ÚeÚzÚz0Údirs         r+   Ú_print_LimitzStrPrinter._print_Limitâ   s9   € Øœ	‰ˆˆ1ˆb�#Ø,­uµS¸¼ÀqÈ!ÈRÐQTÀoÑ5VÔ5VÑ/WÔ/WÑWÐWr-   c                ó4   — d|                       |d¦  «        z  S )Nú[%s]rq   )r7   r=   s     r+   Ú_print_listzStrPrinter._print_listç   s   € Ø˜Ÿš t¨TÑ2Ô2Ñ2Ð2r-   c                ó,   — |                       |¦  «        S r9   )r  r=   s     r+   Ú_print_ListzStrPrinter._print_Listê   r©   r-   c                ó,   — |                      | ¦  «        S r9   )Ú_format_strr=   s     r+   Ú_print_MatrixBasezStrPrinter._print_MatrixBaseí   r©   r-   c                óÆ   — |                       |j        t          d         d¬¦  «        d|                      |j        ¦  «        ›d|                      |j        ¦  «        ›d�z   S )NÚAtomT©r*   ú[rq   ú])r,   Úparentr   r&   re   rd   r=   s     r+   Ú_print_MatrixElementzStrPrinter._print_MatrixElementð   s`   € Ø× Ò  ¤­j¸Ô.@ÈÐ ÑNÔNÐNØ ŸKšK¨¬Ñ/Ô/Ð/Ð/°·²¸T¼VÑ1DÔ1DÐ1DÐ1DÐEñFð 	Fr-   c                óà   ‡ — ˆ fd„}‰                       |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                     ˆfd„| D ¦   «         ¦  «        S )Né   r   r   rD   ú:c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   r–   s     €r+   r˜   zBStrPrinter._print_MatrixSlice.<locals>.strslice.<locals>.<genexpr>ý   s/   øè è € Ð;Ð;°#˜TŸ[š[¨Ñ-Ô-Ð;Ð;Ð;Ð;Ð;Ð;r-   )r^   r4   )ÚxÚdimr'   s     €r+   Ústrslicez/StrPrinter._print_MatrixSlice.<locals>.strsliceõ   su   ø€ Ý�Q‘”ˆAØ�Œt�qŠyˆyØ�a�DØ�Œt�qŠyˆyØ��!‘Ø�Œt�sŠ{ˆ{Ø��!‘Ø—8’8Ð;Ð;Ð;Ð;¸Ð;Ñ;Ô;Ñ<Ô<Ð<r-   r  Tr  r  rq   r  )r,   r  r   ÚrowsliceÚrowsÚcolsliceÚcols)r'   r>   r  s   `  r+   Ú_print_MatrixSlicezStrPrinter._print_MatrixSliceô   s‘   ø€ ð	=ð 	=ð 	=ð 	=ð 	=ð ×!Ò! $¤+­z¸&Ô/AÈ$Ð!ÑOÔOÐRUÑUØ�˜œ¨¬Ô(8Ñ9Ô9ñ:Ø<@ñAà�˜œ¨¬Ô(8Ñ9Ô9ñ:à<?ñ@ð 	Ar-   c                ó   — |j         S r9   r³   r=   s     r+   Ú_print_DeferredVectorz StrPrinter._print_DeferredVector  ó
   € ØŒyÐr-   c                ó
  ‡ ‡— t          |¦  «        Š|j        }|d         t          j        u s"t	          d„ |dd …         D ¦   «         ¦  «        �rÅt          |d„ d¬¦  «        \  }}t          |¦  «        D ]y\  }}|j        j        r	|j         }n9t          |j        j        ¦  «        }|d          |d<   t          j        |¦  «        }|dz
  rt          |j        |d¬¦  «        n|j        ||<   Œzg }	|rP|d         j        sC|d                              ¦   «         r)‰                      |                     d¦  «        ¦  «        g}	|	ˆˆ fd	„|D ¦   «         z   }
|
sd
g}
t%          |¦  «        dk    rD|d                              ¦   «         r*‰                      |                     d¦  «        ¦  «        g}	ng }	|	ˆˆ fd„|D ¦   «         z   }d                     |
¦  «        }d                     |¦  «        }t%          |¦  «        dk    r|›d|›d�S |r|›d|›�S |S |                     ¦   «         \  }}|dk     rt+          | |¦  «        }d}nd}g }g }g }‰ j        dvr|                     ¦   «         }nt          j        |¦  «        }d„ }|D �]…}|j        rët5          |t          ¦  «        rÖt7          |j                             ¦   «         d         dk     ¦  «        r¦|j        t          j        ur|                      ||¦  «        ¦  «         Œ�t%          |j        d         j        ¦  «        dk    r6t5          |j        t          t          f¦  «        r|                     |¦  «         |                     |j        ¦  «         Œõ|j        rt|t          j        urf|j         dk    r'|                     tC          |j         ¦  «        ¦  «         |j"        dk    r'|                     tC          |j"        ¦  «        ¦  «         �Œp|                     |¦  «         �Œ‡|pt          j        g}ˆˆ fd„|D ¦   «         }ˆˆ fd„|D ¦   «         }|D ]I}|j        |v r>d|| #                    |j        ¦  «                 z  || #                    |j        ¦  «        <   ŒJ|s|d                     |¦  «        z   S t%          |¦  «        dk    r$|d                     |¦  «        z   dz   |d         z   S |d                     |¦  «        z   dd                     |¦  «        z  z   S )Nr   c              3  óŠ   K  — | ]>}t          |t          ¦  «        p$|j        ot          d „ |j        D ¦   «         ¦  «        V — Œ?dS )c              3  ó$   K  — | ]}|j         V — Œd S r9   )Ú
is_Integer)r2   Úais     r+   r˜   z2StrPrinter._print_Mul.<locals>.<genexpr>.<genexpr>  s$   è è € Ð @Ð @°2 ¤Ð @Ð @Ð @Ð @Ð @Ð @r-   N)r:   r
   Úis_PowÚallr5   )r2   rç   s     r+   r˜   z(StrPrinter._print_Mul.<locals>.<genexpr>  sk   è è € ð ##ð ##ð õ ˜1�fÑ%Ô%ð AØ”Ð@�SÐ @Ð @¸¼Ð @Ñ @Ô @Ñ@Ô@ð##ð ##ð ##ð ##ð ##ð ##r-   r   c                óŒ   — t          | t          ¦  «        o/t          | j                             ¦   «         d         dk     ¦  «        S ©Nr   )r:   r   ÚboolÚexpÚas_coeff_Mul)r  s    r+   ú<lambda>z'StrPrinter._print_Mul.<locals>.<lambda>  s9   € Ý˜1�cÑ"Ô"ÐH¥t¨A¬E×,>Ò,>Ñ,@Ô,@ÀÔ,CÀaÒ,GÑ'HÔ'Hð r-   T)ÚbinaryF©Úevaluatec                ó@   •— g | ]}‰                      |‰d ¬¦  «        ‘ŒS ©Fr  r1   ©r2   rç   rL   r'   s     €€r+   r3   z)StrPrinter._print_Mul.<locals>.<listcomp>#  ó>   ø€ ð ð ð Øð #×/Ò/°°4ÀÐ/ÑFÔFð ð ð r-   Ú1c                ó@   •— g | ]}‰                      |‰d ¬¦  «        ‘ŒS r5  r1   r6  s     €€r+   r3   z)StrPrinter._print_Mul.<locals>.<listcomp>-  r7  r-   Ú*z/(rr   ú/rB   rD   )ÚoldÚnonec                óx  — |                       ¦   «         \  }}t          t          j        |¦  «        ¦  «        }|d         t          j        u r|dd …         }n|d          |d<   t          j        |¦  «        }t          | t          ¦  «        r|  	                    ||d¬¦  «        S |  	                    |d¬¦  «        S )Nr   r   Fr2  )
Úas_base_expr^   r	   Ú	make_argsr   ÚNegativeOneÚ
_from_argsr:   r   rÂ   )re   rè   r   Úeargss       r+   Úapowz#StrPrinter._print_Mul.<locals>.apowK  s¨   € Ø—=’=‘?”?‰DˆAˆqÝ�œ qÑ)Ô)Ñ*Ô*ˆEØ�QŒx�1œ=Ð(Ð(Ø˜a˜b˜bœ	��à! !œH˜9��a‘Ý”˜uÑ%Ô%ˆAÝ˜!�SÑ!Ô!ð 4Ø—v’v˜a ¨U�vÑ3Ô3Ð3Ø—6’6˜! e�6Ñ,Ô,Ð,r-   c                ó@   •— g | ]}‰                      |‰d ¬¦  «        ‘ŒS r5  r1   ©r2   r  rL   r'   s     €€r+   r3   z)StrPrinter._print_Mul.<locals>.<listcomp>l  ó.   ø€ ÐEÐEÐE¸a�×"Ò" 1 d°5Ð"Ñ9Ô9ÐEÐEÐEr-   c                ó@   •— g | ]}‰                      |‰d ¬¦  «        ‘ŒS r5  r1   rF  s     €€r+   r3   z)StrPrinter._print_Mul.<locals>.<listcomp>m  rG  r-   r%   z/(%s))$r   r5   r   ÚOneÚanyr   r_   r.  Ú	is_Numberr^   r	   rB  r   ÚbaserH   Úcould_extract_minus_signr&   rJ   rÙ   r4   r/  r   r   Úas_ordered_factorsr@  Úis_commutativer:   r-  rA  r£   Úis_RationalÚInfinityÚpr   ÚqÚindex)r'   r>   r5   r¤   Únre   Údir   ÚdargsÚpreÚnfactorsÚdfactorsÚcrP   rç   rè   Ú	pow_parenrD  r(   Úa_strÚb_strrL   s   `                    @r+   Ú
_print_MulzStrPrinter._print_Mul  s†  øø€ å˜$ÑÔˆð ŒyˆØ�Œ7•a”eÐÐ�sð ##ð ##ð ˜a˜b˜bœð##ñ ##ô ##ñ  #ô  #Ñõ ˜ð Ið Iàðñ ô ‰DˆAˆqõ # 1™œð Mð M‘��2Ø”6Ô#ð .Øœ˜�A�Aå  ¤¤Ñ-Ô-�EØ % a¤˜y�E˜!‘HÝœ uÑ-Ô-�AØ:;¸a¹%ÐL•s˜2œ7 A°Ð6Ñ6Ô6Ð6ÀRÄW��!‘�àˆCàð .˜˜1œœð .¨¨1¬×)FÒ)FÑ)HÔ)Hð .Ø—{’{ 1§5¢5¨¡8¤8Ñ,Ô,Ð-�àð ð ð ð ð Øðñ ô ñ ˆHàð !Ø˜5�õ �1‰vŒv˜Šzˆz˜a œd×;Ò;Ñ=Ô=ˆzØ—{’{ 1§5¢5¨¡8¤8Ñ,Ô,Ð-��à�Øð ð ð ð ð Øðñ ô ñ ˆHð —’˜Ñ"Ô"ˆAØ—’˜Ñ"Ô"ˆAÝ�8‰}Œ}˜qÒ Ð Ø$% A A q q qÐ)Ð)Øð (Ø"# ! ! Q QÐ'Ð'ØˆHà× Ò Ñ"Ô"‰ˆˆ1ØˆqŠ5ˆ5Ý ˜r 1Ñ%Ô%ˆDØˆDˆDàˆDàˆØˆàˆ	àŒ:˜_Ð,Ð,Ø×*Ò*Ñ,Ô,ˆDˆDõ ”= Ñ&Ô&ˆDð
	-ð 
	-ð 
	-ð ð 	ñ 	ˆDØÔ#ð Ý˜t¥SÑ)Ô)ðå˜œ×.Ò.Ñ0Ô0°Ô3°aÒ7Ñ8Ô8ðð ”8¥1¤=Ð0Ð0Ø—H’H˜T˜T $™ZœZÑ(Ô(Ð(Ð(å˜DœI aœLÔ-Ñ.Ô.°!Ò3Ð3Ý& t¤yµ3½°*Ñ=Ô=ð 4ð "×(Ò(¨Ñ.Ô.Ð.Ø—H’H˜TœYÑ'Ô'Ð'Ð'ØÔ!ð  dµ!´*Ð&<Ð&<Ø”6˜Q’;�;Ø—H’H�X d¤fÑ-Ô-Ñ.Ô.Ð.Ø”6˜Q’;�;Ø—H’H�X d¤fÑ-Ô-Ñ.Ô.Ð.ùà—’˜‘”�‘àˆL•!”%�ˆàEÐEÐEÐEÐEÀ1ÐEÑEÔEˆØEÐEÐEÐEÐEÀ1ÐEÑEÔEˆð ð 	Oð 	OˆDØŒy˜Aˆ~ˆ~Ø,2°U¸1¿7º7À4Ä9Ñ;MÔ;MÔ5NÑ,N��a—g’g˜dœiÑ(Ô(Ñ)øàð 	FØ˜#Ÿ(š( 5™/œ/Ñ)Ð)Ý�‰VŒV�qŠ[ˆ[Ø˜#Ÿ(š( 5™/œ/Ñ)¨CÑ/°%¸´(Ñ:Ð:à˜#Ÿ(š( 5™/œ/Ñ)¨G°c·h²h¸u±o´oÑ,EÑEÐEr-   c                óN  ‡ ‡— ‰                      ¦   «         \  }}d}|j        rZ|                     ¦   «         \  }}|j        r|j        rt          | |¦  «        Šd}n!|j        r|j        rt          | |¦  «        Šd}|d                     ˆˆ fd„‰j        D ¦   «         ¦  «        z   S )NrD   rB   r:  c                óV   •— g | ]%}‰                      |t          ‰¦  «        ¦  «        ‘Œ&S r0   ©r,   r   ©r2   r—   r>   r'   s     €€r+   r3   z,StrPrinter._print_MatMul.<locals>.<listcomp>‰  s1   ø€ ÐKÐKÐK¸#ˆT×Ò˜s¥J¨tÑ$4Ô$4Ñ5Ô5ÐKÐKÐKr-   )Úas_coeff_mmulÚ	is_numberÚas_real_imagÚis_zeroÚis_negativer   r4   r5   )r'   r>   r[  ré   rP   ÚreÚims   ``     r+   Ú_print_MatMulzStrPrinter._print_MatMul{  sÈ   øø€ Ø×!Ò!Ñ#Ô#‰ˆˆ1àˆØŒ;ð 	Ø—^’^Ñ%Ô%‰FˆB�ØŒzð ˜bœnð Ý" A 2 qÑ)Ô)�Ø��Ø”ð  ¤ð Ý" A 2 qÑ)Ô)�Ø�à�c—h’hØKÐKÐKÐKÐKÀÄÐKÑKÔKñ
ô 
ñ 
ð 	
r-   c                óh   — d                      |j        |                      |j        ¦  «        ¦  «        S )Nz{}.({}))rë   rs   r&   r>   r=   s     r+   Ú_print_ElementwiseApplyFunctionz*StrPrinter._print_ElementwiseApplyFunctionŒ  s0   € Ø×ÒØŒMØ�KŠK˜œ	Ñ"Ô"ñ
ô 
ð 	
r-   c                ó   — dS )NÚnanr0   r=   s     r+   Ú
_print_NaNzStrPrinter._print_NaN’  rˆ   r-   c                ó   — dS )Nz-oor0   r=   s     r+   Ú_print_NegativeInfinityz"StrPrinter._print_NegativeInfinity•  rˆ   r-   c                óD  — |j         rt          d„ |j        D ¦   «         ¦  «        r]t          |j         ¦  «        dk    rd|                      |j        ¦  «        z  S d|                      |j        f|j         z   dd¦  «        z  S d|                      |j        dd¦  «        z  S )Nc              3  ó2   K  — | ]}|t           j        u V — Œd S r9   )r   ÚZero)r2   rR  s     r+   r˜   z*StrPrinter._print_Order.<locals>.<genexpr>™  s(   è è € Ð$EÐ$E°Q Q­!¬& [Ð$EÐ$EÐ$EÐ$EÐ$EÐ$Er-   r   zO(%s)rq   r   )Ú	variablesr*  ÚpointrÙ   r&   r>   r7   r5   r=   s     r+   Ú_print_OrderzStrPrinter._print_Order˜  s    € ØŒ~ð 	@¥Ð$EÐ$E¸$¼*Ð$EÑ$EÔ$EÑ!EÔ!Eð 	@Ý�4”>Ñ"Ô" aÒ'Ð'Ø §¢¨T¬YÑ!7Ô!7Ñ7Ð7à §¢°´°¸t¼~Ñ0MÈtÐUVÑ!WÔ!WÑWÐWà˜TŸ^š^¨D¬I°t¸QÑ?Ô?Ñ?Ð?r-   c                ó*   — |                      ¦   «         S r9   ©Ú__str__r=   s     r+   Ú_print_OrdinalzStrPrinter._print_Ordinal¡  ó   € Ø�|Š|‰~Œ~Ðr-   c                ó*   — |                      ¦   «         S r9   rz  r=   s     r+   Ú_print_CyclezStrPrinter._print_Cycle¤  r}  r-   c                ó   — ddl m}m} ddlm} |j        }|� |d|› d�ddd¬	¦  «         n| j                             d
d¦  «        }|r |j        sdS   ||¦  «        |j        dz
  ¦  «         	                    ¦   «         t          d¦  «        d …         }|                     d¦  «        }|dk    s!d||d …         vr||d …         |d |…         z   }|                     dd¦  «        }|S |                     ¦   «         }|sE|j        dk     rd|                      |j        ¦  «        z  S d|                      |j        ¦  «        z  S |                      |j        d |d         dz   …         ¦  «        d|                      |j        ¦  «        z  z   }|                      |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   r‚  rp   ú,rD   é   zPermutation(%s)zPermutation([], size=%s)éÿÿÿÿz	, size=%s)Ú sympy.combinatorics.permutationsr�  r‚  Úsympy.utilities.exceptionsrƒ  Úprint_cyclicÚ	_settingsÚgetÚsizeÚ__repr__rÙ   ÚrfindÚreplaceÚsupportr&   Ú
array_form)r'   r>   r�  r‚  rƒ  r   r‘   ÚlastÚtrimÚuseÚfulls              r+   Ú_print_PermutationzStrPrinter._print_Permutation§  s  € ØGÐGÐGÐGÐGÐGÐGÐGØHÐHÐHÐHÐHÐHà!Ô.ˆØÐ"Ø%Ð%ðà+6ðð ð ð */Ø+PØðñ ô ð ð ð œ.×,Ò,¨]¸DÑAÔAˆKàð 	+Ø”9ð Ø�tð ���d‘”˜DœI¨™MÑ*Ô*×3Ò3Ñ5Ô5µc¸'±l´l°m°mÔDˆAØ—7’7˜3‘<”<ˆDØ˜1’9�9 ¨A¨d¨e¨e¬HÐ!4Ð!4Ø�d�e�e”H˜q  $ œxÑ'�Ø—	’	˜#˜rÑ"Ô"ˆAØˆHà—’‘”ˆAØð KØ”9˜q’=�=Ø,¨t¯{ª{¸4¼?Ñ/KÔ/KÑKÐKØ1°D·K²KÀÄ	Ñ4JÔ4JÑJÐJØ—;’;˜tœ¨z°°"´¸±	¨zÔ:Ñ;Ô;¸kÈDÏKÊKÐX\ÔXaÑLbÔLbÑ>bÑbˆDØŸš T¤_Ñ5Ô5Ð5ˆC�$Ý�4‰yŒy�3˜t™9œ9Ò$Ð$Ø�Ø$ sÑ*Ð*r-   c                óò   — |j         \  }}}t          |j        ¦  «        dk    r|d         }|d         }d|                      |¦  «        ›d|                      |¦  «        ›d|                      |¦  «        ›d�S )Nr   r   zSubs(rq   rr   )r5   rÙ   rw  r&   )r'   r÷   r>   r<  Únews        r+   Ú_print_SubszStrPrinter._print_SubsÐ  s~   € Øœ‰ˆˆc�3ÝˆsŒy‰>Œ>˜QÒÐØ�a”&ˆCØ�a”&ˆCøà�KŠK˜ÑÔÐÐ˜tŸ{š{¨3Ñ/Ô/Ð/Ð/°·²¸SÑ1AÔ1AÐ1AÐ1AðCð 	Cr-   c                ó*   — |                      ¦   «         S r9   rx   r=   s     r+   Ú_print_TensorIndexzStrPrinter._print_TensorIndexØ  ó   € Ø�{Š{‰}Œ}Ðr-   c                ó*   — |                      ¦   «         S r9   rx   r=   s     r+   Ú_print_TensorHeadzStrPrinter._print_TensorHeadÛ  r   r-   c                ó*   — |                      ¦   «         S r9   rx   r=   s     r+   Ú_print_TensorzStrPrinter._print_TensorÞ  r   r-   c                ó~   ‡ ‡— ‰                      ¦   «         \  }}|d                     ˆˆ fd„|D ¦   «         ¦  «        z   S )Nr:  c                óV   •— g | ]%}‰                      |t          ‰¦  «        ¦  «        ‘Œ&S r0   rb  rc  s     €€r+   r3   z-StrPrinter._print_TensMul.<locals>.<listcomp>å  s1   ø€ ÐFÐFÐF¸#ˆT×Ò˜s¥J¨tÑ$4Ô$4Ñ5Ô5ÐFÐFÐFr-   )Ú!_get_args_for_traditional_printerr4   )r'   r>   rP   r5   s   ``  r+   Ú_print_TensMulzStrPrinter._print_TensMulá  sP   øø€ à×;Ò;Ñ=Ô=‰
ˆˆdØ�c—h’hØFÐFÐFÐFÐFÀÐFÑFÔFñ
ô 
ñ 
ð 	
r-   c                ó*   — |                      ¦   «         S r9   rx   r=   s     r+   Ú_print_TensAddzStrPrinter._print_TensAddè  r   r-   c                ó6   — |                       |j        ¦  «        S r9   ©r&   r´   r=   s     r+   Ú_print_ArraySymbolzStrPrinter._print_ArraySymbolë  s   € Ø�{Š{˜4œ9Ñ%Ô%Ð%r-   c                ó¦   ‡ — ‰                       |j        t          d         d¦  «        ›dd                     ˆ fd„|j        D ¦   «         ¦  «        ›d�S )NÚFuncTr  rq   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r0   rx   r‹   s     €r+   r3   z2StrPrinter._print_ArrayElement.<locals>.<listcomp>ð  s%   ø€ ÐNtÐNtÐNtÐbcÈtÏ{Ê{Ð[\É~Ì~ÐNtÐNtÐNtr-   r  )r,   r´   r   r4   Úindicesr=   s   ` r+   Ú_print_ArrayElementzStrPrinter._print_ArrayElementî  s^   ø€ à×Ò˜dœi­°FÔ);¸TÑBÔBÐBÐBÀDÇIÂIÐNtÐNtÐNtÐNtÐgkÔgsÐNtÑNtÔNtÑDuÔDuÐDuÐDuðwð 	wr-   c                óZ   ‡ — ˆ fd„|j         D ¦   «         }dd                     |¦  «        z  S )Nc                ó@   •— g | ]}d ‰                      |¦  «        z  ‘ŒS )z    %srx   )r2   rç   r'   s     €r+   r3   z6StrPrinter._print_PermutationGroup.<locals>.<listcomp>ó  s(   ø€ Ð:Ð:Ð:¨1ˆX˜Ÿš A™œÑ&Ð:Ð:Ð:r-   zPermutationGroup([
%s])z,
)r5   r4   )r'   r>   rR  s   `  r+   Ú_print_PermutationGroupz"StrPrinter._print_PermutationGroupò  s3   ø€ Ø:Ð:Ð:Ð:°´	Ð:Ñ:Ô:ˆØ)¨E¯JªJ°q©M¬MÑ9Ð9r-   c                ó   — dS )NÚpir0   r=   s     r+   Ú	_print_PizStrPrinter._print_Piö  rÔ   r-   c                óÄ   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        ›d‰                      |j        ¦  «        ›d‰                      |j        ¦  «        ›d�S )NzPolynomial ring in rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   )r2   Úrsr'   s     €r+   r˜   z-StrPrinter._print_PolyRing.<locals>.<genexpr>û  s-   øè è € Ð?Ð?¨B˜Ÿš B™œÐ?Ð?Ð?Ð?Ð?Ð?r-   ú over ú with ú order©r4   r®   r&   Údomainr   )r'   Úrings   ` r+   Ú_print_PolyRingzStrPrinter._print_PolyRingù  sh   ø€ € à�YŠYÐ?Ð?Ð?Ð?°$´,Ð?Ñ?Ô?Ñ@Ô@Ð@Ð@Ø�KŠK˜œÑ$Ô$Ð$Ð$ d§k¢k°$´*Ñ&=Ô&=Ð&=Ð&=ð?ð 	?r-   c                óÄ   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        ›d‰                      |j        ¦  «        ›d‰                      |j        ¦  «        ›d�S )NzRational function field in rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   )r2   Ú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þ  sj   ø€ € à�YŠYÐ@Ð@Ð@Ð@°%´-Ð@Ñ@Ô@ÑAÔAÐAÐAØ�KŠK˜œÑ%Ô%Ð%Ð% t§{¢{°5´;Ñ'?Ô'?Ð'?Ð'?ðAð 	Ar-   c                ó*   — |                      ¦   «         S r9   rz  )r'   Úelms     r+   Ú_print_FreeGroupElementz"StrPrinter._print_FreeGroupElement  s   € Ø�{Š{‰}Œ}Ðr-   c                ó(   — d|j         ›d|j        ›d�S )Nrp   ú + z*I))r  Úy©r'   Úpolys     r+   Ú_print_GaussianElementz!StrPrinter._print_GaussianElement  s   € € Ø $¤  ¨¬¨¨Ð/Ð/r-   c                ó<   — |                      | t          dd¦  «        S )Nz%s**%sr:  )r;   r   rÏ  s     r+   Ú_print_PolyElementzStrPrinter._print_PolyElement	  s   € Ø�xŠx˜�j¨(°CÑ8Ô8Ð8r-   c                óü   — |j         dk    r|                      |j        ¦  «        S |                      |j        t          d         d¬¦  «        }|                      |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  sr   € ØŒ:˜Š?ˆ?Ø—;’;˜tœzÑ*Ô*Ð*à×%Ò% d¤jµ*¸UÔ2CÈDÐ%ÑQÔQˆEØ×%Ò% d¤jµ*¸VÔ2DÈTÐ%ÑRÔRˆEØ˜3‘; Ñ&Ð&r-   c                ó¾  ‡ ‡— t           d         dz
  Šg ˆˆ fd„|j        D ¦   «         }}|                     ¦   «         D �]t\  }}g }t          |¦  «        D ]N\  }}|dk    rC|dk    r|                     ||         ¦  «         Œ-|                     ||         d|z  z   ¦  «         ŒOd                     |¦  «        }|j        r4|rd‰                      |¦  «        z   dz   }	nz‰                      |¦  «        }	nd|rM|t          j	        u r| 
                    d	|g¦  «         ŒÞ|t          j        u r| 
                    d
|g¦  «         �Œ‰                      |¦  «        }	|s|	}
n|	dz   |z   }
|
                     d
¦  «        r!| 
                    d
|
dd …         g¦  «         �Œ]| 
                    d	|
g¦  «         �Œv|d         dv r)|                     d¦  «        }|d
k    rd
|d         z   |d<   |j        j        dz   }ddlm} 	 |d|                     ¦   «         z  z  }n%# |$ r |d|                     ¦   «         z  z  }Y nw xY w|dz  }t          |¦  «        D ]a\  }}t)          |¦  «        dk    rI|d d…         dk    r;|t)          |¦  «        dz
  d …         dk    r|dt)          |¦  «        dz
  …         ||<   Œb|d                     |¦  «        d                     |¦  «        fz  S )Nr  r   c                ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS r0   r1   )r2   r‘   Ú	ATOM_PRECr'   s     €€r+   r3   z*StrPrinter._print_Poly.<locals>.<listcomp>  s)   ø€ ÐPÐPÐPÀ˜D×-Ò-¨a°Ñ;Ô;ÐPÐPÐPr-   r   z**%dr:  rp   rr   rC   rB   )rB   rC   z(%s, %s)ÚPolynomialErrorz, modulus=%sz, domain='%s'r  rE   rq   )r   ÚgensrK   r_   r£   r4   rH   r&   r   rI  rI   rA  rG   rJ   rz   r{   Úsympy.polys.polyerrorsrÜ  Úget_modulusÚ
get_domainrÙ   )r'   r>   rK   rÝ  ÚmonomÚcoeffÚs_monomre   r   Ús_coeffÚs_termÚmodifierrë   rÜ  rT  r(   rÛ  s   `               @r+   Ú_print_PolyzStrPrinter._print_Poly  s4  øø€ Ý˜vÔ&¨Ñ*ˆ	ØÐPÐPÐPÐPÐPÀTÄYÐPÑPÔPˆtˆà ŸJšJ™LœLð %	,ñ %	,‰LˆE�5ØˆGå! %Ñ(Ô(ð =ð =‘��1Ø�q’5�5Ø˜A’v�vØŸš t¨A¤wÑ/Ô/Ð/Ð/àŸš t¨A¤w°¸!±Ñ';Ñ<Ô<Ð<øà—h’h˜wÑ'Ô'ˆGàŒ|ð -Øð 1Ø! D§K¢K°Ñ$6Ô$6Ñ6¸Ñ<�G�Gà"Ÿkšk¨%Ñ0Ô0�G�Gàð !Ø¥¤�~�~ØŸš c¨7 ^Ñ4Ô4Ð4Ø à¥¤Ð-Ð-ØŸš c¨7 ^Ñ4Ô4Ð4Ù àŸ+š+ eÑ,Ô,�àð 1Ø ��à  3™¨Ñ0�à× Ò  Ñ%Ô%ð ,Ø—’˜c 6¨!¨"¨"¤:Ð.Ñ/Ô/Ð/Ñ/à—’˜c 6˜]Ñ+Ô+Ð+Ñ+à�Œ8�zÐ!Ð!Ø—y’y ‘|”|ˆHà˜3ŠˆØ  q¤™>��a‘à”Ô(¨9Ñ4ˆà:Ð:Ð:Ð:Ð:Ð:ð	:Ø�n t×'7Ò'7Ñ'9Ô'9Ñ9Ñ9ˆFˆFøØð 	:ð 	:ð 	:Ø�o¨¯ªÑ(9Ô(9Ñ9Ñ9ˆFˆFˆFð	:øøøð 	�#‰ˆå$ T™?œ?ð 	4ð 	4‰KˆE�4Ý�4‰yŒy˜1Š}ˆ} $ r¨ r¤(¨c¢/ /°d½3¸t¹9¼9Àq¹=¸>¸>Ô6JÈcÒ6QÐ6QØ" 1¥S¨¡Y¤Y°¡] ?Ô3��U‘øà˜Ÿš %™œ¨$¯)ª)°D©/¬/Ð:Ñ:Ð:s   Ç<H ÈH9È8H9c                ó   — dS )Nr�   r0   )r'   rR  s     r+   Ú_print_UniversalSetzStrPrinter._print_UniversalSetV  s   € Øˆ~r-   c                óÐ   — |j         r9|                      |                     ¦   «                              ¦   «         ¦  «        S |                      |                     ¦   «         ¦  «        S r9   )Ú
is_aliasedr&   Úas_polyÚas_exprr=   s     r+   Ú_print_AlgebraicNumberz!StrPrinter._print_AlgebraicNumberY  sL   € ØŒ?ð 	/Ø—;’;˜tŸ|š|™~œ~×5Ò5Ñ7Ô7Ñ8Ô8Ð8à—;’;˜tŸ|š|™~œ~Ñ.Ô.Ð.r-   c                ó  ‡ — t          |¦  «        }|j        t          j        u r|sd‰                      |j        ¦  «        z  S |j        r˜|j         t          j        u r1|s/dt          ˆ fd„t          j        |j        fD ¦   «         ¦  «        z  S |j        t          j         u r?‰                      t          j        ¦  «        ›d‰  	                    |j        |d¬¦  «        ›�S ‰  	                    |j        |d¬¦  «        }‰ j
        dk    r[|j        j        rO|j        j        dk    r?|                     d	¦  «        r*‰  	                    |j        |d¬¦  «        ›d
|dd…         ›�S ‰  	                    |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  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   r–   s     €r+   r˜   z(StrPrinter._print_Pow.<locals>.<genexpr>Ž  s/   øè è € Ð-]Ð-]À3¨d¯kªk¸#Ñ.>Ô.>Ð-]Ð-]Ð-]Ð-]Ð-]Ð-]r-   r;  Fr  Ú
_sympyreprr   z	(Rationalú**rŠ  )r   r.  r   ÚHalfr&   rL  rO  rŒ   rI  r,   ÚprintmethodrP  rS  rG   )r'   r>   ÚrationalÚPRECr   s   `    r+   Ú
_print_PowzStrPrinter._print_Pow_  s¤  ø€ õL ˜$ÑÔˆàŒ8•q”vÐÐ hÐØ §¢¨D¬IÑ 6Ô 6Ñ6Ð6àÔð 	TØ”ˆy�AœFÐ"Ð"¨8Ð"ð %¥uÐ-]Ð-]Ð-]Ð-]Í1Ì5ÐRVÔR[ÐJ\Ð-]Ñ-]Ô-]Ñ'^Ô'^Ñ^Ð^ØŒx�AœE˜6Ð!Ð!à"&§+¢+­a¬eÑ"4Ô"4Ð"4Ð"4Ø"&×"3Ò"3°D´I¸tÈEÐ"3Ñ"RÔ"RÐ"RðTð Tð ×Ò˜dœh¨°UÐÑ;Ô;ˆØÔ˜|Ò+Ð+°´Ô0DÐ+ÈÌÌÐWXÊÈð �|Š|˜KÑ(Ô(ð ^Ø#'×#4Ò#4°T´YÀÈUÐ#4Ñ#SÔ#SÐ#SÐ#SÐUVÐWXÐY[ÐW[ÔU\ÐU\Ð]Ð]Ø×,Ò,¨T¬Y¸ÀUÐ,ÑKÔKÐKÐKÈQÈQÐOÐOr-   c                óB   — |                       |j        d         ¦  «        S r,  ©r&   r5   r=   s     r+   Ú_print_UnevaluatedExprz!StrPrinter._print_UnevaluatedExprœ  s   € Ø�{Š{˜4œ9 Qœ<Ñ(Ô(Ð(r-   c                óš   — t          |¦  «        }|                      |j        |d¬¦  «        ›d|                      |j        |d¬¦  «        ›�S )NFr  rò  )r   r,   rL  r.  )r'   r>   rö  s      r+   Ú_print_MatPowzStrPrinter._print_MatPowŸ  sX   € Ý˜$ÑÔˆØ×,Ò,¨T¬Y¸ÀUÐ,ÑKÔKÐKÐKØ×*Ò*¨4¬8°TÀ%Ð*ÑHÔHÐHðJð 	Jr-   c                ój   — | j                              dd¦  «        rd|z  S t          |j        ¦  «        S )Nr   FzS(%s))rŽ  r�  r;   rR  r=   s     r+   Ú_print_IntegerzStrPrinter._print_Integer¤  s6   € ØŒ>×ÒÐ.°Ñ6Ô6ð 	$Ø˜dÑ#Ð#Ý�4”6‰{Œ{Ðr-   c                ó   — dS )NÚIntegersr0   r=   s     r+   Ú_print_IntegerszStrPrinter._print_Integers©  ó   € Øˆzr-   c                ó   — dS )NÚNaturalsr0   r=   s     r+   Ú_print_NaturalszStrPrinter._print_Naturals¬  r  r-   c                ó   — dS )NÚ	Naturals0r0   r=   s     r+   Ú_print_Naturals0zStrPrinter._print_Naturals0¯  ó   € Øˆ{r-   c                ó   — dS )NÚ	Rationalsr0   r=   s     r+   Ú_print_RationalszStrPrinter._print_Rationals²  r	  r-   c                ó   — dS )NÚRealsr0   r=   s     r+   Ú_print_RealszStrPrinter._print_Realsµ  rX   r-   c                ó   — dS )NÚ	Complexesr0   r=   s     r+   Ú_print_ComplexeszStrPrinter._print_Complexes¸  r	  r-   c                ó   — dS )NÚEmptySetr0   r=   s     r+   Ú_print_EmptySetzStrPrinter._print_EmptySet»  r  r-   c                ó   — dS )NÚEmptySequencer0   r=   s     r+   Ú_print_EmptySequencezStrPrinter._print_EmptySequence¾  s   € Øˆr-   c                ó    — t          |¦  «        S r9   ©r;   r=   s     r+   Ú
_print_intzStrPrinter._print_intÁ  ó   € Ý�4‰yŒyÐr-   c                ó    — t          |¦  «        S r9   r  r=   s     r+   Ú
_print_mpzzStrPrinter._print_mpzÄ  r  r-   c                ó¼   — |j         dk    rt          |j        ¦  «        S | j                             dd¦  «        rd|j        ›d|j         ›�S |j        ›d|j         ›�S )Nr   r   FzS(z)/r;  )rS  r;   rR  rŽ  r�  r=   s     r+   Ú_print_RationalzStrPrinter._print_RationalÇ  se   € ØŒ6�QŠ;ˆ;Ý�t”v‘;”;ÐàŒ~×!Ò!Ð"2°EÑ:Ô:ð 5ð 5Ø%)¤V V V¨T¬V¨VÐ4Ð4Ø"œf˜f˜f d¤f fÐ-Ð-r-   c                ób   — |j         dk    rt          |j        ¦  «        S d|j        |j         fz  S )Nr   z%d/%d)rS  r;   rR  r=   s     r+   Ú_print_PythonRationalz StrPrinter._print_PythonRationalÏ  s/   € ØŒ6�QŠ;ˆ;Ý�t”v‘;”;Ðà˜dœf d¤fÐ-Ñ-Ð-r-   c                ób   — |j         dk    rt          |j        ¦  «        S |j        ›d|j         ›�S ©Nr   r;  ©Údenominatorr;   Ú	numeratorr=   s     r+   Ú_print_FractionzStrPrinter._print_FractionÕ  ó7   € ØÔ˜qÒ Ð Ý�t”~Ñ&Ô&Ð&à"œn˜n˜n¨dÔ.>Ð.>Ð?Ð?r-   c                ób   — |j         dk    rt          |j        ¦  «        S |j        ›d|j         ›�S r$  r%  r=   s     r+   Ú
_print_mpqzStrPrinter._print_mpqÛ  r)  r-   c                ó(  — |j         }|dk     rd}nt          |j         ¦  «        }| j        d         du rd}n.| j        d         du rd}n| j        d         dk    r| j        dk    }d| j        v r| j        d         nd }d	| j        v r| j        d	         nd }t	          |j        ||||¬
¦  «        }|                     d¦  «        rd|dd …         z   }n"|                     d¦  «        rd|dd …         z   }|                     d¦  «        r
|dd …         }|S )Nr‰  r   r   TFr   r   r    r!   )Ústrip_zerosÚ	min_fixedÚ	max_fixedz-.0z-0.é   z.0z0.r  rC   )Ú_precr   rŽ  Ú_print_levelÚmlib_to_strÚ_mpf_rG   )r'   r>   rL   ÚdpsÚstripÚlowÚhighÚrvs           r+   Ú_print_FloatzStrPrinter._print_Floatá  s@  € ØŒzˆØ�!Š8ˆ8ØˆCˆCå˜dœjÑ)Ô)ˆCØŒ>˜+Ô&¨$Ð.Ð.ØˆEˆEØŒ^˜KÔ(¨EÐ1Ð1ØˆEˆEØŒ^˜KÔ(¨FÒ2Ð2ØÔ%¨Ò)ˆEØ',°´Ð'>Ð'>ˆdŒn˜UÔ#Ð#ÀDˆØ(-°´Ð(?Ð(?ˆtŒ~˜eÔ$Ð$ÀTˆÝ˜œ S°eÀsÐVZÐ[Ñ[Ô[ˆØ�=Š=˜ÑÔð 	Ø˜˜A˜B˜Bœ‘ˆBˆBØ�]Š]˜4Ñ Ô ð 	Ø˜˜1˜2˜2œ‘ˆBØ�=Š=˜ÑÔð 	à�A�B�B”ˆBØˆ	r-   c           
     óª  — ddddddddd	œ}|j         |v rF||j                  ›d
|                      |j        ¦  «        ›d|                      |j        ¦  «        ›d�S |                      |j        t          |¦  «        ¦  «        ›d| j                             |j         ¦  «        p|j         ›d|                      |j        t          |¦  «        ¦  «        ›�S )NÚEqÚNeÚ
AssignmentÚAddAugmentedAssignmentÚSubAugmentedAssignmentÚMulAugmentedAssignmentÚDivAugmentedAssignmentÚModAugmentedAssignment)z==z!=z:=z+=z-=z*=z/=z%=rp   rq   rr   rE   )Úrel_opr&   Úlhsra   r,   r   r#   r�  )r'   r>   Úcharmaps      r+   Ú_print_RelationalzStrPrinter._print_Relationalù  sò   € ð ØØØ*Ø*Ø*Ø*Ø*ð	
ð 	
ˆð Œ;˜'Ð!Ð!Ø#*¨4¬;Ô#7Ð#7Ð#7¸¿ºÀTÄXÑ9NÔ9NÐ9NÐ9NØ#'§;¢;¨t¬xÑ#8Ô#8Ð#8Ð#8ð:ð :ð "×.Ò.¨t¬x½ÀDÑ9IÔ9IÑJÔJÐJÐJØÔ,×0Ò0°´Ñ=Ô=ÐLÀÄÐLÐLØ×,Ò,¨T¬XµzÀ$Ñ7GÔ7GÑHÔHÐHðJð 	Jr-   c                óN   — d|                       |j        d¬¦  «        |j        fz  S )NzCRootOf(%s, %d)ÚlexrA   )rQ   r>   rT  r=   s     r+   Ú_print_ComplexRootOfzStrPrinter._print_ComplexRootOf  s-   € Ø  D§O¢O°D´IÀe OÑ$LÔ$LØ$(¤Jð$0ñ 0ð 	0r-   c                óì   — |                       |j        d¬¦  «        g}|j        t          j        ur-|                     |                      |j        ¦  «        ¦  «         dd                     |¦  «        z  S )NrI  rA   zRootSum(%s)rq   )rQ   r>   Úfunr   ÚIdentityFunctionr£   r&   r4   rü   s      r+   Ú_print_RootSumzStrPrinter._print_RootSum  sa   € Ø—’ ¤	°�Ñ7Ô7Ð8ˆàŒ8�1Ô-Ð-Ð-Ø�KŠK˜Ÿš D¤HÑ-Ô-Ñ.Ô.Ð.à˜tŸyšy¨™œÑ.Ð.r-   c                ó\  ‡ ‡— ‰j         j        }ˆˆ fd„‰j        D ¦   «         }dd                     |¦  «        z  }ˆ fd„‰j        D ¦   «         }d‰                      ‰j        ¦  «        z  }d‰                      ‰j        ¦  «        z  }|g|z   ||gz   }|›dd                     |¦  «        ›d�S )	Nc                óH   •— g | ]}‰                      |‰j        ¬ ¦  «        ‘ŒS )rA   )rQ   r   )r2   r—   Úbasisr'   s     €€r+   r3   z3StrPrinter._print_GroebnerBasis.<locals>.<listcomp>  s+   ø€ ÐPÐPÐP¸S�—’ ¨E¬K�Ñ8Ô8ÐPÐPÐPr-   r  rq   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r0   rx   )r2   Úgenr'   s     €r+   r3   z3StrPrinter._print_GroebnerBasis.<locals>.<listcomp>   s%   ø€ Ð9Ð9Ð9 c�—’˜SÑ!Ô!Ð9Ð9Ð9r-   zdomain='%s'z
order='%s'rp   rr   )rz   r{   Úexprsr4   rÝ  r&   rÀ  r   )r'   rQ  ÚclsrT  rÝ  rÀ  r   r5   s   ``      r+   Ú_print_GroebnerBasiszStrPrinter._print_GroebnerBasis  s¾   øø€ ØŒoÔ&ˆàPÐPÐPÐPÐPÀEÄKÐPÑPÔPˆØ˜Ÿš 5Ñ)Ô)Ñ)ˆà9Ð9Ð9Ð9¨U¬ZÐ9Ñ9Ô9ˆØ §¢¨U¬\Ñ!:Ô!:Ñ:ˆØ˜tŸ{š{¨5¬;Ñ7Ô7Ñ7ˆàˆw˜‰~ ¨ Ñ/ˆà˜3˜3 §	¢	¨$¡¤  Ð0Ð0r-   c                ó„   ‡ — t          |t          ¬¦  «        }d                     ˆ fd„|D ¦   «         ¦  «        }|sdS d|z  S )Nrž   rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   ©r2   r(   r'   s     €r+   r˜   z(StrPrinter._print_set.<locals>.<genexpr>+  ó/   øè è € Ð=Ð=¨t˜Ÿš TÑ*Ô*Ð=Ð=Ð=Ð=Ð=Ð=r-   zset()r    )r¡   r   r4   ©r'   r‘   r¥   r5   s   `   r+   Ú
_print_setzStrPrinter._print_set(  sS   ø€ Ý�qÕ.Ð/Ñ/Ô/ˆà�yŠyÐ=Ð=Ð=Ð=°uÐ=Ñ=Ô=Ñ=Ô=ˆØð 	Ø�7Ø˜‰}Ðr-   c                ó
  ‡ ‡— ddl mŠ t          |t          ¬¦  «        }d                     ˆ fd„|D ¦   «         ¦  «        }t          ˆfd„|D ¦   «         ¦  «        rd                     |¦  «        S d                     |¦  «        S )	Nr   )Ú	FiniteSetrž   rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   rY  s     €r+   r˜   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>4  rZ  r-   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r9   )Úhas)r2   r(   r^  s     €r+   r˜   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>5  s/   øè è € Ð5Ð5 tˆt�xŠx˜	Ñ"Ô"Ð5Ð5Ð5Ð5Ð5Ð5r-   zFiniteSet({})z{{{}}})Úsympy.sets.setsr^  r¡   r   r4   rJ  rë   )r'   r‘   r¥   r5   r^  s   `   @r+   Ú_print_FiniteSetzStrPrinter._print_FiniteSet0  sš   øø€ Ø-Ð-Ð-Ð-Ð-Ð-Ý�qÕ.Ð/Ñ/Ô/ˆà�yŠyÐ=Ð=Ð=Ð=°uÐ=Ñ=Ô=Ñ=Ô=ˆÝÐ5Ð5Ð5Ð5¨uÐ5Ñ5Ô5Ñ5Ô5ð 	0Ø"×)Ò)¨$Ñ/Ô/Ð/Ø�Š˜tÑ$Ô$Ð$r-   c                óœ   ‡ — t          |t          ¬¦  «        }d                     ˆ fd„|D ¦   «         ¦  «        }d                     |¦  «        S )Nrž   rq   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r9   rx   r–   s     €r+   r˜   z.StrPrinter._print_Partition.<locals>.<genexpr><  s/   øè è € Ð;Ð;¨c˜Ÿš SÑ)Ô)Ð;Ð;Ð;Ð;Ð;Ð;r-   zPartition({}))r¡   r   r4   rë   r[  s   `   r+   Ú_print_PartitionzStrPrinter._print_Partition9  sP   ø€ Ý�qÕ.Ð/Ñ/Ô/ˆà�yŠyÐ;Ð;Ð;Ð;°UÐ;Ñ;Ô;Ñ;Ô;ˆØ×%Ò% dÑ+Ô+Ð+r-   c                ó:   — |sdS d|                       |¦  «        z  S )Nzfrozenset()zfrozenset(%s))r\  ©r'   r‘   s     r+   Ú_print_frozensetzStrPrinter._print_frozenset?  s&   € Øð 	!Ø �=Ø §¢°Ñ!3Ô!3Ñ3Ð3r-   c                óž   ‡ ‡— ˆ fd„Šd                      ˆfd„|j        D ¦   «         ¦  «        }d‰                      |j        ¦  «        ›d|›d�S )Nc                óÈ   •— t          | ¦  «        dk    r‰                     | d         ¦  «        S ‰                     | d         ft          | dd …         ¦  «        z   ¦  «        S r×   rØ   rÚ   s    €r+   rÜ   z)StrPrinter._print_Sum.<locals>._xab_tostrE  rÝ   r-   rq   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r0   r0   rß   s     €r+   r3   z)StrPrinter._print_Sum.<locals>.<listcomp>J  rà   r-   zSum(rr   rá   rã   s   `  @r+   Ú
_print_SumzStrPrinter._print_SumD  sl   øø€ ð	?ð 	?ð 	?ð 	?ð 	?ð
 �IŠIÐ:Ð:Ð:Ð:¨d¬kÐ:Ñ:Ô:Ñ;Ô;ˆˆØ $§¢¨D¬MÑ :Ô :Ð :Ð :¸A¸A¸AÐ>Ð>r-   c                ó   — |j         S r9   r³   r=   s     r+   Ú_print_SymbolzStrPrinter._print_SymbolM  r#  r-   c                ó   — dS rÎ   r0   r=   s     r+   Ú_print_IdentityzStrPrinter._print_IdentityR  r¼   r-   c                ó   — dS )NÚ0r0   r=   s     r+   Ú_print_ZeroMatrixzStrPrinter._print_ZeroMatrixU  r¼   r-   c                ó   — dS )Nr8  r0   r=   s     r+   Ú_print_OneMatrixzStrPrinter._print_OneMatrixX  r¼   r-   c                ó   — d|j         z  S )NzQ.%sr³   r=   s     r+   Ú_print_PredicatezStrPrinter._print_Predicate[  s   € Ø˜œ	Ñ!Ð!r-   c                ó    — t          |¦  «        S r9   r  r=   s     r+   Ú
_print_strzStrPrinter._print_str^  r  r-   c                ó–   — t          |¦  «        dk    rd|                      |d         ¦  «        z  S d|                      |d¦  «        z  S )Nr   z(%s,)r   r%   rq   )rÙ   r&   r7   r=   s     r+   Ú_print_tuplezStrPrinter._print_tuplea  sE   € Ýˆt‰9Œ9˜Š>ˆ>Ø˜TŸ[š[¨¨a¬Ñ1Ô1Ñ1Ð1à˜DŸNšN¨4°Ñ6Ô6Ñ6Ð6r-   c                ó,   — |                       |¦  «        S r9   )r|  r=   s     r+   Ú_print_TuplezStrPrinter._print_Tupleg  s   € Ø× Ò  Ñ&Ô&Ð&r-   c                óT   — d|                       |j        t          d         ¦  «        z  S )Nz%s.Tr   rò   )r'   ÚTs     r+   Ú_print_TransposezStrPrinter._print_Transposej  s$   € Ø˜×)Ò)¨!¬%µ¸EÔ1BÑCÔCÑCÐCr-   c                ót   — d|                       |j        ¦  «        ›d|                       |j        ¦  «        ›d�S )NzUniform(rq   rr   )r&   rç   rè   r=   s     r+   Ú_print_UniformzStrPrinter._print_Uniformm  s7   € € Ø$(§K¢K°´Ñ$7Ô$7Ð$7Ð$7¸¿ºÀTÄVÑ9LÔ9LÐ9LÐ9LÐMÐMr-   c                ó`   — | j                              dd¦  «        r
d|j        z  S d|j        z  S )Nr   Fz%s)rŽ  r�  r   r´   r=   s     r+   Ú_print_QuantityzStrPrinter._print_Quantityp  s6   € ØŒ>×Ò˜h¨Ñ.Ô.ð 	&Ø˜$œ+Ñ%Ð%Ø�d”iÑÐr-   c                ó¬   ‡ — ˆ fd„|j         D ¦   «         }|d         gd„ t          |dd …         d¦  «        D ¦   «         z   }d                     |¦  «        S )Nc                óV   •— g | ]%}‰                      |t          d          d¬¦  «        ‘Œ&S )r	   Tr  )r,   r   r‹   s     €r+   r3   z0StrPrinter._print_Quaternion.<locals>.<listcomp>v  s3   ø€ ÐUÐUÐUÀaˆT×Ò˜q¥*¨UÔ"3¸DÐÑAÔAÐUÐUÐUr-   r   c                ó$   — g | ]\  }}|d z   |z   ‘ŒS )r:  r0   )r2   re   rd   s      r+   r3   z0StrPrinter._print_Quaternion.<locals>.<listcomp>w  s$   € Ð<Ð<Ð<¡$ ! Q�a˜‘e˜A‘gÐ<Ð<Ð<r-   r   ÚijkrÍ  )r5   Úzipr4   )r'   r>   r‘   rç   s   `   r+   Ú_print_QuaternionzStrPrinter._print_Quaternionu  s_   ø€ ØUÐUÐUÐUÈ4Ì9ÐUÑUÔUˆØˆqŒTˆFÐ<Ð<­#¨a°°°¬e°UÑ*;Ô*;Ð<Ñ<Ô<Ñ<ˆØ�zŠz˜!‰}Œ}Ðr-   c                ó    — t          |¦  «        S r9   r  r=   s     r+   Ú_print_DimensionzStrPrinter._print_Dimensionz  r  r-   c                ó   — |j         dz   S r±   r³   r=   s     r+   Ú_print_WildzStrPrinter._print_Wild}  ó   € ØŒy˜3‰Ðr-   c                ó   — |j         dz   S r±   r³   r=   s     r+   Ú_print_WildFunctionzStrPrinter._print_WildFunction€  r�  r-   c                ó   — |j         S r9   r³   r=   s     r+   Ú_print_WildDotzStrPrinter._print_WildDotƒ  r#  r-   c                ó   — |j         S r9   r³   r=   s     r+   Ú_print_WildPluszStrPrinter._print_WildPlus†  r#  r-   c                ó   — |j         S r9   r³   r=   s     r+   Ú_print_WildStarzStrPrinter._print_WildStar‰  r#  r-   c                ó€   — | j                              dd¦  «        rdS |                      t          d¦  «        ¦  «        S )Nr   FzS(0)r   )rŽ  r�  rþ  r   r=   s     r+   Ú_print_ZerozStrPrinter._print_ZeroŒ  s<   € ØŒ>×ÒÐ.°Ñ6Ô6ð 	Ø�6Ø×"Ò"¥7¨1¡:¤:Ñ.Ô.Ð.r-   c                ó²   — |j         j        }|                      |                     ¦   «         ¦  «        }|                      |j        ¦  «        }|›d|›d|›d�S ro   )rz   r{   r&   Úto_listÚdom)r'   rR  rU  Úrepr�  s        r+   Ú
_print_DMPzStrPrinter._print_DMP‘  sQ   € ØŒkÔ"ˆØ�kŠk˜!Ÿ)š)™+œ+Ñ&Ô&ˆØ�kŠk˜!œ%Ñ Ô ˆà"˜s˜s C C C¨¨¨Ð-Ð-r-   c                óÒ   — |j         j        }|                      |j        ¦  «        }|                      |j        ¦  «        }|                      |j        ¦  «        }|›d|›d|›d|›d�S ro   )rz   r{   r&   ÚnumÚdenr�  )r'   r>   rU  r¡  r¢  r�  s         r+   Ú
_print_DMFzStrPrinter._print_DMF˜  sd   € ØŒnÔ%ˆØ�kŠk˜$œ(Ñ#Ô#ˆØ�kŠk˜$œ(Ñ#Ô#ˆØ�kŠk˜$œ(Ñ#Ô#ˆà#& 3 3¨¨¨¨S¨S¨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                ó8   — d|j         ›d|j        ›d|j        ›d�S )NzNamedMorphism(rq   z, "z"))rÀ  Úcodomainr´   r§  s     r+   Ú_print_NamedMorphismzStrPrinter._print_NamedMorphism¦  s,   € € à”�� Ô!2Ð!2Ð!2°H´M°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 r9   r³   )r'   Úmanifolds     r+   Ú_print_ManifoldzStrPrinter._print_Manifold­  s   € ØŒ}Ô!Ð!r-   c                ó   — |j         j         S r9   r³   )r'   Úpatchs     r+   Ú_print_PatchzStrPrinter._print_Patch°  s   € ØŒzŒÐr-   c                ó   — |j         j         S r9   r³   )r'   Úcoordss     r+   Ú_print_CoordSystemzStrPrinter._print_CoordSystem³  s   € ØŒ{ÔÐr-   c                ó:   — |j         j        |j                 j        S r9   ©Ú
_coord_sysr®   Ú_indexr´   rÆ  s     r+   Ú_print_BaseScalarFieldz!StrPrinter._print_BaseScalarField¶  s   € ØÔÔ'¨¬Ô5Ô:Ð:r-   c                ó@   — d|j         j        |j                 j        z  S )Nze_%srº  rÆ  s     r+   Ú_print_BaseVectorFieldz!StrPrinter._print_BaseVectorField¹  s   € Ø˜Ô(Ô0°´Ô>ÔCÑCÐCr-   c                óž   — |j         }t          |d¦  «        rd|j        j        |j                 j        z  S d|                      |¦  «        z  S )Nr»  zd%szd(%s))Ú_form_fieldr­   r»  r®   r¼  r´   r&   )r'   ÚdiffrÇ  s      r+   Ú_print_DifferentialzStrPrinter._print_Differential¼  sN   € ØÔ ˆÝ�5˜,Ñ'Ô'ð 	0Ø˜5Ô+Ô3°E´LÔAÔFÑFÐFà˜TŸ[š[¨Ñ/Ô/Ñ/Ð/r-   c                óN   — d›d|                       |j        d         ¦  «        ›d�S )NÚTrrp   r   rr   rù  r=   s     r+   Ú	_print_TrzStrPrinter._print_TrÃ  s)   € à˜4˜4 §¢¨T¬Y°q¬\Ñ!:Ô!:Ð!:Ð!:Ð;Ð;r-   c                ó6   — |                       |j        ¦  «        S r9   r¬  rh  s     r+   Ú
_print_StrzStrPrinter._print_StrÇ  s   € Ø�{Š{˜1œ6Ñ"Ô"Ð"r-   c                ó¬   — |j         }|                      |¦  «        ›d|                      |j        ¦  «        ›d|                      |j        ¦  «        ›d�S ro   )rs   r&   rE  ra   )r'   r>   Úrels      r+   Ú_print_AppliedBinaryRelationz'StrPrinter._print_AppliedBinaryRelationÊ  sV   € ØŒmˆØ#Ÿ{š{¨3Ñ/Ô/Ð/Ð/Ø#Ÿ{š{¨4¬8Ñ4Ô4Ð4Ð4Ø#Ÿ{š{¨4¬8Ñ4Ô4Ð4Ð4ð6ð 	6r-   )F)r   r9   )Žr{   Ú
__module__Ú__qualname__rô  r"   Ú__annotations__r#   r,   r7   r?   rQ   rT   rW   r[   rf   rj   rm   ru   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_  rk  rm  rp  rr  rx  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+  r:  rG  rJ  rN  rV  r\  rc  rf  ri  rm  ro  Ú_print_MatrixSymbolÚ_print_RandomSymbolrq  rt  rv  rx  rz  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Ë  r0   r-   r+   r   r      s¸  € € € € € € Ø€KàØØØØØØð)ð )Ðð ð ð ñ ð $&€LÐ%Ð%Ð%Ñ%ð%ð %ð %ð %ðKð Kð Kð Kðð ð ð"ð "ð "ð "ð*ð ð ðð ð ðJð Jð JðEð Eð EðIð Ið IðJð Jð JðNð Nð Nð?ð ?ð ?ð%ð %ð %ð
ð ð ðð ð ð1ð 1ð 1ð[ð [ð [ð
)ð )ð )ð&ð &ð &ð9ð 9ð 9ðð ð ðð ð ðð ð ðMð Mð MðMð Mð Mðð ð ðNð Nð Nð
$ð $ð $ðð ð ðð ð ðDð Dð Dð6ð 6ð 6ð&<ð <ð <ðHð Hð HðHð Hð HðYð Yð YðXð Xð Xð
3ð 3ð 3ð&ð &ð &ð&ð &ð &ðFð Fð FðAð Að Aðð ð ðtFð tFð tFðl
ð 
ð 
ð"
ð 
ð 
ðð ð ðð ð ð@ð @ð @ðð ð ðð ð ð'+ð '+ð '+ðRCð Cð Cðð ð ðð ð ðð ð ð
ð 
ð 
ðð ð ð&ð &ð &ðwð wð wð:ð :ð :ðð ð ð?ð ?ð ?ð
Að Að Að
ð ð ð0ð 0ð 0ð9ð 9ð 9ð'ð 'ð 'ð@;ð @;ð @;ðDð ð ð/ð /ð /ð;Pð ;Pð ;Pð ;Pðz)ð )ð )ðJð Jð Jð
ð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð.ð .ð .ð.ð .ð .ð@ð @ð @ð@ð @ð @ðð ð ð0Jð Jð Jð*0ð 0ð 0ð/ð /ð /ð1ð 1ð 1ðð ð ð%ð %ð %ð,ð ,ð ,ð4ð 4ð 4ð
?ð ?ð ?ðð ð à'ÐØ'Ððð ð ðð ð ðð ð ð"ð "ð "ðð ð ð7ð 7ð 7ð'ð 'ð 'ðDð Dð DðNð Nð Nð ð  ð  ð
ð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð/ð /ð /ð
.ð .ð .ð7ð 7ð 7ð)ð )ð )ð8ð 8ð 8ðCð Cð Cð0ð 0ð 0ð"ð "ð "ðð ð ð ð  ð  ð;ð ;ð ;ðDð Dð Dð0ð 0ð 0ð<ð <ð <ð#ð #ð #ð6ð 6ð 6ð 6ð 6r-   r   c                óN   — t          |¦  «        }|                     | ¦  «        }|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©r>   ÚsettingsrR  r‘   s       r+   ÚsstrrÕ  Ñ  s%   € õ" 	�8ÑÔ€AØ	�	Š	�$‰Œ€Aà€Hr-   c                  ó   — e Zd ZdZd„ Zd„ ZdS )ÚStrReprPrinterz(internal) -- see sstrreprc                ó    — t          |¦  «        S r9   )r<   rh  s     r+   rz  zStrReprPrinter._print_strë  s   € Ý�A‰wŒwˆr-   c                óV   — |j         j        ›d|                      |j        ¦  «        ›d�S )Nrp   rr   )rz   r{   r&   r´   rh  s     r+   rÈ  zStrReprPrinter._print_Strî  s,   € àœ;Ô/Ð/Ð/°·²¸Q¼VÑ1DÔ1DÐ1DÐ1DÐEÐEr-   N)r{   rÌ  rÍ  Ú__doc__rz  rÈ  r0   r-   r+   r×  r×  è  s=   € € € € € Ø$Ð$ðð ð ðFð Fð Fð Fð Fr-   r×  c                óN   — t          |¦  «        }|                     | ¦  «        }|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   r3  r   rÕ  r×  rÜ  r0   r-   r+   ú<module>rç     sÂ  ððð ð #Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðz6ð z6ð z6ð z6ð z6�ñ z6ô z6ð z6ðz €�
ÑÔðð ñ Ôðð,Fð Fð Fð Fð F�Zñ Fô Fð Fð €�ÑÔðð ñ  Ôðð ð r-   