Ë
    O/æjèá ã            	      ó˜  — U d Z ddlmZ ddlmZmZmZ ddlZddlm	Z	m
Z
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mZmZ dd	lmZ dd
lmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+m,Z, ddl%m-Z-m.Z. ddl/m0Z0m1Z2 ddl3m4Z4m5Z5 ddl6Z6erddl7m8Z8 ddl9m:Z: g d¢Z;i dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“i d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKd,“dLdM“dNdD“dOdP“dQdR“dSdT“dUdV“dWdX“¥dYdZd[œ¥Z<h d\£Z=i d]d^„ “d_d`„ “dadb„ “dcdd„ “dedf„ “dgdh„ “didj„ “dkdl„ “dmdn„ “dodp„ “dqdr„ “dsdt„ “dudv„ “dwdx„ “dydz„ “d{d|„ “d}d~„ “d„ d€„ d�„ d‚„ dƒ„ d„„ d…„ d†œ¥Z>d‡e?dˆ<    e@e«      ZA e6j„                  d‰«       e6j„                  dŠ«      fZCd’d‹„ZD G dŒ„ d�e(«      ZEd’dŽ„ZF e)eE«      d�„ «       ZGd�„ ZHd“d‘„ZIy)”zC
A Printer which converts an expression into its LaTeX equivalent.
é    )Úannotations)ÚAnyÚCallableÚTYPE_CHECKINGN)ÚAddÚFloatÚModÚMulÚNumberÚSÚSymbolÚExpr)Úgreeks)ÚTuple)ÚFunctionÚAppliedUndefÚ
Derivative)ÚAssocOp)ÚPow)Údefault_sort_key)ÚSympifyError)ÚtrueÚBooleanTrueÚBooleanFalse)Úprecedence_traditional)ÚPrinterÚprint_function)Úsplit_super_subÚrequires_partial)Ú
precedenceÚ
PRECEDENCE)Úprec_to_dpsÚto_str)Úhas_varietyÚsift)Ú	NDimArray)ÚBasisDependent)ÚarcsinÚarccosÚarctanÚsinÚcosÚtanÚsinhÚcoshÚtanhÚsqrtÚlnÚlogÚsecÚcscÚcotÚcothÚreÚimÚfracÚrootÚargÚAlphaz
\mathrm{A}ÚBetaz
\mathrm{B}ÚGammaú\GammaÚDeltaz\DeltaÚEpsilonz
\mathrm{E}ÚZetaz
\mathrm{Z}ÚEtaz
\mathrm{H}ÚThetaz\ThetaÚIotaz
\mathrm{I}ÚKappaz
\mathrm{K}ÚLambdaz\LambdaÚMuz
\mathrm{M}ÚNuz
\mathrm{N}ÚXiz\XiÚomicronÚoÚOmicronz
\mathrm{O}ÚPiz\PiÚRhoz
\mathrm{P}ÚSigmaz\SigmaÚTauz
\mathrm{T}ÚUpsilonz\UpsilonÚPhiz\PhiÚChiz
\mathrm{X}ÚPsiz\PsiÚOmegaz\OmegaÚlamdaz\lambdaÚLamdaÚkhiz\chiÚKhiÚ
varepsilonz\varepsilonÚvarkappaz	\varkappaÚvarphiz\varphiÚvarpiz\varpiÚvarrhoz\varrhoz	\varsigmaz	\vartheta)ÚvarsigmaÚvartheta>
   ÚwpÚellÚethÚmhoÚbethÚhbarÚalephÚgimelÚdalethÚhslashÚmathringc                ó   — d| z   dz   S )Nz
\mathring{ú}© ©Úss    úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/sympy/printing/latex.pyú<lambda>rt   [   s   € ˜-¨™/¨$Ñ.€ ó    Úddddotc                ó   — d| z   dz   S )Nz\ddddot{ro   rp   rq   s    rs   rt   rt   \   s   € ˜ A™ dÑ*€ ru   Údddotc                ó   — d| z   dz   S )Nz\dddot{ro   rp   rq   s    rs   rt   rt   ]   ó   € �z !‘| DÑ(€ ru   Úddotc                ó   — d| z   dz   S )Nz\ddot{ro   rp   rq   s    rs   rt   rt   ^   s   € �i ‘k $Ñ&€ ru   Údotc                ó   — d| z   dz   S )Nz\dot{ro   rp   rq   s    rs   rt   rt   _   ó   € �X˜a‘Z ‘_€ ru   Úcheckc                ó   — d| z   dz   S )Nz\check{ro   rp   rq   s    rs   rt   rt   `   rz   ru   Úbrevec                ó   — d| z   dz   S )Nz\breve{ro   rp   rq   s    rs   rt   rt   a   rz   ru   Úacutec                ó   — d| z   dz   S )Nz\acute{ro   rp   rq   s    rs   rt   rt   b   rz   ru   Úgravec                ó   — d| z   dz   S )Nz\grave{ro   rp   rq   s    rs   rt   rt   c   rz   ru   Útildec                ó   — d| z   dz   S )Nz\tilde{ro   rp   rq   s    rs   rt   rt   d   rz   ru   Úhatc                ó   — d| z   dz   S )Nz\hat{ro   rp   rq   s    rs   rt   rt   e   r   ru   Úbarc                ó   — d| z   dz   S )Nz\bar{ro   rp   rq   s    rs   rt   rt   f   r   ru   Úvecc                ó   — d| z   dz   S )Nz\vec{ro   rp   rq   s    rs   rt   rt   g   r   ru   Úprimec                ó   — d| z   dz   S ©Nú{z}'rp   rq   s    rs   rt   rt   h   s   € �s˜1‘u˜T‘z€ ru   Úprmc                ó   — d| z   dz   S r’   rp   rq   s    rs   rt   rt   i   s   € �S˜‘U˜4‘Z€ ru   Úboldc                ó   — d| z   dz   S ©Nz\boldsymbol{ro   rp   rq   s    rs   rt   rt   k   s   € �o aÑ'¨Ñ,€ ru   Úbmc                ó   — d| z   dz   S r˜   rp   rq   s    rs   rt   rt   l   s   € �O AÑ% dÑ*€ ru   c                ó   — d| z   dz   S )Nz	\mathcal{ro   rp   rq   s    rs   rt   rt   m   ó   € �\ !‘^ DÑ(€ ru   c                ó   — d| z   dz   S )Nz	\mathscr{ro   rp   rq   s    rs   rt   rt   n   rœ   ru   c                ó   — d| z   dz   S )Nz
\mathfrak{ro   rp   rq   s    rs   rt   rt   o   s   € �m A‘o dÑ*€ ru   c                ó   — d| z   dz   S )Nz\left\|{z	}\right\|rp   rq   s    rs   rt   rt   q   s   € �k !‘m LÑ0€ ru   c                ó   — d| z   dz   S )Nz\left\langle{z}\right\ranglerp   rq   s    rs   rt   rt   r   s   € Ð% aÑ'Ð(9Ñ9€ ru   c                ó   — d| z   dz   S ©Nz\left|{z}\right|rp   rq   s    rs   rt   rt   s   ó   € �Z ‘\ +Ñ-€ ru   c                ó   — d| z   dz   S r¢   rp   rq   s    rs   rt   rt   t   r£   ru   )ÚcalÚscrÚfrakÚnormÚavgÚabsÚmagzdict[str, Callable[[str], str]]Úmodifier_dictz[0-9][} ]*$z(\d|\\frac{\d+}{\d+})c                óª   — | j                  dd«      } dD ]  }| j                  |d|z   «      } Œ | j                  dd«      } | j                  dd«      } | S )zÉ
    Escape a string such that latex interprets it as plaintext.

    We cannot use verbatim easily with mathjax, so escaping is easier.
    Rules from https://tex.stackexchange.com/a/34586/41112.
    ú\z\textbackslashz&%$#_{}ú~z\textasciitildeú^z\textasciicircum)Úreplace)rr   Úcs     rs   Úlatex_escaper³      s_   € ð 	
�	‰	�$Ð)Ó*€AØò #ˆØ�I‰I�a˜ ™Ó"‰ð#à	�	‰	�#Ð)Ó*€AØ	�	‰	�#Ð*Ó+€AØ€Hru   c            
      ó"  ‡ — e Zd ZU dZi dd“dd“dd“dd“dd	“d
d“dd“dd“dd“dd“dd“dd“dd“di “dd“dd“dd“dddddddddœ¥Zded<   �dNd „Z�dOd!„Z�dOd"„Z�dP�dOd#„Z	d$„ Z
�dOd%„Z�dQd&„Z�dQd'„Z�dP�dQd(„Z�dQd)„Z�dQd*„Z�dQd+„Z�dRd,„Zd-„ Z�dSd.„ZeZeZd/„ Z�dNd0„Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ Zd6„ Zd7„ Zd8„ Z d9„ Z!d:„ Z"�dTd;„Z#d<„ Z$d=„ Z%�dUd>„Z&�dVd?„Z'd@„ Z(dA„ Z)dB„ Z*�dWdC„Z+dD„ Z,dE„ Z-dF„ Z.dG„ Z/dH„ Z0dI„ Z1dJ„ Z2�dXdK„Z3�dN�dYdL„Z4dM„ Z5dN„ Z6e7dO„ «       Z8dP„ Z9dQ„ Z:dR„ Z;�dN�dOdS„Z<e<xZ=Z>�dNdT„Z?�dNdU„Z@�dNdV„ZA�dNdW„ZB�dNdX„ZC�dNdY„ZDdZ„ ZEd[„ ZFd\„ ZGd]„ ZHd^„ ZI�dNd_„ZJ�dNd`„ZK�dNda„ZL�dNdb„ZM�dNdc„ZN�dNdd„ZO�dNde„ZP�dNdf„ZQ�dNdg„ZR�dNdh„ZS�dNdi„ZT�dZdj„ZU�dNdk„ZV�dNdl„ZW�dNdm„ZX�dN�dOdn„ZYeYZZ�dNdo„Z[�dNdp„Z\�dNdq„Z]�dNdr„Z^�dNds„Z_�dNdt„Z`�dNdu„Za�dNdv„Zb�dNdw„Zc�dNdx„Zd�d[dy„Ze�dOdz„Zf�dNd{„Zg�dNd|„Zh�dNd}„Zi�dNd~„Zj�dNd„Zk�dNd€„Zl�dNd�„Zm�dNd‚„Zn�dNdƒ„Zo�dNd„„Zp�d\�dOd…„Zq�d\�dOd†„Zr�dNd‡„Zs�dNdˆ„Zt�dNd‰„Zu�dNdŠ„Zv�dNd‹„Zw�dNdŒ„Zx�dNd�„Zy�dNdŽ„Zz�dNd�„Z{�dNd�„Z|�dNd‘„Z}�dNd’„Z~�dNd“„Z�dNd”„Z€�dNd•„Z��dNd–„Z‚�dNd—„Zƒ�dNd˜„Z„�dNd™„Z…�dNdš„Z†�dNd›„Z‡�dNdœ„Zˆ�d]d�„Z‰�dNdž„ZŠ�dNdŸ„Z‹�dNd „ZŒ�dNd¡„Z�d¢„ ZŽd£„ Z��d^�d_d¤„Z�e�Z‘�d^�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ž�dNd²„ZŸd³„ Z d´„ Z¡dµ„ Z¢d¶„ Z£d·„ Z¤d¸„ Z¥d¹„ Z¦dº„ Z§d»„ Z¨�dad¼„Z©�dbd½„Zªd¾„ Z«d¿„ Z¬dÀ„ Z­dÁ„ Z®dÂ„ Z¯dÃ„ Z°dÄ„ Z±dÅ„ Z²dÆ„ Z³�dNdÇ„Z´dÈ„ ZµdÉ„ Z¶dÊ„ Z·dË„ Z¸dÌ„ Z¹dÍ„ ZºdÎ„ Z»�dNdÏ„Z¼�dNdÐ„Z½�dNdÑ„Z¾�dNdÒ„Z¿�dNdÓ„ZÀdÔ„ ZÁdÕ„ ZÂdÖ„ ZÃeÃZÄd×„ ZÅ�dNdØ„ZÆ�dNdÙ„ZÇ�dNdÚ„ZÈ�dNdÛ„ZÉ�dNdÜ„ZÊ�dNdÝ„ZË�dNdÞ„ZÌ�dNdß„ZÍdà„ ZÎeÎZÏeÎZÐeÎ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ò�d„ Zó�d„ Zô�d„ Zõ�d„ Zö�dN�d„Z÷�dN�d„Zø�dc�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�dN�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�e�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„ �Z'�d6„ �Z(�d7„ �Z)�d8„ �Z*�d9„ �Z+�d:„ �Z,�d;„ �Z-�d<„ �Z.�d=„ �Z/�dN�d>„�Z0�dN�d?„�Z1�dN�d@„�Z2�dN�dA„�Z3�dN�dB„�Z4�dN�dC„�Z5�dD„ �Z6�dE„ �Z7�dF„ �Z8�dG„ �Z9�dH„ �Z:�dI„ �Z;�dJ„ �Z<�dK„ �Z=�dL„ �Z>ˆ f�dM„�Z?ˆ x�Z@S (d  ÚLatexPrinterÚ_latexÚ	full_precFÚfold_frac_powersÚfold_func_bracketsÚfold_short_fracNÚinv_trig_styleÚabbreviatedÚitexÚln_notationÚlong_frac_ratioÚ	mat_delimú[Úmat_strÚmodeÚplainÚ
mul_symbolÚorderÚsymbol_namesÚroot_notationTÚmat_symbol_styleÚimaginary_unitÚiÚperiodÚdÚdagger)Úgothic_re_imÚdecimal_separatorÚperm_cyclicÚparenthesize_superÚminÚmaxÚdiff_operatorÚadjoint_stylezdict[str, Any]Ú_default_settingsc                ó€  — t        j                  | |«       d| j                  v r g d¢}| j                  d   |vrt        d«      ‚| j                  d   €!| j                  d   dk(  rd| j                  d<   ddd	d
dœ}	 || j                  d      | j                  d<   	 || j                  d   xs d   | j                  d<   dddœ| _        ddddddddœ}| j                  d   }|j                  ||«      | j                  d<   ddddd œ}| j                  d!   }|j                  ||«      | j                  d"<   y # t        $ r | j                  d   | j                  d<   Y ŒÃw xY w# t        $ rQ | j                  d   j                  «       dv r|d   | j                  d<   n| j                  d   | j                  d<   Y Œüw xY w)#NrÃ   )ÚinlinerÄ   Úequationz	equation*zB'mode' must be one of 'inline', 'plain', 'equation' or 'equation*'rº   rÙ   Tú z \,.\, ú \cdot ú \times )NÚldotr}   ÚtimesrÅ   Úmul_symbol_latexr}   Úmul_symbol_latex_numbers)Ú rÛ   r®   z\,z\:ú\;z\quadú)ú])ú(rÁ   rË   z
\mathrm{i}z\text{i}Újz
\mathrm{j}z\text{j})NrË   ÚriÚtirç   ÚrjÚtjrÊ   Úimaginary_unit_latexrÍ   z
\mathrm{d}z\text{d})NrÍ   ÚrdÚtdrÕ   Údiff_operator_latex)r   Ú__init__Ú	_settingsÚ
ValueErrorÚKeyErrorÚstripÚ_delim_dictÚget)ÚselfÚsettingsÚvalid_modesÚmul_symbol_tableÚimaginary_unit_tableÚ	imag_unitÚdiff_operator_tablerÕ   s           rs   rð   zLatexPrinter.__init__­   s  € Ü×Ñ˜˜xÔ(à�T—^‘^Ñ#ò(ˆKà�~‰~˜fÑ%¨[Ñ8Ü ð "=ó >ð >ð �>‰>Ð+Ñ,Ð4Ø—‘˜vÑ&¨(Ò2Ø04ˆD�N‰NÐ,Ñ-ð ØØØ ñ	
Ðð	-à  §¡°Ñ!=Ñ>ð �N‰NÐ-Ñ.ð

	1à  §¡°Ñ!=Ò!FÀÑGð �N‰NÐ5Ñ6ð "%¨3Ñ/ˆÔð ØØØØØØñ 
Ðð —N‘NÐ#3Ñ4ˆ	Ø1E×1IÑ1IÈ)ÐU^Ó1_ˆ�‰Ð-Ñ.ð ØØØñ	
Ðð Ÿ™ Ñ7ˆØ0C×0GÑ0GÈÐWdÓ0eˆ�‰Ð,Ò-øôI ò 	-à—‘˜|Ñ,ð �N‰NÐ-Ó.ð	-ûô ò 	1Ø—‘˜|Ñ,×2Ñ2Ó4ØBñCð % UÑ+ð —‘Ð9Ò:ð —N‘N <Ñ0ð —‘Ð9Ñ:ùð	1ús%   Á=D8 Â#E# Ä8%E ÅE Å#AF=Æ<F=c                ó$   — dj                  |«      S )Nz\left({}\right)©Úformat©r÷   rr   s     rs   Ú_add_parenszLatexPrinter._add_parensê   s   € Ø!×(Ñ(¨Ó+Ð+ru   c                ó$   — dj                  |«      S )Nz\left( {}\right)rÿ   r  s     rs   Ú_add_parens_lspacezLatexPrinter._add_parens_lspaceî   s   € Ø"×)Ñ)¨!Ó,Ð,ru   c                óÚ   — t        |«      }|r"|r | j                  | j                  |«      «      S ||k  s|s%||k  r | j                  | j                  |«      «      S | j                  |«      S ©N)r   r  Ú_print)r÷   ÚitemÚlevelÚis_negÚstrictÚprec_vals         rs   ÚparenthesizezLatexPrinter.parenthesizeñ   se   € Ü)¨$Ó/ˆÙ‘fØ×#Ñ# D§K¡K°Ó$5Ó6Ð6à�uÒ¡v°8¸uÒ3DØ×#Ñ# D§K¡K°Ó$5Ó6Ð6à—;‘;˜tÓ$Ð$ru   c                óp   — d|v r1| j                   d   r| j                  |«      S dj                  |«      S |S )z”
        Protect superscripts in s

        If the parenthesize_super option is set, protect with parentheses, else
        wrap in braces.
        r°   rÒ   z{{{}}})rñ   r  r   r  s     rs   rÒ   zLatexPrinter.parenthesize_superû   s=   € ð �!‰8Ø�~‰~Ð2Ò3Ø×'Ñ'¨Ó*Ð*à—‘ qÓ)Ð)Øˆru   c                óâ   — t        j                  | |«      }| j                  d   dk(  r|S | j                  d   dk(  rd|z  S | j                  d   rd|z  S | j                  d   }d|›d|›d	|›d�S )
NrÃ   rÄ   rÙ   z$%s$r½   z$$%s$$z\begin{ro   z\end{)r   Údoprintrñ   )r÷   ÚexprÚtexÚenv_strs       rs   r  zLatexPrinter.doprint	  st   € Ü�o‰o˜d DÓ)ˆà�>‰>˜&Ñ! WÒ,ØˆJØ�^‰^˜FÑ# xÒ/Ø˜S‘=Ð Ø�^‰^˜FÒ#Ø˜s‘?Ð"à—n‘n VÑ,‰GÚ.5²sºGÐDÐDru   c                óœ   — |j                   xr |j                  xs0 |j                  xr" |t        j                  uxr |j
                  du  S )zÁ
        Returns True if the expression needs to be wrapped in brackets when
        printed, False otherwise. For example: a + b => True; a => False;
        10 => False; -10 => True.
        F)Ú
is_IntegerÚis_nonnegativeÚis_Atomr   ÚNegativeOneÚis_Rational©r÷   r  s     rs   Ú_needs_bracketszLatexPrinter._needs_brackets  sT   € ð —_‘_Ò<¨×)<Ñ)<ò JØŸ™ò I¨$´a·m±mÐ*Cò +HØ.2×.>Ñ.>À%Ð.GðKð 	Kru   c                óÒ   — | j                  |«      sy|j                  r| j                  |«      sy|j                  r| j	                  |«      sy|j
                  s|j                  ryy)aˆ  
        Returns True if the expression needs to be wrapped in brackets when
        passed as an argument to a function, False otherwise. This is a more
        liberal version of _needs_brackets, in that many expressions which need
        to be wrapped in brackets when added/subtracted/raised to a power do
        not need them when passed to a function. Such an example is a*b.
        FT)r  Úis_MulÚ_mul_is_cleanÚis_PowÚ_pow_is_cleanÚis_AddÚis_Functionr  s     rs   Ú_needs_function_bracketsz%LatexPrinter._needs_function_brackets   sZ   € ð ×#Ñ# DÔ)Øð �{Š{ 4×#5Ñ#5°dÔ#;Øà—’ T×%7Ñ%7¸Ô%=Øà—’ × 0Ò 0Øàru   c                ó0  ‡— ddl m} ddlm} ddlm} ‰j                  r|s4‰j                  «       r$yt        ‰«      t        d   k  ry‰j                  ry‰j                  ryt        ˆfd„t        fD «       «      ry|st        ˆfd„|||fD «       «      ryy	)
aÇ  
        Returns True if the expression needs to be wrapped in brackets when
        printed as part of a Mul, False otherwise. This is True for Add,
        but also for some container objects that would not need brackets
        when appearing last in a Mul, e.g. an Integral. ``last=True``
        specifies that this expr is the last to appear in a Mul.
        ``first=True`` specifies that this expr is the first to appear in
        a Mul.
        r   )ÚProduct)ÚSum)ÚIntegralTr
   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  ©Úhas©Ú.0Úxr  s     €rs   ú	<genexpr>z3LatexPrinter._needs_mul_brackets.<locals>.<genexpr>N  ó   øè ø€ Ò+˜qˆt�x‰x˜�{Ñ+ùó   ƒc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  r)  r+  s     €rs   r.  z3LatexPrinter._needs_mul_brackets.<locals>.<genexpr>Q  s   øè ø€ ÒB A�D—H‘H˜Q—KÑBùr0  F)Úsympy.concrete.productsr%  Úsympy.concrete.summationsr&  Úsympy.integrals.integralsr'  r  Úcould_extract_minus_signr   r!   Úis_RelationalÚis_PiecewiseÚanyr	   )r÷   r  ÚfirstÚlastr%  r&  r'  s    `     rs   Ú_needs_mul_bracketsz LatexPrinter._needs_mul_brackets7  s„   ø€ õ 	4Ý1Ý6à�;Š;Ù˜T×:Ñ:Ô<ØÜ# DÓ)¬J°uÑ,=Ò=ØØ×ÒØØ×ÒØÜÓ+¤S FÔ+Ô+ØÙÜÓB¨(°G¸SÐ)AÔBÔBØàru   c                ón   ‡— ‰j                   ryt        ˆfd„t        fD «       «      ry‰j                  ryy)z±
        Returns True if the expression needs to be wrapped in brackets when
        printed as part of an Add, False otherwise.  This is False for most
        things.
        Tc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  r)  r+  s     €rs   r.  z3LatexPrinter._needs_add_brackets.<locals>.<genexpr>^  r/  r0  F)r6  r8  r	   r!  r  s    `rs   Ú_needs_add_bracketsz LatexPrinter._needs_add_bracketsV  s1   ø€ ð ×ÒØÜÓ+¤S FÔ+Ô+ØØ�;Š;ØØru   c                óB   — |j                   D ]  }|j                  sŒ y y)NFT)Úargsr"  ©r÷   r  r<   s      rs   r  zLatexPrinter._mul_is_cleand  s$   € Ø—9‘9ò 	ˆCØ�‹Ùð	ð ru   c                ó:   — | j                  |j                  «       S r  )r  Úbaser  s     rs   r   zLatexPrinter._pow_is_cleanj  s   € Ø×'Ñ'¨¯	©	Ó2Ð2Ð2ru   c                ó   — |�	d|›d|›d�S |S )Nú\left(ú	\right)^{ro   rp   ©r÷   r  Úexps      rs   Ú_do_exponentzLatexPrinter._do_exponentm  s   € Ø‰?Ú.2²CÐ8Ð8àˆKru   c                ó&  — | j                  |j                  j                  «      }|j                  rK|j                  D �cg c]  }| j	                  |«      ‘Œ }}d}|j                  |dj                  |«      «      S dj                  |«      S c c}w )Nz"\operatorname{{{}}}\left({}\right)ú, z\text{{{}}})Ú_deal_with_super_subÚ	__class__Ú__name__r@  r  r   Újoin)r÷   r  ÚnamerM   Úlsrr   s         rs   Ú_print_BasiczLatexPrinter._print_Basics  sv   € Ø×(Ñ(¨¯©×)@Ñ)@ÓAˆØ�9Š9Ø*.¯)©)Ö4 Q�$—+‘+˜a•.Ð4ˆBÐ4Ø5ˆAØ—8‘8˜D $§)¡)¨B£-Ó0Ð0à!×(Ñ(¨Ó.Ð.ùò	 5s   Á Bc                ó   — d|z  S ©Nú	\text{%s}rp   ©r÷   Úes     rs   Ú_print_boolzLatexPrinter._print_bool|  ó   € Ø˜aÑÐru   c                ó   — d|z  S rT  rp   rV  s     rs   Ú_print_NoneTypezLatexPrinter._print_NoneType‚  rY  ru   c                óö   — | j                  ||¬«      }d}t        |«      D ]U  \  }}|dk(  rn|j                  «       r	|dz  }| }n|dz  }| j                  |«      }| j	                  |«      rd|z  }||z  }ŒW |S )N)rÆ   râ   r   ú - ú + ú\left(%s\right))Ú_as_ordered_termsÚ	enumerater5  r  r>  )r÷   r  rÆ   Útermsr  rË   ÚtermÚterm_texs           rs   Ú
_print_AddzLatexPrinter._print_Add…  s™   € Ø×&Ñ& t°5Ð&Ó9ˆàˆÜ  Ó'ò 	‰GˆAˆtØ�AŠvØØ×.Ñ.Ô0Ø�u‘�Ø�u‘à�u‘�Ø—{‘{ 4Ó(ˆHØ×'Ñ'¨Ô-Ø-°Ñ8�Ø�8‰O‰Cð	ð ˆ
ru   c                óF  — ddl m} |j                  dk(  ry ||«      }|j                  }|j                  }|j                  d   |dz
  k(  r
||dz
  ggz   }d}|D ]   }|t        |«      j                  dd«      z  }Œ" |j                  d	d
«      }|j                  dd«      }|S )Nr   ©ÚPermutationú\left( \right)éÿÿÿÿé   râ   ú,rã   rÁ   ú\left( rå   ú\right))Ú sympy.combinatorics.permutationsrh  ÚsizeÚcyclic_formÚ
array_formÚstrr±   )r÷   r  rh  Ú	expr_permÚsizrd  rË   s          rs   Ú_print_CyclezLatexPrinter._print_Cycle˜  s®   € Ý@Ø�9‰9˜Š>Ø$Ù˜4Ó ˆØ×$Ñ$ˆ	Ø�i‰iˆØ�?‰?˜2Ñ #¨¡'Ò)Ø! c¨A¡g Y KÑ/ˆIØˆØò 	3ˆAØœ˜A›Ÿ™ s¨EÓ2Ñ2‰Hð	3à×#Ñ# C¨Ó4ˆØ×#Ñ# C¨Ó4ˆØˆru   c                ó  — ddl m} ddlm} |j                  }|� |d|› d�ddd¬	«       n| j
                  j                  d
