Ë
    täiã ã            	      ó˜  — 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    úc/Volumes/fast/ai/experiments/MLX_z-image/.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’zru   Úprmc                ó   — d| z   dz   S r’   rp   rq   s    rs   rt   rt   i   s   € �S˜‘U˜4’Zru   Ú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Ò0ru   c                ó   — d| z   dz   S )Nz\left\langle{z}\right\ranglerp   rq   s    rs   rt   rt   r   s   € Ð% aÑ'Ð(9Ò9ru   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³      sZ   € ð 	
�	‰	�$Ð)Ó*€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dœ	¥Zded<   �dPd „Z�dQd!„Z�dQd"„Z�dR�dQd#„Z	d$„ Z
�dQd%„Z�dSd&„Z�dSd'„Z�dR�dSd(„Z�dSd)„Z�dSd*„Z�dSd+„Z�dTd,„Zd-„ Z�dUd.„ZeZeZd/„ Z�dPd0„Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ Zd6„ Zd7„ Zd8„ Z d9„ Z!d:„ Z"�dVd;„Z#d<„ Z$d=„ Z%�dWd>„Z&�dXd?„Z'd@„ Z(dA„ Z)dB„ Z*�dYdC„Z+dD„ Z,dE„ Z-dF„ Z.dG„ Z/dH„ Z0dI„ Z1dJ„ Z2�dZdK„Z3�dP�d[dL„Z4dM„ Z5dN„ Z6e7dO„ «       Z8dP„ Z9dQ„ Z:dR„ Z;�dP�dQdS„Z<e<xZ=Z>�dPdT„Z?�dPdU„Z@�dPdV„ZA�dPdW„ZB�dPdX„ZC�dPdY„ZDdZ„ ZEd[„ ZFd\„ ZGd]„ ZHd^„ ZI�dPd_„ZJ�dPd`„ZK�dPda„ZL�dPdb„ZM�dPdc„ZN�dPdd„ZO�dPde„ZP�dPdf„ZQ�dPdg„ZR�dPdh„ZS�dPdi„ZT�d\dj„ZU�dPdk„ZV�dPdl„ZW�dPdm„ZX�dP�dQdn„ZYeYZZ�dPdo„Z[�dPdp„Z\�dPdq„Z]�dPdr„Z^�dPds„Z_�dPdt„Z`�dPdu„Za�dPdv„Zb�dPdw„Zc�dPdx„Zd�d]dy„Ze�dQdz„Zf�dPd{„Zg�dPd|„Zh�dPd}„Zi�dPd~„Zj�dPd„Zk�dPd€„Zl�dPd�„Zm�dPd‚„Zn�dPdƒ„Zo�dPd„„Zp�d^�dQd…„Zq�d^�dQd†„Zr�dPd‡„Zs�dPdˆ„Zt�dPd‰„Zu�dPdŠ„Zv�dPd‹„Zw�dPdŒ„Zx�dPd�„Zy�dPdŽ„Zz�dPd�„Z{�dPd�„Z|�dPd‘„Z}�dPd’„Z~�dPd“„Z�dPd”„Z€�dPd•„Z��dPd–„Z‚�dPd—„Zƒ�dPd˜„Z„�dPd™„Z…�dPdš„Z†�dPd›„Z‡�dPdœ„Zˆ�d_d�„Z‰�dPdž„ZŠ�dPdŸ„Z‹�dPd „ZŒ�dPd¡„Z�d¢„ ZŽd£„ Z��d`�dad¤„Z�e�Z‘�dbd¥„Z’�d`�dcd¦„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 �dPd´„Z¡dµ„ Z¢d¶„ Z£d·„ Z¤d¸„ Z¥d¹„ Z¦dº„ Z§d»„ Z¨d¼„ Z©d½„ Zª�ddd¾„Z«�ded¿„Z¬dÀ„ Z­dÁ„ Z®dÂ„ Z¯dÃ„ Z°dÄ„ Z±dÅ„ Z²dÆ„ Z³dÇ„ Z´dÈ„ Zµ�dPdÉ„Z¶dÊ„ Z·dË„ Z¸dÌ„ Z¹dÍ„ ZºdÎ„ Z»dÏ„ Z¼dÐ„ Z½�dPdÑ„Z¾�dPdÒ„Z¿�dPdÓ„ZÀ�dPdÔ„ZÁ�dPdÕ„ZÂdÖ„ ZÃd×„ ZÄdØ„ ZÅeÅZÆdÙ„ ZÇ�dPdÚ„ZÈ�dPdÛ„ZÉ�dPdÜ„ZÊ�dPdÝ„ZË�dPdÞ„ZÌ�dPdß„ZÍ�dPdà„ZÎ�dPdá„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ø�dP�d„Zù�dP�d	„Zú�df�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�dP�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!�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/�d>„ �Z0�d?„ �Z1�dP�d@„�Z2�dP�dA„�Z3�dP�dB„�Z4�dP�dC„�Z5�dP�dD„�Z6�dP�dE„�Z7�dF„ �Z8�dG„ �Z9�dH„ �Z:�dI„ �Z;�dJ„ �Z<�dK„ �Z=�dL„ �Z>�dM„ �Z?�dN„ �Z@ˆ f�dO„�ZAˆ x�ZBS (g  Ú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_styleÚdisable_split_super_subz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>O  ó   øè ø€ Ð+¡F˜qˆt�x‰x˜�{¡Fùó   ƒc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  r*  r,  s     €rs   r/  z3LatexPrinter._needs_mul_brackets.<locals>.<genexpr>R  s   øè ø€ ÐBÑ)A A�D—H‘H˜Q—KÑ)Aùr1  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_brackets8  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>_  r0  r1  F)r7  r9  r	   r"  r  s    `rs   Ú_needs_add_bracketsz LatexPrinter._needs_add_bracketsW  s1   ø€ ð ×ÒØÜÓ+¤S¡FÓ+Ô+ØØ�;Š;ØØru   c                óB   — |j                   D ]  }|j                  sŒ y y)NFT)Úargsr#  ©rø   r  r<   s      rs   r  zLatexPrinter._mul_is_cleane  s   € Ø—9”9ˆCØ�‹Ùð ð ru   c                ó:   — | j                  |j                  «       S r  )r  Úbaser  s     rs   r!  zLatexPrinter._pow_is_cleank  s   € Ø×'Ñ'¨¯	©	Ó2Ð2Ð2ru   c                ó   — |�	d|›d|›d�S |S )Nú\left(ú	\right)^{ro   rp   ©rø   r  Úexps      rs   Ú_do_exponentzLatexPrinter._do_exponentn  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__rA  r  r  Újoin)rø   r  ÚnamerM   Úlsrr   s         rs   Ú_print_BasiczLatexPrinter._print_Basict  sw   € Ø×(Ñ(¨¯©×)@Ñ)@ÓAˆØ�9Š9Ø*.¯)ª)Ó4©) Q�$—+‘+˜a•.¨)ˆ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 rU  rp   rW  s     rs   Ú_print_NoneTypezLatexPrinter._print_NoneTypeƒ  rZ  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Ú	enumerater6  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.permutationsri  ÚsizeÚcyclic_formÚ
array_formÚstrr±   )rø   r  ri  Ú	expr_permÚsizre  rË   s          rs   Ú_print_CyclezLatexPrinter._print_Cycle™  s©   € Ý@Ø�9‰9˜Š>Ø$Ù˜4Ó ˆØ×$Ñ$ˆ	Ø�i‰iˆØ�?‰?˜2Ñ #¨¡'Ò)Ø! c¨A¡g Y KÑ/ˆIØˆÛˆAØœ˜A›Ÿ™ s¨EÓ2Ñ2‰Hð à×#Ñ# 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   rh  )Ú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Ñ   Trj  ú & ú \\ z \begin{pmatrix} %s \end{pmatrix})rp  ri  Úsympy.utilities.exceptionsry  Úprint_cyclicrò   r÷   rw  rq  rs  r  ÚrangeÚlenrP  )rø   r  ri  ry  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å   ©rA  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â   rX  r   Ú+rl  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ÚmantrI  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   rD  ©r.  s    rs   rt   z:LatexPrinter._print_Mul.<locals>.convert.<locals>.<lambda>  sE   € ¼ÀÀ?Ó8SÒ8yÔW^Ð_`ÐbxÓWyò 8HÜ)¨!¬SÓ1ò  GÜ& q§v¡vÐ/EÓFð8Hru   T)Úbinaryc                ó   — t        | d«      S )Nr¿  )rÁ  rÃ  s    rs   rt   z:LatexPrinter._print_Mul.<locals>.convert.<locals>.<lambda>  s   € ¼ÀÀ?Ô8Sru   )r  rt  r  rÆ   Úas_ordered_factorsÚlistrA  r%   )r  rA  Ú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   rl  )r:  r;  r`  )rb  r  rÁ  r<  rƒ  Ú_between_two_numbers_pÚsearchÚmatch)	rA  Ú_texÚlast_term_texrË   rd  re  Ú	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×'>É(ùó   ‚rl  Fú- rç   Trã   )Úexactrk  )Úevaluater¿   rº   é   r°   )r;  rF  z
\right) / z / z	\frac{1}{ro   ro  ú\frac{ú}{rå   ©Úreturnrt  )Úsympy.simplifyrº  rò   rÂ  r
   rA  r   ÚOner9  r6  r"  r   rƒ  r™  r<  r  Úis_commutative)rø   r  rº  rÌ  rA  Ú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_AlgebraicNumber{  s<   € Ø�?Š?Ø—;‘;˜tŸ|™|›~×5Ñ5Ó7Ó8Ð8à—;‘;˜tŸ|™|›~Ó.Ð.ru   c                óÀ   — | j                  |j                  «      }|j                  rd|› d�S | j                  |j                  j	                  «       «      }d|› d|› d�S )NrF  ro  rL  )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 )Nrl  rÈ   rÙ  z	\sqrt{%s}r½   z\root{%d}{%s}z\sqrt[%d]{%s}z\frac{1}{%s}r¸   r   Ú/©rI  ú^{ro   rk  z\frac{1}{\frac{rÛ  ú}}z\frac{1}{(\frac{z})^{z%s^{%s})rI  r  rñ  Úqrª   rò   r  rD  Úis_negativer  r!   Ú	is_SymbolrÒ   r#  rà  rê  Ú_helper_print_standard_power)rø   r  rñ  rú  rD  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}rF  z\\left\(\\d?d?dotro  é   iùÿÿÿ)r  rI  r  rD  r!   rü  rÒ   Úis_FloatrÂ  r   Ú
startswithr8   rÐ  Úendswith)rø   r  ÚtemplaterI  rD  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  rA  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 )Nrl  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 %srl  r   rÙ  ©Útupler  ©Úlrr   rø   s     €rs   Ú_format_ineqz-LatexPrinter._print_Sum.<locals>._format_ineqÎ  óI   ø€ Ø,Ü°A°a±D¸!¸A¹$ÀÀ!ÁÑ3EÓFÑ3E¨a˜4Ÿ;™; q�>Ð3EÑFÓGñHð HùÚFó   ˜9
z\sum_{\substack{%s}} ú\\r`  ©	rƒ  Úlimitsr  r  rt  rP  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 )Nrl  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   ©Úkeyrl  r_  rk  r^  rF  ro  rã   Ú-é   )Úsympy.vectorr   ÚzeroÚ_latex_formrÂ  ÚseparateÚitemsrÇ  Ú
componentsÚsortÚappendr  rP  )rø   r  r   Úo1r+  ÚsystemÚvectÚ
inneritemsÚkÚvÚarg_strÚoutstrs               rs   Ú_print_BasisDependentz"LatexPrinter._print_BasisDependentï  s8  € Ý'àˆØ�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}rm  )r  rD  rP  Ú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„  rB  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   rl  rÜ   rø  ro   rÚ  rÛ  ú}}{c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr  ©r6  ©r-  rË   s     rs   r/  z1LatexPrinter._print_Derivative.<locals>.<genexpr>;  s   è ø€ Ð?±Y°ˆq×)Ñ)×+±YùrÕ  r
   T©r  r  F)r   r  rò   ÚreversedÚvariable_countr  rÒ   r9  rA  r  r!   )rø   r  Údiff_symbolr  Údimr.  Únums          rs   Ú_print_DerivativezLatexPrinter._print_Derivative%  sL  € Ü˜DŸI™IÔ&Ø%‰KàŸ.™.Ð)>Ñ?ˆKàˆØˆÜ˜t×2Ñ2Ö3‰FˆAˆsØ�3‰JˆCØ�aŠxØ¢;°·±¸A´Ð?Ñ?‘àªØ(,×(?Ñ(?ÀÇÁÈAÃÕ(OØ(,¯©°CÕ(8ð:ñ :‘ð 4ð �!‹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-  rX  rø   s     €rs   r/  z+LatexPrinter._print_Subs.<locals>.<genexpr>I  ó   øè ø€ Ð1©S¨�T—[‘[ —^©Sùr1  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  rT  s     €rs   r/  z+LatexPrinter._print_Subs.<locals>.<genexpr>J  rU  r1  z\\ c              3  ó8   K  — | ]  }|d    dz   |d   z   –— Œ y­w)r   Ú=rl  Nrp   )r-  rX  s     rs   r/  z+LatexPrinter._print_Subs.<locals>.<genexpr>K  s'   è ø€ ð !BÙ'@ !ˆAˆa‰D�3‰J˜˜1™ÕÑ'@ùó   ‚z\left. z \right|_{\substack{ z }})rA  r  rP  Úzip)	rø   Úsubsr  r¼  ÚnewÚ
latex_exprÚ	latex_oldÚ	latex_newÚ
latex_subss	   `        rs   Ú_print_SubszLatexPrinter._print_SubsF  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)rl  N)rƒ  )r-  Úlims     rs   r/  z/LatexPrinter._print_Integral.<locals>.<genexpr>U  s   è ø€ Ð(NÁ+¸3¬¨S«°Q­Á+ùrY  z\irË   rl  Úntz\, r   z\intrÃ   rÚ   r½   z\limitsr&  ú_{ú}^{rÙ  ro   ú^{%s}rÜ   r
   c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr  rH  rI  s     rs   r/  z/LatexPrinter._print_Integral.<locals>.<genexpr>p  s   è ø€ Ð>oÑenÐ`a¸q×?YÑ?Y×?[ÑenùrÕ  TrJ  )rò   rƒ  r  Úallr  rK  Úinsertr  r  r!   r9  rA  rP  )rø   r  r  ÚsymbolsrM  Úsymbolre  s          rs   Ú_print_IntegralzLatexPrinter._print_IntegralP  sÊ  € Ø˜2ˆWˆØ—n‘nÐ%:Ñ;ˆô ˆt�{‰{Ó˜qÒ ¤SÑ(NÀ$Ç+Â+Ó(NÔ%Nð ˜#œs 4§;¡;Ó/°!Ñ3Ñ4Ñ4°tÑ;ˆCà%)§[¢[ó2Ù%0™6ñ &1°$·+±+¸fÀQ¹iÔ2HÒIØ%0ð ñ 2ô   §¡Ö,�Ø˜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ð -ò" ! $×"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   rF  ro  rÜ   )rA  r  rt  r   ÚInfinityÚNegativeInfinityrÂ  r   )rø   r  rX  ÚzÚz0Údirr  s          rs   Ú_print_LimitzLatexPrinter._print_Limitt  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\%srl  r®   r   ú\operatorname{Nro   z\operatorname{%s})rM  ÚfindÚaccepted_latex_functionsrƒ  r  rÓ   )rø   r´  ÚsuperscriptidxÚsubscriptidxrQ  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¹   rl  r   )ÚasinÚacosÚatanÚacscÚasecÚacotÚasinhÚacoshÚatanhÚacschÚasechÚacothr¼   Úfullrk  ÚhÚarÚarcNÚpowerTz\%s^{-1}z\operatorname{%s}^{-1}rø  ro   z {%s}ú%sú{\left(%s \right)}ri  rm  )r´  rO  rÁ  rÂ  r   ÚgetattrrA  rt  r  rò   rƒ  r$  r{  r~  rÒ   rP  )rø   r  rI  r´  r<   rA  r»   Úinv_trig_power_caseÚcan_fold_bracketsÚinv_trig_tablerQ  Ú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Ó?±Y¨c”C˜Ÿ™ CÓ(Õ)°Yˆ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~  rt  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ª  Ú
issubclassrO  r~  rt  )rø   r  Úclss      rs   Ú_print_FunctionClassz!LatexPrinter._print_FunctionClass  sS   € Ø×1Ô1ˆCÜ˜$ Õ$¨¯©¸#¿,¹,Ó)FØ×5Ñ5°cÑ:Ò:ð 2ð ×$Ñ$¤S¨£YÓ/Ð/ru   c                óÎ   — |j                   \  }}t        |«      dk(  r| j                  |d   «      }n| j                  t        |«      «      }d|›d| j                  |«      ›d�}|S )Nrl  r   rn  z	 \mapsto ú \right))rA  rƒ  r  r  )rø   r  rm  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®   rF  rL  ro  rø  ro   )ÚsortedrA  r   r  rt  r´  r„  rP  )rø   r  rI  rA  rn  Útexargsr  s          rs   Ú_hprint_variadic_functionz&LatexPrinter._hprint_variadic_function  sw   € Ü�d—i‘iÔ%5Ô6ˆÙ=AÓB¹T°6�5˜4Ÿ;™; vÓ.Ó.¸TˆÑ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  rI  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  rA  r¹  s       rs   Ú
_print_logzLatexPrinter._print_log6  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_AbsA  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  rA  r!   r  rJ  r¹  s       rs   Ú	_print_rezLatexPrinter._print_reI  ó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_imQ  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Â  rA  Ú_print_EquivalentÚ_print_ImpliesÚ
is_Booleanr  )rø   rX  rÊ  rË  s       rs   Ú
_print_NotzLatexPrinter._print_NotY  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’  rl  rÜ   z \left(ro  )rÏ  Úis_Notr  )rø   rA  Úcharr<   r  s        rs   Ú_print_LogOpzLatexPrinter._print_LogOpd  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µ  rA  r   rÔ  ©rø   rX  rA  s      rs   Ú
_print_AndzLatexPrinter._print_Ands  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_Orw  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_Xor{  s&   € Ü�a—f‘fÔ"2Ô3ˆØ× Ñ   zÓ2Ð2ru   c                óB   — | j                  |j                  |xs d«      S )Nz\Rightarrow)rÔ  rA  )rø   rX  Ú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ø   rX  rÞ  rA  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  rI  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  rA  rJ  r¹  s       rs   Ú_print_ExpBasezLatexPrinter._print_ExpBase—  s2   € ð ˜$Ÿ+™+ d§i¡i°¡lÓ3Ñ3ˆØ× Ñ   cÓ*Ð*ru   c                 ó   — y)NrX  rp   rH  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 )	NrF  r   ú	\middle| rl  ro  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Ù  rF  r   rë  rl  ro  r`  zE^{ro   zE%s©rƒ  rA  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&  rF  r   ú; rl  rë  rÙ  ro  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   rl  rF  rL  ro  z\operatorname{B}^{ro   z\operatorname{B}%s)rA  rƒ  )rø   r  rI  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 )NrF  r   rL  rl  ro  ry  z}_{(rÙ  r&  z)}^{ro   z)}r‹  )rø   r  rI  Úoperatorr<   Úlargsr  s          rs   Ú_print_betainczLatexPrinter._print_betaincÒ  s~   € Ø-1¯YªYÓ7©Y c�—‘˜SÕ!¨YˆÑ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ù  rH  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 )	NrF  r   rL  rl  ro  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 )	NrF  r   rL  rl  ro  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  rA  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`  rl  r   z\operatorname{E}_{rh  ro   r	  )rø   r  rI  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   ÚFuncrF  rG  ro   ©r  rA  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Û  rl  rù  rø  ro   r	  r¹  s       rs   Ú_print_binomialzLatexPrinter._print_binomial3  sI   � Ø%)§[¡[°·±¸1±Õ%>Ø%)§[¡[°·±¸1±Õ%>ð@ˆð ˆ?Ú!$¢cÐ*Ð*àˆJru   c                ó¬   — |j                   \  }}d| j                  |t        d   «      z  }d|›d| j                  |«      ›d�}| j	                  ||«      S )Nr’  r  r“   ú	}^{\left(ú\right)}©rA  r  r!   r  rJ  )rø   r  rI  Únr3  rD  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  rI  r  r3  Úsubr  s          rs   Ú_print_FallingFactorialz$LatexPrinter._print_FallingFactorialD  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°   rk  rø  ro   Trg  ú}\left(ro  )rz  r  rÆ   ÚargumentrJ  )rø   r  rI  Úsymr  Úneed_exps         rs   Ú_hprint_BesselBasezLatexPrinter._hprint_BesselBaseL  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ã   rk  z%s, rS  )rø   rŽ   rr   rË   s       rs   Ú_hprint_veczLatexPrinter._hprint_vec]  sP   € ÙØØˆØ�S�b“ˆAØ�˜$Ÿ+™+ a›.Ñ(Ñ(‰Að à	ˆT�[‰[˜˜R™Ó!Ñ!ˆØˆru   c                ó(   — | j                  ||d«      S )NÚJ©r(  rH  s      rs   Ú_print_besseljzLatexPrinter._print_besseljf  ó   € Ø×&Ñ& t¨S°#Ó6Ð6ru   c                ó(   — | j                  ||d«      S )Nrû  r-  rH  s      rs   Ú_print_besselizLatexPrinter._print_besselii  r/  ru   c                ó(   — | j                  ||d«      S )NÚKr-  rH  s      rs   Ú_print_besselkzLatexPrinter._print_besselkl  r/  ru   c                ó(   — | j                  ||d«      S )NÚYr-  rH  s      rs   Ú_print_besselyzLatexPrinter._print_besselyo  r/  ru   c                ó(   — | j                  ||d«      S )Nrô  r-  rH  s      rs   Ú	_print_ynzLatexPrinter._print_ynr  r/  ru   c                ó(   — | j                  ||d«      S )Nrè   r-  rH  s      rs   Ú	_print_jnzLatexPrinter._print_jnu  r/  ru   c                ó(   — | j                  ||d«      S )NzH^{(1)}r-  rH  s      rs   Ú_print_hankel1zLatexPrinter._print_hankel1x  ó   € Ø×&Ñ& t¨S°)Ó<Ð<ru   c                ó(   — | j                  ||d«      S )NzH^{(2)}r-  rH  s      rs   Ú_print_hankel2zLatexPrinter._print_hankel2{  r>  ru   c                ó(   — | j                  ||d«      S )Nzh^{(1)}r-  rH  s      rs   Ú
_print_hn1zLatexPrinter._print_hn1~  r>  ru   c                ó(   — | j                  ||d«      S )Nzh^{(2)}r-  rH  s      rs   Ú
_print_hn2zLatexPrinter._print_hn2�  r>  ru   c                óh   — d| j                  |j                  d   «      z  }|�
|›d|›d|›�S |›|›�S r  r	  ©rø   r  rI  Ú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	  rF  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©rH  rH  s      rs   Ú_print_airyaizLatexPrinter._print_airyai”  ó   € Ø× Ñ   s¨DÓ1Ð1ru   c                ó(   — | j                  ||d«      S ©NÚBirN  rH  s      rs   Ú_print_airybizLatexPrinter._print_airybi—  rP  ru   c                ó(   — | j                  ||d«      S rL  ©rJ  rH  s      rs   Ú_print_airyaiprimezLatexPrinter._print_airyaiprimeš  ó   € Ø×&Ñ& t¨S°$Ó7Ð7ru   c                ó(   — | j                  ||d«      S rR  rV  rH  s      rs   Ú_print_airybiprimezLatexPrinter._print_airybiprime�  rX  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“   rh  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_{rL  rh  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ƒ  rA  r  r:  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)r9  r   r¤  rø  ro   r  rj  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  r:  r  rA  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   rh  ©r:  r  rA  )rø   r  rI  rr   rs  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  rm  ú\right)}\left(ro  rF  ú\right)^{%s}rq  )rø   r  rI  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  ru  ro  rF  rv  rq  ©rø   r  rI  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$  ro  rF  rv  rq  ©rø   r  rI  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$  ro  rF  rv  rq  r}  s         rs   Ú_print_chebyshevuzLatexPrinter._print_chebyshevuò  r  ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )Nrt  r$  ro  rF  rv  rq  r}  s         rs   Ú_print_legendrezLatexPrinter._print_legendreù  r  ru   c                ó€   — t        | j                  |j                  «      \  }}}d|›d|›d|›d�}|�d|z   d|z  z   }|S )Nrt  r  ru  ro  rF  rv  rq  ry  s          rs   Ú_print_assoc_legendrez"LatexPrinter._print_assoc_legendre   r{  ru   c                óx   — t        | j                  |j                  «      \  }}d|›d|›d�}|�d|z   d|z  z   }|S )NzH_{r$  ro  rF  rv  rq  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$  ro  rF  rv  rq  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  ru  ro  rF  rv  rq  ry  s          rs   Ú_print_assoc_laguerrez"LatexPrinter._print_assoc_laguerre  r{  ru   c           	     óˆ   — t        | j                  |j                  «      \  }}}}d|›d|›d|›d|›d�	}|�d|z   d|z  z   }|S )NzY_{rh  r$  rm  ro  rF  rv  rq  ©rø   r  rI  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_{rh  r$  rm  ro  rF  rv  rq  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ã   ri  rF  rL  ro  )r:  r  )	rø   Ú	characterrA  r�   rI  rè  rú  rs  Ú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_functionsrA  rH  s      rs   Ú_print_mathieuczLatexPrinter._print_mathieuc0  ó   € Ø×-Ñ-¨c°4·9±9À#Ð-ÓFÐFru   c                ó>   — | j                  d|j                  |¬«      S )Nr   r÷  rœ  rH  s      rs   Ú_print_mathieuszLatexPrinter._print_mathieus3  rŸ  ru   c                ó@   — | j                  d|j                  d|¬«      S )Nr›  T©r�   rI  rœ  rH  s      rs   Ú_print_mathieucprimez!LatexPrinter._print_mathieucprime6  ó    € Ø×-Ñ-¨c°4·9±9ÀDÈcÐ-ÓRÐRru   c                ó@   — | j                  d|j                  d|¬«      S )Nr   Tr£  rœ  rH  s      rs   Ú_print_mathieusprimez!LatexPrinter._print_mathieusprime9  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 )Nrl  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   rC  )r-  rñ  s     rs   r/  z,LatexPrinter._print_Order.<locals>.<genexpr>K  s   è ø€ Ð>±:¨a˜a¤1§6¡6�k±:ùs   ‚rl  rñ  r   ú\rightarrow zO\left(%s\right))r  r  Úpointr9  rƒ  Ú	variables)rø   r  rr   s      rs   Ú_print_OrderzLatexPrinter._print_OrderI  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÷   rM  rQ  )rø   r  r³  rQ  s       rs   Ú_print_SymbolzLatexPrinter._print_SymbolY  s@   € Ø—N‘N >Ñ2×6Ñ6°tÓ<ˆØÐØˆKà×(Ñ(¨¯©¸%Ð(Ó@Ð@ru   c                ó6  — |�d|v r|g g fS | j                   d   r'|j                  dd«      j                  dd«      g g }}}nt        |«      \  }}}t        |«      }|D �cg c]  }t        |«      ‘Œ }}|D �cg c]  }t        |«      ‘Œ }}|||fS c c}w c c}w )Nr“   r×   rx  z\_r°   z\^)rò   r±   r   Ú	translate)rø   rQ  Úsupersr[  r˜  r!  s         rs   Ú_split_super_subzLatexPrinter._split_super_subb  s¬   € Øˆ<˜3 $™;Ø˜"˜b�>Ð!Ø�^‰^Ð5Ò6Ø"&§,¡,¨s°EÓ":×"BÑ"BÀ3ÈÓ"NÐPRÐTV˜$�&‰Dä!0°Ó!6ÑˆD�&˜$Ü˜‹ˆÙ,2Ó3©F S”)˜C•.¨FˆÐ3Ù*.Ó/©$ 3”	˜#•¨$ˆÐ/Ø�f˜dÐ#Ð#ùò 4ùÚ/s   Á BÁ8Bc                óÀ   — | j                  |«      \  }}}|dk(  rdj                  |«      }|r|ddj                  |«      z  z  }|r|ddj                  |«      z  z  }|S )Nr–   ú\mathbf{{{}}}ri  rÜ   r9  )r¸  r  rP  )rø   Ústringr³  rQ  r·  r[  s         rs   rM  z!LatexPrinter._deal_with_super_subn  sn   € Ø!×2Ñ2°6Ó:Ñˆˆf�dð �FŠ?Ø#×*Ñ*¨4Ó0ˆDñ Ø�G˜cŸh™h vÓ.Ñ.Ñ.ˆDÙØ�G˜cŸh™h t›nÑ,Ñ,ˆDàˆru   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Ú>Ú<rX  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_Relational}  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 )Nrk  z & \text{for}\: z%s & \text{otherwise}z\begin{cases} %s \end{cases}rb  )rA  r  Úcondr   r.  r  rP  )rø   r  rX  r²   Úecpairsr  s         rs   Ú_print_PiecewisezLatexPrinter._print_Piecewise‘  sð   € à#Ÿy™y¨¨"™~ô/Ù-‘t�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.  rP  r  rò   Úcolsr±   )rø   r  ÚlinesÚlinerË   rÂ   Úout_strs          rs   Ú_print_matrix_contentsz#LatexPrinter._print_matrix_contentsž  sì   € Øˆä˜$Ÿ)™)Ö$ˆDØ�L‰L˜Ÿ™¸TÀ$ÊÀ'º]Ó$K¹]¸ T§[¡[°¥^¸]Ñ$KÓLÕMð %ð —.‘. Ñ+ˆØˆ?Ø�~‰~˜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  rm  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Ù  rl  r   Ú:c              3  óH   •K  — | ]  }|�‰j                  |«      nd–— Œ y ­w©Nrã   rS  )r-  Úxirø   s     €rs   r/  zFLatexPrinter._print_MatrixSlice.<locals>.latexslice.<locals>.<genexpr>Ë  s%   øè ø€ ÐRÑPQÈ"¨r¨~˜DŸK™K¨œOÀ2ÓEÑPQùs   ƒ")rÇ  rP  )r.  rN  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[rL  ú\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õ  rF  rG  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>û  sE   ø€ ¬Z¸¼3Ô-?Ì
ÐSTÐV\ÔH]˜4Ÿ;™; q›>ð FØ×Ñ˜aÔ!7¸Ó!=¸uÓEðFru   rk  rl  rÖ  rÜ   )Úsympyr  rÇ  rA  r6  rP  r:  )rø   r  ÚparensrA  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                ó„   — t        |«      }|j                  \  }}| j                  ||«      › d| j                  ||«      › �S )NrÝ   )r   rA  r  )rø   r  r
  ÚleftÚrights        rs   Ú_print_DotProductzLatexPrinter._print_DotProduct  sG   € Ü& tÓ,ˆØ—i‘i‰ˆˆeØ×$Ñ$ T¨5Ó1Ð2°'¸$×:KÑ:KÈEÐSXÓ:YÐ9ZÐ[Ð[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 )
NrF  r   r
   Trß  z \bmod rl  rG  ro   r  rH  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>,  ó   øè ø€ Ð<±t°‰V�C˜ d×+Ð+±tùó   ƒ©rA  r!   r  rP  ©rø   r  rA  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   rI  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>;  r  r  r  r  s      @@rs   Ú_print_KroneckerProductz$LatexPrinter._print_KroneckerProduct5  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ö  rF  rG  ro   r°   rø  )rD  rI  rø  rö  rÂ  rù  r  )rø   r  rD  rI  rö  Úbase_strs         rs   Ú_print_MatPowzLatexPrinter._print_MatPow=  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_MatrixSymbolJ  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_ZeroMatrixN  ó(   € Ø—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_OneMatrixR  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_IdentityV  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_PermutationMatrixZ  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Ë  rk  rÌ  rÍ  rÎ  rÏ  rÐ  r’  r“   r²   rÑ  rÀ   rÙ  rÚ  rã   rl  Tr~  r  rì  rí  rÙ  )Úrankr  rò   Úshaper±   rö   r‚  rÇ  Ú	itertoolsÚproductr.  rƒ  rP  )rø   r  rÂ   Ú	block_strrÛ  rÜ  rË   Ú	level_strÚshape_rangesÚouter_iÚevenÚback_outer_irÖ  s                rs   Ú_print_NDimArrayzLatexPrinter._print_NDimArray^  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Ñ2H¨Q¢bÐ2Hˆ	Ð%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™.Ò)ñ !=ð 8ð$ ˜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 )	Nrm  ro   z{}^{z{}_{r   rX  TF)r  Úis_uprA  )	rø   rQ  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  )rA  Úget_indicesrK  )rø   r  rQ  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  rA  rM  rF  rK  )rø   r  rQ  r;  rF  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_printerrP  r  r    )rø   r  r©  rA  r<   s        rs   Ú_print_TensMulzLatexPrinter._print_TensMul¼  sS   € à×;Ñ;Ó=‰
ˆˆ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Ö  )rA  r.  r  r    r-  rP  r±   )rø   r  rè  rA  r.  rr   s         rs   Ú_print_TensAddzLatexPrinter._print_TensAddÃ  sc   € ØˆØ�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°   rx  r“   r   ro   )rE  r  rA  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 )Nrl  z\frac{\partial}{\partial {r   rF  r
   Fro   z\frac{\partial^{rÜ   z\partial {%s}rÛ  )rƒ  r¯  r  r  r  r!   rP  ©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  rQ  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à  rL  rù  )r  rQ  r!   rP  r;  r  rY  s      rs   Ú_print_ArrayElementz LatexPrinter._print_ArrayElementã  sY   � à×Ñ˜dŸi™i¬°FÑ);¸TÕBØ�I‰I°D·L²LÓA±L¨q˜$Ÿ+™+ a›.Ð)Ñ*°LÑ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	  rH  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Ì   rm  úUnknown Decimal Separatorrl  r   z \  )rò   ró   rƒ  r  r  rP  )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¸ d§k¡k°!¥n¸dÑ%CÓDóFð FùÚ%Cs   ÂB*c                ó~   — |j                   D �cg c]  }| j                  |«      ‘Œ }}dj                  |«      S c c}w )Nr   ©rA  r  rP  ©rø   r  rè  Úelementss       rs   Ú_print_TensorProductz!LatexPrinter._print_TensorProduct  s8   € Ø,0¯IªIÓ6©I q�D—K‘K •N¨IˆÐ6Ø× Ñ  Ó*Ð*ùò 7ó   �:c                ó~   — |j                   D �cg c]  }| j                  |«      ‘Œ }}dj                  |«      S c c}w )Nú \wedge rj  rk  s       rs   Ú_print_WedgeProductz LatexPrinter._print_WedgeProduct  s8   € Ø,0¯IªIÓ6©I q�D—K‘K •N¨IˆÐ6Ø×Ñ Ó)Ð)ùò 7rn  c                ó$   — | j                  |«      S r  )rh  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Ì   ú, \  rf  )rò   rP  r  ró   rY  s      rs   Ú_print_listzLatexPrinter._print_list  sž   € Ø�>‰>Ð-Ñ.°'Ò9Ø&Ø—‘±tÓ<±t°!˜tŸ{™{¨1�~°tÑ<Ó=ñ>ð >à�^‰^Ð/Ñ0°HÒ<Ø&Ø—‘±tÓ<±t°!˜tŸ{™{¨1�~°tÑ<Ó=ñ>ð >ô Ð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\}ru  )rµ  Úkeysr   r.  r  rP  )rø   rÍ   rx  r+  r$  Úvals         rs   Ú_print_dictzLatexPrinter._print_dict  sf   € Ü�a—f‘f“hÔ$4Ô5ˆØˆãˆCØ�C‘&ˆCØ�L‰L d§k¡k°#Õ&6¸¿¹ÀCÔ8HÐIÕJð ð % x§}¡}°UÓ';Ñ;Ð;ru   c                ó$   — | j                  |«      S r  )rz  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 )
Nrl  r   z\delta\left(%s\right)z\delta^{\left( z \right)}\left( r°  rF  rG  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   rl  rÙ  z{\left\langle z \right\rangle}^{ro   z{\left({\langle z \rangle}^{z}\right)}^{r	  )rø   r  rI  Ú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 )NrL  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  ©r-  r<   rø   s     €rs   r/  z0LatexPrinter._print_Heaviside.<locals>.<genexpr>7  s   øè ø€ ÐA±j¨s˜$Ÿ+™+ c×*±jùr1  z\theta\left(%s\right)rF  rG  ro   )rP  Úpargs)rø   r  rI  r…  r  s   `    rs   Ú_print_HeavisidezLatexPrinter._print_Heaviside6  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   rl  z\delta_{rÜ   ro   rL  rF  rG  )r  rA  r  )rø   r  rI  rË   rè   r  s         rs   Ú_print_KroneckerDeltaz"LatexPrinter._print_KroneckerDelta=  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>J  s   è ø€ Ð,¡)˜Qˆq�y�y¡)ùs   ‚z\varepsilon_{%s}rÜ   rL  rF  rG  ro   )r:  r  rA  rk  rP  )rø   r  rI  r;  r  s        rs   Ú_print_LeviCivitazLatexPrinter._print_LeviCivitaH  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 rm  z\text{Domain on })rÁ  r  r�  rm  rŽ  )rø   rÍ   s     rs   Ú_print_RandomDomainz LatexPrinter._print_RandomDomainR  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µ  rA  r   Ú
_print_set©rø   rr   r+  s      rs   Ú_print_FiniteSetzLatexPrinter._print_FiniteSet]  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Ì   rL  rf  ú\left\{%s\right\})rµ  r   rò   rP  r:  r  ró   r“  s      rs   r’  zLatexPrinter._print_seta  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Ù  rl  rL  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  r„  s     €rs   r/  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>u  ó   øè ø€ Ð$HÁ¸# T§[¡[°×%5Áùr1  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  r„  s     €rs   r/  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>x  s   øè ø€ Ð$LÁ¸# T§[¡[°×%5Áùr1  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  r„  s     €rs   r/  zKLatexPrinter._print_Range.<locals>._print_symbolic_range.<locals>.<genexpr>z  rš  r1  z\text{Range}\left(ro  rj  )Úcontrr   rø   s    €€rs   Ú_print_symbolic_rangez8LatexPrinter._print_Range.<locals>._print_symbolic_rangeo  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   rk  r   rl  rc  Tú\left\{rL  c              3  óL   •K  — | ]  }|‰ur‰j                  |«      nd –— Œ y­w©z\ldotsNrS  ©r-  ÚelÚdotsrø   s     €€rs   r/  z,LatexPrinter._print_Range.<locals>.<genexpr>•  ó(   øè ø€ Ð_ÑV^ÐPR¨b¸©n˜4Ÿ;™; rœ?À)ÓKÑV^ùó   ƒ!$ú\right\})ÚobjectÚstartÚis_infiniteÚstopÚstepÚis_positiveÚiterÚnextÚis_emptyrq  r  Úis_iterablerP  )rø   rr   rž  ÚprintsetÚitr¤  s   ``   @rs   Ú_print_RangezLatexPrinter._print_Rangen  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Ù  rg  r   rh  r$  rl  ro  ro   rø  rî  )rø   r  ÚletterrI  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_polynomialrH  s      rs   Ú_print_bernoullizLatexPrinter._print_bernoulli¦  ó   € Ø×-Ñ-¨d°C¸Ó=Ð=ru   c                ó(   — | j                  |d|«      S )NÚGr»  rH  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   rL  rl  ro   r`  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  )r-  r£  rø   s     €rs   r/  z+LatexPrinter._print_bell.<locals>.<genexpr>°  s"   øè ø€ ð 3CÙ5A¨rð 48·;±;¸r·?Ù5Aùr1  rÙ  rø  rº  )rƒ  rA  r  rP  r¼  )rø   r  rI  Ú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»  rH  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»  rH  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$  ro  r	  rH  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\}_{rX  rh  ro   r&  rÙ  rl  rc  rì  rL  c              3  óL   •K  — | ]  }|‰ur‰j                  |«      nd –— Œ y­wr¡  rS  r¢  s     €€rs   r/  z1LatexPrinter._print_SeqFormula.<locals>.<genexpr>Þ  r¥  r¦  rí  )r¨  rƒ  r©  Úfree_symbolsr«  r  Úformular¯  r   rr  Úcoeffrq  Úlengthr.  r  rP  )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Ù  rL  rÚ  )r©  Úendr  Ú	left_openÚ
right_open)rø   rË   r  r  s       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 rL  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   rA  r  rP  ©rø   Úur  rË   Úargs_strs        rs   Ú_print_UnionzLatexPrinter._print_Unionû  óF   € Ü% 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 	  óH   € Ü% 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 )Nrl  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"   øè ø€ ð  <Ù4:¨SˆD×Ñ˜c 4×(±Fùs   ƒ)r   rƒ  Úsetsr$   r  rP  )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   rW  s     rs   Ú_print_EmptySetzLatexPrinter._print_EmptySet	  s   € Øru   c                 ó   — y)Nz
\mathbb{N}rp   ©rø   r  s     rs   Ú_print_NaturalszLatexPrinter._print_Naturals	  ra  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	  ra  ru   c                 ó   — y©Nz
\mathbb{Q}rp   rà  s     rs   Ú_print_RationalszLatexPrinter._print_Rationals"	  ra  ru   c                 ó   — y©Nz
\mathbb{R}rp   rà  s     rs   Ú_print_RealszLatexPrinter._print_Reals%	  ra  ru   c                 ó   — y©Nz
\mathbb{C}rp   rà  s     rs   Ú_print_ComplexeszLatexPrinter._print_Complexes(	  ra  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  rS  )r-  r.  rô  rø   s      €rs   r/  z/LatexPrinter._print_ImageSet.<locals>.<genexpr>.	  s-   øè ø€ ÐRÑ<Q±D°A°q�—‘˜A“ §¡¨A£Ô/Ñ<Qùs   ƒ/2rL  c              3  ó&   K  — | ]	  }d |z  –— Œ y­w)ú	%s \in %sNrp   )r-  Úxys     rs   r/  z/LatexPrinter._print_ImageSet.<locals>.<genexpr>/	  s   è ø€ Ð;±s°˜<¨"Õ,±sùs   ‚rŸ  ú\; \middle|\; r§  )rX   r  Ú	signaturerZ  Ú	base_setsrP  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 )NrL  rŸ  r  ú	 \right\}r�  rp  )rP  r   r&  r  Úbase_setr   ÚUniversalSetÚ	condition©rø   rr   r�  Ú
vars_prints       rs   Ú_print_ConditionSetz LatexPrinter._print_ConditionSet2	  s™   € Ø—Y‘Y¼EÀ!Ç%Á%¼LÓI¹L°S §¡¨CÕ 0¸LÑ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  rA  r  )rø   r  Ú	arg_prints      rs   Ú_print_PowerSetzLatexPrinter._print_PowerSet>	  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 )NrL  rŸ  r  r�  r  )rP  r¯  r  r  ró  r  s       rs   Ú_print_ComplexRegionz!LatexPrinter._print_ComplexRegionB	  s_   € Ø—Y‘Y¸A¿KºKÓH¹K°S §¡¨CÕ 0¸KÑ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  rS  )r-  rè  rø   s     €rs   r/  z/LatexPrinter._print_Contains.<locals>.<genexpr>J	  s   øè ø€ Ð#C¹F°q D§K¡K°§N¹Fùr1  )r  rA  rW  s   ` rs   Ú_print_ContainszLatexPrinter._print_ContainsI	  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)	rc  rÖ  r   rC  Úbnr  Úa0rf  Útruncater  s     rs   Ú_print_FourierSeriesz!LatexPrinter._print_FourierSeriesL	  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  )rf  Úinfiniter  s     rs   Ú_print_FormalPowerSeriesz%LatexPrinter._print_FormalPowerSeriesQ	  s   € Ø�‰˜qŸz™zÓ*Ð*ru   c                ó    — d|j                   z  S )Nz\mathbb{F}_{%s})Úmodr  s     rs   Ú_print_FiniteFieldzLatexPrinter._print_FiniteFieldT	  s   € Ø! D§H¡HÑ,Ð,ru   c                 ó   — yrý  rp   r  s     rs   Ú_print_IntegerRingzLatexPrinter._print_IntegerRingW	  ra  ru   c                 ó   — yr   rp   r  s     rs   Ú_print_RationalFieldz!LatexPrinter._print_RationalFieldZ	  ra  ru   c                 ó   — yr  rp   r  s     rs   Ú_print_RealFieldzLatexPrinter._print_RealField]	  ra  ru   c                 ó   — yr  rp   r  s     rs   Ú_print_ComplexFieldz LatexPrinter._print_ComplexField`	  ra  ru   c                ó¦   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }|›d|›d�S )NrL  rì  rí  ©r  ÚdomainrP  r:  rm  ©rø   r  r:  rm  s       rs   Ú_print_PolynomialRingz"LatexPrinter._print_PolynomialRingc	  ó<   € Ø—‘˜TŸ[™[Ó)ˆØ—)‘)œC §¡¨T¯\©\Ó:Ó;ˆÚ'-ªwÐ7Ð7ru   c                ó¦   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }|›d|›d�S )NrL  rF  ro  r9  r;  s       rs   Ú_print_FractionFieldz!LatexPrinter._print_FractionFieldh	  r=  ru   c                óÊ   — | j                  |j                  «      }dj                  t        | j                   |j                  «      «      }d}|j
                  sd}|›|›d|›d�S )NrL  rã   zS_<^{-1}rì  rí  )r  r:  rP  r:  rm  Úis_Poly)rø   r  r:  rm  Úinvs        rs   Ú_print_PolynomialRingBasez&LatexPrinter._print_PolynomialRingBasem	  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   rl  r`  r“  r%  rÜ   )r%  r“  z	domain=%srL  r®   ú {\left(z	 \right)}ry  z	}{\left( )rN  rO  rc  rb  r  ÚgensÚpowr"  r   rß  Úextendr  r  ÚpoprP  rÇ  r:  Ú
get_domainr{  )rø   Úpolyr­  rc  Úmonomr×  Ús_monomrË   rI  Ús_coeffÚs_termÚmodifierr  rF  r:  rA  r  s                    rs   Ú_print_PolyzLatexPrinter._print_Polyu	  s  € Ø�n‰n×%Ñ%ˆØˆØ ŸJ™JŸL‰LˆE�5ØˆGÜ# EÖ*‘��3Ø˜“7Ø˜a’xØ 4§;¡;¨t¯y©y¸©|Ó#<Ñ<™à 4§;¡;¬s°4·9±9¸Q±<ÀÓ/EÓ#FÑF™ð +ð �|Š|ÙØ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)})rN  rO  r  r  rI  r{  )rø   r;   r­  r  rI  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®   rE  rL  r  ry  z	} {\left()
rN  rO  r  r  Úfunr   ÚIdentityFunctionr.  r{  rP  )rø   r  r­  rA  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)Nrl  z{} \omega^{{{}}}z	{} \omegaz\omega^{{{}}}r[  )rA  r  )rø   r  rI  Ú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_  )rP  rA  r  rB  s      rs   Ú_print_OrdinalzLatexPrinter._print_Ordinal×	  s0   € Ø�z‰z°t·y²yÓA±y°˜4Ÿ;™; sÕ+°yÑAÓBÐBùÒAs   š9c                óP   — | j                   d   }|j                  | t        d|«      S )Nrá   z	{%s}^{%d})rò   rt  r!   )rø   rK  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 )Nrl  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 )Nrl  r   zE_{%s}rø  ro   rF  ro  rî  )rø   r  rI  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ã   rl  r   rÙ  ©r  r  rA  )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©rn  r  s     rs   Ú_print_MellinTransformz#LatexPrinter._print_MellinTransformø	  ó   € Ø×+Ñ+¨D°#Ó6Ð6ru   c                ó(   — | j                  |dd«      S )Nrp  Trq  r  s     rs   Ú_print_InverseMellinTransformz*LatexPrinter._print_InverseMellinTransformû	  ó   € Ø×+Ñ+¨D°#°tÓ<Ð<ru   c                ó&   — | j                  |d«      S )NÚLrq  r  s     rs   Ú_print_LaplaceTransformz$LatexPrinter._print_LaplaceTransformþ	  rs  ru   c                ó(   — | j                  |dd«      S )Nrx  Trq  r  s     rs   Ú_print_InverseLaplaceTransformz+LatexPrinter._print_InverseLaplaceTransform
  rv  ru   c                ó&   — | j                  |d«      S rÈ  rq  r  s     rs   Ú_print_FourierTransformz$LatexPrinter._print_FourierTransform
  rs  ru   c                ó(   — | j                  |dd«      S )NrÉ  Trq  r  s     rs   Ú_print_InverseFourierTransformz+LatexPrinter._print_InverseFourierTransform
  rv  ru   c                ó&   — | j                  |d«      S )NÚSINrq  r  s     rs   Ú_print_SineTransformz!LatexPrinter._print_SineTransform

  ó   € Ø×+Ñ+¨D°%Ó8Ð8ru   c                ó(   — | j                  |dd«      S )Nr�  Trq  r  s     rs   Ú_print_InverseSineTransformz(LatexPrinter._print_InverseSineTransform
  ó   € Ø×+Ñ+¨D°%¸Ó>Ð>ru   c                ó&   — | j                  |d«      S )NÚCOSrq  r  s     rs   Ú_print_CosineTransformz#LatexPrinter._print_CosineTransform
  rƒ  ru   c                ó(   — | j                  |dd«      S )Nrˆ  Trq  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   rQ  )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ã   rl  ÚWrF  ro  zW{0}_{{{1}}}\left({2}\right))r  rA  rƒ  r  )rø   r  rI  Ú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   rl  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   rl  r  s     rs   Ú_print_VariancezLatexPrinter._print_Variance2
  s%   € Ø5×<Ñ<¸T¿[¹[ÈÏÉÐSTÉÓ=VÓWÐWru   c                ój   ‡ — dj                  dj                  ˆ fd„|j                  D «       «      «      S )Nz#\operatorname{{Cov}}\left({}\right)rL  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr  rS  r„  s     €rs   r/  z1LatexPrinter._print_Covariance.<locals>.<genexpr>6
  s   øè ø€ ÐFmÑclÐ\_ÀtÇ{Á{ÐSV×GWÑclùr1  )r  rP  rA  r  s   ` rs   Ú_print_CovariancezLatexPrinter._print_Covariance5
  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   rl  r  s     rs   Ú_print_ProbabilityzLatexPrinter._print_Probability8
  rž  ru   c                ó|   — | j                  |j                  «      }| j                  |j                  «      }|›d|›�S )Nr­  )r  r:  Úcodomain)rø   Úmorphismr:  r§  s       rs   Ú_print_MorphismzLatexPrinter._print_Morphism;
  s3   € Ø—‘˜XŸ_™_Ó-ˆØ—;‘;˜x×0Ñ0Ó1ˆÚ&,©hÐ7Ð7ru   c                ó€   — | j                  |j                  «      | j                  |j                  «      }}d|›d|›d�S )NrÚ  rÛ  ro   )r  rO  Úden)rø   r  rO  r«  s       rs   Ú_print_TransferFunctionz$LatexPrinter._print_TransferFunction@
  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>F
  s   ø€ ˜4×,Ñ,¨QÔ0FÀtÓ0LØ,1ô3ru   rÜ   )rÇ  rA  rP  r:  )rø   r  rA  r  s   ``  rs   Ú_print_SerieszLatexPrinter._print_SeriesD
  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   )ÚMIMOParallelrk  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>M
  sE   ø€ Ü7AÀ!À\Ô7Rð  ×,Ñ,¨QÔ0FÀtÓ0LØ-2ó4ð gØX\×XcÑXcÐdeÓXfðgru   z\cdot)Úsympy.physics.control.ltir±  rÇ  rA  rP  r:  )rø   r  rA  r  r±  s   ``  @rs   Ú_print_MIMOSerieszLatexPrinter._print_MIMOSeriesJ
  s:   ú€ Ý:Ü�D—I‘I‹™t ˜tÑ$ˆõgˆà�}‰}œS ¨Ó.Ó/Ð/ru   c                ó`   — dj                  t        | j                  |j                  «      «      S ra  ©rP  r:  r  rA  r  s     rs   Ú_print_ParallelzLatexPrinter._print_ParallelQ
  ó    € Ø�z‰zœ#˜dŸk™k¨4¯9©9Ó5Ó6Ð6ru   c                ó`   — dj                  t        | j                  |j                  «      «      S ra  r¶  r  s     rs   Ú_print_MIMOParallelz LatexPrinter._print_MIMOParallelT
  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ÚSeriesrl  rk  r“  r%  rÚ  rÛ  rÜ   ro   )Úsympy.physics.controlr¼  r½  Úsys1r�  rÂ  rÇ  rA  Úsys2r  r©  )rø   r  r¼  r½  rO  ÚtfÚnum_arg_listÚden_arg_listÚ