d«      }|r| j                  |«      S |j                  dk(  ry|j                  D �cg c]  }| j                  |«      ‘Œ }}t        t        |«      «      D �cg c]  }| j                  |«      ‘Œ }}dj                  |«      }dj                  |«      }	dj                  ||	f«      }
d|
z  S c c}w c c}w )Nr   rg  )Ú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Ñ   Tri  ú & ú \\ z \begin{pmatrix} %s \end{pmatrix})ro  rh  Úsympy.utilities.exceptionsrx  Úprint_cyclicrñ   rö   rv  rp  rr  r  ÚrangeÚlenrO  )r÷   r  rh  rx  rÑ   r<   ÚlowerÚupperÚrow1Úrow2Úmats              rs   Ú_print_PermutationzLatexPrinter._print_Permutation¨  s   € Ý@ÝHà!×.Ñ.ˆØÐ"Ù%ð+à+6¨-ð 8ðð */Ø+PØöð Ÿ.™.×,Ñ,¨]¸DÓAˆKáØ×$Ñ$ TÓ*Ð*à�9‰9˜Š>Ø$à-1¯_©_Ö= c�—‘˜SÕ!Ð=ˆÐ=Ü-2´3°u³:Ó->Ö? c�—‘˜SÕ!Ð?ˆÐ?à�z‰z˜%Ó ˆØ�z‰z˜%Ó ˆØ�l‰l˜D $˜<Ó(ˆØ2°SÑ8Ð8ùò >ùÚ?s   Á9C=Â)Dc                ón   — |j                   \  }}d| j                  |«      ›d| j                  |«      ›d�S )Nz\sigma_{z}(rä   ©r@  r  )r÷   r  ÚpermÚvars       rs   Ú_print_AppliedPermutationz&LatexPrinter._print_AppliedPermutationÉ  s,   € Ø—I‘I‰	ˆ‰cØ%)§[¡[°Õ%6¸¿¹ÀCÕ8HÐIÐIru   c                ó*  — t        |j                  «      }| j                  d   rdnd}d| j                  v r| j                  d   nd }d| j                  v r| j                  d   nd }t        |j                  ||||¬«      }| j                  d   }d|v rO|j                  d«      \  }}	|	d	   d
k(  r|	dd  }	| j                  d   dk(  r|j                  dd«      }|›|›d|	›d�S |dk(  ry|dk(  ry| j                  d   dk(  r|j                  dd«      }|S )Nr·   FTrÓ   rÔ   )Ústrip_zerosÚ	min_fixedÚ	max_fixedrá   rW  r   ú+rk  rÐ   Úcommaú.z{,}z10^{ro   z+infz\inftyz-infz- \infty)r"   Ú_precrñ   Úmlib_to_strÚ_mpf_Úsplitr±   )
r÷   r  Údpsrô   ÚlowÚhighÚstr_realÚ	separatorÚmantrH  s
             rs   Ú_print_FloatzLatexPrinter._print_FloatÍ  s  € ä˜$Ÿ*™*Ó%ˆØŸ™¨Ò4‘¸$ˆØ',°·±Ñ'>ˆd�n‰n˜UÒ#ÀDˆØ(-°·±Ñ(?ˆt�~‰~˜eÒ$ÀTˆÜ˜tŸz™z¨3¸EÈSÐ\`Ôaˆð —N‘NÐ#=Ñ>ˆ	à�(‰?Ø"Ÿ.™.¨Ó-‰KˆT�3à�1‰v˜Š}Ø˜!˜"�g�Ø�~‰~Ð1Ñ2°gÒ=Ø—|‘| C¨Ó.�á%)ª9²cÐ:Ð:Ø˜ÒØØ˜ÒØà�~‰~Ð1Ñ2°gÒ=Ø#×+Ñ+¨C°Ó6�ØˆOru   c                óœ   — |j                   }|j                  }| j                  |t        d   «      ›d| j                  |t        d   «      ›�S )Nr
   rÝ   ©Ú_expr1Ú_expr2r  r!   ©r÷   r  Úvec1Úvec2s       rs   Ú_print_CrosszLatexPrinter._print_Crossë  sJ   € Ø�{‰{ˆØ�{‰{ˆØ"&×"3Ñ"3°D¼*ÀUÑ:KÕ"LØ"&×"3Ñ"3°D¼*ÀUÑ:KÔ"LðNð 	Nru   c                óR   — |j                   }d| j                  |t        d   «      z  S )Nz\nabla\times %sr
   ©Ú_exprr  r!   ©r÷   r  rŽ   s      rs   Ú_print_CurlzLatexPrinter._print_Curlñ  s(   € Ø�j‰jˆØ! D×$5Ñ$5°c¼:ÀeÑ;LÓ$MÑMÐMru   c                óR   — |j                   }d| j                  |t        d   «      z  S )Nz\nabla\cdot %sr
   r©  r«  s      rs   Ú_print_DivergencezLatexPrinter._print_Divergenceõ  s(   € Ø�j‰jˆØ  4×#4Ñ#4°S¼*ÀUÑ:KÓ#LÑLÐLru   c                óœ   — |j                   }|j                  }| j                  |t        d   «      ›d| j                  |t        d   «      ›�S )Nr
   rÜ   r¡  r¤  s       rs   Ú
_print_DotzLatexPrinter._print_Dotù  sJ   € Ø�{‰{ˆØ�{‰{ˆØ!%×!2Ñ!2°4¼ÀEÑ9JÕ!KØ!%×!2Ñ!2°4¼ÀEÑ9JÔ!KðMð 	Mru   c                óR   — |j                   }d| j                  |t        d   «      z  S )Nz	\nabla %sr
   r©  ©r÷   r  Úfuncs      rs   Ú_print_GradientzLatexPrinter._print_Gradientÿ  ó(   € Ø�z‰zˆØ˜d×/Ñ/°´jÀÑ6GÓHÑHÐHru   c                óR   — |j                   }d| j                  |t        d   «      z  S )Nz	\Delta %sr
   r©  r²  s      rs   Ú_print_LaplacianzLatexPrinter._print_Laplacian  rµ  ru   c                ó¢  ‡ ‡‡‡— ddl m} ‰ j                  d   Š‰ j                  d   Šdˆˆ fd„}dˆˆ ˆfd„Št        |t        «      r>|j
                  }|d   t        j                  u st        d„ |dd  D «       «      r ‰|«      S d	}|j                  «       r| }d
}|j                  r
|dz  }d}nd} ||d¬«      \  }}|t        j                  u r't        ddd	¬«      |j
                  vr| ||«      z  }�nÏ ||«      }	 ||«      }
t        |
j                  «       «      }‰ j                  d   }‰ j                  d   r5|dk  r0d|
vr,‰ j                  |d	¬«      r|d|	›d|
›�z  }�n_||	›d|
›�z  }�nS|��Dt        |	j                  «       «      ||z  kD  �r$‰ j                  |d¬«      r|d|
›d‰›d|	›d�z  }�n|j                  ræt        j                  }t        j                  }|j
                  D ]h  }‰ j                  |d	¬«      sHt         |||z  «      j                  «       «      ||z  kD  s |j                   |j                   cxu rd	u r	n n||z  }Œd||z  }Œj ‰ j                  |d¬«      r|d ||«      ›d|
›d‰›d ||«      ›d�	z  }n7|d ||«      ›d|
›d‰› ||«      ›�z  }n|d|
›d‰›|	›�z  }n|d|	›d|
›d�z  }|r|dz  }|S ) Nr   )Úfractionrà   rá   c                ó  •— | j                   st        ‰j                  | «      «      S ‰j                  dvr| j	                  «       }nt        | j                  «      }t        |d„ d¬«      \  }}t        |d„ d¬«      \  }} ‰||z   |z   «      S )N)ÚoldÚnonec                óŠ   — t        | d«      xs t        | d«      xs( t        | t        «      xr t        | j                  d«      S )NÚ_scale_factorÚis_physical_constant)ÚhasattrÚ
isinstancer   rC  ©r-  s    rs   rt   z:LatexPrinter._print_Mul.<locals>.convert.<locals>.<lambda>  sD   € ¼ÀÀ?Ó8SÒ8yÔW^Ð_`ÐbxÓWyò 8HÜ)¨!¬SÓ1ò  GÜ& q§v¡vÐ/EÓFð ru   T)Úbinaryc                ó   — t        | d«      S )Nr¾  )rÀ  rÂ  s    rs   rt   z:LatexPrinter._print_Mul.<locals>.convert.<locals>.<lambda>  s   € ¼ÀÀ?Ó8S€ ru   )r  rs  r  rÆ   Úas_ordered_factorsÚlistr@  r%   )r  r@  ÚunitsÚnonunitsÚprefixesÚconvert_argsr÷   s        €€rs   Úconvertz(LatexPrinter._print_Mul.<locals>.convert  sŒ   ø€ Ø—;’;Ü˜4Ÿ;™; tÓ,Ó-Ð-à—:‘: _Ñ4Ø×2Ñ2Ó4‘Dä §	¡	›?�Dô #' tñ .HàPTô#V‘��xô #' uÑ.SÐ\`Ô"a‘�˜%Ù# H¨xÑ$7¸%Ñ$?Ó@Ð@ru   c           	     óv  •— dx}}t        | «      D ]¥  \  }}‰j                  |«      }t        |d«      sut        |d«      si‰j                  ||dk(  |t	        | «      dz
  k(  ¬«      rd|z  }t
        d   j                  |«      rt
        d   j                  |«      r|‰z  }n|r|‰z  }n|r|‰z  }||z  }|}Œ§ |S )Nrâ   r¾  r¿  r   rk  )r9  r:  r_  )ra  r  rÀ  r;  r‚  Ú_between_two_numbers_pÚsearchÚmatch)	r@  Ú_texÚlast_term_texrË   rc  rd  Ú	numbersepr÷   r�  s	         €€€rs   rÊ  z-LatexPrinter._print_Mul.<locals>.convert_args  sÜ   ø€ Ø#%Ð%ˆD�=ä$ T›?ò )‘��4ØŸ;™; tÓ,�Ü  oÔ6¼'À$ÐH^Ô:_Ø×/Ñ/°¸QÀ!¹VØ67¼3¸t»9Àq¹=Ñ6Hð 0ô Kà#5¸Ñ#@˜ä.¨qÑ1×8Ñ8¸ÔGÜ.¨qÑ1×7Ñ7¸ÔAà 	Ñ)™ÙØ 	Ñ)™ÙØ˜IÑ%�Dà˜Ñ �Ø (‘ð#)ð$ ˆKru   c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr  )rÁ  r   )r,  r<   s     rs   r.  z*LatexPrinter._print_Mul.<locals>.<genexpr>:  s   è ø€ Ò&SÀ3¤z°#´v×'>Ñ&Sùó   ‚rk  Fú- ræ   Trâ   )Úexactrj  )Úevaluater¿   rº   é   r°   )r:  rE  z
\right) / z / z	\frac{1}{ro   rn  ú\frac{ú}{rä   ©Úreturnrs  )Úsympy.simplifyr¹  rñ   rÁ  r
   r@  r   ÚOner8  r5  r!  r   r‚  r˜  r;  r  Úis_commutative)r÷   r  r¹  rË  r@  Úinclude_parensr  ÚnumerÚdenomÚsnumerÚsdenomÚldenomÚratioÚaÚbr-  rÊ  rÒ  r�  s   `               @@@rs   Ú
_print_MulzLatexPrinter._print_Mul  sÇ  û€ Ý+ØŸ™Ð(:Ñ;ˆ	ØŸ™Ð(BÑCˆ	ö	A÷ 	ô8 �dœCÔ Ø—9‘9ˆDØ�A‰wœ!Ÿ%™%Ñ¤3Ñ&SÈ$ÈqÈrÈ(Ô&SÔ#SÙ# DÓ)Ð)àˆØ×(Ñ(Ô*Ø�5ˆDØˆCØ�{Š{Ø�s‘
�Ø!%‘àˆCá ¨DÔ1‰ˆˆuà”A—E‘E‰>œc ! R°%Ô8ÀÇ	Á	ÑIð ‘7˜4“=Ñ ŠCñ ˜U“^ˆFÙ˜U“^ˆFÜ˜Ÿ™›Ó(ˆFØ—N‘NÐ#4Ñ5ˆEØ�~‰~Ð/Ò0°V¸q²[Ø˜vÑ%à×+Ñ+¨E¸Ð+Ô>Ù²f¹fÐEÑE’Càª±Ð8Ñ8’CØÑ"Ü˜Ÿ™›Ó'¨%°©,Ó6à×+Ñ+¨E¸Ð+Ô=ÙÚ!¢9ªfð6ñ 6’Cà—\’\äŸ™�AÜŸ™�AØ"ŸZ™Zò #˜Ø×3Ñ3°A¸EÐ3ÔBÜ #¡G¨A¨a©C£L×$6Ñ$6Ó$8Ó 9¸EÀ&¹LÒ HØ!"×!1Ñ!1°Q×5EÑ5EÓ!NÈÔ!NØ ™F™Aà ™F™Að#ð ×/Ñ/°¸Ð/Ô=ÙÙ& q�zª6²9¹gÀa½jð Jñ J™ñ Ù& q�zª6±9¹gÀa¼jð Jñ J™ñ ²&¹)ÁVÐLÑL‘Cáª6²6Ð:Ñ:�áØ�3‰JˆCØˆ
ru   c                ó²   — |j                   r-| j                  |j                  «       j                  «       «      S | j                  |j                  «       «      S r  )Ú
is_aliasedr  Úas_polyÚas_exprr  s     rs   Ú_print_AlgebraicNumberz#LatexPrinter._print_AlgebraicNumberz  s<   € Ø�?Š?Ø—;‘;˜tŸ|™|›~×5Ñ5Ó7Ó8Ð8à—;‘;˜tŸ|™|›~Ó.Ð.ru   c                óÀ   — | j                  |j                  «      }|j                  rd|› d�S | j                  |j                  j	                  «       «      }d|› d|› d�S )NrE  rn  rK  )r  ÚpÚis_inertÚalpharí  )r÷   r  rð  rò  s       rs   Ú_print_PrimeIdealzLatexPrinter._print_PrimeIdeal€  sZ   € Ø�K‰K˜Ÿ™ÓˆØ�=Š=Ø˜Q˜C˜wÐ'Ð'Ø—‘˜DŸJ™J×.Ñ.Ó0Ó1ˆØ˜˜˜2˜e˜W GÐ,Ð,ru   c                ót  — |j                   j                  �rB|j                   j                  }|j                   j                  }t	        |«      dk(  ru|dk7  rp| j
                  d   ra| j                  |j                  «      }|dk(  rd|z  }n| j
                  d   rd||fz  }nd||fz  }|j                   j                  rd|z  S |S | j
                  d	   r’|dk7  r�| j                  |j                  t        d
   «      }|j                  j                  r| j                  |«      }|j                  j                  r"| j                  |j                  |›d|›�¬«      S |›d|›d|›d�S |j                   j                  rÜ|j                  j                  rÆ|j                  dk(  r|j                  ›d|j                   ›d�S |j                  j                  rt|j                  j                  }|j                  j                  }||z  t	        |«      k(  r7|j                   dk(  r	d|›d|›d�S d|›d|›dt	        |j                   «      ›d�S | j                  |«      S |j                  j                  r6| j                  |j                  | j                  |j                   «      ¬«      S d}| j!                  ||«      S )Nrk  rÈ   rØ  z	\sqrt{%s}r½   z\root{%d}{%s}z\sqrt[%d]{%s}z\frac{1}{%s}r¸   r   ú/©rH  ú^{ro   rj  z\frac{1}{\frac{rÚ  ú}}z\frac{1}{(\frac{z})^{z%s^{%s})rH  r  rð  Úqrª   rñ   r  rC  Úis_negativer  r!   Ú	is_SymbolrÒ   r"  rß  ré  Ú_helper_print_standard_power)r÷   r  rð  rù  rC  r  Úbase_pÚbase_qs           rs   Ú
_print_PowzLatexPrinter._print_Pow‡  s.  € à�8‰8×ÓØ—X‘X—Z‘ZˆAØ—X‘X—Z‘ZˆAÜ�1‹v˜Š{˜q Ašv¨$¯.©.¸Ò*IØ—{‘{ 4§9¡9Ó-�Ø˜’6Ø&¨Ñ-‘CØ—^‘^ FÒ+Ø*¨a°¨YÑ6‘Cà*¨a°¨YÑ6�CØ—8‘8×'Ò'Ø*¨SÑ0Ð0à�JØ—‘Ð 2Ò3¸¸QºØ×(Ñ(¨¯©´J¸uÑ4EÓF�à—9‘9×&Ò&Ø×2Ñ2°4Ó8�DØ—9‘9×(Ò(ØŸ;™; t§y¡yÂÁAÐ6F˜;ÓGÐGÚ(,ªa²Ð3Ð3Ø—‘×%Ò%¨$¯)©)×*BÒ*Bà—9‘9 ’>Ø)-¯«°D·H³HÐ=Ð=à—9‘9×(Ò(Ø"&§)¡)§+¡+�FØ"&§)¡)§+¡+�FØ ‘¬#¨f«+Ò5ØŸ8™8 r›>ÚAGÊÐ#PÐPð *ò IOÒPVÔX[Ð\`×\dÑ\dÕXeÐ#fÐfà—‘ tÓ,Ð,Ø�9‰9× Ò Ø—;‘;˜tŸy™y¨d¯k©k¸$¿(¹(Ó.C�;ÓDÐDØˆØ×0Ñ0°°sÓ;Ð;ru   c                óÂ  — | j                  |j                  «      }| j                  |j                  t        d   «      }|j                  j
                  r| j                  |«      }ns|j                  j                  rd|z  }nWt        |j                  t        «      r=|j                  d«      r,t        j                  d|«      r|j                  d«      r|dd }|||fz  S )Nr   z{%s}rE  z\\left\(\\d?d?dotrn  é   iùÿÿÿ)r  rH  r  rC  r!   rû  rÒ   Úis_FloatrÁ  r   Ú
startswithr8   rÏ  Úendswith)r÷   r  ÚtemplaterH  rC  s        rs   rü  z)LatexPrinter._helper_print_standard_power´  s³   € Ø�k‰k˜$Ÿ(™(Ó#ˆð × Ñ  §¡¬J°uÑ,=Ó>ˆØ�9‰9×ÒØ×*Ñ*¨4Ó0‰DØ�Y‰Y×ÒØ˜T‘>‰DÜ˜Ÿ™¤JÔ/Ø—‘ 	Ô*Ü—‘Ð-¨tÔ4Ø—‘˜jÔ)à˜˜2�;ˆDØ˜4 ˜+Ñ%Ð%ru   c                ó>   — | j                  |j                  d   «      S ©Nr   ©r  r@  r  s     rs   Ú_print_UnevaluatedExprz#LatexPrinter._print_UnevaluatedExprÅ  s   € Ø�{‰{˜4Ÿ9™9 Q™<Ó(Ð(ru   c           
     óì  ‡ — t        |j                  «      dk(  r9dt        |j                  d   D �cg c]  }‰ j                  |«      ‘Œ c}«      z  }n<ˆ fd„}dt        j                  d|j                  D �cg c]
  } ||«      ‘Œ c}«      z  }t        |j                  t        «      r#|d‰ j                  |j                  «      z  z  }|S |‰ j                  |j                  «      z  }|S c c}w c c}w )Nrk  z\sum_{%s=%s}^{%s} r   c           	     ó|   •— dt        | d   | d   | d   fD �cg c]  }‰j                  |«      ‘Œ c}«      z  S c c}w ©Nz%s \leq %s \leq %srk  r   rØ  ©Útupler  ©Úlrr   r÷   s     €rs   Ú_format_ineqz-LatexPrinter._print_Sum.<locals>._format_ineqÍ  óC   ø€ Ø,Ü°A°a±D¸!¸A¹$ÀÀ!ÁÐ3EÖF¨a˜4Ÿ;™; q�>ÒFÓGñHð HùÚFó   ˜9
z\sum_{\substack{%s}} ú\\r_  ©	r‚  Úlimitsr  r  rs  rO  rÁ  Úfunctionr   ©r÷   r  rË   r  r  r  s   `     rs   Ú
_print_SumzLatexPrinter._print_SumÈ  sÓ   ø€ Üˆt�{‰{Ó˜qÒ Ø'Ü¨t¯{©{¸1©~Ö>¨!�t—{‘{ 1•~Ò>Ó?ñ@‰CôHð +Ü—‘˜¸4¿;¹;Ö!G°a¡,¨q¥/Ò!GÓHñIˆCô �d—m‘m¤SÔ)ØÐ%¨¯©°D·M±MÓ(BÑBÑBˆCð ˆ
ð �4—;‘;˜tŸ}™}Ó-Ñ-ˆCàˆ
ùò ?ùò "Hó   ±C,
Á7C1c           
     óì  ‡ — t        |j                  «      dk(  r9dt        |j                  d   D �cg c]  }‰ j                  |«      ‘Œ c}«      z  }n<ˆ fd„}dt        j                  d|j                  D �cg c]
  } ||«      ‘Œ c}«      z  }t        |j                  t        «      r#|d‰ j                  |j                  «      z  z  }|S |‰ j                  |j                  «      z  }|S c c}w c c}w )Nrk  z\prod_{%s=%s}^{%s} r   c           	     ó|   •— dt        | d   | d   | d   fD �cg c]  }‰j                  |«      ‘Œ c}«      z  S c c}w r  r  r  s     €rs   r  z1LatexPrinter._print_Product.<locals>._format_ineqà  r  r  z\prod_{\substack{%s}} r  r_  r  r  s   `     rs   Ú_print_ProductzLatexPrinter._print_ProductÛ  sÓ   ø€ Üˆt�{‰{Ó˜qÒ Ø(Ü¨t¯{©{¸1©~Ö>¨!�t—{‘{ 1•~Ò>Ó?ñ@‰CôHð ,Ü—‘˜¸4¿;¹;Ö!G°a¡,¨q¥/Ò!GÓHñIˆCô �d—m‘m¤SÔ)ØÐ%¨¯©°D·M±MÓ(BÑBÑBˆCð ˆ
ð �4—;‘;˜tŸ}™}Ó-Ñ-ˆCàˆ
ùò ?ùò "Hr  c                óž  — ddl m} g }||j                  k(  r|j                  j                  S t	        ||«      r|j                  «       j                  «       }nd|fg}|D ]Å  \  }}t        |j                  j                  «       «      }|j                  d„ ¬«       |D ]…  \  }}	|	dk(  r|j                  d|j                  z   «       Œ*|	dk(  r|j                  d|j                  z   «       ŒNd	| j                  |	«      z   d
z   }
|j                  d|
z   |j                  z   «       Œ‡ ŒÇ dj                  |«      }|d   dk7  r|dd  }|S |dd  }|S )Nr   )ÚVectorc                ó(   — | d   j                  «       S r  )Ú__str__rÂ  s    rs   rt   z4LatexPrinter._print_BasisDependent.<locals>.<lambda>û  s   € ¨!¨A©$¯,©,«.€ ru   ©Úkeyrk  r^  rj  r]  rE  rn  râ   ú-é   )Úsympy.vectorr  ÚzeroÚ_latex_formrÁ  ÚseparateÚitemsrÆ  Ú
componentsÚsortÚappendr  rO  )r÷   r  r  Úo1r*  ÚsystemÚvectÚ
inneritemsÚkÚvÚarg_strÚoutstrs               rs   Ú_print_BasisDependentz"LatexPrinter._print_BasisDependentî  sB  € Ý'àˆØ�4—9‘9ÒØ—9‘9×(Ñ(Ð(Ü�d˜FÔ#Ø—M‘M“O×)Ñ)Ó+‰Eà˜�Y�KˆEà!ò 
	?‰LˆF�DÜ˜dŸo™o×3Ñ3Ó5Ó6ˆJØ�O‰OÑ 8ˆOÔ9Ø"ò ?‘��1Ø˜’6Ø—I‘I˜e a§m¡mÑ3Õ4Ø˜"’WØ—I‘I˜e a§m¡mÑ3Õ4à'¨$¯+©+°a«.Ñ8¸:ÑE�GØ—I‘I˜e g™o°·±Ñ=Õ>ñ?ð
	?ð —'‘'˜"“+ˆØ�!‰9˜ÒØ˜A˜B�ZˆFð ˆð ˜A˜B�ZˆFØˆru   c                ó²   — | j                  |j                  «      }d|z   dz   ddj                  t        | j                   |j                  «      «      z  z   }|S )Nr“   ro   ú_{%s}rl  )r  rC  rO  ÚmapÚindices)r÷   r  Útex_baser  s       rs   Ú_print_IndexedzLatexPrinter._print_Indexed  sP   € Ø—;‘;˜tŸy™yÓ)ˆØ�(‰l˜3Ñ˜w¨¯©Ü�—‘˜TŸ\™\Ó*ó*,ñ  ,ñ ,ˆàˆ
ru   c                ó8   — | j                  |j                  «      S r  )r  Úlabelr  s     rs   Ú_print_IndexedBasezLatexPrinter._print_IndexedBase  s   € Ø�{‰{˜4Ÿ:™:Ó&Ð&ru   c                ód  — | j                  |j                  «      }|j                  �ˆ| j                  |j                  «      }|j                  �| j                  |j                  «      }n| j                  t        j
                  «      }dj                  ||¬«      }dj                  ||¬«      S |S )Nz%{lower}\mathrel{{..}}\nobreak {upper})rƒ  r„  z{{{label}}}_{{{interval}}})r>  Úinterval)r  r>  r„  rƒ  r   ÚZeror   )r÷   r  r>  r„  rƒ  rA  s         rs   Ú
_print_IdxzLatexPrinter._print_Idx  s�   € Ø—‘˜DŸJ™JÓ'ˆØ�:‰:Ð!Ø—K‘K §
¡
Ó+ˆEØ�z‰zÐ%ØŸ™ D§J¡JÓ/‘àŸ™¤A§F¡FÓ+�Ø@×GÑGØ!¨5ð Hó 2ˆHà/×6Ñ6Ø¨(ð 7ó 4ð 4ð ˆru   c           	     óˆ  — t        |j                  «      rd}n| j                  d   }d}d}t        |j                  «      D ]d  \  }}||z  }|dk(  r||›d| j                  |«      ›�z  }Œ*||›d| j                  | j                  |«      «      ›d| j                  |«      ›d�z  }Œf |dk(  r
d	|›d
|›d�}nd	|›d| j                  |«      ›d|›d�}t        d„ |j                  D «       «      r+|›d| j                  |j                  t        d   dd¬«      ›�S |›d| j                  |j                  t        d   dd¬«      ›�S )Nz\partialrï   râ   r   rk  rÛ   r÷  ro   rÙ  rÚ  ú}}{c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr  ©r5  ©r,  rË   s     rs   r.  z1LatexPrinter._print_Derivative.<locals>.<genexpr>:  s   è ø€ Ò?°ˆq×)Ñ)×+Ñ?ùrÔ  r
   T©r
  r  F)r   r  rñ   ÚreversedÚvariable_countr  rÒ   r8  r@  r  r!   )r÷   r  Údiff_symbolr  Údimr-  Únums          rs   Ú_print_DerivativezLatexPrinter._print_Derivative$  sQ  € Ü˜DŸI™IÔ&Ø%‰KàŸ.™.Ð)>Ñ?ˆKàˆØˆÜ˜t×2Ñ2Ó3ò 	:‰FˆAˆsØ�3‰JˆCØ�aŠxØ¢;°·±¸A´Ð?Ñ?‘àªØ(,×(?Ñ(?ÀÇÁÈAÃÕ(OØ(,¯©°CÕ(8ð:ñ :‘ð	:ð �!‹8Ú&1²3Ð7‰Cð ò ,7¸¿¹ÀCÕ8HÊ#ÐNˆCäÑ?°T·Y±YÔ?Ô?Ú" D×$5Ñ$5°d·i±iÜ2<¸UÑ2CØ9=Ø9=ð %6ô %?ð @ð @ò
  × 1Ñ 1°$·)±)Ü2<¸UÑ2CØ9>Ø9=ð !2ô !?ð @ð 	@ru   c                óÈ   ‡ — |j                   \  }}}‰ j                  |«      }ˆ fd„|D «       }ˆ fd„|D «       }dj                  d„ t        ||«      D «       «      }d|›d|›d�S )Nc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  ©r  ©r,  rW  r÷   s     €rs   r.  z+LatexPrinter._print_Subs.<locals>.<genexpr>H  ó   øè ø€ Ò1¨�T—[‘[ —^Ñ1ùr0  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  rS  s     €rs   r.  z+LatexPrinter._print_Subs.<locals>.<genexpr>I  rT  r0  z\\ c              3  ó8   K  — | ]  }|d    dz   |d   z   –— Œ y­w)r   ú=rk  Nrp   )r,  rW  s     rs   r.  z+LatexPrinter._print_Subs.<locals>.<genexpr>J  s(   è ø€ ò !BØ"#ˆAˆa‰D�3‰J˜˜1™Õñ!Bùó   ‚z\left. z \right|_{\substack{ z }})r@  r  rO  Úzip)	r÷   Úsubsr  r»  ÚnewÚ
latex_exprÚ	latex_oldÚ	latex_newÚ
latex_subss	   `        rs   Ú_print_SubszLatexPrinter._print_SubsE  sk   ø€ ØŸ™‰ˆˆc�3Ø—[‘[ Ó&ˆ
Û1¨SÔ1ˆ	Û1¨SÔ1ˆ	Ø—[‘[ñ !BÜ'*¨9°iÓ'@ô!Bó B‰
â9CÚ9CðEð 	Eru   c           
     ó²  — dg }}| j                   d   }t        |j                  «      dk  rnt        d„ |j                  D «       «      rRddt        |j                  «      dz
  z  z   dz   }|j                  D �cg c]  }d	|›| j	                  |d
   «      ›�‘Œ }}nät        |j                  «      D ]Ì  }|d
   }|dz  }t        |«      dkD  rŒ| j                   d   dk7  r| j                   d   s|dz  }t        |«      dk(  r0|d| j	                  |d   «      ›d| j	                  |d   «      ›d�z  }t        |«      dk(  r|d| j	                  |d   «      z  z  }|j                  d
d	|›| j	                  |«      ›�«       ŒÎ |›d| j                  |j                  t        d   t        d„ |j                  D «       «      d¬«      ›dj                  |«      ›�S c c}w )Nrâ   rï   é   c              3  ó8   K  — | ]  }t        |«      d k(  –— Œ y­w)rk  N)r‚  )r,  Úlims     rs   r.  z/LatexPrinter._print_Integral.<locals>.<genexpr>T  s   è ø€ Ò(N¸3¬¨S«°Q­Ñ(NùrX  z\irË   rk  Úntz\, r   z\intrÃ   rÙ   r½   z\limitsr%  ú_{ú}^{rØ  ro   ú^{%s}rÛ   r
   c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr  rG  rH  s     rs   r.  z/LatexPrinter._print_Integral.<locals>.<genexpr>o  s   è ø€ Ò>oÐ`a¸q×?YÑ?Y×?[Ñ>oùrÔ  TrI  )rñ   r‚  r  Úallr  rJ  Úinsertr  r  r!   r8  r@  rO  )r÷   r  r  ÚsymbolsrL  Úsymbolrd  s          rs   Ú_print_IntegralzLatexPrinter._print_IntegralO  sÎ  € Ø˜2ˆWˆØ—n‘nÐ%:Ñ;ˆô ˆt�{‰{Ó˜qÒ ¤SÑ(NÀ$Ç+Á+Ô(NÔ%Nð ˜#œs 4§;¡;Ó/°!Ñ3Ñ4Ñ4°tÑ;ˆCà%)§[¡[ö2Ù!ñ &1°$·+±+¸fÀQ¹iÔ2HÒIð 2ˆGñ 2ô   §¡Ó,ò S�Ø˜Q™�Ø�w‘�ä�s“8˜a’<Ø—~‘~ fÑ-°Ò9Ø$(§N¡N°6Ò$:Ø˜zÑ)˜ä˜3“x 1’}Ù¨t¯{©{¸3¸q¹6Õ/BØ/3¯{©{¸3¸q¹6Õ/Bð Dñ D˜ä˜3“x 1’}Ø˜w¨$¯+©+°c¸!±fÓ*=Ñ>Ñ>˜à—‘™q±¸T¿[¹[ÈÔ=PÐ"QÕRðSò" ! $×"3Ñ"3°D·M±MÜ4>¸uÑ4EÜ;>Ñ>oÐei×enÑenÔ>oÓ;oØ;?ð #4ô #Að  ŸW™W WÔ-ð	/ð 	/ùò+2s   Á7 Gc                ó¨  — |j                   \  }}}}d| j                  |«      z  }t        |«      dk(  s"|t        j                  t        j
                  fv r|d| j                  |«      z  z  }n)|| j                  |«      ›d| j                  |«      ›d�z  }t        |t        «      r|›d| j                  |«      ›d�S |›d| j                  |«      ›�S )	Nz\lim_{%s \to z+-z%s}r°   ro   rE  rn  rÛ   )r@  r  rs  r   ÚInfinityÚNegativeInfinityrÁ  r   )r÷   r  rW  ÚzÚz0Údirr  s          rs   Ú_print_LimitzLatexPrinter._print_Limits  s®   € ØŸ	™	‰ˆˆ1ˆb�#à §¡¨Q£Ñ/ˆÜˆs‹8�tÒ˜r¤a§j¡j´!×2DÑ2DÐ%EÑEØ�6˜DŸK™K¨›OÑ+Ñ+‰Cà §¡¨B¥°·±¸SÕ1AÐBÑBˆCä�aœÔ!Ú+.°·±¸AµÐ?Ð?â" D§K¡K°¤NÐ3Ð3ru   c                óž  — | j                  |«      }|j                  d«      }|j                  d«      }|t        v rd|z  }|S t        |«      dk(  s|j	                  d«      s
|dk(  s|dk(  r|}|S |dkD  r)|dkD  r$d|dt        ||«       ›d	|t        ||«      d ›�}|S |dkD  rd|d| ›d	||d ›�}|S |dkD  rd|d| ›d	||d ›�}|S d
|z  }|S )ak  
        Logic to decide how to render a function to latex
          - if it is a recognized latex name, use the appropriate latex command
          - if it is a single letter, excluding sub- and superscripts, just use that letter
          - if it is a longer name, then put \operatorname{} around it and be
            mindful of undercores in the name
        r°   Ú_z\%srk  r®   r   ú\operatorname{Nro   z\operatorname{%s})rL  ÚfindÚaccepted_latex_functionsr‚  r  rÓ   )r÷   r³  ÚsuperscriptidxÚsubscriptidxrP  s        rs   Ú_hprint_FunctionzLatexPrinter._hprint_Function�  s&  € ð ×(Ñ(¨Ó.ˆØŸ™ 3›ˆØ—y‘y “~ˆØÔ+Ñ+Ø˜D‘=ˆDð$ ˆô# �‹Y˜!Š^˜tŸ™¨tÔ4¸ÈÒ8IÈ^Ð_`ÒM`ØˆDð  ˆð  Ò! l°QÓ&6àÐ:œ#˜l¨>Ó:Ò;Øœ˜\¨.Ó9Ð:Ñ;ð=�ð ˆð   !Ó#à˜˜.Ò)Ø˜˜Ñ)ð+�ð ˆð  Ó!à˜˜,Ò'Ø˜˜Ñ'ð)�ð
 ˆð ,¨dÑ2�Øˆru   c                ó0  — |j                   j                  }t        | d|z   «      r&t        |t        «      s t        | d|z   «      ||«      S |j                  D �cg c]  }t        | j                  |«      «      ‘Œ }}| j                  d   }d}| j                  d   xr/ t        |«      dk(  xr | j                  |j                  d   «       }g d¢}	||	v r.|dk(  rn(|d	k(  r|d
   dk(  rdnd|dd z   }n|dk(  r|dd }d}|�d}|r|t        v rd|z  }
nDd|z  }
n>|�+| j                  |«      }| j                  |«      }|›d|›d�}
n| j                  |«      }
|r|t        v r|
dz  }
n|
dz  }
n|
dz  }
|r
|�|
d|z  z  }
|
dj                  |«      z  S c c}w )a#  
        Render functions to LaTeX, handling functions that LaTeX knows about
        e.g., sin, cos, ... by using the proper LaTeX command (\sin, \cos, ...).
        For single-letter function names, render them as regular LaTeX math
        symbols. For multi-letter function names that LaTeX does not know
        about, (e.g., Li, sech) use \operatorname{} so that the function name
        is rendered in Roman font and LaTeX handles spacing properly.

        expr is the expression involving the function
        exp is an exponent
        Ú_print_r»   Fr¹   rk  r   )ÚasinÚacosÚatanÚacscÚasecÚacotÚasinhÚacoshÚatanhÚacschÚasechÚacothr¼   Úfullrj  ÚhÚarÚarcNÚpowerTz\%s^{-1}z\operatorname{%s}^{-1}r÷  ro   z {%s}ú%sú{\left(%s \right)}rh  rl  )r³  rN  rÀ  rÁ  r   Úgetattrr@  rs  r  rñ   r‚  r#  rz  r}  rÒ   rO  )r÷   r  rH  r³  r<   r@  r»   Úinv_trig_power_caseÚcan_fold_bracketsÚinv_trig_tablerP  Úfunc_texs               rs   Ú_print_FunctionzLatexPrinter._print_Function¡  så  € ð �y‰y×!Ñ!ˆÜ�4˜ TÑ)Ô*Ü˜t¤\Ô2Ø2”7˜4 ¨TÑ!1Ó2°4¸Ó=Ð=à59·Y±YÖ?¨c”C˜Ÿ™ CÓ(Õ)Ð?ˆDÐ?ð "Ÿ^™^Ð,<Ñ=ˆNà"'Ðà $§¡Ð/CÑ Dò !@Ü�D“	˜Q‘ò!@à×1Ñ1°$·)±)¸A±,Ó?Ð?ð òˆNð �~Ñ%Ø! ]Ò2ØØ# vÒ-Ø$(¨¡H°¢O™D¸À$ÀqÀrÀ(ÑJ‘DØ# wÒ.Ø  ˜8�DØ*.Ð'ð �Ø,1Ð)á"ØÔ3Ñ3Ø&¨Ñ-‘Dà4°tÑ;‘DØ�Ø×0Ñ0°Ó6�Ø×2Ñ2°8Ó<�Ú%-ªsÐ3‘à×,Ñ,¨TÓ2�á ØÔ3Ñ3ð ˜HÑ$‘Dà˜E‘M‘DàÐ-Ñ-�á" s Ø˜ 3™Ñ&�à˜#Ÿ(™( 4›.Ñ(Ð(ùòs @s   Á!Fc                ó6   — | j                  t        |«      «      S r  )r}  rs  r  s     rs   Ú_print_UndefinedFunctionz%LatexPrinter._print_UndefinedFunctioní  s   € Ø×$Ñ$¤S¨£YÓ/Ð/ru   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )Nr“   z}_{\circ}\left({z}\right))r  r  r  r  s     rs   Ú_print_ElementwiseApplyFunctionz,LatexPrinter._print_ElementwiseApplyFunctionð  s,   � à�K‰K˜Ÿ™Õ&Ø�K‰K˜Ÿ	™	Õ"ð
ð 	
ru   c                ó^   — ddl m} ddlm}m} ddlm} ddlm} ddl	m
} |d|d|d	|d
|d|diS )Nr   )ÚKroneckerDelta)ÚgammaÚ
lowergamma)Úbeta)Ú
DiracDelta)rU   z\deltar@   ú\gammaz\operatorname{B}z\operatorname{Chi})Ú(sympy.functions.special.tensor_functionsrž  Ú'sympy.functions.special.gamma_functionsrŸ  r   Ú&sympy.functions.special.beta_functionsr¡  Ú'sympy.functions.special.delta_functionsr¢  Ú'sympy.functions.special.error_functionsrU   )r÷   rž  rŸ  r   r¡  r¢  rU   s          rs   Ú_special_function_classesz&LatexPrinter._special_function_classesö  s;   € åKßMÝ?ÝFÝ?Ø 	Ø˜	Ø˜IØÐ)Ø˜IØÐ*ð,ð 	,ru   c                óÆ   — | j                   D ]9  }t        ||«      sŒ|j                  |j                  k(  sŒ*| j                   |   c S  | j                  t	        |«      «      S r  )r©  Ú
issubclassrN  r}  rs  )r÷   r  Úclss      rs   Ú_print_FunctionClassz!LatexPrinter._print_FunctionClass  sX   € Ø×1Ñ1ò 	;ˆCÜ˜$ Õ$¨¯©¸#¿,¹,Ó)FØ×5Ñ5°cÑ:Ò:ð	;ð ×$Ñ$¤S¨£YÓ/Ð/ru   c                óÎ   — |j                   \  }}t        |«      dk(  r| j                  |d   «      }n| j                  t        |«      «      }d|›d| j                  |«      ›d�}|S )Nrk  r   rm  z	 \mapsto ú \right))r@  r‚  r  r  )r÷   r  rl  r  s       rs   Ú_print_LambdazLatexPrinter._print_Lambda
  sX   € ØŸ	™	‰ˆ�äˆw‹<˜1ÒØ—k‘k '¨!¡*Ó-‰Gà—k‘k¤%¨£.Ó1ˆGøâ18¸$¿+¹+ÀdÕ:KÐLˆàˆ
ru   c                 ó   — y)Nz\left( x \mapsto x \right)rp   r  s     rs   Ú_print_IdentityFunctionz$LatexPrinter._print_IdentityFunction  s   € Ø,ru   c                ó  — t        |j                  t        ¬«      }|D �cg c]  }d| j                  |«      z  ‘Œ }}dt	        |j
                  «      j                  «       ›ddj                  |«      ›d�}|�|›d|›d�S |S c c}w )	Nr"  r‘  r®   rE  rK  rn  r÷  ro   )Úsortedr@  r   r  rs  r³  rƒ  rO  )r÷   r  rH  r@  rm  Útexargsr  s          rs   Ú_hprint_variadic_functionz&LatexPrinter._hprint_variadic_function  sv   € Ü�d—i‘iÔ%5Ô6ˆØ=AÖB°6�5˜4Ÿ;™; vÓ.Ó.ÐBˆÑBÜ'*¨4¯9©9£~×';Ñ';Õ'=Ø'+§y¡y°Õ'9ð;ˆàˆ?Ú!$¢cÐ*Ð*àˆJùò Cs    Bc                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�S |S )Nz\left\lfloor{%s}\right\rfloorr   r÷  ro   r  ©r÷   r  rH  r  s       rs   Ú_print_floorzLatexPrinter._print_floor%  s2   € Ø.°·±¸T¿Y¹YÀq¹\Ó1JÑJˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�S |S )Nz\left\lceil{%s}\right\rceilr   r÷  ro   r  r¸  s       rs   Ú_print_ceilingzLatexPrinter._print_ceiling-  s2   € Ø,¨t¯{©{¸4¿9¹9ÀQ¹<Ó/HÑHˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó¾   — | j                   d   s"d| j                  |j                  d   «      z  }n!d| j                  |j                  d   «      z  }|�|›d|›d�S |S )Nr¾   z\log{\left(%s \right)}r   z\ln{\left(%s \right)}r÷  ro   )rñ   r  r@  r¸  s       rs   Ú
_print_logzLatexPrinter._print_log5  sY   € Ø�~‰~˜mÒ,Ø+¨d¯k©k¸$¿)¹)ÀA¹,Ó.GÑG‰Cà*¨T¯[©[¸¿¹À1¹Ó-FÑFˆCàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�S |S )Nú\left|{%s}\right|r   r÷  ro   r  r¸  s       rs   Ú
_print_AbszLatexPrinter._print_Abs@  s2   € Ø" T§[¡[°·±¸1±Ó%>Ñ>ˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó  — | j                   d   r*d| j                  |j                  d   t        d   «      z  }n5dj	                  | j                  |j                  d   t        d   «      «      }| j                  ||«      S )NrÏ   z\Re{%s}r   ÚAtomz\operatorname{{re}}{{{}}}©rñ   r  r@  r!   r   rI  r¸  s       rs   Ú	_print_rezLatexPrinter._print_reH  ór   € Ø�>‰>˜.Ò)Ø˜t×0Ñ0°·±¸1±¼zÈ&Ñ?QÓRÑR‰Cà.×5Ñ5°d×6GÑ6GÈÏ	É	ÐRSÉÔV`ÐagÑVhÓ6iÓjˆCà× Ñ   cÓ*Ð*ru   c                ó  — | j                   d   r*d| j                  |j                  d   t        d   «      z  }n5dj	                  | j                  |j                  d   t        d   «      «      }| j                  ||«      S )NrÏ   z\Im{%s}r   rÂ  z\operatorname{{im}}{{{}}}rÃ  r¸  s       rs   Ú	_print_imzLatexPrinter._print_imP  rÅ  ru   c                ó¨  — ddl m}m} t        |j                  d   |«      r| j                  |j                  d   d«      S t        |j                  d   |«      r| j                  |j                  d   d«      S |j                  d   j                  r!d| j                  |j                  d   «      z  S d| j                  |j                  d   «      z  S )Nr   )Ú
EquivalentÚImpliesz\not\Leftrightarrowz\not\Rightarrowz\neg \left(%s\right)z\neg %s)	Úsympy.logic.boolalgrÉ  rÊ  rÁ  r@  Ú_print_EquivalentÚ_print_ImpliesÚ
is_Booleanr  )r÷   rW  rÉ  rÊ  s       rs   Ú
_print_NotzLatexPrinter._print_NotX  sª   € ß=Ü�a—f‘f˜Q‘i Ô,Ø×)Ñ)¨!¯&©&°©)Ð5KÓLÐLÜ�a—f‘f˜Q‘i Ô)Ø×&Ñ& q§v¡v¨a¡yÐ2DÓEÐEØ�F‰F�1‰I× Ò Ø*¨T¯[©[¸¿¹À¹Ó-CÑCÐCà §¡¨A¯F©F°1©IÓ 6Ñ6Ð6ru   c                óB  — |d   }|j                   r!|j                  sd| j                  |«      z  }nd| j                  |«      z  }|dd  D ]P  }|j                   r(|j                  s|d|›d| j                  |«      ›d�z  }Œ7|d|›d| j                  |«      ›�z  }ŒR |S )Nr   r_  r‘  rk  rÛ   z \left(rn  )rÎ  Úis_Notr  )r÷   r@  Úcharr<   r  s        rs   Ú_print_LogOpzLatexPrinter._print_LogOpc  s—   € Ø�1‰gˆØ�>Š> #§*¢*Ø$ t§{¡{°3Ó'7Ñ7‰Cà˜$Ÿ+™+ cÓ*Ñ*ˆCà˜˜�8ò 	<ˆCØ�~Š~ c§j¢jÙ²°t·{±{À3Õ7GÐHÑH‘á¢D¨$¯+©+°cÔ*:Ð;Ñ;‘ð		<ð ˆ
ru   c                ó\   — t        |j                  t        ¬«      }| j                  |d«      S )Nr"  z\wedge©r´  r@  r   rÓ  ©r÷   rW  r@  s      rs   Ú
_print_AndzLatexPrinter._print_Andr  s&   € Ü�a—f‘fÔ"2Ô3ˆØ× Ñ   yÓ1Ð1ru   c                ó\   — t        |j                  t        ¬«      }| j                  |d«      S )Nr"  z\veerÕ  rÖ  s      rs   Ú	_print_OrzLatexPrinter._print_Orv  s&   € Ü�a—f‘fÔ"2Ô3ˆØ× Ñ   wÓ/Ð/ru   c                ó\   — t        |j                  t        ¬«      }| j                  |d«      S )Nr"  z\veebarrÕ  rÖ  s      rs   Ú
_print_XorzLatexPrinter._print_Xorz  s&   € Ü�a—f‘fÔ"2Ô3ˆØ× Ñ   zÓ2Ð2ru   c                óB   — | j                  |j                  |xs d«      S )Nz\Rightarrow)rÓ  r@  )r÷   rW  Úaltchars      rs   rÍ  zLatexPrinter._print_Implies~  s   € Ø× Ñ  §¡¨Ò)B°NÓCÐCru   c                ód   — t        |j                  t        ¬«      }| j                  ||xs d«      S )Nr"  z\LeftrightarrowrÕ  )r÷   rW  rÝ  r@  s       rs   rÌ  zLatexPrinter._print_Equivalent�  s,   € Ü�a—f‘fÔ"2Ô3ˆØ× Ñ   wÒ'DÐ2DÓEÐEru   c                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�S |S )Nz\overline{%s}r   r÷  ro   r  r¸  s       rs   Ú_print_conjugatezLatexPrinter._print_conjugate…  s2   € Ø §¡¨T¯Y©Y°q©\Ó!:Ñ:ˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ól   — d}d| j                  |j                  d   «      z  }|�
|›d|›d|›�S |›|›�S )Nz\operatorname{polar\_lift}r’  r   r÷  ro   r  )r÷   r  rH  r³  r<   s        rs   Ú_print_polar_liftzLatexPrinter._print_polar_lift�  s?   € Ø,ˆØ# d§k¡k°$·)±)¸A±,Ó&?Ñ?ˆàˆ?Ú#'ª©cÐ2Ð2á"¡CÐ(Ð(ru   c                óh   — d| j                  |j                  d   «      z  }| j                  ||«      S )Nze^{%s}r   )r  r@  rI  r¸  s       rs   Ú_print_ExpBasezLatexPrinter._print_ExpBase–  s2   € ð ˜$Ÿ+™+ d§i¡i°¡lÓ3Ñ3ˆØ× Ñ   cÓ*Ð*ru   c                 ó   — y)NrW  rp   rG  s      rs   Ú_print_Exp1zLatexPrinter._print_Exp1œ  s   € Øru   c                ób   — d| j                  |j                  d   «      z  }|�d|›d|›�S d|z  S )Nr_  r   zK^{ro   zK%sr  r¸  s       rs   Ú_print_elliptic_kzLatexPrinter._print_elliptic_kŸ  s7   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆØ‰?Ú"%¡sÐ+Ð+à˜C‘<Ðru   c                ó¢   — d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|�d|›d|›�S d|z  S )	NrE  r   ú	\middle| rk  rn  zF^{ro   zF%sr  r¸  s       rs   Ú_print_elliptic_fzLatexPrinter._print_elliptic_f¦  sK   � à�[‰[˜Ÿ™ 1™Õ&¨¯©°D·I±I¸a±LÕ(AðCˆà‰?Ú"%¡sÐ+Ð+à˜C‘<Ðru   c                ó  — t        |j                  «      dk(  rBd| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}n!d| j                  |j                  d   «      z  }|�d|›d	|›�S d
|z  S )NrØ  rE  r   rê  rk  rn  r_  zE^{ro   zE%s©r‚  r@  r  r¸  s       rs   Ú_print_elliptic_ezLatexPrinter._print_elliptic_e®  sx   € Üˆt�y‰y‹>˜QÓà—‘˜TŸY™Y q™\Õ*¨D¯K©K¸¿	¹	À!¹Õ,EðG‰Cð % t§{¡{°4·9±9¸Q±<Ó'@Ñ@ˆCØ‰?Ú"%¡sÐ+Ð+à˜C‘<Ðru   c           	     ó”  — t        |j                  «      dk(  rad| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}nAd| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|�d	|›d
|›�S d|z  S )Nr%  rE  r   ú; rk  rê  rØ  rn  z\Pi^{ro   z\Pi%srí  r¸  s       rs   Ú_print_elliptic_pizLatexPrinter._print_elliptic_pi¹  s¤   € Üˆt�y‰y‹>˜QÓà—‘˜TŸY™Y q™\Õ*¨D¯K©K¸¿	¹	À!¹Õ,EØ—‘˜TŸY™Y q™\Õ*ð,‰Cð ð —‘˜TŸY™Y q™\Õ*¨D¯K©K¸¿	¹	À!¹Õ,EðGˆCà‰?Ú$'©Ð-Ð-à˜c‘>Ð!ru   c                ó¼   — |j                   d   }t        |j                   «      dk(  r|j                   d   n|j                   d   }d|› d|› d�}|�d|›d|›�S d|z  S )	Nr   rk  rE  rK  rn  z\operatorname{B}^{ro   z\operatorname{B}%s)r@  r‚  )r÷   r  rH  r-  Úyr  s         rs   Ú_print_betazLatexPrinter._print_betaÆ  sd   € Ø�I‰I�a‰Lˆä §	¡	›N¨aÒ/ˆD�I‰I�aŠL°T·Y±Y¸q±\ˆØ˜�s˜"˜Q˜C˜wÐ'ˆà‰?Ú14±cÐ:Ð:à(¨3Ñ.Ð.ru   c           
     óÔ   — |j                   D �cg c]  }| j                  |«      ‘Œ }}d|d   ›d|d   ›d�}|�d|›d|d   ›d|d	   ›d