den_term_1Ú
den_term_2râ  Údenom_1Údenom_2Ú_signs                 rs   Ú_print_FeedbackzLatexPrinter._print_FeedbackW
  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   )Ú
MIMOSeriesrk  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_MIMOFeedback{
  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_TransferFunctionMatrix‚
  s   € Ø�k‰k˜$Ÿ.™.Ó)ˆØ˜CÑÐru   c                ób   — dj                  |j                  j                  |j                  «      S )Nz\text{{{}}}_{{{}}})r  rN  rO  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   rQ  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Ö  r:  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   rQ  ÚreverserP  r©  )rø   r¨  Ú	componentÚcomponent_names_listÚcomponent_namesrÕ  s         rs   Ú_print_CompositeMorphismz%LatexPrinter._print_CompositeMorphism”
  s   € ð .6×-@Ò-@ó BÙ-@ 	ð !%§¡¬F°9·>±>Ó,BÕ CØ-@ð 	ð  Bà×$Ñ$Ô&Ø#Ÿ.™.Ð)=Ó>ÀÑDˆà×.Ñ.¨xÓ8ˆØ Ñ0Ð0ùò Bs   �+A6c                óh   — dj                  | j                  t        |j                  «      «      «      S ©Nrº  )r  r  r   rQ  )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Ü   rl  ú& 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�  r9  ©rø   rp  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]rm  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­w©r“   ro   NrS  ©r-  r.  rø   s     €rs   r/  z8LatexPrinter._print_FreeModuleElement.<locals>.<genexpr>Å
  s'   øè ø€ ð 43Ù01¨1ˆC�$—+‘+˜a“.Ñ  3Õ&±ùr¦  )r  rP  )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Ò7ru   rm  c           	   3  ój   •K  — | ]*  } ‰ ‰d j                  ˆfd„|D «       «      «      «      –— Œ, y­w)rm  c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr  rp   )r-  r.  Úcurlys     €rs   r/  z:LatexPrinter._print_SubModule.<locals>.<genexpr>.<genexpr>Ì
  s   øè ø€ Ð3HÁaÀ±E¸!·HÁaùs   ƒN)rP  )r-  Úgr  Úsquares     €€rs   r/  z0LatexPrinter._print_SubModule.<locals>.<genexpr>Ì
  s-   øè ø€ ÐYÑTXÈq™e¡F¨3¯8©8Ó3HÁaÓ3HÓ+HÓ$I×JÑTXùs   ƒ03ú\left\langle {} \right\rangle)rF  r  r�  rŽ  rP  r  )rø   r�  r  r.  rF  Ú