|›d|›�
S d|›d|d   ›d|d	   ›d|›�S c c}w )NrE  r   rK  rk  rn  rx  z}_{(rØ  r%  z)}^{ro   z)}rŠ  )r÷   r  rH  Úoperatorr<   Úlargsr  s          rs   Ú_print_betainczLatexPrinter._print_betaincÑ  s}   € Ø-1¯Y©YÖ7 c�—‘˜SÕ!Ð7ˆÑ7Ø(-¨a«°%¸³(Ð;ˆà‰?Ú=EÀuÈQÃxÐQVÐWXÓQYÒ[^Ñ`cÐdÐdð ò 9AÀ%ÈÃ(ÈEÐRSËHÑVYÐZÐZùò 8s   �A%c                ó*   — | j                  ||d¬«      S )NÚI)rö  )rø  rG  s      rs   Ú_print_betainc_regularizedz'LatexPrinter._print_betainc_regularizedÚ  s   € Ø×"Ñ" 4¨°sÐ"Ó;Ð;ru   c                ó¢   — d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|�d|›d|›�S d|z  S )	NrE  r   rK  rk  rn  z\Gamma^{ro   z\Gamma%sr  r¸  s       rs   Ú_print_uppergammazLatexPrinter._print_uppergammaÝ  óO   � Ø(,¯©°D·I±I¸a±LÕ(AØ(,¯©°D·I±I¸a±LÕ(AðCˆð ‰?Ú'*©CÐ0Ð0à Ñ$Ð$ru   c                ó¢   — d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|�d|›d|›�S d|z  S )	NrE  r   rK  rk  rn  z\gamma^{ro   ú\gamma%sr  r¸  s       rs   Ú_print_lowergammazLatexPrinter._print_lowergammaæ  rþ  ru   c                óÌ   — d| j                  |j                  d   «      z  }|�#| j                  |j                  «      ›d|›d|›�S | j                  |j                  «      ›|›�S ©Nr_  r   r÷  ro   )r  r@  r³  r¸  s       rs   Ú_hprint_one_arg_funcz!LatexPrinter._hprint_one_arg_funcï  sT   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆàˆ?Ø#'§;¡;¨t¯y©yÕ#9º3ÁÐDÐDà"Ÿk™k¨$¯)©)Ô4±cÐ:Ð:ru   c                ób   — d| j                  |j                  d   «      z  }|�d|›d|›�S d|z  S )Nr_  r   z\operatorname{Chi}^{ro   z\operatorname{Chi}%sr  r¸  s       rs   Ú
_print_ChizLatexPrinter._print_Chiù  s8   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆà‰?Ú36¹Ð<Ð<à*¨SÑ0Ð0ru   c                óª   — d| j                  |j                  d   «      z  }| j                  |j                  d   «      }|�d|›d|›d|›�S d|›d|›�S )Nr_  rk  r   z\operatorname{E}_{rg  ro   r  )r÷   r  rH  r  Únus        rs   Ú_print_expintzLatexPrinter._print_expint  sW   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆØ�[‰[˜Ÿ™ 1™Ó&ˆà‰?Ú68º#¹sÐCÐCð ò 24±SÐ9Ð9ru   c                ób   — d| j                  |j                  d   «      z  }|�d|›d|›�S d|z  S )Nr_  r   zS^{ro   zS%sr  r¸  s       rs   Ú_print_fresnelszLatexPrinter._print_fresnels
  ó7   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆà‰?Ú"%¡sÐ+Ð+à˜C‘<Ðru   c                ób   — d| j                  |j                  d   «      z  }|�d|›d|›�S d|z  S )Nr_  r   zC^{ro   zC%sr  r¸  s       rs   Ú_print_fresnelczLatexPrinter._print_fresnelc  r  ru   c                ón   — d| j                  |j                  d   t        d   «      z  }|�	d|›d|›d�S |S )Nz!%sr   ÚFuncrE  rF  ro   ©r  r@  r!   r¸  s       rs   Ú_print_subfactorialz LatexPrinter._print_subfactorial  s;   € Ø�t×(Ñ(¨¯©°1©´zÀ&Ñ7IÓJÑJˆà‰?Ú.1²3Ð7Ð7àˆJru   c                ól   — d| j                  |j                  d   t        d   «      z  }|�|›d|›d�S |S )Nz%s!r   r  r÷  ro   r  r¸  s       rs   Ú_print_factorialzLatexPrinter._print_factorial"  s;   € Ø�t×(Ñ(¨¯©°1©´zÀ&Ñ7IÓJÑJˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                ól   — d| j                  |j                  d   t        d   «      z  }|�|›d|›d�S |S )Nz%s!!r   r  r÷  ro   r  r¸  s       rs   Ú_print_factorial2zLatexPrinter._print_factorial2*  s;   € Ø˜×)Ñ)¨$¯)©)°A©,¼
À6Ñ8JÓKÑKˆàˆ?Ú!$¢cÐ*Ð*àˆJru   c                óœ   — d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|�|›d|›d�S |S )Nz{\binom{r   rÚ  rk  rø  r÷  ro   r  r¸  s       rs   Ú_print_binomialzLatexPrinter._print_binomial2  sI   � Ø%)§[¡[°·±¸1±Õ%>Ø%)§[¡[°·±¸1±Õ%>ð@ˆð ˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó¬   — |j                   \  }}d| j                  |t        d   «      z  }d|›d| j                  |«      ›d�}| j	                  ||«      S )Nr‘  r  r“   ú	}^{\left(ú\right)}©r@  r  r!   r  rI  )r÷   r  rH  Únr2  rC  r  s          rs   Ú_print_RisingFactorialz#LatexPrinter._print_RisingFactorial;  sP   € Ø�y‰y‰ˆˆ1Ø�t×(Ñ(¨¬J°vÑ,>Ó?Ñ?‰â+/°·±¸QµÐ@ˆà× Ñ   cÓ*Ð*ru   c                ó¬   — |j                   \  }}d| j                  |t        d   «      z  }d| j                  |«      ›d|›d�}| j	                  ||«      S )Nr‘  r  z{\left(z
\right)}_{ro   r  )r÷   r  rH  r  r2  Úsubr  s          rs   Ú_print_FallingFactorialz$LatexPrinter._print_FallingFactorialC  sP   € Ø�y‰y‰ˆˆ1Ø�d×'Ñ'¨¬:°fÑ+=Ó>Ñ>‰à+/¯;©;°q­>º3Ð?ˆà× Ñ   cÓ*Ð*ru   c                óø   — d|z  }d}|�|j                  d«      dk(  r	|›d|›d�}nd}|›d| j                  |j                  «      ›d	| j                  |j                  «      ›d
�}|r| j	                  ||«      }|S )Nr‘  Fr°   rj  r÷  ro   Trf  ú}\left(rn  )ry  r  rÆ   ÚargumentrI  )r÷   r  rH  Úsymr  Úneed_exps         rs   Ú_hprint_BesselBasezLatexPrinter._hprint_BesselBaseK  sz   € Ø�s‰mˆàˆØˆ?Ø�x‰x˜‹} Ò"Ú$'ªÐ-‘à�â+.°·±¸D¿J¹JÕ0GØ+/¯;©;°t·}±}Õ+EðGˆñ Ø×#Ñ# C¨Ó-ˆCØˆ
ru   c                ó€   — |syd}|d d D ]  }|d| j                  |«      z  z  }Œ || j                  |d   «      z  }|S )Nrâ   rj  z%s, rR  )r÷   rŽ   rr   rË   s       rs   Ú_hprint_veczLatexPrinter._hprint_vec\  sU   € ÙØØˆØ�S�b�ò 	)ˆAØ�˜$Ÿ+™+ a›.Ñ(Ñ(‰Að	)à	ˆT�[‰[˜˜R™Ó!Ñ!ˆØˆru   c                ó(   — | j                  ||d«      S )NÚJ©r'  rG  s      rs   Ú_print_besseljzLatexPrinter._print_besselje  ó   € Ø×&Ñ& t¨S°#Ó6Ð6ru   c                ó(   — | j                  ||d«      S )Nrú  r,  rG  s      rs   Ú_print_besselizLatexPrinter._print_besselih  r.  ru   c                ó(   — | j                  ||d«      S )NÚKr,  rG  s      rs   Ú_print_besselkzLatexPrinter._print_besselkk  r.  ru   c                ó(   — | j                  ||d«      S )NÚYr,  rG  s      rs   Ú_print_besselyzLatexPrinter._print_besselyn  r.  ru   c                ó(   — | j                  ||d«      S )Nró  r,  rG  s      rs   Ú	_print_ynzLatexPrinter._print_ynq  r.  ru   c                ó(   — | j                  ||d«      S )Nrç   r,  rG  s      rs   Ú	_print_jnzLatexPrinter._print_jnt  r.  ru   c                ó(   — | j                  ||d«      S )NzH^{(1)}r,  rG  s      rs   Ú_print_hankel1zLatexPrinter._print_hankel1w  ó   € Ø×&Ñ& t¨S°)Ó<Ð<ru   c                ó(   — | j                  ||d«      S )NzH^{(2)}r,  rG  s      rs   Ú_print_hankel2zLatexPrinter._print_hankel2z  r=  ru   c                ó(   — | j                  ||d«      S )Nzh^{(1)}r,  rG  s      rs   Ú
_print_hn1zLatexPrinter._print_hn1}  r=  ru   c                ó(   — | j                  ||d«      S )Nzh^{(2)}r,  rG  s      rs   Ú
_print_hn2zLatexPrinter._print_hn2€  r=  ru   c                óh   — d| j                  |j                  d   «      z  }|�
|›d|›d|›�S |›|›�S r  r  ©r÷   r  rH  Únotationr  s        rs   Ú_hprint_airyzLatexPrinter._hprint_airyƒ  s:   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆàˆ?Ú#+ªS±#Ð6Ð6á&©Ð,Ð,ru   c                ól   — d| j                  |j                  d   «      z  }|�d|›d|›d|›�S |›d|›�S )Nr_  r   r“   z
^\prime}^{ro   z^\primer  rE  s        rs   Ú_hprint_airy_primezLatexPrinter._hprint_airy_prime‹  s:   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆà‰?Ú,4²c¹3Ð?Ð?â%-©sÐ3Ð3ru   c                ó(   — | j                  ||d«      S ©NÚAi©rG  rG  s      rs   Ú_print_airyaizLatexPrinter._print_airyai“  ó   € Ø× Ñ   s¨DÓ1Ð1ru   c                ó(   — | j                  ||d«      S ©NÚBirM  rG  s      rs   Ú_print_airybizLatexPrinter._print_airybi–  rO  ru   c                ó(   — | j                  ||d«      S rK  ©rI  rG  s      rs   Ú_print_airyaiprimezLatexPrinter._print_airyaiprime™  ó   € Ø×&Ñ& t¨S°$Ó7Ð7ru   c                ó(   — | j                  ||d«      S rQ  rU  rG  s      rs   Ú_print_airybiprimezLatexPrinter._print_airybiprimeœ  rW  ru   c                ó^  — d| j                  t        |j                  «      «      ›d| j                  t        |j                  «      «      ›d| j	                  |j                  «      ›d| j	                  |j                  «      ›d| j                  |j
                  «      ›d�}|�	d|›d|›d	�}|S )
Nz{{}_{z}F_{ú}\left(\begin{matrix} r~  z \end{matrix}\middle| {ú
} \right)}r“   rg  ro   )r  r‚  ÚapÚbqr)  r$  r¸  s       rs   Ú_print_hyperzLatexPrinter._print_hyperŸ  s{   � ð �[‰[œ˜TŸW™W›Õ&¨¯©´C¸¿¹³LÕ(AØ×Ñ˜tŸw™wÕ'¨×)9Ñ)9¸$¿'¹'Õ)BØ�k‰k˜$Ÿ-™-Õ(ð	*ˆð ‰?Ú"%¢sÐ+ˆCØˆ
ru   c                ób  — d| j                  t        |j                  «      «      ›d| j                  t        |j                  «      «      ›d| j                  t        |j                  «      «      ›d| j                  t        |j
                  «      «      ›d| j                  |j
                  «      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d�}|�	d	|›d|›d
�}|S )Nz{G_{rK  rg  r[  r}  ú \\z \end{matrix} \middle| {r\  r“   ro   )
r  r‚  r]  r^  r™   Úanr)  ÚaotherÚbotherr$  r¸  s       rs   Ú_print_meijergzLatexPrinter._print_meijergª  sÅ   � ð �[‰[œ˜TŸW™W›Õ&¨¯©´C¸¿¹³LÕ(AØ�k‰kœ#˜dŸg™g›,Õ'¨¯©´S¸¿¹³\Õ)BØ×Ñ˜tŸw™wÕ'¨×)9Ñ)9¸$¿+¹+Õ)FØ×Ñ˜tŸw™wÕ'¨×)9Ñ)9¸$¿+¹+Õ)FØ�k‰k˜$Ÿ-™-Õ(ð*ˆð ‰?Ú"%¢sÐ+ˆCØˆ
ru   c                ób   — d| j                  |j                  d   «      z  }|�d|›d|›�S d|z  S )Nr_  r   z\eta^{ro   z\eta%sr  r¸  s       rs   Ú_print_dirichlet_etaz!LatexPrinter._print_dirichlet_eta·  s7   € Ø  4§;¡;¨t¯y©y¸©|Ó#<Ñ<ˆØ‰?Ú%(©#Ð.Ð.Ø˜3‰Ðru   c                óì   — t        |j                  «      dk(  r-dt        t        | j                  |j                  «      «      z  }n!d| j	                  |j                  d   «      z  }|�d|›d|›�S d|z  S )NrØ  z\left(%s, %s\right)r_  r   z\zeta^{ro   z\zeta%s©r‚  r@  r  r9  r  r¸  s       rs   Ú_print_zetazLatexPrinter._print_zeta½  sf   € Üˆt�y‰y‹>˜QÒØ(¬5´°T·[±[À$Ç)Á)Ó1LÓ+MÑM‰Cà$ t§{¡{°4·9±9¸Q±<Ó'@Ñ@ˆCØ‰?Ú&)©3Ð/Ð/Ø˜CÑÐru   c                óî   — t        |j                  «      dk(  r-dt        t        | j                  |j                  «      «      z  }n!d| j	                  |j                  d   «      z  }|�	d|›d|›d�S d|z  S )	NrØ  z_{%s}\left(%s\right)r8  r   r£  r÷  ro   r   ri  r¸  s       rs   Ú_print_stieltjeszLatexPrinter._print_stieltjesÆ  sf   € Üˆt�y‰y‹>˜QÒØ)¬E´#°d·k±kÀ4Ç9Á9Ó2MÓ,NÑN‰Cà˜TŸ[™[¨¯©°1©Ó6Ñ6ˆCØ‰?Ú'*ªCÐ0Ð0Ø˜SÑ Ð ru   c                óx   — dt        t        | j                  |j                  «      «      z  }|€d|z  S d|›d|›�S )Nz\left(%s, %s, %s\right)z\Phi%sz\Phi^{ro   )r  r9  r  r@  r¸  s       rs   Ú_print_lerchphizLatexPrinter._print_lerchphiÏ  s?   € Ø(¬5´°T·[±[À$Ç)Á)Ó1LÓ+MÑMˆØˆ;Ø˜s‘?Ð"ð â!$¡cÐ*Ð*ru   c                ó|   — t        | j                  |j                  «      \  }}d|z  }|€d|›d|›�S d|›d|›d|›�S )Nr_  z\operatorname{Li}_{ro   rg  ©r9  r  r@  )r÷   r  rH  rr   rr  r  s         rs   Ú_print_polylogzLatexPrinter._print_polylogÕ  sF   € Ü�4—;‘; §	¡	Ó*‰ˆˆ1Ø  1Ñ$ˆØ‰;Ú23±SÐ9Ð9ð â34²c¹3Ð?Ð?ru   c           	     óˆ   — t        | j                  |j                  «      \  }}}}d|›d|›d|›d|›d�	}|�d|z   d|z  z   }|S )NúP_{r  rl  ú\right)}\left(rn  rE  ú\right)^{%s}rp  )r÷   r  rH  r  rç  rè  r-  r  s           rs   Ú_print_jacobizLatexPrinter._print_jacobiÜ  sI   € Ü˜Ÿ™ d§i¡iÓ0‰
ˆˆ1ˆa‘Ú?@Â!ÂQÊÐJˆØˆ?Ø˜c‘/ O°sÑ$;Ñ;ˆCØˆ
ru   c                ó€   — t        | j                  |j                  «      \  }}}d|›d|›d|›d�}|�d|z   d|z  z   }|S )NzC_{r  rt  rn  rE  ru  rp  ©r÷   r  rH  r  rç  r-  r  s          rs   Ú_print_gegenbauerzLatexPrinter._print_gegenbauerã  óE   € Ü�d—k‘k 4§9¡9Ó-‰ˆˆ1‰aÚ<=ºqÂ!ÐDˆØˆ?Ø˜c‘/ O°sÑ$;Ñ;ˆCØˆ
ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )NzT_{r#  rn  rE  ru  rp  ©r÷   r  rH  r  r-  r  s         rs   Ú_print_chebyshevtzLatexPrinter._print_chebyshevtê  óA   € Ü�4—;‘; §	¡	Ó*‰ˆ‰1Ú*+ªQÐ/ˆØˆ?Ø˜c‘/ O°sÑ$;Ñ;ˆCØˆ
ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )NzU_{r#  rn  rE  ru  rp  r|  s         rs   Ú_print_chebyshevuzLatexPrinter._print_chebyshevuñ  r~  ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )Nrs  r#  rn  rE  ru  rp  r|  s         rs   Ú_print_legendrezLatexPrinter._print_legendreø  r~  ru   c                ó€   — t        | j                  |j                  «      \  }}}d|›d|›d|›d�}|�d|z   d|z  z   }|S )Nrs  r  rt  rn  rE  ru  rp  rx  s          rs   Ú_print_assoc_legendrez"LatexPrinter._print_assoc_legendreÿ  rz  ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )NzH_{r#  rn  rE  ru  rp  r|  s         rs   Ú_print_hermitezLatexPrinter._print_hermite  r~  ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )NúL_{r#  rn  rE  ru  rp  r|  s         rs   Ú_print_laguerrezLatexPrinter._print_laguerre  r~  ru   c                ó€   — t        | j                  |j                  «      \  }}}d|›d|›d|›d�}|�d|z   d|z  z   }|S )Nrˆ  r  rt  rn  rE  ru  rp  rx  s          rs   Ú_print_assoc_laguerrez"LatexPrinter._print_assoc_laguerre  rz  ru   c           	     óˆ   — t        | j                  |j                  «      \  }}}}d|›d|›d|›d|›d�	}|�d|z   d|z  z   }|S )NzY_{rg  r#  rl  rn  rE  ru  rp  ©r÷   r  rH  r  ÚmÚthetaÚphir  s           rs   Ú
_print_YnmzLatexPrinter._print_Ynm  óJ   € Ü˜tŸ{™{¨D¯I©IÓ6Ñˆˆ1ˆe‘SÚ23²QººsÐCˆØˆ?Ø˜c‘/ O°sÑ$;Ñ;ˆCØˆ
ru   c           	     óˆ   — t        | j                  |j                  «      \  }}}}d|›d|›d|›d|›d�	}|�d|z   d|z  z   }|S )NzZ_{rg  r#  rl  rn  rE  ru  rp  r�  s           rs   Ú
_print_ZnmzLatexPrinter._print_Znm"  r’  ru   c           
     óx   — t        | j                  |«      \  }}}|rdnd}|sdnd|z  }|›|›d|›d|›d|›d|›�
S )Nz	^{\prime}râ   rh  rE  rK  rn  )r9  r  )	r÷   Ú	characterr@  r�   rH  rç  rù  rr  Úsups	            rs   Ú__print_mathieu_functionsz&LatexPrinter.__print_mathieu_functions)  sA   € Ü�d—k‘k 4Ó(‰ˆˆ1ˆaÙ#‰l¨ˆÙ‰b ¨3¡ˆÙ3<ºcÂ1ÂaÊÉCÐPÐPru   c                ó>   — | j                  d|j                  |¬«      S )NÚCrö  ©Ú&_LatexPrinter__print_mathieu_functionsr@  rG  s      rs   Ú_print_mathieuczLatexPrinter._print_mathieuc/  ó   € Ø×-Ñ-¨c°4·9±9À#Ð-ÓFÐFru   c                ó>   — | j                  d|j                  |¬«      S )Nr   rö  r›  rG  s      rs   Ú_print_mathieuszLatexPrinter._print_mathieus2  rž  ru   c                ó@   — | j                  d|j                  d|¬«      S )Nrš  T©r�   rH  r›  rG  s      rs   Ú_print_mathieucprimez!LatexPrinter._print_mathieucprime5  ó    € Ø×-Ñ-¨c°4·9±9ÀDÈcÐ-ÓRÐRru   c                ó@   — | j                  d|j                  d|¬«      S )Nr   Tr¢  r›  rG  s      rs   Ú_print_mathieusprimez!LatexPrinter._print_mathieusprime8  r¤  ru   c                ó   — |j                   dk7  rUd}|j                  }|j                  dk  rd}| }| j                  d   rd|||j                   fz  S d|||j                   fz  S | j                  |j                  «      S )Nrk  râ   r   rÕ  rº   z	%s%d / %dz%s\frac{%d}{%d})rù  rð  rñ   r  )r÷   r  Úsignrð  s       rs   Ú_print_RationalzLatexPrinter._print_Rational;  s~   € Ø�6‰6�QŠ;ØˆDØ—‘ˆAØ�v‰v˜ŠzØ�Ø�B�Ø�~‰~Ð/Ò0Ø# t¨Q°·±Ð&7Ñ7Ð7Ø%¨¨q°$·&±&Ð(9Ñ9Ð9à—;‘;˜tŸv™vÓ&Ð&ru   c                óV  — | j                  |j                  «      }|j                  rt        d„ |j                  D «       «      st	        |j
                  «      dkD  rÊ|dz  }t	        |j
                  «      dkD  r|| j                  |j
                  «      z  }n-|j
                  r!|| j                  |j
                  d   «      z  }|dz  }t	        |j                  «      dkD  r#|| j                  |j                  «      z  }d|z  S || j                  |j                  d   «      z  }d|z  S )Nc              3  óB   K  — | ]  }|t         j                  k7  –— Œ y ­wr  )r   rB  )r,  rð  s     rs   r.  z,LatexPrinter._print_Order.<locals>.<genexpr>J  s   è ø€ Ò>¨a˜a¤1§6¡6�kÑ>ùs   ‚rk  rð  r   ú\rightarrow zO\left(%s\right))r  r  Úpointr8  r‚  Ú	variables)r÷   r  rr   s      rs   Ú_print_OrderzLatexPrinter._print_OrderH  s÷   € Ø�K‰K˜Ÿ	™	Ó"ˆØ�:Š:œ#Ñ>°4·:±:Ô>Ô>Üˆt�~‰~Ó Ò"Ø�‰IˆAÜ�4—>‘>Ó" QÒ&Ø�T—[‘[ §¡Ó0Ñ0‘Ø—’Ø�T—[‘[ §¡°Ñ!2Ó3Ñ3�Ø�Ñ ˆAÜ�4—:‘:‹ Ò"Ø�T—[‘[ §¡Ó,Ñ,�ð # QÑ&Ð&ð �T—[‘[ §¡¨A¡Ó/Ñ/�Ø" QÑ&Ð&ru   c                ó€   — | j                   d   j                  |«      }|�|S | j                  |j                  |¬«      S )NrÇ   ©Ústyle)rñ   rö   rL  rP  )r÷   r  r²  rP  s       rs   Ú_print_SymbolzLatexPrinter._print_SymbolX  s@   € Ø—N‘N >Ñ2×6Ñ6°tÓ<ˆØÐØˆKà×(Ñ(¨¯©¸%Ð(Ó@Ð@ru   c                óT  — d|v r|g g }}}nJt        |«      \  }}}t        |«      }|D �cg c]  }t        |«      ‘Œ }}|D �cg c]  }t        |«      ‘Œ }}|dk(  rdj                  |«      }|r|ddj                  |«      z  z  }|r|ddj                  |«      z  z  }|S c c}w c c}w )Nr“   r–   ú\mathbf{{{}}}rh  rÛ   r8  )r   Ú	translater   rO  )r÷   Ústringr²  rP  ÚsupersrZ  r—  r   s           rs   rL  z!LatexPrinter._deal_with_super_suba  s»   € Ø�&‰=Ø!'¨¨R˜$�&‰Dä!0°Ó!8ÑˆD�&˜$ä˜T“?ˆDØ06Ö7¨”i •nÐ7ˆFÐ7Ø.2Ö3 s”I˜c•NÐ3ˆDÐ3ð �FŠ?Ø#×*Ñ*¨4Ó0ˆDñ Ø�G˜cŸh™h vÓ.Ñ.Ñ.ˆDÙØ�G˜cŸh™h t›nÑ,Ñ,ˆDàˆùò 8ùÚ3s   ªB ÁB%c                óÖ   — | j                   d   rd}d}nd}d}d||ddd	d
œ}| j                  |j                  «      ›d||j                     ›d| j                  |j                  «      ›�S )Nr½   z\gtz\ltú>ú<rW  z\geqz\leqz\neq)z==rº  r»  z>=z<=z!=rÛ   )rñ   r  ÚlhsÚrel_opÚrhs)r÷   r  ÚgtÚltÚcharmaps        rs   Ú_print_RelationalzLatexPrinter._print_Relationalw  sv   € Ø�>‰>˜&Ò!ØˆBØ‰BàˆBØˆBð ØØØØØñ
ˆð "Ÿ[™[¨¯©Õ2Ø$ T§[¡[Ó1°4·;±;¸t¿x¹xÔ3HðJð 	Jru   c           	     ó<  — |j                   d d D ��cg c]*  \  }}| j                  |«      ›d| j                  |«      ›�‘Œ, }}}|j                   d   j                  t        k(  r;|j	                  d| j                  |j                   d   j
                  «      z  «       nb|j	                  | j                  |j                   d   j
                  «      ›d| j                  |j                   d   j                  «      ›�«       d}|dj                  |«      z  S c c}}w )Nrj  z & \text{for}\: z%s & \text{otherwise}z\begin{cases} %s \end{cases}ra  )r@  r  Úcondr   r-  r  rO  )r÷   r  rW  r²   Úecpairsr  s         rs   Ú_print_PiecewisezLatexPrinter._print_Piecewise‹  sí   € à#Ÿy™y¨¨"˜~÷/Ù�q˜!ð /3¯k©k¸!­n¸d¿k¹kÈ!¼nÒMð /ˆñ /à�9‰9�R‰=×Ñ¤Ò%Ø�N‰NÐ3ØŸ;™; t§y¡y°¡}×'9Ñ'9Ó:ñ;õ <ð �N‰NØ ŸK™K¨¯	©	°"©×(:Ñ(:Õ;Ø ŸK™K¨¯	©	°"©×(:Ñ(:Ô;ð=ô >ð .ˆØ�V—[‘[ Ó)Ñ)Ð)ùó/s   “/Dc                óè  — g }t        |j                  «      D ]F  }|j                  dj                  ||d d …f   D �cg c]  }| j	                  |«      ‘Œ c}«      «       ŒH | j
                  d   }|€+| j
                  d   dk(  rd}n|j                  dk  du rd}nd	}d
}|j                  d|«      }|d	k(  r%|j                  ddd|j                  z  z   dz   «      }|dj                  |«      z  S c c}w )Nr}  rÂ   rÃ   rÙ   Úsmallmatrixé
   TÚmatrixÚarrayú \begin{%MATSTR%}%s\end{%MATSTR%}ú%MATSTR%r‘  r“   r²   ú}%sr  )r�  Úrowsr-  rO  r  rñ   Úcolsr±   )r÷   r  ÚlinesÚlinerË   rÂ   Úout_strs          rs   Ú_print_matrix_contentsz#LatexPrinter._print_matrix_contents˜  sï   € Øˆä˜$Ÿ)™)Ó$ò 	NˆDØ�L‰L˜Ÿ™¸TÀ$ÊÀ'¹]Ö$K¸ T§[¡[°¥^Ò$KÓLÕMð	Nð —.‘. Ñ+ˆØˆ?Ø�~‰~˜fÑ%¨Ò1Ø'‘à—I‘I ‘O¨Ñ,Ø&‘Gà%�Gà5ˆØ—/‘/ *¨gÓ6ˆØ�gÒØ—o‘o d¨C°#°d·i±i±-Ñ,?À%Ñ,GÓHˆGØ˜Ÿ™ EÓ*Ñ*Ð*ùò! %Ls   ¼C/c                óž   — | j                  |«      }| j                  d   r,| j                  d   }| j                  |   }d|z   |z   dz   |z   }|S )NrÀ   ú\leftú\right)rÔ  rñ   rõ   )r÷   r  rÓ  Ú
left_delimÚright_delims        rs   Ú_print_MatrixBasezLatexPrinter._print_MatrixBase®  s`   € Ø×-Ñ-¨dÓ3ˆØ�>‰>˜+Ò&ØŸ™¨Ñ4ˆJØ×*Ñ*¨:Ñ6ˆKØ Ñ+¨gÑ5Øñ Ø"-ñ.ˆGàˆru   c                óÐ   — | j                  |j                  t        d   d¬«      }| j                  |j                  «      › d| j                  |j
                  «      › �}d|› d|› d�S )NrÂ  T©r  rl  r“   ú}_{ro   )r  Úparentr!   r  rË   rç   )r÷   r  Úmatrix_partÚ
index_parts       rs   Ú_print_MatrixElementz!LatexPrinter._print_MatrixElement·  sd   € Ø×'Ñ'¨¯©´ZÀÑ5GÐPTÐ'ÓUˆØŸ™ D§F¡FÓ+Ð,¨A¨d¯k©k¸$¿&¹&Ó.AÐ-BÐCˆ
Ø�K�=  j \°Ð4Ð4ru   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 )NrØ  rk  r   ú:c              3  óH   •K  — | ]  }|�‰j                  |«      nd–— Œ y ­w©Nrâ   rR  )r,  Úxir÷   s     €rs   r.  zFLatexPrinter._print_MatrixSlice.<locals>.latexslice.<locals>.<genexpr>Å  s"   øè ø€ ÒRÈ"¨r¨~˜DŸK™K¨œOÀ2ÓEÑRùs   ƒ")rÆ  rO  )r-  rM  r÷   s     €rs   Ú
latexslicez3LatexPrinter._print_MatrixSlice.<locals>.latexslice½  s\   ø€ Ü�Q“ˆAØ�‰t�qŠyØ�a�DØ�‰t�qŠyØ��!‘Ø�‰t�sŠ{Ø��!‘Ø—8‘8ÓRÐPQÔRÓRÐRru   rÂ  TrÜ  ú\left[rK  ú\right])r  rÞ  r!   ÚrowslicerÏ  ÚcolslicerÐ  )r÷   r  rè  s   `  rs   Ú_print_MatrixSlicezLatexPrinter._print_MatrixSlice¼  s�   ø€ ô	Sð ×!Ñ! $§+¡+¬z¸&Ñ/AÈ$Ð!ÓOÐR[Ñ[Ù˜4Ÿ=™=¨$¯+©+×*:Ñ*:Ó;ñ<Ø>BñCá˜4Ÿ=™=¨$¯+©+×*:Ñ*:Ó;ñ<à>HñIð 	Jru   c                ó8   — | j                  |j                  «      S r  )r  Úblocksr  s     rs   Ú_print_BlockMatrixzLatexPrinter._print_BlockMatrixÊ  s   € Ø�{‰{˜4Ÿ;™;Ó'Ð'ru   c                óî   — |j                   }ddlm}m} t	        ||«      s,t	        ||«      s |j
                  rd| j                  |«      z  S | j                  |t        |«      d«      }d|v rd|z  S d|z  S )Nr   ©ÚMatrixSymbolÚBlockMatrixz\left(%s\right)^{T}Tr°   z%s^{T})	r<   Úsympy.matricesró  rô  rÁ  Úis_MatrixExprr  r  r   )r÷   r  r‡  ró  rô  rr   s         rs   Ú_print_TransposezLatexPrinter._print_TransposeÍ  st   € Ø�h‰hˆß<Ü˜3 Ô-Ü˜3 Ô,°×1BÒ1BØ)¨D¯K©K¸Ó,<Ñ<Ð<à×!Ñ! #Ô'=¸dÓ'CÀTÓJˆAØ�a‰xØ-°Ñ1Ð1à !‘|Ð#ru   c                óB   — |j                   }d| j                  |«      z  S )Nz!\operatorname{tr}\left(%s \right))r<   r  ©r÷   r  r‡  s      rs   Ú_print_TracezLatexPrinter._print_TraceÚ  s   € Ø�h‰hˆØ3°d·k±kÀ#Ó6FÑFÐFru   c                óN  — ddddœ}|j                  | j                  d   d«      }|j                  }ddlm}m} t        ||«      s0t        ||«      s$|j                  rd| j                  |«      ›d	|›d
�S | j                  |t        |«      d«      }d|v r	d|›d	|›d
�S |›d|›d
�S )Nz\daggerz\astz
\mathsf{H})rÎ   ÚstarÚ	hermitianrÖ   r   rò  rE  rF  ro   Tr°   r÷  )rö   rñ   r<   rõ  ró  rô  rÁ  rö  r  r  r   )r÷   r  Ústyle_to_latexrÖ   r‡  ró  rô  rr   s           rs   Ú_print_AdjointzLatexPrinter._print_AdjointÞ  s¢   € à#Ø Ø&ñ
ˆð
 '×*Ñ*¨4¯>©>¸/Ñ+JÈJÓWˆØ�h‰hˆß<Ü˜3 Ô-Ü˜3 Ô,°×1BÓ1BØ.2¯k©k¸#Õ.>ÂÐNÐNà×!Ñ! #Ô'=¸dÓ'CÀTÓJˆAØ�aŠxÚ23²]ÐCÐCâ%&ªÐ6Ð6ru   c                ó  ‡ ‡‡— ddl mŠ ˆˆˆ fd„}t        ‰j                  «      }‰j	                  «       r5|d   dk(  r|dd  }n	|d    |d<   ddj                  t        ||«      «      z   S dj                  t        ||«      «      S )Nr   )ÚMatMulc                ó–   •— t        | t        «      rt        | ‰«      s‰j                  | «      S ‰j                  | t	        ‰«      d«      S ©NF)rÁ  r
   r  r  r   )r-  r  r  r÷   s    €€€rs   rt   z,LatexPrinter._print_MatMul.<locals>.<lambda>õ  s@   ø€ ¬Z¸¼3Ô-?Ì
ÐSTÐV\ÔH]˜4Ÿ;™; q›>€ Ø×Ñ˜aÔ!7¸Ó!=¸uÓEð ru   rj  rk  rÕ  rÛ   )Úsympyr  rÆ  r@  r5  rO  r9  )r÷   r  Úparensr@  r  s   ``  @rs   Ú_print_MatMulzLatexPrinter._print_MatMulñ  s   ú€ Ý õFˆô �D—I‘I‹ˆØ×(Ñ(Ô*Ø�A‰w˜"Š}Ø˜A˜B�x‘à ™7˜(��Q‘Ø˜#Ÿ(™(¤3 v¨tÓ#4Ó5Ñ5Ð5à—8‘8œC ¨Ó-Ó.Ð.ru   c                óâ   — |j                   }|j                  rDddlm} t	        ||«      rd| j                  |j                  «      z  S d| j                  |«      z  S d| j                  |«      z  S )Nr   )rô  r¿  )r<   rö  Ú&sympy.matrices.expressions.blockmatrixrô  rÁ  rÔ  rï  r  )r÷   r  r‡  rô  s       rs   Ú_print_DeterminantzLatexPrinter._print_Determinant  se   € Ø�h‰hˆØ×ÒÝJÜ˜#˜{Ô+Ø+¨d×.IÑ.IÈ#Ï*É*Ó.UÑUÐUØ'¨$¯+©+°cÓ*:Ñ:Ð:Ø# d×&AÑ&AÀ#Ó&FÑFÐFru   c                ó\  — |�Xd| j                  |j                  d   t        d   d¬«      ›d| j                  |j                  d   t        d   d¬«      ›d|›d	�S | j                  |j                  d   t        d   d¬«      ›d| j                  |j                  d   t        d   d¬«      ›�S )
NrE  r   r
   TrÜ  z \bmod rk  rF  ro   r  rG  s      rs   Ú
_print_ModzLatexPrinter._print_Mod  sÄ   € Ø‰?à×"Ñ" 4§9¡9¨Q¡<´¸EÑ1BØ*.ð #õ 0à×"Ñ" 4§9¡9¨Q¡<´¸EÑ1BØ*.ð #õ 0âðð ð "&×!2Ñ!2°4·9±9¸Q±<Ü3=¸eÑ3DØ:>ð "3õ "@ð "&×!2Ñ!2°4·9±9¸Q±<Ü3=¸eÑ3DØ:>ð "3ô "@ðAð 	Aru   c                ó~   ‡‡— |j                   }t        d   Š| j                  Šdj                  ˆˆfd„|D «       «      S )Nr   z \circ c              3  ó4   •K  — | ]  } ‰|‰d ¬«      –— Œ y­w©TrÜ  Nrp   ©r,  r<   r  Úprecs     €€rs   r.  z6LatexPrinter._print_HadamardProduct.<locals>.<genexpr>!  ó   øè ø€ Ò<°‰V�C˜ d×+Ð+Ñ<ùó   ƒ©r@  r!   r  rO  ©r÷   r  r@  r  r  s      @@rs   Ú_print_HadamardProductz#LatexPrinter._print_HadamardProduct  s:   ù€ Ø�y‰yˆÜ˜%Ñ ˆØ×"Ñ"ˆà�‰Ü<°tÔ<ó>ð 	>ru   c                ón   — t        |j                  «      t        d   k  rd}nd}| j                  ||«      S )Nr
   z%s^{\circ \left({%s}\right)}z%s^{\circ {%s}})r   rH  r!   rü  )r÷   r  r  s      rs   Ú_print_HadamardPowerz!LatexPrinter._print_HadamardPower#  s5   € Ü! $§(¡(Ó+¬j¸Ñ.?Ò?Ø6‰Hà)ˆHØ×0Ñ0°°xÓ@Ð@ru   c                ó~   ‡‡— |j                   }t        d   Š| j                  Šdj                  ˆˆfd„|D «       «      S )Nr   ú	 \otimes c              3  ó4   •K  — | ]  } ‰|‰d ¬«      –— Œ y­wr  rp   r  s     €€rs   r.  z7LatexPrinter._print_KroneckerProduct.<locals>.<genexpr>0  r  r  r  r  s      @@rs   Ú_print_KroneckerProductz$LatexPrinter._print_KroneckerProduct*  s<   ù€ Ø�y‰yˆÜ˜%Ñ ˆØ×"Ñ"ˆà× Ñ Ü<°tÔ<ó>ð 	>ru   c                óD  — |j                   |j                  }}ddlm} t	        ||«      s3|j
                  r'd| j                  |«      ›d| j                  |«      ›d�S | j                  |«      }d|v rd|›d| j                  |«      ›d�S |›d| j                  |«      ›d�S )Nr   )ró  rE  rF  ro   r°   r÷  )rC  rH  rõ  ró  rÁ  rö  r  )r÷   r  rC  rH  ró  Úbase_strs         rs   Ú_print_MatPowzLatexPrinter._print_MatPow2  s‹   € Ø—I‘I˜tŸx™xˆcˆÝ/Ü˜$ Ô-°$×2DÓ2DØ/3¯{©{¸4Õ/@Ø.2¯k©k¸#Õ.>ð@ð @ð —{‘{ 4Ó(ˆHØ�hŠÚ2:¸D¿K¹KÈÕ<LÐMÐMâ$,¨d¯k©k¸#Õ.>Ð?Ð?ru   c                óB   — | j                  || j                  d   ¬«      S )NrÉ   r±  )r³  rñ   r  s     rs   Ú_print_MatrixSymbolz LatexPrinter._print_MatrixSymbol?  s(   € Ø×!Ñ! $¨d¯n©nØñ/ Ð!ó !ð 	!ru   c                ó.   — | j                   d   dk(  rdS dS )NrÉ   rÄ   Ú0z
\mathbf{0}©rñ   )r÷   ÚZs     rs   Ú_print_ZeroMatrixzLatexPrinter._print_ZeroMatrixC  ó(   € Ø—n‘nØñ Ø#*ò+ˆsð 	>Ø0=ð	>ru   c                ó.   — | j                   d   dk(  rdS dS )NrÉ   rÄ   Ú1z
\mathbf{1}r#  )r÷   ÚOs     rs   Ú_print_OneMatrixzLatexPrinter._print_OneMatrixG  r&  ru   c                ó.   — | j                   d   dk(  rdS dS )NrÉ   rÄ   z
\mathbb{I}z
\mathbf{I}r#  )r÷   rú  s     rs   Ú_print_IdentityzLatexPrinter._print_IdentityK  s(   € Ø $§¡Øñ! Ø#*ò!+ˆ}ð 	>Ø0=ð	>ru   c                óH   — | j                  |j                  d   «      }d|z  S )Nr   zP_{%s}r  )r÷   ÚPÚperm_strs      rs   Ú_print_PermutationMatrixz%LatexPrinter._print_PermutationMatrixO  s#   € Ø—;‘;˜qŸv™v a™yÓ)ˆØ˜(Ñ"Ð"ru   c           
     ó>  — |j                  «       dk(  r| j                  |d   «      S | j                  d   }|€?| j                  d   dk(  rd}n*|j                  «       dk(  s|j                  d   dk  rd	}nd
}d}|j	                  d|«      }|d
k(  r(|j	                  ddd|j                  d   z  z   dz   «      }| j                  d   r,| j                  d   }| j
                  |   }d|z   |z   dz   |z   }|j                  «       dk(  r|dz  S t        |j                  «       dz   «      D �cg c]  }g ‘Œ }}|j                  D �cg c]  }t        t        |«      «      ‘Œ }}t        j                  |Ž D ]û  }	|d   j                  | j                  ||	   «      «       d}
t        |j                  «       dz
  dd«      D ]°  }t        ||dz      «      |j                  |   k  r Œo|
r*||   j                  dj                  ||dz      «      «       nT||   j                  |dj                  ||dz      «      z  «       t        ||dz      «      dk(  rd||   d   z   dz   ||   d<   |
 }
g ||dz   <   Œ² Œý |d   d   }|j                  «       dz  dk(  r||z  }|S c c}w c c}w )Nr   rp   rÂ   rÃ   rÙ   rÈ  rj  rÉ  rÊ  rË  rÌ  rÍ  r‘  r“   r²   rÎ  rÀ   rÖ  r×  râ   rk  Tr}  r  ré  rê  rØ  )Úrankr  rñ   Úshaper±   rõ   r�  rÆ  Ú	itertoolsÚproductr-  r‚  rO  )r÷   r  rÂ   Ú	block_strrØ  rÙ  rË   Ú	level_strÚshape_rangesÚouter_iÚevenÚback_outer_irÓ  s                rs   Ú_print_NDimArrayzLatexPrinter._print_NDimArrayS  sË  € à�9‰9‹;˜!ÒØ—;‘;˜t B™xÓ(Ð(à—.‘. Ñ+ˆØˆ?Ø�~‰~˜fÑ%¨Ò1Ø'‘à—I‘I“K 1Ò$¨$¯*©*°R©.¸BÒ*>Ø&‘Gà%�GØ7ˆ	Ø×%Ñ% j°'Ó:ˆ	Ø�gÒØ!×)Ñ)¨$°°c¸$¿*¹*ÀQ¹-Ñ6GÑ0GÈ%Ñ0OÓPˆIà�>‰>˜+Ò&Ø"Ÿn™n¨[Ñ9ˆJØ×*Ñ*¨:Ñ6ˆKØ  :Ñ-°	Ñ9Ø!ñ"Ø$/ñ0ˆIð �9‰9‹;˜!ÒØ˜r‘>Ð!ä27¸¿	¹	»Àa¹Ó2HÖ%I¨Q¢bÐ%Iˆ	Ð%IØ04·
±
Ö;¨1œœU 1›X�Ð;ˆÐ;Ü ×(Ñ(¨,Ð7ò 	/ˆGØ�b‰M× Ñ  §¡¨T°'©]Ó!;Ô<ØˆDÜ % d§i¡i£k°!¡m°R¸Ó <ò /�Ü�y ¨a¡Ñ0Ó1°D·J±J¸|Ñ4LÒLÙÙØ˜lÑ+×2Ñ2ØŸ™ I¨l¸1©nÑ$=Ó>õ@ð ˜lÑ+×2Ñ2Ø! U§Z¡Z°	¸,Àq¹.Ñ0IÓ%JÑKôMä˜9 \°!¡^Ñ4Ó5¸Ò:Ø6?Ø% lÑ3°BÑ7ñ78Ø:Dñ7E˜	 ,Ñ/°Ñ3à�x�Ø,.�	˜, q™.Ò)ñ/ð	/ð$ ˜A‘,˜q‘/ˆà�9‰9‹;˜‰?˜aÒØ 'Ñ)ˆGàˆùò3 &JùÚ;s   Ä*	JÅJc                óZ  — | j                  |«      }d }d }|D ]‰  }|j                  }||v s|r
||k(  r|dz  }||k7  r|�|dz  }|j                  r|dz  }n|dz  }|| j                  |j                  d   «      z  }||v r|dz  }|| j                  ||   «      z  }d}nd}|}Œ‹ |�|dz  }|S )	Nrl  ro   z{}^{z{}_{r   rW  TF)r  Úis_upr@  )	r÷   rP  r:  Ú	index_maprÓ  Úlast_valenceÚprev_mapÚindexÚnew_valences	            rs   Ú_printer_tensor_indicesz$LatexPrinter._printer_tensor_indicesŠ  sè   € Ø—+‘+˜dÓ#ˆØˆØˆØò 	'ˆEØŸ+™+ˆKØ˜)Ñ#©Ø  KÒ/Ø˜3‘�Ø˜{Ò*ØÐ+Ø˜s‘N�GØ—;’;Ø˜vÑ%‘Gà˜vÑ%�GØ�t—{‘{ 5§:¡:¨a¡=Ó1Ñ1ˆGØ˜	Ñ!Ø˜3‘�Ø˜4Ÿ;™; y°Ñ'7Ó8Ñ8�Ø‘à �Ø&‰Lð'	'ð( Ð#Ø�s‰NˆGØˆru   c                ó€   — |j                   d   j                   d   }|j                  «       }| j                  ||i «      S r  )r@  Úget_indicesrD  )r÷   r  rP  r:  s       rs   Ú_print_TensorzLatexPrinter._print_Tensor¦  s=   € Ø�y‰y˜‰|× Ñ  Ñ#ˆØ×"Ñ"Ó$ˆØ×+Ñ+¨D°'¸2Ó>Ð>ru   c                óÀ   — |j                   j                  d   j                  d   }|j                   j                  «       }|j                  }| j	                  |||«      S r  )r  r@  rF  r?  rD  )r÷   r  rP  r:  r?  s        rs   Ú_print_TensorElementz!LatexPrinter._print_TensorElement«  sO   € Ø�y‰y�~‰~˜aÑ ×%Ñ% aÑ(ˆØ—)‘)×'Ñ'Ó)ˆØ—N‘Nˆ	Ø×+Ñ+¨D°'¸9ÓEÐEru   c                ó¨   — |j                  «       \  }}|dj                  |D �cg c]  }| j                  |t        |«      «      ‘Œ c}«      z   S c c}w ræ  )Ú!_get_args_for_traditional_printerrO  r  r    )r÷   r  r¨  r@  r<   s        rs   Ú_print_TensMulzLatexPrinter._print_TensMul±  sO   € à×;Ñ;Ó=‰
ˆˆdØ�b—g‘gØAEÖF¸#ˆT×Ñ˜s¤J¨tÓ$4Õ5ÒFó
ñ 
ð 	
ùÚFs   ¤"A
c           	     óê   — g }|j                   }|D ],  }|j                  | j                  |t        |«      «      «       Œ. |j	                  «        dj                  |«      }|j                  dd«      }|S )Nr^  z+ -rÕ  )r@  r-  r  r    r,  rO  r±   )r÷   r  rç  r@  r-  rr   s         rs   Ú_print_TensAddzLatexPrinter._print_TensAdd¸  sh   € ØˆØ�y‰yˆØò 	=ˆAØ�H‰H�T×&Ñ& q¬*°TÓ*:Ó;Õ<ð	=à	�‰ŒØ�J‰J�q‹MˆØ�I‰I�e˜TÓ"ˆØˆru   c                óh   — d|j                   rdnd›d| j                  |j                  d   «      ›d�S )Nz{}r°   rw  r“   r   ro   )r>  r  r@  r  s     rs   Ú_print_TensorIndexzLatexPrinter._print_TensorIndexÂ  s.   � à—:’:‰C 3Ñ&Ø�K‰K˜Ÿ	™	 !™Õ%ð
ð 	
ru   c                ó¾  — t        |j                  «      dk(  rGd| j                  |j                  d   «      ›d| j                  |j                  t
        d   d«      ›d�S dt        |j                  «      ›dd	j                  |j                  D �cg c]  }d
| j                  |«      z  ‘Œ c}«      ›d| j                  |j                  t
        d   d«      ›d�S c c}w )Nrk  z\frac{\partial}{\partial {r   rE  r
   Fro   z\frac{\partial^{rÛ   z\partial {%s}rÚ  )r‚  r®  r  r  r  r!   rO  ©r÷   r  rË   s      rs   Ú_print_PartialDerivativez%LatexPrinter._print_PartialDerivativeÈ  s±   € Üˆt�~‰~Ó !Ó#à—‘˜DŸN™N¨1Ñ-Õ.Ø×!Ñ! $§)¡)¬Z¸Ñ->ÀÕFðð ð $ô �D—N‘NÕ#Ø—‘ÀTÇ^Á^ÖTÀÐ*¨T¯[©[¸«^Ó;ÒTÕUØ×!Ñ! $§)¡)¬Z¸Ñ->ÀÕFðð ùâTs   ÂCc                ó8   — | j                  |j                  «      S r  )r  rP  r  s     rs   Ú_print_ArraySymbolzLatexPrinter._print_ArraySymbolÕ  s   € Ø�{‰{˜4Ÿ9™9Ó%Ð%ru   c                óÐ   — d| j                  |j                  t        d   d«      ›ddj                  |j                  D �cg c]  }| j                  |«      › ‘Œ c}«      ›d�S c c}w )Nz{{r  TrÝ  rK  rø  )r  rP  r!   rO  r:  r  rR  s      rs   Ú_print_ArrayElementz LatexPrinter._print_ArrayElementØ  sU   � à×Ñ˜dŸi™i¬°FÑ);¸TÕBØ�I‰I°D·L±LÖA¨q˜$Ÿ+™+ a›.Ð)Ñ*ÒAÕBðDð 	DùâAs   Á A#c                 ó   — y)Nz
\mathbb{U}rp   r  s     rs   Ú_print_UniversalSetz LatexPrinter._print_UniversalSetÝ  ó   € Øru   c                ó’   — |€!d| j                  |j                  d   «      z  S d| j                  |j                  d   «      ›d|›d�S )Nz$\operatorname{frac}{\left(%s\right)}r   z\operatorname{frac}{\left(z
\right)}^{ro   r  rG  s      rs   Ú_print_fraczLatexPrinter._print_fracà  sK   € Øˆ;Ø:¸T¿[¹[ÈÏÉÐSTÉÓ=VÑVÐVð ð —K‘K §	¡	¨!¡Õ-ªsð4ð 4ru   c           
     ó^  — | j                   d   dk(  rd}n | j                   d   dk(  rd}nt        d«      ‚t        |«      dk(  r&| j                  | j	                  |d   «      |z   «      S | j                  |d	z   j                  |D �cg c]  }| j	                  |«      ‘Œ c}«      «      S c c}w )
NrÐ   r“  ú;rÌ   rl  úUnknown Decimal Separatorrk  r   z \  )rñ   rò   r‚  r  r  rO  )r÷   r  ÚseprË   s       rs   Ú_print_tuplezLatexPrinter._print_tupleç  s§   € Ø�>‰>Ð-Ñ.°'Ò9Ø‰CØ�^‰^Ð/Ñ0°HÒ<Ø‰CäÐ8Ó9Ð9äˆt‹9˜Š>à×*Ñ*¨4¯;©;°t¸A±wÓ+?À#Ñ+EÓFÐFà×*Ñ*Ø�w‘×$Ñ$¸dÖ%C¸ d§k¡k°!¥nÒ%CÓDóFð FùÚ%Cs   ÂB*c                ó~   — |j                   D �cg c]  }| j                  |«      ‘Œ }}dj                  |«      S c c}w )Nr  ©r@  r  rO  ©r÷   r  rç  Úelementss       rs   Ú_print_TensorProductz!LatexPrinter._print_TensorProductö  s7   € Ø,0¯I©IÖ6 q�D—K‘K •NÐ6ˆÐ6Ø× Ñ  Ó*Ð*ùò 7ó   �:c                ó~   — |j                   D �cg c]  }| j                  |«      ‘Œ }}dj                  |«      S c c}w )Nú \wedge rc  rd  s       rs   Ú_print_WedgeProductz LatexPrinter._print_WedgeProductú  s7   € Ø,0¯I©IÖ6 q�D—K‘K •NÐ6ˆÐ6Ø×Ñ Ó)Ð)ùò 7rg  c                ó$   — | j                  |«      S r  )ra  r  s     rs   Ú_print_TuplezLatexPrinter._print_Tupleþ  s   € Ø× Ñ  Ó&Ð&ru   c           	     ó8  — | j                   d   dk(  r1ddj                  |D �cg c]  }| j                  |«      ‘Œ c}«      z  S | j                   d   dk(  r1ddj                  |D �cg c]  }| j                  |«      ‘Œ c}«      z  S t        d«      ‚c c}w c c}w )NrÐ   r“  z\left[ %s\right]z; \  rÌ   ú, \  r_  )rñ   rO  r  rò   rR  s      rs   Ú_print_listzLatexPrinter._print_list  s–   € Ø�>‰>Ð-Ñ.°'Ò9Ø&Ø—‘°tÖ<°!˜tŸ{™{¨1�~Ò<Ó=ñ>ð >à�^‰^Ð/Ñ0°HÒ<Ø&Ø—‘°tÖ<°!˜tŸ{™{¨1�~Ò<Ó=ñ>ð >ô Ð8Ó9Ð9ùò =ùò =s   £B
Á&B
c                óì   — t        |j                  «       t        ¬«      }g }|D ];  }||   }|j                  | j	                  |«      ›d| j	                  |«      ›�«       Œ= ddj                  |«      z  S )Nr"  z : z\left\{ %s\right\}rn  )r´  Úkeysr   r-  r  rO  )r÷   rÍ   rq  r*  r#  Úvals         rs   Ú_print_dictzLatexPrinter._print_dict  sm   € Ü�a—f‘f“hÔ$4Ô5ˆØˆàò 	KˆCØ�C‘&ˆCØ�L‰L d§k¡k°#Õ&6¸¿¹ÀCÔ8HÐIÕJð	Kð % x§}¡}°UÓ';Ñ;Ð;ru   c                ó$   — | j                  |«      S r  )rs  r  s     rs   Ú_print_DictzLatexPrinter._print_Dict  s   € Ø×Ñ Ó%Ð%ru   c                ó6  — t        |j                  «      dk(  s|j                  d   dk(  r"d| j                  |j                  d   «      z  }nAd| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�}|r	d|›d|›d	�}|S )
Nrk  r   z\delta\left(%s\right)z\delta^{\left( z \right)}\left( r¯  rE  rF  ro   rí  r¸  s       rs   Ú_print_DiracDeltazLatexPrinter._print_DiracDelta  s„   € Üˆt�y‰y‹>˜QÒ $§)¡)¨A¡,°!Ò"3Ø*¨T¯[©[¸¿¹À1¹Ó-FÑF‰Cð #4ð —‘˜DŸI™I a™LÕ)¨4¯;©;°t·y±yÀ±|Õ+DðFˆCâÚ-0²#Ð6ˆCØˆ
ru   c                óÌ   — | j                  |j                  d   |j                  d   z
  «      }| j                  |j                  d   «      }d|›d|›d�}|�d|›d|›d	|›d�}|S )
Nr   rk  rØ  z{\left\langle z \right\rangle}^{ro   z{\left({\langle z \rangle}^{z}\right)}^{r  )r÷   r  rH  Úshiftr�  r  s         rs   Ú_print_SingularityFunctionz'LatexPrinter._print_SingularityFunction#  s\   € Ø—‘˜DŸI™I a™L¨4¯9©9°Q©<Ñ7Ó8ˆØ—‘˜DŸI™I a™LÓ)‰Ú9>ÂÐFˆØ‰?ÚFKÊUÒTWÐXˆCØˆ
ru   c                óp   ‡ — dj                  ˆ fd„|j                  D «       «      }d|z  }|r	d|›d|›d�}|S )NrK  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  ©r,  r<   r÷   s     €rs   r.  z0LatexPrinter._print_Heaviside.<locals>.<genexpr>,  s   øè ø€ ÒA¨s˜$Ÿ+™+ c×*ÑAùr0  z\theta\left(%s\right)rE  rF  ro   )rO  Úpargs)r÷   r  rH  r~  r  s   `    rs   Ú_print_HeavisidezLatexPrinter._print_Heaviside+  s7   ø€ Ø—	‘	ÓA°d·j±jÔAÓAˆØ&¨Ñ.ˆÚÚ-0²#Ð6ˆCØˆ
ru   c                ó  — | j                  |j                  d   «      }| j                  |j                  d   «      }|j                  d   j                  r#|j                  d   j                  r
d|›d|›d�}n	d|›d|›d�}|�	d|›d|›d�}|S )	Nr   rk  z\delta_{rÛ   ro   rK  rE  rF  )r  r@  r  )r÷   r  rH  rË   rç   r  s         rs   Ú_print_KroneckerDeltaz"LatexPrinter._print_KroneckerDelta2  sx   € Ø�K‰K˜Ÿ	™	 !™Ó%ˆØ�K‰K˜Ÿ	™	 !™Ó%ˆØ�9‰9�Q‰<×Ò D§I¡I¨a¡L×$8Ó$8Ú'(ª!Ð,‰Cøâ()ª1Ð-ˆCØ‰?Ú-0²#Ð6ˆCØˆ
ru   c                óæ   — t        | j                  |j                  «      }t        d„ |j                  D «       «      rddj	                  |«      z  }nddj	                  |«      z  }|r	d|›d|›d�}|S )Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­wr  )r  )r,  r-  s     rs   r.  z1LatexPrinter._print_LeviCivita.<locals>.<genexpr>?  s   è ø€ Ò,˜Qˆq�y�yÑ,ùs   ‚z\varepsilon_{%s}rÛ   rK  rE  rF  ro   )r9  r  r@  rj  rO  )r÷   r  rH  r:  r  s        rs   Ú_print_LeviCivitazLatexPrinter._print_LeviCivita=  s`   € Ü�d—k‘k 4§9¡9Ó-ˆÜÑ, $§)¡)Ô,Ô,Ø%¨¯©°Ó(9Ñ9‰Cà%¨¯	©	°'Ó(:Ñ:ˆCÚÚ-0²#Ð6ˆCØˆ
ru   c                óf  — t        |d«      r"d| j                  |j                  «       «      z   S t        |d«      r=d| j                  |j                  «      z   dz   | j                  |j                  «      z   S t        |d«      rd| j                  |j                  «      z   S | j                  d «      S )NÚ
as_booleanz\text{Domain: }Úsetú \in rl  z\text{Domain on })rÀ  r  r†  rl  r‡  )r÷   rÍ   s     rs   Ú_print_RandomDomainz LatexPrinter._print_RandomDomainG  s•   € Ü�1�lÔ#Ø%¨¯©°A·L±L³NÓ(CÑCÐCÜ�Q˜ÔØ&¨¯©°Q·Y±YÓ)?Ñ?À(ÑJØ—K‘K §¡Ó&ñ'ð (ä�Q˜	Ô"Ø'¨$¯+©+°a·i±iÓ*@Ñ@Ð@à—;‘;˜tÓ$Ð$ru   c                óZ   — t        |j                  t        ¬«      }| j                  |«      S )Nr"  )r´  r@  r   Ú
_print_set©r÷   rr   r*  s      rs   Ú_print_FiniteSetzLatexPrinter._print_FiniteSetR  s"   € Ü�q—v‘vÔ#3Ô4ˆØ�‰˜uÓ%Ð%ru   c                ó*  — t        |t        ¬«      }| j                  d   dk(  r*dj                  t	        | j
                  |«      «      }d|z  S | j                  d   dk(  r*dj                  t	        | j
                  |«      «      }d|z  S t        d«      ‚)	Nr"  rÐ   r“  rð  rÌ   rK  r_  ú\left\{%s\right\})r´  r   rñ   rO  r9  r  rò   rŒ  s      rs   r‹  zLatexPrinter._print_setV  s�   € Ü�qÔ.Ô/ˆØ�>‰>Ð-Ñ.°'Ò9Ø—I‘Iœc $§+¡+¨uÓ5Ó6ˆEð
 $ eÑ+Ð+ð	 �^‰^Ð/Ñ0°HÒ<Ø—I‘Iœc $§+¡+¨uÓ5Ó6ˆEð $ eÑ+Ð+ô Ð8Ó9Ð9ru   c                ó´  ‡ ‡‡— ˆˆ fd„}t        «       Š‰j                  j                  r<‰j                  j                  r&‰j                  j
                  r‰ddd‰f}nÛ‰ddd‰f}nÓ‰j                  j                  r‰‰d   ‰j                  z
  ‰d   f}n¤‰j                  j                  r#t        ‰«      }t        |«      t        |«      ‰f}nk‰j                  �X‰j                  dk  dk(  rt        ‰«      }nA‰j                  r't        ‰«      }t        |«      t        |«      ‰‰d   f}n |«       S  |«       S ddj                  ˆˆ fd	„|D «       «      z   d
z   S )Nc                 óœ  •— ‰j                   d   dk(  rV‰j                   d   dk(  r‰j                  ‰j                   d   «      } nƒdj                  ˆfd„‰j                   D «       «      } n^‰j                   d   dk(  r(dj                  ˆfd„‰j                   d d D «       «      } n$dj                  ˆfd„‰j                   D «       «      } d| › d	�S )
Nr   rØ  rk  rK  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  r}  s     €rs   r.  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>j  ó   øè ø€ Ò$H¸# T§[¡[°×%5Ñ$Hùr0  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  r}  s     €rs   r.  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>m  s   øè ø€ Ò$L¸# T§[¡[°×%5Ñ$Lùr0  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  r}  s     €rs   r.  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>o  r“  r0  z\text{Range}\left(rn  rc  )Úcontrr   r÷   s    €€rs   Ú_print_symbolic_rangez8LatexPrinter._print_Range.<locals>._print_symbolic_ranged  s£   ø€ à�v‰v�a‰y˜AŠ~Ø—6‘6˜!‘9 ’>ØŸ;™; q§v¡v¨a¡yÓ1‘DàŸ9™9Ó$HÀÇÁÔ$HÓH‘Dà—6‘6˜!‘9 ’>ØŸ9™9Ó$LÀÇÁÈÈÀÔ$LÓL‘DàŸ9™9Ó$HÀÇÁÔ$HÓH�Dà+¨D¨6°Ð:Ð;ru   rj  r   rk  rb  Tú\left\{rK  c              3  óL   •K  — | ]  }|‰ur‰j                  |«      nd –— Œ y­w©z\ldotsNrR  ©r,  ÚelÚdotsr÷   s     €€rs   r.  z,LatexPrinter._print_Range.<locals>.<genexpr>Š  ó%   øè ø€ Ò_ÐPR¨b¸©n˜4Ÿ;™; rœ?À)ÓKÑ_ùó   ƒ!$ú\right\})ÚobjectÚstartÚis_infiniteÚstopÚstepÚis_positiveÚiterÚnextÚis_emptyrp  r  Úis_iterablerO  )r÷   rr   r—  ÚprintsetÚitr�  s   ``   @rs   Ú_print_RangezLatexPrinter._print_Rangec  s2  ú€ õ	<ô ‹xˆà�7‰7×Ò 1§6¡6×#5Ò#5Ø�v‰v×!Ò!Ø  Q¨¨4Ð/‘à  A r¨4Ð/‘Ø�W‰W× Ò Ø˜Q˜r™U Q§V¡V™^¨Q¨r©UÐ2‰HØ�V‰V×ÒÜ�a“ˆBÜ˜B“x¤ b£¨4Ð/‰HØ�Z‰ZÐ#Ø—‘˜‘
˜tÒ#Ü  ›8‘Ø—’Ü˜!“W�Ü ›8¤T¨"£X¨t°Q°r±UÐ:‘á,Ó.Ð.á(Ó*Ð*ØØ—
‘
Ô_ÐV^Ô_Ó_ñ`àñð 	ru   c           
     ó¨  — t        |j                  «      dk(  r‹|�F|›d| j                  |j                  d   «      ›d|›d| j                  |j                  d   «      ›d�S |›d| j                  |j                  d   «      ›d| j                  |j                  d   «      ›d�S |›d| j                  |j                  d   «      ›d�}|�|›d	|›d�}|S )