gens_latexr  r  s         @@rs   Ú_print_SubModulezLatexPrinter._print_SubModuleÈ
  sx   ù€ ØFGÇfÂfÔMÁfÀ¹!Ó<¹!°Q�—‘˜QŸV™VŸ_™_¨QÓ/Õ0¸!Ó<ÀfˆÑ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 )Nrm  r“   ro   r  )rP  rF  r  r  )rø   r�  r  r  s       rs   Ú_print_SubQuotientModulez%LatexPrinter._print_SubQuotientModuleÏ
  sL   € Ø—X‘XÀ1Ç6Â6ÓJÁ6¸a˜s T§[¡[°£^Ñ3°cÓ9À6Ñ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 )Nrm  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­wrú  rS  rû  s     €rs   r/  z=LatexPrinter._print_ModuleImplementedIdeal.<locals>.<genexpr>Õ
  s$   øè ø€ ÐGÁ$¸Q˜c D§K¡K°£NÑ2°SÕ8Á$ùr¦  r  )Ú_modulerF  r�  rŽ  rP  r  )rø   r�  r.  rF  r  s   `    rs   Ú_print_ModuleImplementedIdealz*LatexPrinter._print_ModuleImplementedIdealÓ
  sX   ø€ Ø./¯i©i¯nªnÓ=©n¡s¨�—‘—‘ Õ"¨nˆÐ=Ø—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   rl  ÚijkrÜ   r_  )rA  r  r!   rZ  rP  )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ø  rm  c              3  óL   •K  — | ]  }d ‰j                  |«      z   dz   –— Œ y­wrú  rS  rû  s     €rs   r/  z<LatexPrinter._print_QuotientModuleElement.<locals>.<genexpr>ì
  s'   øè ø€ ð :6Ù04¨1ˆC�$—+‘+˜a“.Ñ  3Õ&±ùr¦  r  )ÚdataÚmoduler�  rŽ  r  rP  r  Úkilled_module)rø   r�  r.  r  Ú
data_latexs   `    rs   Ú_print_QuotientModuleElementz)LatexPrinter._print_QuotientModuleElementê
  s†   ø€ Ø34·6²6Ó:±6¨a�—‘—‘×&Ñ& qÕ)°6ˆÐ:Ø)×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  rD  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_matrixr:  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                  j                  «      \  }}}d|z  }|r|ddj                  |«      z  z  }|r|ddj                  |«      z  z  }|S )NrV  ri  rÜ   r9  )r¸  rQ  rP  )rø   ÚmanifoldrQ  r·  r[  s        rs   Ú_print_ManifoldzLatexPrinter._print_Manifoldú
  sg   € Ø!×2Ñ2°8·=±=×3EÑ3EÓFÑˆˆf�dà˜dÑ"ˆÙØ�G˜cŸh™h vÓ.Ñ.Ñ.ˆDÙØ�G˜cŸh™h t›nÑ,Ñ,ˆDàˆru   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )Nú\text{rà  ro   )r  rQ  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  rQ  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_sysrm  Ú_indexrQ  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_{{{}}}r6  r9  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 )Nr7  z\operatorname{{d}}{}z!\operatorname{{d}}\left({}\right))	Ú_form_fieldrÁ  r7  rm  r8  rQ  r  r  r   )rø   Údiffr:  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	  rH  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   rF  ro   z\lambda\left(%s\right)r	  rH  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)rl  r   r`  z\sigma^{ro   z\sigma%srj  r¹  s       rs   Ú_print_divisor_sigmaz!LatexPrinter._print_divisor_sigma2  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Ù  rK  rl  r   r`  z
\sigma^*^{ro   z
\sigma^*%srj  r¹  s       rs   Ú_print_udivisor_sigmaz"LatexPrinter._print_udivisor_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Ð2Ð2Ø˜sÑ"Ð"ru   c                ó’   — |�%d| j                  |j                  d   «      ›d|›d�S d| j                  |j                  d   «      z  S )Nz\left(\nu\left(r   rF  ro   z\nu\left(%s\right)r	  rH  s      rs   Ú_print_primenuzLatexPrinter._print_primenuF  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   rF  ro   z\Omega\left(%s\right)r	  rH  s      rs   Ú_print_primeomegazLatexPrinter._print_primeomegaL  sC   € Ø‰?à—‘˜TŸY™Y q™\Õ*ªCð1ð 1à'¨$¯+©+°d·i±iÀ±lÓ*CÑCÐCru   c                ó,   — t        |j                  «      S r  )rt  rQ  r  s     rs   Ú
_print_StrzLatexPrinter._print_StrR  s   € Ü�1—6‘6‹{Ðru   c                ó6   — | j                  t        |«      «      S r  )r  r   r  s     rs   Ú_print_floatzLatexPrinter._print_floatU  s   € Ø�{‰{œ5 ›;Ó'Ð'ru   c                ó   — t        |«      S r  ©rt  r  s     rs   Ú
_print_intzLatexPrinter._print_intX  ó   € Ü�4‹yÐru   c                ó   — t        |«      S r  rX  r  s     rs   Ú
_print_mpzzLatexPrinter._print_mpz[  rZ  ru   c                ó   — t        |«      S r  rX  r  s     rs   Ú
_print_mpqzLatexPrinter._print_mpq^  rZ  ru   c                ó   — t        |«      S r  rX  r  s     rs   Ú_print_fmpzzLatexPrinter._print_fmpza  rZ  ru   c                ó   — t        |«      S r  rX  r  s     rs   Ú_print_fmpqzLatexPrinter._print_fmpqd  rZ  ru   c                ó\   — dj                  t        t        |j                  «      «      «      S )Nz"\operatorname{{Q}}_{{\text{{{}}}}})r  r³   rt  rQ  r  s     rs   Ú_print_PredicatezLatexPrinter._print_Predicateg  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 )NrL  rç   rå   )r  Ú	argumentsr  rP  )rø   r  ÚpredrA  Ú
pred_latexrè  Ú
args_latexs          rs   Ú_print_AppliedPredicatez$LatexPrinter._print_AppliedPredicatej  sW   € Ø�}‰}ˆØ�~‰~ˆØ—[‘[ Ó&ˆ
Ø—Y‘Y¹Ó=¹°1 §¡¨A¥¸Ñ=Ó>ˆ
Ú%¢zÐ2Ð2ùò  >s   ¹A c                ó>   •— t         ‰| �  |«      }dt        |«      z  S )Nz\mathtt{\text{%s}})ÚsuperÚemptyPrinterr³   )rø   r  rr   rN  s      €rs   rm  zLatexPrinter.emptyPrinterq  s!   ø€ ä‰GÑ  Ó&ˆà$¤|°A£Ñ6Ð6ru   r  rÜ  )FF)rÝ  Úbool)r  rt  )rX  z!bool | BooleanTrue | BooleanFalse)r  r   )r  r   )r  rt  rÝ  rt  )r  z'BasisDependent')r´  rt  rÝ  rt  )r  r   rÝ  rt  r¹  )r&  rt  rÝ  rt  ré  )FN)rÄ   )r  r   )rQ  rt  rÝ  z tuple[str, list[str], list[str]])r»  rt  rÝ  rt  )r  r&   )rF  Údict)F(C  rO  Ú
__module__Ú__qualname__ÚprintmethodrØ   Ú__annotations__rñ   r  r  r  rÒ   r  r  r$  r<  r?  r  r!  rJ  rS  rY  Ú_print_BooleanTrueÚ_print_BooleanFalser\  rf  rw  r‰  rŽ  r   r¨  r­  r¯  r±  rµ  r¸  rê  rï  rô  r   rý  r
  r  r  r7  r=  r@  rD  rP  ra  ro  rv  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.  r1  r4  r7  r9  r;  r=  r@  rB  rD  rH  rJ  rO  rT  rW  rZ  r`  rf  rh  rk  rm  ro  rr  rw  rz  r~  r�  rƒ  r…  r‡  rŠ  rŒ  r’  r•  r�  rž  r¡  r¤  r§  rª  r°  r´  Ú_print_RandomSymbolr¸  rM  rÅ  rÉ  r×  rÝ  rä  rð  ró  rú  rý  r  r	  r  r  r  r  r  r"  r%  r'  r,  r1  r3  r7  rC  rK  rN  rP  rS  rU  rW  rZ  r\  r^  r`  rc  rh  rm  rq  rs  rv  rz  r|  r~  r�  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/  r1  r3  r5  r7  r<  r?  rC  rQ  rU  rY  r\  r_  rb  rd  rf  rh  rj  rn  rr  ru  ry  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_IDFTrÖ  rÛ  rá  rä  rë  ró  rö  rü  r  r
  r  r  r  r  r!  r#  r&  r)  r-  r0  r4  r;  r=  rA  rD  rG  rI  rL  rN  rP  rR  rT  rV  rY  r\  r^  r`  rb  rd  rj  rm  Ú__classcell__)rN  s   @rs   rµ   rµ   Ž   s›  ø… Ø€Kð)Ø�Uð)à˜Eð)ð 	˜eð)ð 	˜4ð	)ð
 	˜-ð)ð 	�ð)ð 	�uð)ð 	˜4ð)ð 	�Sð)ð 	�4ð)ð 	�ð)ð 	�dð)ð 	�ð)ð 	˜ð)ð 	˜ð)ð  	˜Gð!)ð" 	˜#ð#)ð$ Ø%ØØ"ØØØØ!Ø#(ò5)Ð�~ó ô:;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¬   rx  rƒ  r  r¶  )rr   r  r$  s      rs   r¶  r¶  x  s·   € ô ×
"Ñ
" 1Ó
%€CÙ
Øˆ
Ø	
�‰‹Ô'Ñ	'Ø�a—g‘g“iÑÐØ	
ŒmÑ	Ø�a‰xˆô œ-×,Ñ,Ó.´CÀ×FˆCØ�w‰w‹y×!Ñ! #Õ&¬3¨q«6´C¸³HÓ+<Ü$ SÑ)¬)°A°j¼¸C»°y°MÓ*BÓCÒCð Gð ˆ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‰  q  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\dotsrl  r“  z& & rí  r  rî  r   rk  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¤  rc  Ún_termsÚ
term_countrË   rd  Ú
term_startÚterm_endr©  s                        rs   Úmultiline_latexrš  x  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   rt  rÝ  rt  )rl  r�  F)JÚ__doc__Ú
__future__r   Útypingr   r   r   r;  Ú
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'   r{  r‚  r„  r¬   rs  Ú	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Ð'Ó(ðÐ óôg+7�7ô g+7óTWñ> �ÓñV0ó ðV0òr#ô~ru   