NrØ  rf  r   rg  r#  rk  rn  ro   r÷  rí  )r÷   r  ÚletterrH  r  s        rs   Ú__print_number_polynomialz&LatexPrinter.__print_number_polynomial�  s·   € Üˆt�y‰y‹>˜QÒØˆÚ9?Ø ŸK™K¨¯	©	°!©Õ5²sØ ŸK™K¨¯	©	°!©Õ5ð7ð 7ò 17ØŸ™ D§I¡I¨a¡LÕ1°4·;±;¸t¿y¹yÈ¹|Õ3LðNð Nò # D§K¡K°·	±	¸!±Õ$=Ð>ˆØˆ?Ú #¢SÐ)ˆCØˆ
ru   c                ó(   — | j                  |d|«      S ©NÚB©Ú&_LatexPrinter__print_number_polynomialrG  s      rs   Ú_print_bernoullizLatexPrinter._print_bernoulli›  ó   € Ø×-Ñ-¨d°C¸Ó=Ð=ru   c                ó(   — | j                  |d|«      S )NÚGr´  rG  s      rs   Ú_print_genocchizLatexPrinter._print_genocchiž  r·  ru   c                óZ  ‡ — t        |j                  «      dk(  r€d‰ j                  |j                  d   «      ›d‰ j                  |j                  d   «      ›d�}ddj                  ˆ fd„|j                  d	   D «       «      z  }|�|›d
|›d|›�}|S ||z   }|S ‰ j	                  |d|«      S )Nr%  zB_{r   rK  rk  ro   r_  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  )r,  rœ  r÷   s     €rs   r.  z+LatexPrinter._print_bell.<locals>.<genexpr>¥  s#   øè ø€ ò 3CØ/1ð 48·;±;¸r·?ñ 3Cùr0  rØ  r÷  r³  )r‚  r@  r  rO  rµ  )r÷   r  rH  Útex1Útex2r  s   `     rs   Ú_print_bellzLatexPrinter._print_bell¡  s­   ø€ Üˆt�y‰y‹>˜QÓØ$(§K¡K°·	±	¸!±Õ$=Ø $§¡¨D¯I©I°a©LÕ 9ð;ˆDà%¨¯
©
ó 3CØ59·Y±Y¸q±\ô3Có )Cñ CˆDàˆÚ&*ªC±Ð6�ð ˆJð ˜T‘k�ØˆJØ×-Ñ-¨d°C¸Ó=Ð=ru   c                ó(   — | j                  |d|«      S ©NÚFr´  rG  s      rs   Ú_print_fibonaccizLatexPrinter._print_fibonacci®  r·  ru   c                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�}|S )NzL_{%s}r   r÷  ro   r  r¸  s       rs   Ú_print_lucaszLatexPrinter._print_lucas±  ó1   € Ø˜$Ÿ+™+ d§i¡i°¡lÓ3Ñ3ˆØˆ?Ú #¢SÐ)ˆCØˆ
ru   c                ó(   — | j                  |d|«      S )NÚTr´  rG  s      rs   Ú_print_tribonaccizLatexPrinter._print_tribonacci·  r·  ru   c                ó’   — |€!d| j                  |j                  d   «      z  S d|›d| j                  |j                  d   «      ›d�S )Nz\mu\left(%s\right)r   z\mu^{r#  rn  r  rG  s      rs   Ú_print_mobiuszLatexPrinter._print_mobiusº  sD   € Øˆ;Ø(¨4¯;©;°t·y±yÀ±|Ó+DÑDÐDð â-0°$·+±+¸d¿i¹iÈ¹lÕ2KÐLÐLru   c           
     óT  ‡ ‡— t        «       Št        |j                  j                  «      dkD  s"t        |j                  j                  «      dkD  rvd‰ j                  |j                  «      ›d‰ j                  |j                  d   «      ›d‰ j                  |j                  «      ›d‰ j                  |j                  «      ›d�	S |j                  t        j                  u rY|j                  }‰|j                  |dz
  «      |j                  |dz
  «      |j                  |d	z
  «      |j                  |«      f}nM|j                  t        j                  u s|j                  d
kD  r|d d
 }|j                  ‰«       nt        |«      }ddj                  ˆˆ fd„|D «       «      z   dz   S )Nr   r˜  z
\right\}_{rW  rg  ro   r%  rØ  rk  rb  ré  rK  c              3  óL   •K  — | ]  }|‰ur‰j                  |«      nd –— Œ y­wrš  rR  r›  s     €€rs   r.  z1LatexPrinter._print_SeqFormula.<locals>.<genexpr>Ó  rž  rŸ  rê  )r¡  r‚  r¢  Úfree_symbolsr¤  r  Úformular®  r   rq  Úcoeffrp  Úlengthr-  r  rO  )r÷   rr   r¤  r«  r�  s   `   @rs   Ú_print_SeqFormulazLatexPrinter._print_SeqFormula¿  sH  ù€ Ü‹xˆÜˆq�w‰w×#Ñ#Ó$ qÒ(¬C°·±×0CÑ0CÓ,DÀqÒ,Høà—‘˜AŸI™IÕ&Ø—‘˜AŸK™K¨™NÕ+Ø—‘˜AŸG™GÕ$Ø—‘˜AŸF™FÕ#ð	ð ð �7‰7”a×(Ñ(Ñ(Ø—6‘6ˆDØ˜aŸg™g d¨Q¡hÓ/°·±¸À¹Ó1BØŸ™  q¡Ó)¨1¯7©7°4«=ð:‰Hà�V‰V”q—z‘zÑ! Q§X¡X°¢\Ø˜˜!�uˆHØ�O‰O˜DÕ!ä˜Q“xˆHàØ—
‘
Ô_ÐV^Ô_Ó_ñ`àñð 	ru   c                ó2  — |j                   |j                  k(  rd| j                  |j                   «      z  S |j                  rd}nd}|j                  rd}nd}d|›| j                  |j                   «      ›d| j                  |j                  «      ›d|›�S )	Nr�  ræ   rÁ   rä   rå   rÖ  rK  r×  )r¢  Úendr  Ú	left_openÚ
right_open)r÷   rË   ÚleftÚrights       rs   Ú_print_IntervalzLatexPrinter._print_IntervalÚ  s€   € Ø�7‰7�a—e‘eÒØ'¨$¯+©+°a·g±gÓ*>Ñ>Ð>ð �{Š{Ø‘à�à�|Š|Ø‘à�øñ ˜$Ÿ+™+ a§g¡gÕ.°·±¸A¿E¹EÕ0BÁEðKð Kru   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )Nz\left\langle rK  z\right\rangle)r  rÓ   rÔ   ©r÷   rË   s     rs   Ú_print_AccumulationBoundsz&LatexPrinter._print_AccumulationBoundsì  s+   � à—‘˜QŸU™UÕ# T§[¡[°·±Õ%7ð9ð 	9ru   c                ó–   — t        |«      }|j                  D �cg c]  }| j                  ||«      ‘Œ }}dj                  |«      S c c}w )Nz \cup ©r   r@  r  rO  ©r÷   Úur  rË   Úargs_strs        rs   Ú_print_UnionzLatexPrinter._print_Unionð  óE   € Ü% aÓ(ˆØ89¿¹Ö?°1�D×%Ñ% a¨Õ.Ð?ˆÐ?Ø�~‰~˜hÓ'Ð'ùò @ó   šAc                ó–   — t        |«      }|j                  D �cg c]  }| j                  ||«      ‘Œ }}dj                  |«      S c c}w )Nz \setminus rÞ  rß  s        rs   Ú_print_ComplementzLatexPrinter._print_Complementõ  óG   € Ü% aÓ(ˆØ89¿¹Ö?°1�D×%Ñ% a¨Õ.Ð?ˆÐ?Ø×"Ñ" 8Ó,Ð,ùò @rä  c                ó–   — t        |«      }|j                  D �cg c]  }| j                  ||«      ‘Œ }}dj                  |«      S c c}w )Nz \cap rÞ  rß  s        rs   Ú_print_Intersectionz LatexPrinter._print_Intersectionú  rã  rä  c                ó–   — t        |«      }|j                  D �cg c]  }| j                  ||«      ‘Œ }}dj                  |«      S c c}w )Nz \triangle rÞ  rß  s        rs   Ú_print_SymmetricDifferencez'LatexPrinter._print_SymmetricDifferenceÿ  rç  rä  c                ó0  ‡ ‡— t        |«      Št        |j                  «      dk\  rMt        |j                  «      s8‰ j	                  |j                  d   ‰«      dt        |j                  «      z  z   S dj                  ˆˆ fd„|j                  D «       «      S )Nrk  r   z^{%d}rÝ   c              3  óB   •K  — | ]  }‰j                  |‰«      –— Œ y ­wr  )r  )r,  r‡  r  r÷   s     €€rs   r.  z1LatexPrinter._print_ProductSet.<locals>.<genexpr>	  s#   øè ø€ ò  <Ø-0ˆD×Ñ˜c 4×(ñ <ùs   ƒ)r   r‚  Úsetsr$   r  rO  )r÷   rð  r  s   ` @rs   Ú_print_ProductSetzLatexPrinter._print_ProductSet	  sy   ù€ Ü% aÓ(ˆÜˆq�v‰v‹;˜!Ò¤K°·±Ô$7Ø×$Ñ$ Q§V¡V¨A¡Y°Ó5¸Ä#ÀaÇfÁfÃ+Ñ8MÑMÐMØ×Ñô  <Ø45·F±Fô <ó <ð 	<ru   c                 ó   — y)Nz	\emptysetrp   rV  s     rs   Ú_print_EmptySetzLatexPrinter._print_EmptySet	  s   € Øru   c                 ó   — y)Nz
\mathbb{N}rp   ©r÷   r  s     rs   Ú_print_NaturalszLatexPrinter._print_Naturals	  rZ  ru   c                 ó   — y)Nz\mathbb{N}_0rp   ró  s     rs   Ú_print_Naturals0zLatexPrinter._print_Naturals0	  s   € Øru   c                 ó   — y©Nz
\mathbb{Z}rp   rÛ  s     rs   Ú_print_IntegerszLatexPrinter._print_Integers	  rZ  ru   c                 ó   — y©Nz
\mathbb{Q}rp   rÛ  s     rs   Ú_print_RationalszLatexPrinter._print_Rationals	  rZ  ru   c                 ó   — y©Nz
\mathbb{R}rp   rÛ  s     rs   Ú_print_RealszLatexPrinter._print_Reals	  rZ  ru   c                 ó   — y©Nz
\mathbb{C}rp   rÛ  s     rs   Ú_print_ComplexeszLatexPrinter._print_Complexes	  rZ  ru   c                óú   ‡ — |j                   j                  }|j                   j                  }ˆ fd„t        ||j                  «      D «       }dj                  d„ |D «       «      }d‰ j                  |«      ›d|›d�S )Nc              3  óh   •K  — | ])  \  }}‰j                  |«      ‰j                  |«      f–— Œ+ y ­wr  rR  )r,  r-  ró  r÷   s      €rs   r.  z/LatexPrinter._print_ImageSet.<locals>.<genexpr>#	  s*   øè ø€ ÒR±D°A°q�—‘˜A“ §¡¨A£Ô/ÑRùs   ƒ/2rK  c              3  ó&   K  — | ]	  }d |z  –— Œ y­w)ú	%s \in %sNrp   )r,  Úxys     rs   r.  z/LatexPrinter._print_ImageSet.<locals>.<genexpr>$	  s   è ø€ Ò;°˜<¨"Õ,Ñ;ùs   ‚r˜  ú\; \middle|\; r   )rX   r  Ú	signaturerY  Ú	base_setsrO  r  )r÷   rr   r  ÚsigÚxysÚxinyss   `     rs   Ú_print_ImageSetzLatexPrinter._print_ImageSet 	  s\   ø€ Ø�w‰w�|‰|ˆØ�g‰g×ÑˆÛR¼CÀÀQÇ[Á[Ó<QÔRˆØ—
‘
Ñ;°sÔ;Ó;‰Ø7;·{±{À4Õ7HÊ%ÐPÐPru   c           
     óŒ  — dj                  t        |j                  «      D �cg c]  }| j                  |«      ‘Œ c}«      }|j                  t
        j                  u r"d|›d| j                  |j                  «      ›d�S d|›d|›d| j                  |j                  «      ›d| j                  |j                  «      ›d�	S c c}w )NrK  r˜  r  ú	 \right\}rˆ  ri  )rO  r   r%  r  Úbase_setr   ÚUniversalSetÚ	condition©r÷   rr   rŒ  Ú
vars_prints       rs   Ú_print_ConditionSetz LatexPrinter._print_ConditionSet'	  s•   € Ø—Y‘Y¼EÀ!Ç%Á%»LÖI°S §¡¨CÕ 0ÒIÓJˆ
Ø�:‰:œŸ™Ò'â˜TŸ[™[¨¯©Õ5ð7ð 7ð (ò
 ÚØ�K‰K˜Ÿ
™
Õ#Ø�K‰K˜Ÿ™Õ$ð	&ð 	&ùò  Js   £Cc                ó`   — | j                  |j                  d   «      }dj                  |«      S )Nr   z\mathcal{{P}}\left({}\right)©r  r@  r   )r÷   r  Ú	arg_prints      rs   Ú_print_PowerSetzLatexPrinter._print_PowerSet3	  s)   € Ø—K‘K §	¡	¨!¡Ó-ˆ	Ø.×5Ñ5°iÓ@Ð@ru   c                óø   — dj                  |j                  D �cg c]  }| j                  |«      ‘Œ c}«      }d| j                  |j                  «      ›d|›d| j                  |j                  «      ›d�S c c}w )NrK  r˜  r  rˆ  r  )rO  r®  r  r  rî  r  s       rs   Ú_print_ComplexRegionz!LatexPrinter._print_ComplexRegion7	  s[   € Ø—Y‘Y¸A¿K¹KÖH°S §¡¨CÕ 0ÒHÓI‰
à�K‰K˜Ÿ™ÕÚØ�K‰K˜Ÿ™Õð!ð 	!ùò  Is   šA7c                óF   ‡ — dt        ˆ fd„|j                  D «       «      z  S )Nr  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  )r,  rç  r÷   s     €rs   r.  z/LatexPrinter._print_Contains.<locals>.<genexpr>?	  s   øè ø€ Ò#C°q D§K¡K°§NÑ#Cùr0  )r  r@  rV  s   ` rs   Ú_print_ContainszLatexPrinter._print_Contains>	  s   ø€ ØœeÓ#C¸A¿F¹FÔ#CÓCÑCÐCru   c                ó  — |j                   j                  t        j                  u rA|j                  j                  t        j                  u r| j                  |j                  «      S | j                  |j                  «       «      dz   S )Nz	 + \ldots)	rb  rÏ  r   rB  Úbnr  Úa0re  Útruncater  s     rs   Ú_print_FourierSeriesz!LatexPrinter._print_FourierSeriesA	  sV   € Ø�4‰4�<‰<œ1Ÿ6™6Ñ! a§d¡d§l¡l´a·f±fÑ&<Ø—;‘;˜qŸt™tÓ$Ð$Ø�‰˜qŸz™z›|Ó,¨|Ñ;Ð;ru   c                ó8   — | j                  |j                  «      S r  )re  Úinfiniter  s     rs   Ú_print_FormalPowerSeriesz%LatexPrinter._print_FormalPowerSeriesF	  s   € Ø�‰˜qŸz™zÓ*Ð*ru   c                ó    — d|j                   z  S )Nz\mathbb{F}_{%s})Úmodr  s     rs   Ú_print_FiniteFieldzLatexPrinter._print_FiniteFieldI	  s   € Ø! D§H¡HÑ,Ð,ru   c                 ó   — yrø  rp   r  s     rs   Ú_print_IntegerRingzLatexPrinter._print_IntegerRingL	  rZ  ru   c                 ó   — yrû  rp   r  s     rs   Ú_print_RationalFieldz!LatexPrinter._print_RationalFieldO	  rZ  ru   c                 ó   — yrþ  rp   r  s     rs   Ú_print_RealFieldzLatexPrinter._print_RealFieldR	  rZ  ru   c                 ó   — yr  rp   r  s     rs   Ú_print_ComplexFieldz LatexPrinter._print_ComplexFieldU	  rZ  ru   c                ó¦   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }|›d|›d�S )NrK  ré  rê  ©r  ÚdomainrO  r9  rl  ©r÷   r  r5  rl  s       rs   Ú_print_PolynomialRingz"LatexPrinter._print_PolynomialRingX	  ó<   € Ø—‘˜TŸ[™[Ó)ˆØ—)‘)œC §¡¨T¯\©\Ó:Ó;ˆÚ'-ªwÐ7Ð7ru   c                ó¦   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }|›d|›d�S )NrK  rE  rn  r4  r6  s       rs   Ú_print_FractionFieldz!LatexPrinter._print_FractionField]	  r8  ru   c                óÊ   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }d}|j
                  sd}|›|›d|›d�S )NrK  râ   zS_<^{-1}ré  rê  )r  r5  rO  r9  rl  Úis_Poly)r÷   r  r5  rl  Úinvs        rs   Ú_print_PolynomialRingBasez&LatexPrinter._print_PolynomialRingBaseb	  sO   € Ø—‘˜TŸ[™[Ó)ˆØ—)‘)œC §¡¨T¯\©\Ó:Ó;ˆØˆØ�|Š|ØˆCÙ),ªf²gÐ>Ð>ru   c           	     óp  — |j                   j                  }g }|j                  «       D �]P  \  }}d}t        |«      D ]]  \  }}|dkD  sŒ|dk(  r"|| j	                  |j
                  |   «      z  }Œ3|| j	                  t        |j
                  |   |«      «      z  }Œ_ |j                  r)|rd| j	                  |«      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«       �Œ>|j                  d|
g«       �ŒS |d   dv r!|j                  d«      }|dk(  rd|d   z   |d<   dj                  |«      }t        t!        | j                  |j
                  «      «      }d	| j	                  |j#                  «       «      z  }d
j                  |g|z   |gz   «      }|t$        v rd|›d|›d�}|S d|›d|›d�}|S )Nrâ   r   rk  r_  r’  r$  rÛ   )r$  r’  z	domain=%srK  r®   ú {\left(z	 \right)}rx  z	}{\left( )rM  rN  rb  ra  r  ÚgensÚpowr!  r   rÞ  Úextendr  r  ÚpoprO  rÆ  r9  Ú
get_domainrz  )r÷   Úpolyr¬  rb  ÚmonomrÐ  Ús_monomrË   rH  Ús_coeffÚs_termÚmodifierr  rA  r5  r@  r  s                    rs   Ú_print_PolyzLatexPrinter._print_Polyj	  s   € Ø�n‰n×%Ñ%ˆØˆØ ŸJ™J›Ló "	,‰LˆE�5ØˆGÜ# EÓ*ò G‘��3Ø˜“7Ø˜a’xØ 4§;¡;¨t¯y©y¸©|Ó#<Ñ<™à 4§;¡;¬s°4·9±9¸Q±<ÀÓ/EÓ#FÑF™ðGð �|Š|ÙØ0°4·;±;¸uÓ3EÑE‘Gà"Ÿk™k¨%Ó0‘GáØ¤§¡‘~ØŸ™ c¨7 ^Ô4Ø à¤§¡Ñ-ØŸ™ c¨7 ^Ô4Ø àŸ+™+ eÓ,�áØ ‘à  3™¨Ñ0�à× Ñ  Ô%Ø—‘˜c 6¨!¨" :Ð.Ö/à—‘˜c 6˜]Ö+ðE"	,ðH �‰8�zÑ!Ø—y‘y “|ˆHà˜3ŠØ  q¡™>��a‘à�x‰x˜‹ˆÜ”C˜Ÿ™ T§Y¡YÓ/Ó0ˆØ˜tŸ{™{¨4¯?©?Ó+<Ó=Ñ=ˆà�y‰y˜$˜ $™¨&¨Ñ1Ó2ˆØÔ*Ò*Ú/2²DÐ9ˆCð ˆ
ð +ò >AÂ$ÐGˆCàˆ
ru   c                óº   — |j                   j                  }|dk(  rd}| j                  |j                  «      }|j                  }|t
        v rd|||fz  S d|||fz  S )NÚComplexRootOfÚCRootOfz\%s {\left(%s, %d\right)}z'\operatorname{%s} {\left(%s, %d\right)})rM  rN  r  r  rB  rz  )r÷   r;   r¬  r  rB  s        rs   Ú_print_ComplexRootOfz!LatexPrinter._print_ComplexRootOf£	  sq   € Ø�n‰n×%Ñ%ˆØ�/Ò!ØˆCØ�{‰{˜4Ÿ9™9Ó%ˆØ—
‘
ˆØÔ*Ñ*Ø/°3¸¸eÐ2DÑDÐDà=ÀÀdØAFðAHñ Hð Hru   c                ób  — |j                   j                  }| j                  |j                  «      g}|j                  t
        j                  ur*|j                  | j                  |j                  «      «       |t        v rd|›ddj                  |«      ›d�S d|›ddj                  |«      ›d�S )Nr®   r@  rK  r  rx  z	} {\left()
rM  rN  r  r  Úfunr   ÚIdentityFunctionr-  rz  rO  )r÷   r  r¬  r@  s       rs   Ú_print_RootSumzLatexPrinter._print_RootSum¯	  s�   € Ø�n‰n×%Ñ%ˆØ—‘˜DŸI™IÓ&Ð'ˆà�8‰8œ1×-Ñ-Ñ-Ø�K‰K˜Ÿ™ D§H¡HÓ-Ô.àÔ*Ò*Ú/2°D·I±I¸dµOÐDÐDð +ò >AØ=A¿Y¹YÀt½_ðNð Nru   c                 ó   — y)Nú\omegarp   r  s     rs   Ú_print_OrdinalOmegaz LatexPrinter._print_OrdinalOmega¼	  s   € Øru   c                ó¨   — |j                   \  }}|dk7  r(|dk7  rdj                  ||«      S dj                  |«      S |dk7  rdj                  |«      S y)Nrk  z{} \omega^{{{}}}z	{} \omegaz\omega^{{{}}}rV  )r@  r   )r÷   r  rH  Úmuls       rs   Ú_print_OmegaPowerzLatexPrinter._print_OmegaPower¿	  s\   € Ø—9‘9‰ˆˆSØ�!Š8Ø�aŠxØ*×1Ñ1°#°sÓ;Ð;à#×*Ñ*¨3Ó/Ð/à�aŠxØ'×.Ñ.¨sÓ3Ð3à ru   c                ó|   — dj                  |j                  D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w ©Nr^  )rO  r@  r  rA  s      rs   Ú_print_OrdinalzLatexPrinter._print_OrdinalÌ	  s,   € Ø�z‰z°t·y±yÖA°˜4Ÿ;™; sÕ+ÒAÓBÐBùÒAs   š9c                óP   — | j                   d   }|j                  | t        d|«      S )Nrà   z	{%s}^{%d})rñ   rs  r!   )r÷   rF  rÅ   s      rs   Ú_print_PolyElementzLatexPrinter._print_PolyElementÏ	  s&   € Ø—^‘^Ð$6Ñ7ˆ
Ø�x‰x˜œj¨+°zÓBÐBru   c                óÔ   — |j                   dk(  r| j                  |j                  «      S | j                  |j                  «      }| j                  |j                   «      }d|›d|›d�S )Nrk  rÙ  rÚ  ro   )râ  r  rá  )r÷   r:   rá  râ  s       rs   Ú_print_FracElementzLatexPrinter._print_FracElementÓ	  sO   € Ø�:‰:˜Š?Ø—;‘;˜tŸz™zÓ*Ð*à—K‘K §
¡
Ó+ˆEØ—K‘K §
¡
Ó+‰EÚ',ªeÐ4Ð4ru   c                óä   — t        |j                  «      dk(  r|j                  d   d fn|j                  \  }}d| j                  |«      z  }|�|›d|›d�}|�|›d| j                  |«      ›d�}|S )Nrk  r   zE_{%s}r÷  ro   rE  rn  rí  )r÷   r  rH  rŽ  r-  r  s         rs   Ú_print_eulerzLatexPrinter._print_eulerÛ	  sj   € Ü'*¨4¯9©9£~¸Ò':�—	‘	˜!‘˜dÑ#ÀÇ	Á	‰ˆˆ1Ø˜$Ÿ+™+ a›.Ñ(ˆØˆ?Ú #¢SÐ)ˆCØˆ=Ú*-¨t¯{©{¸1­~Ð>ˆCØˆ
ru   c                ó\   — d| j                  |j                  d   «      z  }|�|›d|›d�}|S )NzC_{%s}r   r÷  ro   r  r¸  s       rs   Ú_print_catalanzLatexPrinter._print_catalanä	  rÆ  ru   c           
     óÜ   — dj                  ||rdnd| j                  |j                  d   «      | j                  |j                  d   «      | j                  |j                  d   «      «      S )Nz5\mathcal{{{}}}{}_{{{}}}\left[{}\right]\left({}\right)z^{-1}râ   rk  r   rØ  ©r   r  r@  )r÷   r  rr   Úinverses       rs   Ú_print_UnifiedTransformz$LatexPrinter._print_UnifiedTransformê	  sÏ   € ØG×NÑNÈqÑ]dÑRYÐjlÐnr×nyÑnyÐz~÷  {Dñ  {Dð  EFñ  {Gó  oHð  JN÷  JUñ  JUð  VZ÷  V_ñ  V_ð  `añ  Vbó  Jcð  ei÷  epñ  epð  qu÷  qzñ  qzð  {|ñ  q}ó  e~ó  ð  	ru   c                ó&   — | j                  |d«      S )NÚM©ri  r  s     rs   Ú_print_MellinTransformz#LatexPrinter._print_MellinTransformí	  ó   € Ø×+Ñ+¨D°#Ó6Ð6ru   c                ó(   — | j                  |dd«      S )Nrk  Trl  r  s     rs   Ú_print_InverseMellinTransformz*LatexPrinter._print_InverseMellinTransformð	  ó   € Ø×+Ñ+¨D°#°tÓ<Ð<ru   c                ó&   — | j                  |d«      S )NÚLrl  r  s     rs   Ú_print_LaplaceTransformz$LatexPrinter._print_LaplaceTransformó	  rn  ru   c                ó(   — | j                  |dd«      S )Nrs  Trl  r  s     rs   Ú_print_InverseLaplaceTransformz+LatexPrinter._print_InverseLaplaceTransformö	  rq  ru   c                ó&   — | j                  |d«      S rÁ  rl  r  s     rs   Ú_print_FourierTransformz$LatexPrinter._print_FourierTransformù	  rn  ru   c                ó(   — | j                  |dd«      S )NrÂ  Trl  r  s     rs   Ú_print_InverseFourierTransformz+LatexPrinter._print_InverseFourierTransformü	  rq  ru   c                ó&   — | j                  |d«      S )NÚSINrl  r  s     rs   Ú_print_SineTransformz!LatexPrinter._print_SineTransformÿ	  ó   € Ø×+Ñ+¨D°%Ó8Ð8ru   c                ó(   — | j                  |dd«      S )Nr|  Trl  r  s     rs   Ú_print_InverseSineTransformz(LatexPrinter._print_InverseSineTransform
  ó   € Ø×+Ñ+¨D°%¸Ó>Ð>ru   c                ó&   — | j                  |d«      S )NÚCOSrl  r  s     rs   Ú_print_CosineTransformz#LatexPrinter._print_CosineTransform
  r~  ru   c                ó(   — | j                  |dd«      S )Nrƒ  Trl  r  s     rs   Ú_print_InverseCosineTransformz*LatexPrinter._print_InverseCosineTransform
  r�  ru   c                óÄ   — 	 |j                   �*| j                  |j                   j                  |«      «      S 	 | j                  t	        |«      «      S # t        $ r Y Œ%w xY wr  )Úringr  Úto_sympyr   Úrepr©r÷   rð  s     rs   Ú
_print_DMPzLatexPrinter._print_DMP
  s[   € ð	Ø�v‰vÐ!à—{‘{ 1§6¡6§?¡?°1Ó#5Ó6Ð6ð "ð
 �{‰{œ4 ›7Ó#Ð#øô ò 	Ùð	ús   ‚5A Á	AÁAc                ó$   — | j                  |«      S r  )rŒ  r‹  s     rs   Ú
_print_DMFzLatexPrinter._print_DMF
  s   € Ø�‰˜qÓ!Ð!ru   c                óJ   — | j                  t        |j                  «      «      S r  )r  r   rP  )r÷   r¡  s     rs   Ú_print_ObjectzLatexPrinter._print_Object
  s   € Ø�{‰{œ6 &§+¡+Ó.Ó/Ð/ru   c                óþ   — | j                  |j                  d   «      }|�d|›d�nd}t        |j                  «      dk(  rd|›d|›d�}|S | j                  |j                  d   «      }d	j                  |||«      }|S )
Nr   r÷  ro   râ   rk  ÚWrE  rn  zW{0}_{{{1}}}\left({2}\right))r  r@  r‚  r   )r÷   r  rH  Úarg0ÚresultÚarg1s         rs   Ú_print_LambertWzLatexPrinter._print_LambertW
  sx   € Ø�{‰{˜4Ÿ9™9 Q™<Ó(ˆØ#&¡?š#Ñ¸ˆÜˆt�y‰y‹>˜QÓÚ.1²4Ð8ˆFð ˆð —;‘;˜tŸy™y¨™|Ó,ˆDØ5×<Ñ<¸SÀ$ÈÓMˆFØˆru   c                ó\   — dj                  | j                  |j                  d   «      «      S )Nz!\operatorname{{E}}\left[{}\right]r   rg  r  s     rs   Ú_print_ExpectationzLatexPrinter._print_Expectation$
  ó%   € Ø3×:Ñ:¸4¿;¹;ÀtÇyÁyÐQRÁ|Ó;TÓUÐUru   c                ó\   — dj                  | j                  |j                  d   «      «      S )Nz#\operatorname{{Var}}\left({}\right)r   rg  r  s     rs   Ú_print_VariancezLatexPrinter._print_Variance'
  s%   € Ø5×<Ñ<¸T¿[¹[ÈÏÉÐSTÉÓ=VÓWÐWru   c                ój   ‡ — dj                  dj                  ˆ fd„|j                  D «       «      «      S )Nz#\operatorname{{Cov}}\left({}\right)rK  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rR  r}  s     €rs   r.  z1LatexPrinter._print_Covariance.<locals>.<genexpr>+
  s   øè ø€ ÒFmÐ\_ÀtÇ{Á{ÐSV×GWÑFmùr0  )r   rO  r@  r  s   ` rs   Ú_print_CovariancezLatexPrinter._print_Covariance*
  s*   ø€ Ø5×<Ñ<¸T¿Y¹YÓFmÐcg×clÑclÔFmÓ=mÓnÐnru   c                ó\   — dj                  | j                  |j                  d   «      «      S )Nz!\operatorname{{P}}\left({}\right)r   rg  r  s     rs   Ú_print_ProbabilityzLatexPrinter._print_Probability-
  r™  ru   c                ó|   — | j                  |j                  «      }| j                  |j                  «      }|›d|›�S )Nr¬  )r  r5  Úcodomain)r÷   Úmorphismr5  r¢  s       rs   Ú_print_MorphismzLatexPrinter._print_Morphism0
  s3   € Ø—‘˜XŸ_™_Ó-ˆØ—;‘;˜x×0Ñ0Ó1ˆÚ&,©hÐ7Ð7ru   c                ó€   — | j                  |j                  «      | j                  |j                  «      }}d|›d|›d�S )NrÙ  rÚ  ro   )r  rN  Úden)r÷   r  rN  r¦  s       rs   Ú_print_TransferFunctionz$LatexPrinter._print_TransferFunction5
  s0   € Ø—;‘;˜tŸx™xÓ(¨$¯+©+°d·h±hÓ*?ˆS‰Ú#&ªÐ,Ð,ru   c                ór   ‡ ‡— t        ‰j                  «      }ˆˆ fd„}dj                  t        ||«      «      S )Nc                ó<   •— ‰j                  | t        ‰«      d«      S r  )r  r   )r-  r  r÷   s    €€rs   rt   z,LatexPrinter._print_Series.<locals>.<lambda>;
  s   ø€ ˜4×,Ñ,¨QÔ0FÀtÓ0LØ,1ó3€ ru   rÛ   )rÆ  r@  rO  r9  )r÷   r  r@  r  s   ``  rs   Ú_print_SerieszLatexPrinter._print_Series9
  s-   ù€ Ü�D—I‘I‹ˆô3ˆà�x‰xœ˜F DÓ)Ó*Ð*ru   c                óŽ   ‡ ‡‡— ddl mŠ t        ‰j                  «      d d d…   }ˆˆˆ fd„}dj	                  t        ||«      «      S )Nr   )ÚMIMOParallelrj  c                óv   •— t        | ‰«      r‰j                  | t        ‰«      d«      S ‰j                  | «      S r  )rÁ  r  r   r  )r-  r¬  r  r÷   s    €€€rs   rt   z0LatexPrinter._print_MIMOSeries.<locals>.<lambda>B
  s@   ø€ Ü7AÀ!À\Ô7Rð  ×,Ñ,¨QÔ0FÀtÓ0LØ-2ó4€ ØX\×XcÑXcÐdeÓXfð ru   z\cdot)Úsympy.physics.control.ltir¬  rÆ  r@  rO  r9  )r÷   r  r@  r  r¬  s   ``  @rs   Ú_print_MIMOSerieszLatexPrinter._print_MIMOSeries?
  s:   ú€ Ý:Ü�D—I‘I‹™t ˜tÑ$ˆõgˆà�}‰}œS ¨Ó.Ó/Ð/ru   c                ó`   — dj                  t        | j                  |j                  «      «      S r\  ©rO  r9  r  r@  r  s     rs   Ú_print_ParallelzLatexPrinter._print_ParallelF
  ó    € Ø�z‰zœ#˜dŸk™k¨4¯9©9Ó5Ó6Ð6ru   c                ó`   — dj                  t        | j                  |j                  «      «      S r\  r±  r  s     rs   Ú_print_MIMOParallelz LatexPrinter._print_MIMOParallelI
  r³  ru   c           	     ó„  — ddl m}m} |j                   |dd|j                  «      }}t        ||«      rt        |j                  «      n|g}t        |j                  |«      rt        |j                  j                  «      n|j                  g}|}t        ||«      r!t        |j                  |«      r |g |¢|¢­Ž }	n¯t        ||«      rBt        |j                  |«      r,|j                  |k(  r ||Ž }	nx| |g |¢|j                  ‘­Ž f}	nat        ||«      r+t        |j                  |«      r||k(  r ||Ž }	n4 ||g|¢­Ž }	n*||k(  r ||Ž }	n|j                  |k(  r ||Ž }	n
 |g |¢|¢­Ž }	| j                  |«      }
| j                  |«      }| j                  |	«      }|j                  dk(  rdnd}d|
›d|›d	|›d	|›d
�	S )Nr   )ÚTransferFunctionÚSeriesrk  rj  r’  r$  rÙ  rÚ  rÛ   ro   )Úsympy.physics.controlr·  r¸  Úsys1rŒ  rÁ  rÆ  r@  Úsys2r  r¨  )r÷   r  r·  r¸  rN  ÚtfÚnum_arg_listÚden_arg_listÚ
den_term_1Ú
den_term_2rá  Údenom_1Údenom_2Ú_signs                 rs   Ú_print_FeedbackzLatexPrinter._print_FeedbackL
  s˜  € ßBà—)‘)Ñ-¨a°°D·H±HÓ=ˆRˆÜ)3°C¸Ô)@”t˜CŸH™H”~ÀsÀeˆä�t—y‘y &Ô)ô ˜DŸI™IŸN™NÔ+Ø04·	±	¨{ð 	àˆ
ä�c˜6Ô"¤z°$·)±)¸VÔ'DÙÐ= Ð=°Ò=‰JÜ˜˜VÔ$¬°D·I±IÐ?OÔ)PØ�y‰y˜BŠÙ# \Ð2‘
à¡Ð!A¨Ð!A°t·y±yÒ!AÐA‘
Ü˜Ð-Ô.´:¸d¿i¹iÈÔ3PØ�bŠyÙ# \Ð2‘
á# CÐ7¨,Ò7‘
à�bŠyÙ# \Ð2‘
Ø—‘˜b’Ù# \Ð2‘
á#ÐA \ÐA°LÒA�
à—‘˜CÓ ˆØ—+‘+˜jÓ)ˆØ—+‘+˜jÓ)ˆØ—y‘y B’‘¨C‰â).²ºÂÐHÐHru   c                óØ   — ddl m} | j                   ||j                  |j                  «      «      }| j                  |j                  «      }|j
                  dk(  rdnd}d|›d|›d|›�S )	Nr   )Ú
MIMOSeriesrj  r’  r$  z\left(I_{\tau} rÛ   z\right)^{-1} \cdot )r¹  rÆ  r  r»  rº  r¨  )r÷   r  rÆ  Úinv_matrº  rÃ  s         rs   Ú_print_MIMOFeedbackz LatexPrinter._print_MIMOFeedbackp
  sR   € Ý4Ø—+‘+™j¨¯©°D·I±IÓ>Ó?ˆØ�{‰{˜4Ÿ9™9Ó%ˆØ—y‘y B’‘¨C‰Ú?DÂgÉtÐTÐTru   c                óB   — | j                  |j                  «      }d|z  S )Nz%s_\tau)r  Ú	_expr_matrù  s      rs   Ú_print_TransferFunctionMatrixz*LatexPrinter._print_TransferFunctionMatrixw
  s   € Ø�k‰k˜$Ÿ.™.Ó)ˆØ˜CÑÐru   c                ób   — dj                  |j                  j                  |j                  «      S )Nz\text{{{}}}_{{{}}})r   rM  rN  r  r  s     rs   Ú
_print_DFTzLatexPrinter._print_DFT{
  s#   € Ø$×+Ñ+¨D¯N©N×,CÑ,CÀTÇVÁVÓLÐLru   c                óz   — | j                  t        |j                  «      «      }| j                  |«      }|›d|›�S )Nrä  )r  r   rP  r¤  )r÷   r£  Úpretty_nameÚpretty_morphisms       rs   Ú_print_NamedMorphismz!LatexPrinter._print_NamedMorphism
  s4   € Ø—k‘k¤&¨¯©Ó"7Ó8ˆØ×.Ñ.¨xÓ8ˆÚ%¡Ð7Ð7ru   c                óh   — ddl m} | j                   ||j                  |j                  d«      «      S )Nr   )ÚNamedMorphismÚid)Úsympy.categoriesrÓ  rÑ  r5  r¢  )r÷   r£  rÓ  s      rs   Ú_print_IdentityMorphismz$LatexPrinter._print_IdentityMorphism„
  s0   € Ý2Ø×(Ñ(©Ø�O‰O˜X×.Ñ.°ó*6ó 7ð 	7ru   c                óö   — |j                   D �cg c]&  }| j                  t        |j                  «      «      ‘Œ( }}|j	                  «        dj                  |«      dz   }| j                  |«      }||z   S c c}w )Nz\circ rä  )r+  r  r   rP  ÚreverserO  r¤  )r÷   r£  Ú	componentÚcomponent_names_listÚcomponent_namesrÐ  s         rs   Ú_print_CompositeMorphismz%LatexPrinter._print_CompositeMorphism‰
  s~   € ð .6×-@Ñ-@ö BØ )ð !%§¡¬F°9·>±>Ó,BÕ Cð  BÐð  Bà×$Ñ$Ô&Ø#Ÿ.™.Ð)=Ó>ÀÑDˆà×.Ñ.¨xÓ8ˆØ Ñ0Ð0ùò Bs   �+A6c                óh   — dj                  | j                  t        |j                  «      «      «      S ©Nrµ  )r   r  r   rP  )r÷   r£  s     rs   Ú_print_CategoryzLatexPrinter._print_Category”
  s%   € Ø×&Ñ& t§{¡{´6¸(¿-¹-Ó3HÓ'IÓJÐJru   c                óì   — |j                   s| j                  t        j                  «      S | j                  |j                   «      }|j                  r!|d| j                  |j                  «      z  z  }|S )Nz\Longrightarrow %s)Úpremisesr  r   ÚEmptySetÚconclusions)r÷   ÚdiagramÚlatex_results      rs   Ú_print_DiagramzLatexPrinter._print_Diagram—
  sg   € Ø×Òà—;‘;œqŸz™zÓ*Ð*à—{‘{ 7×#3Ñ#3Ó4ˆØ×ÒØÐ1Ø ŸK™K¨×(;Ñ(;Ó<ñ=ñ =ˆLð Ðru   c                óB  — dd|j                   z  z  }t        |j                  «      D ]o  }t        |j                   «      D ]9  }|||f   r|t        |||f   «      z  }|dz  }||j                   dz
  k7  sŒ5|dz  }Œ; ||j                  dz
  k7  r|dz  }|dz  }Œq |dz  }|S )	Nz\begin{array}{%s}
r²   rÛ   rk  ú& r  ú
z\end{array}
)Úwidthr�  ÚheightÚlatex)r÷   Úgridrå  rË   rç   s        rs   Ú_print_DiagramGridzLatexPrinter._print_DiagramGrid£
  sÄ   € Ø-°°t·z±zÑ1AÑBˆä�t—{‘{Ó#ò 
	!ˆAÜ˜4Ÿ:™:Ó&ò )�Ø˜˜1˜’:Ø ¤E¨$¨q°!¨t©*Ó$5Ñ5�LØ Ñ#�Ø˜Ÿ
™
 Q™Ó&Ø  DÑ(‘Lð)ð �D—K‘K !‘OÒ#Ø Ñ&�Ø˜DÑ ‰Lð
	!ð 	Ð(Ñ(ˆØÐru   c                óŠ   — dj                  | j                  |j                  «      | j                  |j                  «      «      S )Nz{{{}}}^{{{}}})r   r  rˆ  r2  ©r÷   rk  s     rs   Ú_print_FreeModulezLatexPrinter._print_FreeModuleµ
  s/   € Ø×%Ñ% d§k¡k°!·&±&Ó&9¸4¿;¹;ÀqÇvÁvÓ;NÓOÐOru   c                óV   ‡ — dj                  dj                  ˆ fd„|D «       «      «      S )Nú\left[ {} \right]rl  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­w©r“   ro   NrR  ©r,  r-  r÷   s     €rs   r.  z8LatexPrinter._print_FreeModuleElement.<locals>.<genexpr>º
  s(   øè ø€ ò 43Ø+,ˆC�$—+‘+˜a“.Ñ  3Õ&ñ43ùrŸ  )r   rO  )r÷   rŽ  s   ` rs   Ú_print_FreeModuleElementz%LatexPrinter._print_FreeModuleElement¸
  s.   ø€ à#×*Ñ*¨3¯8©8ó 43Ø01ô43ó ,3ó 4ð 	4ru   c                ó"  ‡‡— |j                   D ��cg c]:  }|D �cg c],  }| j                  |j                  j                  |«      «      ‘Œ. c}‘Œ< }}}d„ Šd„ Šdj	                  ˆˆfd„|D «       «      }dj                  |«      S c c}w c c}}w )Nc                ó   — d| z   dz   S )Nr“   ro   rp   ©rM   s    rs   rt   z/LatexPrinter._print_SubModule.<locals>.<lambda>¿
  s   € ˜$ ™( T™/€ ru   c                ó   — d| z   dz   S )Nz\left[ z \right]rp   rú  s    rs   rt   z/LatexPrinter._print_SubModule.<locals>.<lambda>À
  s   € ˜:¨™>¨KÑ7€ ru   rl  c           	   3  ój   •K  — | ]*  } ‰ ‰d j                  ˆfd„|D «       «      «      «      –— Œ, y­w)rl  c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr  rp   )r,  r-  Úcurlys     €rs   r.  z:LatexPrinter._print_SubModule.<locals>.<genexpr>.<genexpr>Á
  s   øè ø€ Ò3HÀ±E¸!·HÑ3Hùs   ƒN)rO  )r,  Úgrþ  Úsquares     €€rs   r.  z0LatexPrinter._print_SubModule.<locals>.<genexpr>Á
  s*   øè ø€ ÒYÈq™e¡F¨3¯8©8Ó3HÀaÔ3HÓ+HÓ$I×JÑYùs   ƒ03ú\left\langle {} \right\rangle)rA  r  rˆ  r‰  rO  r   )r÷   rŽ  rÿ  r-  rA  Ú
gens_latexrþ  r   s         @@rs   Ú_print_SubModulezLatexPrinter._print_SubModule½
  ss   ù€ ØFGÇfÁf×MÀ¸!Ö<°Q�—‘˜QŸV™VŸ_™_¨QÓ/Õ0Ô<ÐMˆÑMÙ)ˆÙ7ˆØ—X‘XÔYÐTXÔYÓYˆ
Ø/×6Ñ6°zÓBÐBùò	 =ùÓMs   ’	B›1BÁBÂBc           	     óª   — dj                  |j                  D �cg c]  }d| j                  |«      z   dz   ‘Œ c}«      }dj                  |«      S c c}w )Nrl  r“   ro   r  )rO  rA  r  r   )r÷   rŽ  rÿ  r  s       rs   Ú_print_SubQuotientModulez%LatexPrinter._print_SubQuotientModuleÄ
  sH   € Ø—X‘XÀ1Ç6Á6ÖJ¸a˜s T§[¡[°£^Ñ3°cÓ9ÒJÓKˆ
Ø/×6Ñ6°zÓBÐBùò Ks   šAc                óà   ‡ — |j                   j                  D �cg c]  \  }|j                  j                  |«      ‘Œ! }}dj	                  ˆ fd„|D «       «      }dj                  |«      S c c}w )Nrl  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­wrõ  rR  rö  s     €rs   r.  z=LatexPrinter._print_ModuleImplementedIdeal.<locals>.<genexpr>Ê
  s#   øè ø€ ÒG¸Q˜c D§K¡K°£NÑ2°SÕ8ÑGùrŸ  r  )Ú_modulerA  rˆ  r‰  rO  r   )r÷   rŽ  r-  rA  r  s   `    rs   Ú_print_ModuleImplementedIdealz*LatexPrinter._print_ModuleImplementedIdealÈ
  sW   ø€ Ø./¯i©i¯n©nÖ=¡s¨�—‘—‘ Õ"Ð=ˆÐ=Ø—X‘XÓGÀ$ÔGÓGˆ
Ø/×6Ñ6°zÓBÐBùò >s   š$A+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   rk  ÚijkrÛ   r^  )r@  r  r!   rY  rO  )r÷   r  rË   rr   rç   rç  s         rs   Ú_print_QuaternionzLatexPrinter._print_QuaternionÍ
  s†   € ð —i‘iö!Øð ×Ñ˜q¤*¨UÑ"3¸DÐÕAð !ˆð !àˆq‰TˆF¬#¨a°°¨e°UÓ*;×<¡$ ! Q�a˜‘e˜A“gÓ<Ñ<ˆØ�z‰z˜!‹}Ðùò!ùã<s   �"A3Á
A8c                óŠ   — dj                  | j                  |j                  «      | j                  |j                  «      «      S ©Nz\frac{{{}}}{{{}}})r   r  rˆ  Ú
base_ideal)r÷   ÚRs     rs   Ú_print_QuotientRingz LatexPrinter._print_QuotientRingÕ
  s4   € à#×*Ñ*¨4¯;©;°q·v±vÓ+>Ø—‘˜QŸ\™\Ó*ó,ð 	,ru   c                óÀ   — | j                  |j                  j                  |«      «      }dj                  || j                  |j                  j                  «      «      S )Nú{{{}}} + {{{}}})r  rˆ  r‰  r   r  )r÷   r-  Úx_latexs      rs   Ú_print_QuotientRingElementz'LatexPrinter._print_QuotientRingElementÚ
  sH   € Ø—+‘+˜aŸf™fŸo™o¨aÓ0Ó1ˆØ!×(Ñ(¨Ø—‘˜QŸV™V×.Ñ.Ó/ó1ð 	1ru   c                óB  ‡ — |j                   D �cg c]'  }|j                  j                  j                  |«      ‘Œ) }}dj	                  dj                  ˆ fd„|D «       «      «      }dj	                  |‰ j                  |j                  j                  «      «      S c c}w )Nró  rl  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­wrõ  rR  rö  s     €rs   r.  z<LatexPrinter._print_QuotientModuleElement.<locals>.<genexpr>á
  s(   øè ø€ ò :6Ø+,ˆC�$—+‘+˜a“.Ñ  3Õ&ñ:6ùrŸ  r  )ÚdataÚmodulerˆ  r‰  r   rO  r  Úkilled_module)r÷   rŽ  r-  r  Ú
data_latexs   `    rs   Ú_print_QuotientModuleElementz)LatexPrinter._print_QuotientModuleElementß
  s…   ø€ Ø34·6±6Ö:¨a�—‘—‘×&Ñ& qÕ)Ð:ˆÐ:Ø)×0Ñ0°·±ó :6Ø04ô:6ó 26ó 7ˆ
à!×(Ñ(¨Ø—‘˜QŸX™X×3Ñ3Ó4ó6ð 	6ùò ;s   �,Bc                óŠ   — dj                  | j                  |j                  «      | j                  |j                  «      «      S r  )r   r  rC  r  rð  s     rs   Ú_print_QuotientModulez"LatexPrinter._print_QuotientModuleæ
  s4   € à#×*Ñ*¨4¯;©;°q·v±vÓ+>Ø—‘˜QŸ_™_Ó-ó/ð 	/ru   c                óÆ   — dj                  | j                  |j                  «       «      | j                  |j                  «      | j                  |j                  «      «      S )Nz{{{}}} : {{{}}} \to {{{}}})r   r  Ú_sympy_matrixr5  r¢  )r÷   r�  s     rs   Ú_print_MatrixHomomorphismz&LatexPrinter._print_MatrixHomomorphismë
  sF   € Ø,×3Ñ3°D·K±KÀÇÁÓ@QÓ4RØ�K‰K˜Ÿ™Ó! 4§;¡;¨q¯z©zÓ#:ó<ð 	<ru   c                ó^  — |j                   j                   }d|v r|g g }}}nJt        |«      \  }}}t        |«      }|D �cg c]  }t        |«      ‘Œ }}|D �cg c]  }t        |«      ‘Œ }}d|z  }|r|ddj                  |«      z  z  }|r|ddj                  |«      z  z  }|S c c}w c c}w )Nr“   rU  rh  rÛ   r8  )rP  r   r¶  rO  )r÷   Úmanifoldr·  rP  r¸  rZ  r—  r   s           rs   Ú_print_ManifoldzLatexPrinter._print_Manifoldï
  s¹   € Ø—‘×#Ñ#ˆØ�&‰=Ø!'¨¨R˜$�&‰Dä!0°Ó!8ÑˆD�&˜$ä˜T“?ˆDØ06Ö7¨”i •nÐ7ˆFÐ7Ø.2Ö3 s”I˜c•NÐ3ˆDÐ3à˜dÑ"ˆÙØ�G˜cŸh™h vÓ.Ñ.Ñ.ˆDÙØ�G˜cŸh™h t›nÑ,Ñ,ˆDàˆùò 8ùÚ3s   Á B%ÁB*c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )Nú\text{rÝ  ro   )r  rP  r#  )r÷   Úpatchs     rs   Ú_print_PatchzLatexPrinter._print_Patch  s'   � Ø$(§K¡K°·
±
Õ$;¸T¿[¹[ÈÏÉÕ=XÐYÐYru   c                óÄ   — d| j                  |j                  «      ›d| j                  |j                  j                  «      ›d| j                  |j                  «      ›d�S )Nr&  z	}^{\text{z}}_{ro   )r  rP  r'  r#  )r÷   Úcoordsyss     rs   Ú_print_CoordSystemzLatexPrinter._print_CoordSystem  sC   � à�K‰K˜Ÿ™Õ&¨¯©°H·N±N×4GÑ4GÕ(HÈ$Ï+É+ÐV^×VgÑVgÕJhð
ð 	
ru   c                ó>   — d| j                  |j                  «      z  S )Nz\mathbb{\nabla}_{%s})r  Ú_wrt)r÷   Úcvds     rs   Ú_print_CovarDerivativeOpz%LatexPrinter._print_CovarDerivativeOp
  s   € Ø&¨¯©°S·X±XÓ)>Ñ>Ð>ru   c                ó®   — |j                   j                  |j                     j                  }dj	                  | j                  t        |«      «      «      S rÞ  ©Ú
_coord_sysrl  Ú_indexrP  r   r  r   ©r÷   Úfieldr·  s      rs   Ú_print_BaseScalarFieldz#LatexPrinter._print_BaseScalarField  s@   € Ø×!Ñ!×)Ñ)¨%¯,©,Ñ7×<Ñ<ˆØ×&Ñ& t§{¡{´6¸&³>Ó'BÓCÐCru   c                ó®   — |j                   j                  |j                     j                  }dj	                  | j                  t        |«      «      «      S )Nz\partial_{{{}}}r1  r4  s      rs   Ú_print_BaseVectorFieldz#LatexPrinter._print_BaseVectorField  s@   € Ø×!Ñ!×)Ñ)¨%¯,©,Ñ7×<Ñ<ˆØ!×(Ñ(¨¯©´V¸F³^Ó)DÓEÐEru   c                ó"  — |j                   }t        |d«      rV|j                  j                  |j                     j
                  }dj                  | j                  t        |«      «      «      S | j                  |«      }dj                  |«      S )Nr2  z\operatorname{{d}}{}z!\operatorname{{d}}\left({}\right))	Ú_form_fieldrÀ  r2  rl  r3  rP  r   r  r   )r÷   Údiffr5  r·  s       rs   Ú_print_Differentialz LatexPrinter._print_Differential  st   € Ø× Ñ ˆÜ�5˜,Ô'Ø×%Ñ%×-Ñ-¨e¯l©lÑ;×@Ñ@ˆFØ*×1Ñ1°$·+±+¼fÀV»nÓ2MÓNÐNà—[‘[ Ó'ˆFØ7×>Ñ>¸vÓFÐFru   c                ó`   — | j                  |j                  d   «      }dj                  |«      S )Nr   z"\operatorname{{tr}}\left({}\right)r  )r÷   rð  Úcontentss      rs   Ú	_print_TrzLatexPrinter._print_Tr  s)   € à—;‘;˜qŸv™v a™yÓ)ˆØ4×;Ñ;¸HÓEÐEru   c                ó’   — |�%d| j                  |j                  d   «      ›d|›d�S d| j                  |j                  d   «      z  S )Nz\left(\phi\left(r   ú\right)\right)^{ro   z\phi\left(%s\right)r  rG  s      rs   Ú_print_totientzLatexPrinter._print_totient#  sC   € Ø‰?à—‘˜TŸY™Y q™\Õ*ªCð1ð 1à%¨¯©°D·I±I¸a±LÓ(AÑAÐAru   c                ó’   — |�%d| j                  |j                  d   «      ›d|›d�S d| j                  |j                  d   «      z  S )Nz\left(\lambda\left(r   rA  ro   z\lambda\left(%s\right)r  rG  s      rs   Ú_print_reduced_totientz#LatexPrinter._print_reduced_totient)  sC   € Ø‰?à—‘˜TŸY™Y q™\Õ*ªCð1ð 1à(¨4¯;©;°t·y±yÀ±|Ó+DÑDÐDru   c           	     ó  — t        |j                  «      dk(  r?dt        t        | j                  |j                  d   |j                  d   f«      «      z  }n!d| j	                  |j                  d   «      z  }|�d|›d|›�S d|z  S )	NrØ  ú_%s\left(%s\right)rk  r   r_  z\sigma^{ro   z\sigma%sri  r¸  s       rs   Ú_print_divisor_sigmaz!LatexPrinter._print_divisor_sigma/  sƒ   € Üˆt�y‰y‹>˜QÒØ'¬%´°D·K±KØ15·±¸1±¸t¿y¹yÈ¹|Ð0Ló1Nó +Oñ O‰Cð % t§{¡{°4·9±9¸Q±<Ó'@Ñ@ˆCØ‰?Ú'*©CÐ0Ð0Ø˜SÑ Ð ru   c           	     ó  — t        |j                  «      dk(  r?dt        t        | j                  |j                  d   |j                  d   f«      «      z  }n!d| j	                  |j                  d   «      z  }|�d|›d|›�S d|z  S )	NrØ  rF  rk  r   r_  z
\sigma^*^{ro   z
\sigma^*%sri  r¸  s       rs   Ú_print_udivisor_sigmaz"LatexPrinter._print_udivisor_sigma9  sƒ   € Üˆt�y‰y‹>˜QÒØ'¬%´°D·K±KØ15·±¸1±¸t¿y¹yÈ¹|Ð0Ló1Nó +Oñ O‰Cð % t§{¡{°4·9±9¸Q±<Ó'@Ñ@ˆCØ‰?Ú),©cÐ2Ð2Ø˜sÑ"Ð"ru   c                ó’   — |�%d| j                  |j                  d   «      ›d|›d�S d| j                  |j                  d   «      z  S )Nz\left(\nu\left(r   rA  ro   z\nu\left(%s\right)r  rG  s      rs   Ú_print_primenuzLatexPrinter._print_primenuC  sC   € Ø‰?à—‘˜TŸY™Y q™\Õ*ªCð1ð 1à$ t§{¡{°4·9±9¸Q±<Ó'@Ñ@Ð@ru   c                ó’   — |�%d| j                  |j                  d   «      ›d|›d�S d| j                  |j                  d   «      z  S )Nz\left(\Omega\left(r   rA  ro   z\Omega\left(%s\right)r  rG  s      rs   Ú_print_primeomegazLatexPrinter._print_primeomegaI  sC   € Ø‰?à—‘˜TŸY™Y q™\Õ*ªCð1ð 1à'¨$¯+©+°d·i±iÀ±lÓ*CÑCÐCru   c                ó,   — t        |j                  «      S r  )rs  rP  r  s     rs   Ú
_print_StrzLatexPrinter._print_StrO  s   € Ü�1—6‘6‹{Ðru   c                ó6   — | j                  t        |«      «      S r  )r  r   r  s     rs   Ú_print_floatzLatexPrinter._print_floatR  s   € Ø�{‰{œ5 ›;Ó'Ð'ru   c                ó   — t        |«      S r  ©rs  r  s     rs   Ú
_print_intzLatexPrinter._print_intU  ó   € Ü�4‹yÐru   c                ó   — t        |«      S r  rS  r  s     rs   Ú
_print_mpzzLatexPrinter._print_mpzX  rU  ru   c                ó   — t        |«      S r  rS  r  s     rs   Ú
_print_mpqzLatexPrinter._print_mpq[  rU  ru   c                ó   — t        |«      S r  rS  r  s     rs   Ú_print_fmpzzLatexPrinter._print_fmpz^  rU  ru   c                ó   — t        |«      S r  rS  r  s     rs   Ú_print_fmpqzLatexPrinter._print_fmpqa  rU  ru   c                ó\   — dj                  t        t        |j                  «      «      «      S )Nz"\operatorname{{Q}}_{{\text{{{}}}}})r   r³   rs  rP  r  s     rs   Ú_print_PredicatezLatexPrinter._print_Predicated  s    € Ø4×;Ñ;¼LÌÈTÏYÉYËÓ<XÓYÐYru   c                óÊ   — |j                   }|j                  }| j                  |«      }dj                  |D �cg c]  }| j                  |«      ‘Œ c}«      }|›d|›d�S c c}w )NrK  ræ   rä   )r  Ú	argumentsr  rO  )r÷   r  Úpredr@  Ú
pred_latexrç  Ú
args_latexs          rs   Ú_print_AppliedPredicatez$LatexPrinter._print_AppliedPredicateg  sS   € Ø�}‰}ˆØ�~‰~ˆØ—[‘[ Ó&ˆ
Ø—Y‘Y¸Ö=°1 §¡¨A¥Ò=Ó>ˆ
Ú%¢zÐ2Ð2ùò  >s   ¹A c                ó>   •— t         ‰| �  |«      }dt        |«      z  S )Nz\mathtt{\text{%s}})ÚsuperÚemptyPrinterr³   )r÷   r  rr   rM  s      €rs   rh  zLatexPrinter.emptyPrintern  s!   ø€ ä‰GÑ  Ó&ˆà$¤|°A£Ñ6Ð6ru   r  rÛ  )FF)rÜ  Úbool)r  rs  )rW  z!bool | BooleanTrue | BooleanFalse)r  r   )r  r   )r  rs  rÜ  rs  )r  z'BasisDependent')r³  rs  rÜ  rs  )r  r   rÜ  rs  r²  )r%  rs  rÜ  rs  ræ  )FN)rÄ   )r  r   )r·  rs  rÜ  rs  )r  r&   )r?  Údict)F(A  rN  Ú
__module__Ú__qualname__Úprintmethodr×   Ú__annotations__rð   r  r  r  rÒ   r  r  r#  r;  r>  r  r   rI  rR  rX  Ú_print_BooleanTrueÚ_print_BooleanFalser[  re  rv  rˆ  r�  rŸ  r§  r¬  r®  r°  r´  r·  ré  rî  ró  rÿ  rü  r	  r  r  r6  r<  r?  rC  rO  r`  rn  ru  r}  r˜  rš  rœ  Úpropertyr©  r­  r°  r²  r¶  Ú
_print_MinÚ
_print_Maxr¹  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  Ú_print_gammar  r	  r  r  r  r  r  r  r  r!  r'  r)  r-  r0  r3  r6  r8  r:  r<  r?  rA  rC  rG  rI  rN  rS  rV  rY  r_  re  rg  rj  rl  rn  rq  rv  ry  r}  r€  r‚  r„  r†  r‰  r‹  r‘  r”  rœ  r�  r   r£  r¦  r©  r¯  r³  Ú_print_RandomSymbolrL  rÂ  rÆ  rÔ  rÚ  rá  rí  rð  r÷  rú  rÿ  r  r	  r  r  r  r  r  r   r%  r*  r,  r0  r<  rD  rG  rI  rL  rN  rP  rS  rU  rW  rY  r\  ra  rf  rj  rl  ro  rs  ru  rw  rz  r  r�  r„  r‰  r�  r‹  Ú_print_frozensetr­  rµ  r¶  rº  r¿  rÃ  rÅ  rÉ  rË  rÒ  Ú_print_SeqPerÚ_print_SeqAddÚ_print_SeqMulrÙ  rÜ  râ  ræ  ré  rë  rï  rñ  rô  rö  rù  rü  rÿ  r  r  r  r  r  r  r$  r'  r*  r,  r.  r0  r2  r7  r:  r>  rL  rP  rT  rW  rZ  r]  r_  ra  rc  re  ri  rm  rp  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Í  Ú_print_IDFTrÑ  rÖ  rÜ  rß  ræ  rî  rñ  r÷  r  r  r	  r  r  r  r  r  r!  r$  r(  r+  r/  r6  r8  r<  r?  rB  rD  rG  rI  rK  rM  rO  rQ  rT  rW  rY  r[  r]  r_  re  rh  Ú__classcell__)rM  s   @rs   rµ   rµ   Ž   s�  ø… Ø€Kð)Ø�Uð)à˜Eð)ð 	˜eð)ð 	˜4ð	)ð
 	˜-ð)ð 	�ð)ð 	�uð)ð 	˜4ð)ð 	�Sð)ð 	�4ð)ð 	�ð)ð 	�dð)ð 	�ð)ð 	˜ð)ð 	˜ð)ð  	˜Gð!)ð" 	˜#ð#)ð$ Ø%ØØ"ØØØØ!ò3)Ð�~ó ô8;fôz,ô-ö%òôEôKôö.ô>ôô3ôò/ô ð %ÐØ%Ðò ôò&ò 9òBJòò<NòNòMòMòIòIôqòf/ò-ô+<ôZ&ò")òò&ô&ò<ò'òò@òBEò"/òH4ôö@J)òX0ò
ð ñ,ó ð,ò0ò
ò-öð 8Ð7€J�ôôô	ôô+ô+ò	7òò2ò0ò3ôDôFôô)ô+ôô ô ô	 ô"ô	/ô[ô<ô%ô%ö;ð (€Lô1ô:ô ô ôôôôô+ô+ôô"ô7ô7ô7ô7ô7ô7ô=ô=ô=ô=ö-ö4ô2ô2ô8ô8ô	ôôô ô!ô+ô@ôôôôôôôôôôôôQôGôGôSôSò'ò'ö Að (Ðöò,Jò(*ò+ò,ò5ò
Jò(ò$òGò7ò&/ò"GôAò>òAò>ò@ò!ò>ò>ò>ò#ô5ônò8?ò
Fò
òò
òò&òDò
ô4òFò+ò*ò'ò:ò<ò&ôôôô	ôò	%ò&ò,ð "Ðò(ôTô>ô>ô>ô>ôô>ôMò
ð. &€MØ%€MØ%€MòKò$9ò(ò
-ò
(ò
-ò
<òòòòòòòòQò
&òAò!òDò<ò
+ò-òòòòò8ò
8ò
?ò7òr
HóNóó!óCóCó5õõõó7ó=ó7ó=ó7ó=ô9ô?ô9ô?ô$ô"ô0öôVôXôoôVô8ô
-ô+ô0ô7ô7ô"IôHUô ôMá�Kô8ô
7ô
	1ôKô
ôô$Pô4ô
CôCôCô
ô,ô
1ô
6ô/ô
<ôô&Zô
ô
?ôDôFôGôFö
BöEö!ö#öAöDôô(ôôôôôôZô3÷7ó 7ru   rµ   c           
     ó°  — t         j                  | «      }|r|S | j                  «       t        v rd| j                  «       z   S | t        v rd| z   S t        t        j                  «       t        d¬«      D ]_  }| j                  «       j                  |«      sŒ#t        | «      t        |«      kD  sŒ;t        |   t        | dt        |«        «      «      c S  | S )aŽ  
    Check for a modifier ending the string.  If present, convert the
    modifier to latex and translate the rest recursively.

    Given a description of a Greek letter or other special character,
    return the appropriate latex.

    Let everything else pass as given.

    >>> from sympy.printing.latex import translate
    >>> translate('alphahatdotprime')
    "{\\dot{\\hat{\\alpha}}}'"
    r®   T)r#  rØ  N)Útex_greek_dictionaryrö   rƒ  Úgreek_letters_setÚother_symbolsr´  r¬   rq  r‚  r  r¶  )rr   r  r#  s      rs   r¶  r¶  u  s½   € ô ×
"Ñ
" 1Ó
%€CÙ
Øˆ
Ø	
�‰‹Ô'Ñ	'Ø�a—g‘g“iÑÐØ	
ŒmÑ	Ø�a‰xˆô œ-×,Ñ,Ó.´CÀÔFò 	DˆCØ�w‰w‹y×!Ñ! #Õ&¬3¨q«6´C¸³HÓ+<Ü$ SÑ)¬)°A°j¼¸C»°y°MÓ*BÓCÒCð	Dð ˆru   c                ó6   — t        |«      j                  | «      S )a¦%  Convert the given expression to LaTeX string representation.

    Parameters
    ==========
    full_prec: boolean, optional
        If set to True, a floating point number is printed with full precision.
    fold_frac_powers : boolean, optional
        Emit ``^{p/q}`` instead of ``^{\frac{p}{q}}`` for fractional powers.
    fold_func_brackets : boolean, optional
        Fold function brackets where applicable.
    fold_short_frac : boolean, optional
        Emit ``p / q`` instead of ``\frac{p}{q}`` when the denominator is
        simple enough (at most two terms and no powers). The default value is
        ``True`` for inline mode, ``False`` otherwise.
    inv_trig_style : string, optional
        How inverse trig functions should be displayed. Can be one of
        ``'abbreviated'``, ``'full'``, or ``'power'``. Defaults to
        ``'abbreviated'``.
    itex : boolean, optional
        Specifies if itex-specific syntax is used, including emitting
        ``$$...$$``.
    ln_notation : boolean, optional
        If set to ``True``, ``\ln`` is used instead of default ``\log``.
    long_frac_ratio : float or None, optional
        The allowed ratio of the width of the numerator to the width of the
        denominator before the printer breaks off long fractions. If ``None``
        (the default value), long fractions are not broken up.
    mat_delim : string, optional
        The delimiter to wrap around matrices. Can be one of ``'['``, ``'('``,
        or the empty string ``''``. Defaults to ``'['``.
    mat_str : string, optional
        Which matrix environment string to emit. ``'smallmatrix'``,
        ``'matrix'``, ``'array'``, etc. Defaults to ``'smallmatrix'`` for
        inline mode, ``'matrix'`` for matrices of no more than 10 columns, and
        ``'array'`` otherwise.
    mode: string, optional
        Specifies how the generated code will be delimited. ``mode`` can be one
        of ``'plain'``, ``'inline'``, ``'equation'`` or ``'equation*'``.  If
        ``mode`` is set to ``'plain'``, then the resulting code will not be
        delimited at all (this is the default). If ``mode`` is set to
        ``'inline'`` then inline LaTeX ``$...$`` will be used. If ``mode`` is
        set to ``'equation'`` or ``'equation*'``, the resulting code will be
        enclosed in the ``equation`` or ``equation*`` environment (remember to
        import ``amsmath`` for ``equation*``), unless the ``itex`` option is
        set. In the latter case, the ``$$...$$`` syntax is used.
    mul_symbol : string or None, optional
        The symbol to use for multiplication. Can be one of ``None``,
        ``'ldot'``, ``'dot'``, or ``'times'``.
    order: string, optional
        Any of the supported monomial orderings (currently ``'lex'``,
        ``'grlex'``, or ``'grevlex'``), ``'old'``, and ``'none'``. This
        parameter does nothing for `~.Mul` objects. Setting order to ``'old'``
        uses the compatibility ordering for ``~.Add`` defined in Printer. For
        very large expressions, set the ``order`` keyword to ``'none'`` if
        speed is a concern.
    symbol_names : dictionary of strings mapped to symbols, optional
        Dictionary of symbols and the custom strings they should be emitted as.
    root_notation : boolean, optional
        If set to ``False``, exponents of the form 1/n are printed in fractonal
        form. Default is ``True``, to print exponent in root form.
    mat_symbol_style : string, optional
        Can be either ``'plain'`` (default) or ``'bold'``. If set to
        ``'bold'``, a `~.MatrixSymbol` A will be printed as ``\mathbf{A}``,
        otherwise as ``A``.
    imaginary_unit : string, optional
        String to use for the imaginary unit. Defined options are ``'i'``
        (default) and ``'j'``. Adding ``r`` or ``t`` in front gives ``\mathrm``
        or ``\text``, so ``'ri'`` leads to ``\mathrm{i}`` which gives
        `\mathrm{i}`.
    gothic_re_im : boolean, optional
        If set to ``True``, `\Re` and `\Im` is used for ``re`` and ``im``, respectively.
        The default is ``False`` leading to `\operatorname{re}` and `\operatorname{im}`.
    decimal_separator : string, optional
        Specifies what separator to use to separate the whole and fractional parts of a
        floating point number as in `2.5` for the default, ``period`` or `2{,}5`
        when ``comma`` is specified. Lists, sets, and tuple are printed with semicolon
        separating the elements when ``comma`` is chosen. For example, [1; 2; 3] when
        ``comma`` is chosen and [1,2,3] for when ``period`` is chosen.
    parenthesize_super : boolean, optional
        If set to ``False``, superscripted expressions will not be parenthesized when
        powered. Default is ``True``, which parenthesizes the expression when powered.
    min: Integer or None, optional
        Sets the lower bound for the exponent to print floating point numbers in
        fixed-point format.
    max: Integer or None, optional
        Sets the upper bound for the exponent to print floating point numbers in
        fixed-point format.
    diff_operator: string, optional
        String to use for differential operator. Default is ``'d'``, to print in italic
        form. ``'rd'``, ``'td'`` are shortcuts for ``\mathrm{d}`` and ``\text{d}``.
    adjoint_style: string, optional
        String to use for the adjoint symbol. Defined options are ``'dagger'``
        (default),``'star'``, and ``'hermitian'``.

    Notes
    =====

    Not using a print statement for printing, results in double backslashes for
    latex commands since that's the way Python escapes backslashes in strings.

    >>> from sympy import latex, Rational
    >>> from sympy.abc import tau
    >>> latex((2*tau)**Rational(7,2))
    '8 \\sqrt{2} \\tau^{\\frac{7}{2}}'
    >>> print(latex((2*tau)**Rational(7,2)))
    8 \sqrt{2} \tau^{\frac{7}{2}}

    Examples
    ========

    >>> from sympy import latex, pi, sin, asin, Integral, Matrix, Rational, log
    >>> from sympy.abc import x, y, mu, r, tau

    Basic usage:

    >>> print(latex((2*tau)**Rational(7,2)))
    8 \sqrt{2} \tau^{\frac{7}{2}}

    ``mode`` and ``itex`` options:

    >>> print(latex((2*mu)**Rational(7,2), mode='plain'))
    8 \sqrt{2} \mu^{\frac{7}{2}}
    >>> print(latex((2*tau)**Rational(7,2), mode='inline'))
    $8 \sqrt{2} \tau^{7 / 2}$
    >>> print(latex((2*mu)**Rational(7,2), mode='equation*'))
    \begin{equation*}8 \sqrt{2} \mu^{\frac{7}{2}}\end{equation*}
    >>> print(latex((2*mu)**Rational(7,2), mode='equation'))
    \begin{equation}8 \sqrt{2} \mu^{\frac{7}{2}}\end{equation}
    >>> print(latex((2*mu)**Rational(7,2), mode='equation', itex=True))
    $$8 \sqrt{2} \mu^{\frac{7}{2}}$$
    >>> print(latex((2*mu)**Rational(7,2), mode='plain'))
    8 \sqrt{2} \mu^{\frac{7}{2}}
    >>> print(latex((2*tau)**Rational(7,2), mode='inline'))
    $8 \sqrt{2} \tau^{7 / 2}$
    >>> print(latex((2*mu)**Rational(7,2), mode='equation*'))
    \begin{equation*}8 \sqrt{2} \mu^{\frac{7}{2}}\end{equation*}
    >>> print(latex((2*mu)**Rational(7,2), mode='equation'))
    \begin{equation}8 \sqrt{2} \mu^{\frac{7}{2}}\end{equation}
    >>> print(latex((2*mu)**Rational(7,2), mode='equation', itex=True))
    $$8 \sqrt{2} \mu^{\frac{7}{2}}$$

    Fraction options:

    >>> print(latex((2*tau)**Rational(7,2), fold_frac_powers=True))
    8 \sqrt{2} \tau^{7/2}
    >>> print(latex((2*tau)**sin(Rational(7,2))))
    \left(2 \tau\right)^{\sin{\left(\frac{7}{2} \right)}}
    >>> print(latex((2*tau)**sin(Rational(7,2)), fold_func_brackets=True))
    \left(2 \tau\right)^{\sin {\frac{7}{2}}}
    >>> print(latex(3*x**2/y))
    \frac{3 x^{2}}{y}
    >>> print(latex(3*x**2/y, fold_short_frac=True))
    3 x^{2} / y
    >>> print(latex(Integral(r, r)/2/pi, long_frac_ratio=2))
    \frac{\int r\, dr}{2 \pi}
    >>> print(latex(Integral(r, r)/2/pi, long_frac_ratio=0))
    \frac{1}{2 \pi} \int r\, dr

    Multiplication options:

    >>> print(latex((2*tau)**sin(Rational(7,2)), mul_symbol="times"))
    \left(2 \times \tau\right)^{\sin{\left(\frac{7}{2} \right)}}

    Trig options:

    >>> print(latex(asin(Rational(7,2))))
    \operatorname{asin}{\left(\frac{7}{2} \right)}
    >>> print(latex(asin(Rational(7,2)), inv_trig_style="full"))
    \arcsin{\left(\frac{7}{2} \right)}
    >>> print(latex(asin(Rational(7,2)), inv_trig_style="power"))
    \sin^{-1}{\left(\frac{7}{2} \right)}

    Matrix options:

    >>> print(latex(Matrix(2, 1, [x, y])))
    \left[\begin{matrix}x\\y\end{matrix}\right]
    >>> print(latex(Matrix(2, 1, [x, y]), mat_str = "array"))
    \left[\begin{array}{c}x\\y\end{array}\right]
    >>> print(latex(Matrix(2, 1, [x, y]), mat_delim="("))
    \left(\begin{matrix}x\\y\end{matrix}\right)

    Custom printing of symbols:

    >>> print(latex(x**2, symbol_names={x: 'x_i'}))
    x_i^{2}

    Logarithms:

    >>> print(latex(log(10)))
    \log{\left(10 \right)}
    >>> print(latex(log(10), ln_notation=True))
    \ln{\left(10 \right)}

    ``latex()`` also supports the builtin container types :class:`list`,
    :class:`tuple`, and :class:`dict`:

    >>> print(latex([2/x, y], mode='inline'))
    $\left[ 2 / x, \  y\right]$

    Unsupported types are rendered as monospaced plaintext:

    >>> print(latex(int))
    \mathtt{\text{<class 'int'>}}
    >>> print(latex("plain % text"))
    \mathtt{\text{plain \% text}}

    See :ref:`printer_method_example` for an example of how to override
    this behavior for your own types by implementing ``_latex``.

    .. versionchanged:: 1.7.0
        Unsupported types no longer have their ``str`` representation treated as valid latex.

    )rµ   r  ©r  rø   s     rs   rì  rì  ”  s   € ôn ˜Ó!×)Ñ)¨$Ó/Ð/ru   c                ó.   — t        t        | fi |¤Ž«       y)z`Prints LaTeX representation of the given expression. Takes the same
    settings as ``latex()``.N)Úprintrì  r�  s     rs   Úprint_latexr„  n  s   € ô 
Œ%�Ñ
!˜Ñ
!Õ"ru   c           
     óž  — t        di |¤Ž}|dk(  rd}d}d}	d}
d}n:|dk(  rd}d}d}	d	}
d}n*|d
k(  rd}d}d}	d}
d}nt        dj                  |«      «      ‚d}|rd}|j                  «       }t	        |«      }d}t        |«      D ]Á  }||   }d}d}d}||kD  r	|rd}nd}d}||k(  r||dz
  k  r||	z   dz   dz   }nd}|j                  «       d   dk(  rd|z  }d}|dk(  r>|dk(  rd}|dj                  |j                  | «      |||j                  |«      |«      z  }n&|dj                  |||j                  |«      |«      z  }|dz  }ŒÃ ||
z  }|S )a¦  
    This function generates a LaTeX equation with a multiline right-hand side
    in an ``align*``, ``eqnarray`` or ``IEEEeqnarray`` environment.

    Parameters
    ==========

    lhs : Expr
        Left-hand side of equation

    rhs : Expr
        Right-hand side of equation

    terms_per_line : integer, optional
        Number of terms per line to print. Default is 1.

    environment : "string", optional
        Which LaTeX wnvironment to use for the output. Options are "align*"
        (default), "eqnarray", and "IEEEeqnarray".

    use_dots : boolean, optional
        If ``True``, ``\\dots`` is added to the end of each line. Default is ``False``.

    Examples
    ========

    >>> from sympy import multiline_latex, symbols, sin, cos, exp, log, I
    >>> x, y, alpha = symbols('x y alpha')
    >>> expr = sin(alpha*y) + exp(I*alpha) - cos(log(y))
    >>> print(multiline_latex(x, expr))
    \begin{align*}
    x = & e^{i \alpha} \\
    & + \sin{\left(\alpha y \right)} \\
    & - \cos{\left(\log{\left(y \right)} \right)}
    \end{align*}

    Using at most two terms per line:
    >>> print(multiline_latex(x, expr, 2))
    \begin{align*}
    x = & e^{i \alpha} + \sin{\left(\alpha y \right)} \\
    & - \cos{\left(\log{\left(y \right)} \right)}
    \end{align*}

    Using ``eqnarray`` and dots:
    >>> print(multiline_latex(x, expr, terms_per_line=2, environment="eqnarray", use_dots=True))
    \begin{eqnarray}
    x & = & e^{i \alpha} + \sin{\left(\alpha y \right)} \dots\nonumber\\
    & & - \cos{\left(\log{\left(y \right)} \right)}
    \end{eqnarray}

    Using ``IEEEeqnarray``:
    >>> print(multiline_latex(x, expr, environment="IEEEeqnarray"))
    \begin{IEEEeqnarray}{rCl}
    x & = & e^{i \alpha} \nonumber\\
    & & + \sin{\left(\alpha y \right)} \nonumber\\
    & & - \cos{\left(\log{\left(y \right)} \right)}
    \end{IEEEeqnarray}

    Notes
    =====

    All optional parameters from ``latex`` can also be used.

    Úeqnarrayz\begin{eqnarray}
z& = &z	\nonumberz
\end{eqnarray}TÚIEEEeqnarrayz\begin{IEEEeqnarray}{rCl}
z
\end{IEEEeqnarray}úalign*z\begin{align*}
z= &râ   z
\end{align*}FzUnknown environment: {}z\dotsrk  r’  z& & rè  r  ré  r   rj  r$  z{:s} {:s}{:s} {:s} {:s}z{:s}{:s} {:s} {:s}rp   )rµ   rò   r   Úas_ordered_termsr‚  r�  rÅ  r  )r¼  r¾  Úterms_per_lineÚenvironmentÚuse_dotsrø   r  r”  Ú
first_termÚnonumberÚend_termÚdoubleetr�  rb  Ún_termsÚ
term_countrË   rc  Ú
term_startÚterm_endr¨  s                        rs   Úmultiline_latexr•  u  sÖ  € ôF 	Ñ �xÑ €AØ�jÒ Ø+ˆØˆ
ØˆØ&ˆØ‰Ø	˜Ò	&Ø4ˆØˆ
ØˆØ*ˆØ‰Ø	˜Ò	 Ø)ˆØˆ
ØˆØ%ˆØ‰äÐ2×9Ñ9¸+ÓFÓGÐGØ€DÙØˆØ× Ñ Ó"€EÜ�%‹j€GØ€JÜ�7‹^ò ˆØ�Q‰xˆØˆ
ØˆØˆØ˜Ò&ÙØ#‘
à!�
ØˆJØ˜Ò'à�7˜1‘9Š}à (™?¨UÑ2°TÑ9‘à�à×"Ñ"Ó$ QÑ'¨2Ò-Ø�d‘7ˆDØˆDØ�Š6Ø�sŠ{Ø�ØÐ0×7Ñ7¸¿	¹	À#»Ø" D¨!¯)©)°D«/¸8óEñ E‰Fð Ð+×2Ñ2°:¸tØŸ	™	 $›¨ó3ñ 3ˆFà�a‰‰
ð=ð> ˆhÑ€FØ€Mru   )rr   rs  rÜ  rs  )rk  rˆ  F)JÚ__doc__Ú
__future__r   Útypingr   r   r   r4  Ú
sympy.corer   r   r	   r
   r   r   r   r   Úsympy.core.alphabetsr   Úsympy.core.containersr   Úsympy.core.functionr   r   r   Úsympy.core.operationsr   Úsympy.core.powerr   Úsympy.core.sortingr   Úsympy.core.sympifyr   rË  r   r   r   Úsympy.printing.precedencer   Úsympy.printing.printerr   r   Úsympy.printing.conventionsr   r   r    r!   Úmpmath.libmp.libmpfr"   r#   r–  Úsympy.utilities.iterablesr$   r%   r8   Úsympy.tensor.arrayr&   Úsympy.vector.basisdependentr'   rz  r}  r  r¬   rn  Ú	frozensetr~  ÚcompilerÍ  r³   rµ   r¶  rì  r„  r•  rp   ru   rs   ú<module>rª     s›  ðòõ #ß /Ñ /ã ç D× DÓ DÝ 'Ý 'ß BÑ BÝ )Ý  Ý /Ý +ß ?Ñ ?õ =ß :ß Hß <ç Bç 7ã 	áÝ,Ý:òÐ ð%Øˆ]ð%à
ˆMð%ð ˆYð%ð ˆYð	%ð
 ˆ}ð%ð ˆMð%ð 
ˆ=ð%ð ˆYð%ð ˆMð%ð ˆ]ð%ð ˆjð%ð 	ˆ-ð%ð 	ˆ-ð%ð 	ˆ&ð%ð ˆsð%ð  ˆ}ð!%ð" 	ˆ&ñ#%ð$ 
ˆ=ð%%ð& ˆYð'%ð( 
ˆ=ð)%ð* ˆ{ð+%ð, 
ˆ7ð-%ð. 
ˆ=ð/%ð0 
ˆ7ð1%ð2 ˆYð3%ð4 ˆZð5%ð6 ˆZð7%ð8 
ˆ7ð9%ð: 
ˆ=ð;%ð< �.ð=%ð> �ð?%ð@ ˆjðA%ðB ˆYðC%ðD ˆjñE%ðF ØòI%Ð òN,€ð2àÑ.ð2ð Ñ*ð2ð Ñ(ð	2ð
 Ñ&ð2ð 
Ñ$ð2ð Ñ(ð2ð Ñ(ð2ð Ñ(ð2ð Ñ(ð2ð Ñ(ð2ð 
Ñ$ð2ð 
Ñ$ð2ð 
Ñ$ð2ð Ñ!ð2ð  
Ñð!2ð$ Ñ,ð%2ð& 	Ñ
*ð'2ñ( )Ù(Ù*á0Ù9Ù-Ù-ò72€Ð.ó ñ< ˜fÓ%Ð ð €B‡J�Jˆ~ÓØ€B‡J�JÐ'Ó(ðÐ óôd+7�7ô d+7óNWñ> �ÓñV0ó ðV0òr#ô~ru   