ó
¡¼™\c           @  sL  d  Z  d d l m Z m Z d d l Z d d l 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 d d l m Z m Z d d l m Z m  Z  d d l! j" Z# d d l! m$ Z$ d d l% m& Z& m' Z' d d l( m) Z) d d l* Z* d d d d d d d d d d d d d d d  d! d" d# d$ d% d& g Z+ i$ d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6d1 d2 6d3 d4 6d5 d6 6d7 d8 6d9 d: 6d; d< 6d= d> 6d? d@ 6dA dB 6dC dD 6dE dF 6dG dH 6dI dJ 6dK dL 6dM dN 6dO dP 6dQ dR 6dS dT 6dU dV 6dW dX 6dY dZ 6d; d[ 6d\ d] 6dS d^ 6d_ d` 6da db 6dc dd 6de df 6dg dh 6di dj 6dk dl 6Z, e- dm dn do dp dq dr ds dt du dv g
 ƒ Z. i dw „  dx 6dy „  dz 6d{ „  d| 6d} „  d~ 6d „  d€ 6d „  d‚ 6dƒ „  d„ 6d… „  d† 6d‡ „  dˆ 6d‰ „  dŠ 6d‹ „  dŒ 6d „  dŽ 6d „  d 6d‘ „  d’ 6d“ „  d” 6d• „  d– 6d— „  d˜ 6d™ „  dš 6d› „  dœ 6d „  dž 6dŸ „  d  6d¡ „  d¢ 6d£ „  d¤ 6d¥ „  d¦ 6Z/ e0 e ƒ Z1 e* j2 d§ ƒ e* j2 d¨ ƒ f Z3 d© e f dª „  ƒ  YZ4 d« „  Z5 e6 e6 e7 d¬ e6 e6 e7 d­ e7 d® e7 e7 e7 e8 d® d¯ e6 d° „ Z9 d± „  Z: d S(²   sC   
A Printer which converts an expression into its LaTeX equivalent.
iÿÿÿÿ(   t   print_functiont   divisionN(   t   St   Addt   Symbolt   Mod(   t   greeks(   t   Tuple(   t   _coeff_isnegt   AppliedUndeft
   Derivative(   t   AssocOp(   t   SympifyError(   t   true(   t   precedence_traditional(   t   Printer(   t   split_super_subt   requires_partial(   t
   precedencet
   PRECEDENCE(   t   prec_to_dps(   t   default_sort_keyt   range(   t   has_varietyt   arcsint   arccost   arctant   sint   cost   tant   sinht   cosht   tanht   sqrtt   lnt   logt   sect   csct   cott   cotht   ret   imt   fract   roott   argt   At   Alphat   Bt   Betas   \Gammat   Gammas   \Deltat   Deltat   Et   Epsilont   Zt   Zetat   Ht   Etas   \Thetat   Thetat   It   Iotat   Kt   Kappas   \Lambdat   Lambdat   Mt   Mut   Nt   Nus   \Xit   Xit   ot   omicront   Ot   Omicrons   \Pit   Pit   Pt   Rhos   \Sigmat   Sigmat   Tt   Taus   \Upsilont   Upsilons   \Phit   Phit   Xt   Chis   \Psit   Psis   \Omegat   Omegas   \lambdat   lamdat   Lamdas   \chit   khit   Khis   \varepsilont
   varepsilons	   \varkappat   varkappas   \varphit   varphis   \varpit   varpis   \varrhot   varrhos	   \varsigmat   varsigmas	   \varthetat   varthetat   alepht   betht   daletht   gimelt   ellt   etht   hbart   hslasht   mhot   wpc         C  s   d |  d S(   Ns
   \mathring{t   }(    (   t   s(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   <lambda>V   t    t   mathringc         C  s   d |  d S(   Ns   \ddddot{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   W   Rl   t   ddddotc         C  s   d |  d S(   Ns   \dddot{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   X   Rl   t   dddotc         C  s   d |  d S(   Ns   \ddot{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   Y   Rl   t   ddotc         C  s   d |  d S(   Ns   \dot{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   Z   Rl   t   dotc         C  s   d |  d S(   Ns   \check{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   [   Rl   t   checkc         C  s   d |  d S(   Ns   \breve{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   \   Rl   t   brevec         C  s   d |  d S(   Ns   \acute{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   ]   Rl   t   acutec         C  s   d |  d S(   Ns   \grave{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   ^   Rl   t   gravec         C  s   d |  d S(   Ns   \tilde{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   _   Rl   t   tildec         C  s   d |  d S(   Ns   \hat{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   `   Rl   t   hatc         C  s   d |  d S(   Ns   \bar{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   a   Rl   t   barc         C  s   d |  d S(   Ns   \vec{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   b   Rl   t   vecc         C  s   d |  d S(   Nt   {s   }'(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   c   Rl   t   primec         C  s   d |  d S(   NRz   s   }'(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   d   Rl   t   prmc         C  s   d |  d S(   Ns   \boldsymbol{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   f   Rl   t   boldc         C  s   d |  d S(   Ns   \boldsymbol{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   g   Rl   t   bmc         C  s   d |  d S(   Ns	   \mathcal{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   h   Rl   t   calc         C  s   d |  d S(   Ns	   \mathscr{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   i   Rl   t   scrc         C  s   d |  d S(   Ns
   \mathfrak{Ri   (    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   j   Rl   t   frakc         C  s   d |  d S(   Ns   \left\|{s	   }\right\|(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   l   Rl   t   normc         C  s   d |  d S(   Ns   \left\langle{s   }\right\rangle(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   m   Rl   t   avgc         C  s   d |  d S(   Ns   \left|{s   }\right|(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   n   Rl   t   absc         C  s   d |  d S(   Ns   \left|{s   }\right|(    (   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   o   Rl   t   mags   [0-9][} ]*$s   [{ ]*[-+0-9]t   LatexPrinterc           B  sN
  e  Z d  Z i e d 6e d 6dd 6d d 6e d 6e d 6dd 6d	 d
 6dd 6d d 6dd 6dd 6i  d 6e d 6d d 6d d 6e d 6Z dd „ Z e d „ Z d „  Z	 d „  Z
 d „  Z e e d „ Z d „  Z d „  Z d „  Z d „  Z d  „  Z d! „  Z e Z e Z d" „  Z dd# „ Z d$ „  Z e Z d% „  Z d& „  Z d' „  Z d( „  Z d) „  Z d* „  Z d+ „  Z d, „  Z  d- „  Z! d. „  Z" d/ „  Z# d0 „  Z$ d1 „  Z% d2 „  Z& d3 „  Z' d4 „  Z( d5 „  Z) d6 „  Z* d7 „  Z+ d8 „  Z, dd9 „ Z- d: „  Z. e/ d; „  ƒ Z0 d< „  Z1 d= „  Z2 dd> „ Z3 e3 Z4 Z5 dd? „ Z6 dd@ „ Z7 ddA „ Z8 ddB „ Z9 e9 Z: ddC „ Z; ddD „ Z< dE „  Z= dF „  Z> dG „  Z? dH „  Z@ dI „  ZA ddJ „ ZB ddK „ ZC ddL „ ZD ddM „ ZE ddN „ ZF ddO „ ZG ddP „ ZH ddQ „ ZI ddR „ ZJ ddS „ ZK ddT „ ZL ddU „ ZM ddV „ ZN eN ZO ddW „ ZP ddX „ ZQ ddY „ ZR ddZ „ ZS dd[ „ ZT dd\ „ ZU dd] „ ZV dd^ „ ZW dd_ „ ZX dd` „ ZY da „  ZZ db „  Z[ ddc „ Z\ ddd „ Z] dde „ Z^ ddf „ Z_ ddg „ Z` ddh „ Za ddi „ Zb ddj „ Zc ddk „ Zd ddl „ Ze ddm dn „ Zf ddm do „ Zg ddp „ Zh ddq „ Zi ddr „ Zj dds „ Zk ddt „ Zl ddu „ Zm ddv „ Zn ddw „ Zo ddx „ Zp ddy „ Zq ddz „ Zr dd{ „ Zs dd| „ Zt dd} „ Zu dd~ „ Zv dd „ Zw dd€ „ Zx dd „ Zy dd‚ „ Zz ddƒ „ Z{ dd„ „ Z| d… „  Z} d† „  Z~ d d‡ „ Z e Z€ dˆ „  Z d‰ „  Z‚ dŠ „  Zƒ d‹ „  Z„ dŒ „  Z… e… Z† Z‡ Zˆ d „  Z‰ dŽ „  ZŠ d „  Z‹ d „  ZŒ d‘ „  Z d’ „  ZŽ d“ „  Z dd” „ Z d• „  Z‘ d– „  Z’ d— „  Z“ d˜ „  Z” d™ „  Z• dš „  Z– e– Z— e– Z˜ e– Z™ e– Zš i  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d¨ „ Z¨ d© „  Z© ddª „ Zª dd« „ Z« dd¬ „ Z¬ d­ „  Z­ d® „  Z® d¯ „  Z¯ d° „  Z° e° Z± d± „  Z² dd² „ Z³ e³ Z´ dd³ „ Zµ dd´ „ Z¶ ddµ „ 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dÖ „ ZÛ dd× „ ZÜ e 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dû „ Z ddü „ Zddý „ Zddþ „ Zddÿ „ Zdd „ ZRS(  t   _latext   fold_frac_powerst   fold_func_bracketst   fold_short_fract   abbreviatedt   inv_trig_stylet   itext   ln_notationt   long_frac_ratiot   [t	   mat_delimt   mat_strt   plaint   modet
   mul_symbolt   ordert   symbol_namest   root_notationt   mat_symbol_stylet   it   imaginary_unitt   gothic_re_imc         C  sÿ  t  j |  | ƒ d |  j k rV d d d d g } |  j d | k rV t d ƒ ‚ qV n  |  j d d  k rŒ |  j d d k rŒ t |  j d <n  i d d  6d	 d
 6d d 6d d 6} y | |  j d |  j d <Wn% t k
 rñ |  j d |  j d <n Xy" | |  j d pd |  j d <WnR t k
 rh|  j d j ƒ  d( k rQ| d |  j d <qi|  j d |  j d <n Xi d d 6d d 6|  _ i d d  6d d 6d d 6d d  6d! d! 6d" d# 6d$ d% 6} y | |  j d& |  j d' <Wn% t k
 rú|  j d& |  j d' <n Xd  S()   NR”   t   inlineR“   t   equations	   equation*sB   'mode' must be one of 'inline', 'plain', 'equation' or 'equation*'RŠ   t    s    \,.\, t   ldots    \cdot Rq   s    \times t   timesR•   t   mul_symbol_latext   mul_symbol_latex_numbersRl   s   \s   \,s   \:s   \;s   \quadt   )t   (t   ]R   Rš   s
   \mathrm{i}t   ris   \text{i}t   tit   js
   \mathrm{j}t   rjs   \text{j}t   tjR›   t   imaginary_unit_latex(   Rl   RŸ   s   \s   \,s   \:s   \;s   \quad(	   R   t   __init__t	   _settingst
   ValueErrort   Nonet   Truet   KeyErrort   stript   _delim_dict(   t   selft   settingst   valid_modest   mul_symbol_tablet   imaginary_unit_table(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR­   ‘   sL    		
"	
c         C  sR   t  | ƒ } | | k  s+ | rA | | k rA d j |  j | ƒ ƒ S|  j | ƒ Sd  S(   Ns   \left({}\right)(   R   t   formatt   _print(   Rµ   t   itemt   levelt   strictt   prec_val(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   parenthesizeÉ   s    c         C  s{   t  j |  | ƒ } |  j d d k r) | S|  j d d k rD d | S|  j d rY d | S|  j d } d | | | f Sd  S(   NR”   R“   R   s   $%s$R   s   $$%s$$s   \begin{%s}%s\end{%s}(   R   t   doprintR®   (   Rµ   t   exprt   text   env_str(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRÁ   Ð   s    c         C  s8   | j  r | j p6 | j o6 | t j k	 o6 | j t k S(   sÁ   
        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.
        (   t
   is_Integert   is_nonnegativet   is_AtomR   t   NegativeOnet   is_Rationalt   False(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _needs_bracketsÝ   s    c         C  sk   |  j  | ƒ s t S| j r0 |  j | ƒ r0 t S| j rM |  j | ƒ rM t S| j s_ | j rc t St Sd S(   sˆ  
        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.
        N(	   RË   RÊ   t   is_Mult   _mul_is_cleanR±   t   is_Powt   _pow_is_cleant   is_Addt   is_Function(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _needs_function_bracketsç   s    c         C  sâ   d d l  m } m } m } | j r? | rf t | ƒ rf t Sn' t | ƒ t d k  rY t S| j	 rf t S| j
 rs t St g  t f D] } | j | ƒ ^ q€ ƒ r¢ t S| rÞ t g  | | | f D] } | j | ƒ ^ q¼ ƒ rÞ t St S(   sÇ  
        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.
        iÿÿÿÿ(   t   Integralt   Productt   Sumt   Mul(   t   sympyRÓ   RÔ   RÕ   RÌ   R   R±   R   R   t   is_Relationalt   is_Piecewiset   anyR   t   hasRÊ   (   Rµ   RÂ   t   firstt   lastRÓ   RÔ   RÕ   t   x(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _needs_mul_bracketsþ   s     
			+1c         C  sM   | j  r t St g  t f D] } | j | ƒ ^ q ƒ r< t S| j rI t St S(   s±   
        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.
        (   RØ   R±   RÚ   R   RÛ   RÐ   RÊ   (   Rµ   RÂ   RÞ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _needs_add_brackets  s    	+	c         C  s%   x | j  D] } | j r
 t Sq
 Wt S(   N(   t   argsRÑ   RÊ   R±   (   Rµ   RÂ   R,   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRÍ   )  s    	c         C  s   |  j  | j ƒ S(   N(   RË   t   base(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRÏ   /  s    c         C  s"   | d  k	 r d | | f S| Sd  S(   Ns   \left(%s\right)^{%s}(   R°   (   Rµ   RÂ   t   exp(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _do_exponent2  s    c         C  sI   g  | j  D] } |  j | ƒ ^ q
 } |  j | j j ƒ d d j | ƒ S(   Ns   \left(%s\right)s   , (   Rá   R»   t   _deal_with_super_subt	   __class__t   __name__t   join(   Rµ   RÂ   RD   t   ls(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Basic8  s    %c         C  s   d | S(   Ns	   \text{%s}(    (   Rµ   t   e(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_bool=  s    c         C  s   d | S(   Ns	   \text{%s}(    (   Rµ   Rë   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_NoneTypeC  s    c         C  sË   |  j  d k r! t | j ƒ } n |  j | d | ƒ} d } xˆ t | ƒ D]z \ } } | d k rd n* t | ƒ r„ | d 7} | } n
 | d 7} |  j | ƒ } |  j | ƒ r¹ d | } n  | | 7} qI W| S(   Nt   noneR–   Rl   i    s    - s    + s   \left(%s\right)(   R–   t   listRá   t   _as_ordered_termst	   enumerateR   R»   Rà   (   Rµ   RÂ   R–   t   termsRÃ   Rš   t   termt   term_tex(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_AddF  s     


c         C  sÊ   d d l  m } | j d k r# d S| | ƒ } | j } | j } | j d | d k ro | | d g g } n  d } x* | D]" } | t | ƒ j d d ƒ 7} q| W| j d	 d
 ƒ } | j d d ƒ } | S(   Niÿÿÿÿ(   t   Permutationi    s   \left( \right)i   Rl   t   ,s   \;R   s   \left( R¦   s   \right)(   t    sympy.combinatorics.permutationsRö   t   sizet   cyclic_formt
   array_formt   strt   replace(   Rµ   RÂ   Rö   t	   expr_permt   sizRô   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Cycle\  s    		 c         C  s®   t  | j ƒ } t j | j | d t ƒ} |  j d } d | k r† | j d ƒ \ } } | d d k ru | d } n  d | | | f S| d k r– d	 S| d
 k r¦ d S| Sd  S(   Nt   strip_zerosR£   Rë   i    t   +i   s   %s%s10^{%s}s   +infs   \inftys   -infs   - \infty(   R   t   _prect   mlibt   to_strt   _mpf_R±   R®   t   split(   Rµ   RÂ   t   dpst   str_realt	   separatort   mantRã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Floatn  s    c         C  s@   | j  } | j } d |  j | t d ƒ |  j | t d ƒ f S(   Ns   %s \times %sRÖ   (   t   _expr1t   _expr2RÀ   R   (   Rµ   RÂ   t   vec1t   vec2(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Cross…  s    		c         C  s!   | j  } d |  j | t d ƒ S(   Ns   \nabla\times %sRÖ   (   t   _exprRÀ   R   (   Rµ   RÂ   Ry   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Curl‹  s    	c         C  s!   | j  } d |  j | t d ƒ S(   Ns   \nabla\cdot %sRÖ   (   R  RÀ   R   (   Rµ   RÂ   Ry   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Divergence  s    	c         C  s@   | j  } | j } d |  j | t d ƒ |  j | t d ƒ f S(   Ns   %s \cdot %sRÖ   (   R  R  RÀ   R   (   Rµ   RÂ   R  R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Dot“  s    		c         C  s!   | j  } d |  j | t d ƒ S(   Ns	   \nabla %sRÖ   (   R  RÀ   R   (   Rµ   RÂ   t   func(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Gradient™  s    	c         C  s!   | j  } d |  j | t d ƒ S(   Ns   \triangle %sRÖ   (   R  RÀ   R   (   Rµ   RÂ   R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Laplacian  s    	c           sF  d d l  m ‰  d d l m ‰ t } t | ƒ r^ | } d } | j rd | d 7} t } qd n d } d d l m	 } | | d t ƒ\ } } ˆ j
 d	 ‰ ˆ j
 d
 ‰ ‡  ‡ ‡ ‡ ‡ f d †  } | t j k rˆ  d d d t ƒ| j k r| | | ƒ 7} n.| | ƒ } | | ƒ }	 t |	 j ƒ  ƒ }
 ˆ j
 d } ˆ j
 d r |
 d k r d |	 k r ˆ j | d t ƒr‰| d | |	 f 7} q/| d | |	 f 7} n| d  k	 rt | j ƒ  ƒ | |
 k rˆ j | d t ƒr÷| d |	 ˆ | f 7} q/| j rt j } t j } x… | j D]z } ˆ j | d t ƒst | | | ƒ j ƒ  ƒ | |
 k s| j | j k ozt k n rŒ| | 9} q| | 9} qWˆ j | d t ƒrØ| d | | ƒ |	 ˆ | | ƒ f 7} q| d | | ƒ |	 ˆ | | ƒ f 7} q/| d |	 ˆ | f 7} n | d | |	 f 7} | rB| d 7} n  | S(   Niÿÿÿÿ(   t   Pow(   t   Quantitys   - R¥   Rl   (   t   fractiont   exactR¢   R£   c      	     s9  |  j  s t ˆ j |  ƒ ƒ Sd } } ˆ j d k rD |  j ƒ  } n t |  j ƒ } t | d ‡  ‡ f d †  ƒ} x½ t | ƒ D]¯ \ } } ˆ j | ƒ } ˆ j	 | d | d k d | t
 | ƒ d	 k ƒr× d
 | } n  t d j | ƒ r
t d	 j | ƒ r
| ˆ 7} n | r| ˆ 7} n  | | 7} | } q~ W| Sd  S(   NRl   t   oldRî   t   keyc           s.   t  |  ˆ ƒ p- t  |  ˆ  ƒ o- t  |  j ˆ ƒ S(   N(   t
   isinstanceRâ   (   RÞ   (   R  R  (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   ¿  s   RÜ   i    RÝ   i   s   \left(%s\right)(   R  Rî   (   RÌ   Rü   R»   R–   t   as_ordered_factorsRï   Rá   t   sortedRñ   Rß   t   lent   _between_two_numbers_pt   searcht   match(   RÂ   t   _text   last_term_texRá   Rš   Ró   Rô   (   R  R  t	   numbersepRµ   R
  (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   convert³  s(    	


i   t   evaluateR   RŠ   i   t   ^RÝ   s   \left(%s\right) / %ss   %s / %ss   \frac{1}{%s}%s\left(%s\right)s   \frac{%s}{%s}%s\left(%s\right)s   \frac{%s}{%s}%s%ss   \frac{1}{%s}%s%ss   \frac{%s}{%s}R¤   (   t   sympy.core.powerR  t   sympy.physics.unitsR  RÊ   R   RÐ   R±   t   sympy.simplifyR  R®   R   t   OneRá   R"  R  Rß   R°   RÌ   t   is_commutative(   Rµ   RÂ   t   include_parensRÃ   R  t   numert   denomR)  t   snumert   sdenomt   ldenomt   ratiot   at   bRÞ   (    (   R  R  R(  Rµ   R
  s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Mul¡  sd    	
"-			&"##c         C  sÀ  | j  j rÅ t | j  j ƒ d k rÅ | j  j d k rÅ |  j d rÅ |  j | j ƒ } | j  j } | d k rz d | } n0 |  j d rš d | | f } n d | | f } | j  j r¾ d | S| Sn÷|  j d	 r„| j  j r„| j  j d k r„|  j	 | j t
 d
 ƒ } | j  j | j  j } } d | k rG| j j rGd | } n  | j j rs|  j | j d d | | f ƒSd | | | f S| j  j rØ| j  j rØ| j j rØ| j d k rËd | j | j  f S|  j | ƒ S| j j r|  j | j d |  j | j  ƒ ƒSd } |  j | j  ƒ } |  j	 | j t
 d
 ƒ } d | k r\| j j r\d | } nR t | j t ƒ r®| j d ƒ r®t j d | ƒ r®| j d ƒ r®| d d !} n  | | | f Sd  S(   Ni   R˜   i   s	   \sqrt{%s}R   s   \root{%d}{%s}s   \sqrt[%d]{%s}s   \frac{1}{%s}Rˆ   R  R+  s   \left(%s\right)Rã   s   %s/%ss
   %s^{%s/%s}s   %s^{%s}s   \left(s   \\left\(\\d?d?dots   \right)i   iùÿÿÿ(   Rã   RÉ   R„   t   pt   qR®   R»   Râ   t   is_negativeRÀ   R   t	   is_SymbolRÑ   R0  R:  R  R
   t
   startswithR(   R%  t   endswith(   Rµ   RÂ   Râ   t   expqRÃ   R;  R<  Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Pow  sP    6 "c         C  s   |  j  | j d ƒ S(   Ni    (   R»   Rá   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_UnevaluatedExpr>  s    c           sÕ   t  | j ƒ d k rK d t g  | j d D] } ˆ  j | ƒ ^ q) ƒ } nA ‡  f d †  } d t j d g  | j D] } | | ƒ ^ qp ƒ } t | j t ƒ r» | d ˆ  j | j ƒ 7} n | ˆ  j | j ƒ 7} | S(   Ni   s   \sum_{%s=%s}^{%s} i    c           s?   d t  g  |  d |  d |  d f D] } ˆ  j | ƒ ^ q" ƒ S(   Ns   %s \leq %s \leq %si   i    i   (   t   tupleR»   (   t   lRj   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _format_ineqF  s    s   \sum_{\substack{%s}} s   \\s   \left(%s\right)(	   R"  t   limitsRD  R»   Rü   Rè   R  t   functionR   (   Rµ   RÂ   Rš   RÃ   RF  RE  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_SumA  s    3/c           sÕ   t  | j ƒ d k rK d t g  | j d D] } ˆ  j | ƒ ^ q) ƒ } nA ‡  f d †  } d t j d g  | j D] } | | ƒ ^ qp ƒ } t | j t ƒ r» | d ˆ  j | j ƒ 7} n | ˆ  j | j ƒ 7} | S(   Ni   s   \prod_{%s=%s}^{%s} i    c           s?   d t  g  |  d |  d |  d f D] } ˆ  j | ƒ ^ q" ƒ S(   Ns   %s \leq %s \leq %si   i    i   (   RD  R»   (   RE  Rj   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRF  Y  s    s   \prod_{\substack{%s}} s   \\s   \left(%s\right)(	   R"  RG  RD  R»   Rü   Rè   R  RH  R   (   Rµ   RÂ   Rš   RÃ   RF  RE  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ProductT  s    3/c         C  sj  d d l  m } g  } | | j k r/ | j j St | | ƒ rS | j ƒ  j ƒ  } n d | f g } xË | D]Ã \ } } t | j j ƒ  ƒ } | j	 d d „  ƒ xŒ | D]„ \ } }	 |	 d k rÓ | j
 d | j ƒ q¤ |	 d k rö | j
 d | j ƒ q¤ d	 t ƒ  j |	 ƒ d
 }
 | j
 d |
 | j ƒ q¤ Wqi Wd j | ƒ } | d d k r\| d } n
 | d } | S(   Niÿÿÿÿ(   t   Vectori    R  c         S  s   |  d j  ƒ  S(   Ni    (   t   __str__(   RÞ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   t  Rl   i   s    + s    - R¥   R¤   Rl   t   -i   (   t   sympy.vectorRK  t   zerot   _latex_formR  t   separatet   itemsRï   t
   componentst   sortt   appendR†   RÁ   Rè   (   Rµ   RÂ   RK  t   o1RR  t   systemt   vectt
   inneritemst   kt   vt   arg_strt   outstr(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_BasisDependentg  s,    
 
c         C  sD   |  j  | j ƒ } d | d d d j t |  j  | j ƒ ƒ } | S(   NRz   Ri   s   _{%s}R÷   (   R»   Râ   Rè   t   mapt   indices(   Rµ   RÂ   t   tex_baseRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Indexed…  s    c         C  s   |  j  | j ƒ S(   N(   R»   t   label(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_IndexedBase‹  s    c         C  sö   t  | ƒ r d } n d } d } d } xs t | j ƒ D]b \ } } | | 7} | d k ry | d | |  j | ƒ f 7} q7 | d | |  j | ƒ | f 7} q7 W| d k r¼ d | | f } n d	 | | | f } d | |  j | j t d
 d t ƒf S(   Ns   \partialt   dRl   i    i   s   %s %ss
   %s %s^{%s}s   \frac{%s}{%s}s   \frac{%s^{%s}}{%s}RÖ   R¾   (   R   t   reversedt   variable_countR»   RÀ   RÂ   R   R±   (   Rµ   RÂ   t   diff_symbolRÃ   t   dimRÞ   t   num(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_DerivativeŽ  s     	
 $
c   	        s}   | j  \ } } } ˆ  j | ƒ } ‡  f d †  | Dƒ } ‡  f d †  | Dƒ } d j d „  t | | ƒ Dƒ ƒ } d | | f S(   Nc         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   t   .0Rë   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>©  s    c         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   Rl  Rë   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>ª  s    s   \\ c         s  s%   |  ] } | d  d | d Vq d S(   i    t   =i   N(    (   Rl  Rë   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>¬  s    s#   \left. %s \right|_{\substack{ %s }}(   Rá   R»   Rè   t   zip(	   Rµ   t   subsRÂ   R  t   newt
   latex_exprt	   latex_oldt	   latex_newt
   latex_subs(    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Subs¦  s    c         C  s¾  d g  } } t  | j ƒ d k rŠ t d „  | j Dƒ ƒ rŠ d d t  | j ƒ d d } g  | j D] } d |  j | d	 ƒ ^ qd } nxþ t | j ƒ D]í } | d	 } | d
 7} t  | ƒ d k rj|  j d d k rô |  j d rô | d 7} n  t  | ƒ d k r7| d |  j | d ƒ |  j | d ƒ f 7} n  t  | ƒ d k rj| d |  j | d ƒ 7} qjn  | j d	 d |  j | ƒ ƒ qš Wd | |  j | j t	 d d t
 ƒd j | ƒ f S(   NRl   i   c         s  s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   R"  (   Rl  t   lim(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>´  s    s   \iRš   i   t   nts   \, d%si    s   \intR”   R   R   s   \limitsi   s
   _{%s}^{%s}i   s   ^{%s}s   %s %s%sRÖ   R¾   (   R"  RG  t   allR»   Rf  R®   t   insertRÀ   RH  R   R±   Rè   (   Rµ   RÂ   RÃ   t   symbolst   symbolRv  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Integral°  s,    .-

!!
c         C  sÓ   | j  \ } } } } d |  j | ƒ } t | ƒ d k sR | t j t j f k rl | d |  j | ƒ 7} n& | d |  j | ƒ |  j | ƒ f 7} t | t ƒ r¸ d | |  j | ƒ f Sd | |  j | ƒ f Sd  S(   Ns   \lim_{%s \to s   +-s   %s}s   %s^%s}s   %s\left(%s\right)s   %s %s(   Rá   R»   Rü   R   t   Infinityt   NegativeInfinityR  R   (   Rµ   RÂ   Rë   t   zt   z0t   dirRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_LimitÒ  s    *&c         C  s`   |  j  | ƒ } | t k r( d | } n4 t | ƒ d k sI | j d ƒ rR | } n
 d | } | S(   sJ  
        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, just use that letter
          - if it is a longer name, then put \operatorname{} around it and be
            mindful of undercores in the name
        s   \%si   s   \s   \operatorname{%s}(   Rå   t   accepted_latex_functionsR"  R?  (   Rµ   R  t   name(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_Functionà  s    !	
c         C  s  | j  j } t |  d | ƒ rI t | t ƒ rI t |  d | ƒ | | ƒ Sg  | j D] } t |  j | ƒ ƒ ^ qS } |  j	 d } t
 } |  j	 d oº t | ƒ d k oº |  j | j d ƒ } d d d d	 d
 d g }	 | |	 k rD| d k rð qD| d k rd | d } qD| d k rD| d } t } | d k	 rAt
 } qAqDn  | rp| t k rcd | }
 q§d | }
 n7 | d k	 r˜d |  j | ƒ | f }
 n |  j | ƒ }
 | rÓ| t k rÆ|
 d 7}
 qÝ|
 d 7}
 n
 |
 d 7}
 | r | d k	 r |
 d | 7}
 n  |
 d j | ƒ Sd S(   s#  
        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
        t   _print_RŒ   R‰   i   i    t   asint   acost   atant   acsct   asect   acotR‹   t   fullt   arct   powers   \%s^{-1}s   \operatorname{%s}^{-1}s   %s^{%s}s    {%s}s   %ss   {\left(%s \right)}s   ^{%s}R÷   N(   R  Rç   t   hasattrR  R	   t   getattrRá   Rü   R»   R®   RÊ   R"  RÒ   R±   R°   Rƒ  R…  Rè   (   Rµ   RÂ   Rã   R  R,   Rá   RŒ   t   inv_trig_power_caset   can_fold_bracketst   inv_trig_tableR„  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Functionñ  sH    +

c         C  s   |  j  t | ƒ ƒ S(   N(   R…  Rü   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_UndefinedFunction6  s    c         C  s„   d d l  m } d d l m } m } d d l m } d d l m } d d l	 m
 } i d | 6d | 6d	 | 6d
 | 6d | 6d | 6S(   Niÿÿÿÿ(   t   KroneckerDelta(   t   gammat
   lowergamma(   t   beta(   t
   DiracDelta(   RQ   s   \deltas   \Gammas   \gammas   \operatorname{B}s   \operatorname{Chi}(   t(   sympy.functions.special.tensor_functionsR—  t'   sympy.functions.special.gamma_functionsR˜  R™  t&   sympy.functions.special.beta_functionsRš  t'   sympy.functions.special.delta_functionsR›  t'   sympy.functions.special.error_functionsRQ   (   Rµ   R—  R˜  R™  Rš  R›  RQ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _special_function_classes9  s    
c         C  sS   x= |  j  D]2 } t | | ƒ r
 | j | j k r
 |  j  | Sq
 W|  j t | ƒ ƒ S(   N(   R¡  t
   issubclassRç   R…  Rü   (   Rµ   RÂ   t   cls(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FunctionClassG  s    !c         C  si   | j  \ } } t | ƒ d k r7 |  j | d ƒ } n |  j t | ƒ ƒ } d | |  j | ƒ f } | S(   Ni   i    s   \left( %s \mapsto %s \right)(   Rá   R"  R»   RD  (   Rµ   RÂ   Rz  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_LambdaM  s    c         C  sŽ   t  | j d t ƒ} g  | D] } d |  j | ƒ ^ q } d |  j t | j ƒ j ƒ  ƒ d j | ƒ f } | d  k	 r† d | | f S| Sd  S(   NR  s   %ss   \%s\left(%s\right)s   , s   %s^{%s}(	   R!  Rá   R   R»   Rü   R  t   lowerRè   R°   (   Rµ   RÂ   Rã   Rá   R{  t   texargsRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_variadic_functionY  s    &c         C  s<   d |  j  | j d ƒ } | d  k	 r4 d | | f S| Sd  S(   Ns   \left\lfloor{%s}\right\rfloori    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_floore  s    c         C  s<   d |  j  | j d ƒ } | d  k	 r4 d | | f S| Sd  S(   Ns   \left\lceil{%s}\right\rceili    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ceilingm  s    c         C  sf   |  j  d s* d |  j | j d ƒ } n d |  j | j d ƒ } | d  k	 r^ d | | f S| Sd  S(   NRŽ   s   \log{\left(%s \right)}i    s   \ln{\left(%s \right)}s   %s^{%s}(   R®   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_logu  s    c         C  s<   d |  j  | j d ƒ } | d  k	 r4 d | | f S| Sd  S(   Ns   \left|{%s}\right|i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Abs€  s    c         C  sg   |  j  d r1 d |  j | j d t d ƒ } n& d j |  j | j d t d ƒ ƒ } |  j | | ƒ S(   NRœ   s   \Re{%s}i    t   Atoms   \operatorname{{re}}{{{}}}(   R®   RÀ   Rá   R   Rº   Rä   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_re‰  s    $&c         C  sg   |  j  d r1 d |  j | j d t d ƒ } n& d j |  j | j d t d ƒ ƒ } |  j | | ƒ S(   NRœ   s   \Im{%s}i    R­  s   \operatorname{{im}}{{{}}}(   R®   RÀ   Rá   R   Rº   Rä   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_im‘  s    $&c         C  s´   d d l  m } m } t | j d | ƒ rC |  j | j d d ƒ St | j d | ƒ rp |  j | j d d ƒ S| j d j r˜ d |  j | j d ƒ Sd |  j | j d ƒ Sd  S(   Niÿÿÿÿ(   t
   Equivalentt   Impliesi    s   \not\Leftrightarrows   \not\Rightarrows	   \neg (%s)s   \neg %s(	   R×   R°  R±  R  Rá   t   _print_Equivalentt   _print_Impliest
   is_BooleanR»   (   Rµ   Rë   R°  R±  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Not™  s    c         C  s¯   | d } | j  r3 | j r3 d |  j | ƒ } n d |  j | ƒ } xb | d D]V } | j  rŠ | j rŠ | d | |  j | ƒ f 7} qQ | d | |  j | ƒ f 7} qQ W| S(   Ni    s   \left(%s\right)s   %si   s    %s \left(%s\right)s    %s %s(   R´  t   is_NotR»   (   Rµ   Rá   t   charR,   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_LogOp¤  s    
 !c         C  s%   t  | j d t ƒ} |  j | d ƒ S(   NR  s   \wedge(   R!  Rá   R   R¸  (   Rµ   Rë   Rá   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_And³  s    c         C  s%   t  | j d t ƒ} |  j | d ƒ S(   NR  s   \vee(   R!  Rá   R   R¸  (   Rµ   Rë   Rá   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_Or·  s    c         C  s%   t  | j d t ƒ} |  j | d ƒ S(   NR  s   \veebar(   R!  Rá   R   R¸  (   Rµ   Rë   Rá   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Xor»  s    c         C  s   |  j  | j | p d ƒ S(   Ns   \Rightarrow(   R¸  Rá   (   Rµ   Rë   t   altchar(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR³  ¿  s    c         C  s+   t  | j d t ƒ} |  j | | p' d ƒ S(   NR  s   \Leftrightarrow(   R!  Rá   R   R¸  (   Rµ   Rë   R¼  Rá   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR²  Â  s    c         C  s<   d |  j  | j d ƒ } | d  k	 r4 d | | f S| Sd  S(   Ns   \overline{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_conjugateÆ  s    c         C  sO   d } d |  j  | j d ƒ } | d  k	 r= d | | | f Sd | | f Sd  S(   Ns   \operatorname{polar\_lift}s   {\left(%s \right)}i    s	   %s^{%s}%ss   %s%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   R  R,   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_polar_liftÎ  s
    c         C  s*   d |  j  | j d ƒ } |  j | | ƒ S(   Ns   e^{%s}i    (   R»   Rá   Rä   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ExpBase×  s    c         C  s@   d |  j  | j d ƒ } | d  k	 r4 d | | f Sd | Sd  S(   Ns   \left(%s\right)i    s   K^{%s}%ss   K%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_elliptic_kÝ  s    c         C  sV   d |  j  | j d ƒ |  j  | j d ƒ f } | d  k	 rJ d | | f Sd | Sd  S(   Ns   \left(%s\middle| %s\right)i    i   s   F^{%s}%ss   F%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_elliptic_fä  s
    -c         C  sˆ   t  | j ƒ d k rH d |  j | j d ƒ |  j | j d ƒ f } n d |  j | j d ƒ } | d  k	 r| d | | f Sd | Sd  S(   Ni   s   \left(%s\middle| %s\right)i    i   s   \left(%s\right)s   E^{%s}%ss   E%s(   R"  Rá   R»   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_elliptic_eì  s    0c         C  s±   t  | j ƒ d k r[ d |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ f } n0 d |  j | j d ƒ |  j | j d ƒ f } | d  k	 r¥ d | | f Sd | Sd  S(	   Ni   s   \left(%s; %s\middle| %s\right)i    i   i   s   \left(%s\middle| %s\right)s
   \Pi^{%s}%ss   \Pi%s(   R"  Rá   R»   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_elliptic_pi÷  s    &-c         C  sV   d |  j  | j d ƒ |  j  | j d ƒ f } | d  k	 rJ d | | f Sd | Sd  S(   Ns   \left(%s, %s\right)i    i   s   \operatorname{B}^{%s}%ss   \operatorname{B}%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_beta  s
    c         C  sV   d |  j  | j d ƒ |  j  | j d ƒ f } | d  k	 rJ d | | f Sd | Sd  S(   Ns   \left(%s, %s\right)i    i   s   \Gamma^{%s}%ss   \Gamma%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_uppergamma  s
    c         C  sV   d |  j  | j d ƒ |  j  | j d ƒ f } | d  k	 rJ d | | f Sd | Sd  S(   Ns   \left(%s, %s\right)i    i   s   \gamma^{%s}%ss   \gamma%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_lowergamma  s
    c         C  sa   d |  j  | j d ƒ } | d  k	 rC d |  j  | j ƒ | | f Sd |  j  | j ƒ | f Sd  S(   Ns   \left(%s\right)i    s	   %s^{%s}%ss   %s%s(   R»   Rá   R°   R  (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_one_arg_func  s    c         C  s@   d |  j  | j d ƒ } | d  k	 r4 d | | f Sd | Sd  S(   Ns   \left(%s\right)i    s   \operatorname{Chi}^{%s}%ss   \operatorname{Chi}%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Chi)  s    c         C  s_   d |  j  | j d ƒ } |  j  | j d ƒ } | d  k	 rM d | | | f Sd | | f Sd  S(   Ns   \left(%s\right)i   i    s   \operatorname{E}_{%s}^{%s}%ss   \operatorname{E}_{%s}%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   t   nu(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_expint1  s
    c         C  s@   d |  j  | j d ƒ } | d  k	 r4 d | | f Sd | Sd  S(   Ns   \left(%s\right)i    s   S^{%s}%ss   S%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_fresnels:  s    c         C  s@   d |  j  | j d ƒ } | d  k	 r4 d | | f Sd | Sd  S(   Ns   \left(%s\right)i    s   C^{%s}%ss   C%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_fresnelcB  s    c         C  sC   d |  j  | j d t d ƒ } | d  k	 r; d | | f S| Sd  S(   Ns   !%si    t   Funcs   \left(%s\right)^{%s}(   RÀ   Rá   R   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_subfactorialJ  s    !c         C  sC   d |  j  | j d t d ƒ } | d  k	 r; d | | f S| Sd  S(   Ns   %s!i    RÍ  s   %s^{%s}(   RÀ   Rá   R   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_factorialR  s    !c         C  sC   d |  j  | j d t d ƒ } | d  k	 r; d | | f S| Sd  S(   Ns   %s!!i    RÍ  s   %s^{%s}(   RÀ   Rá   R   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_factorial2Z  s    !c         C  sR   d |  j  | j d ƒ |  j  | j d ƒ f } | d  k	 rJ d | | f S| Sd  S(   Ns   {\binom{%s}{%s}}i    i   s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_binomialb  s
    c         C  sR   | j  \ } } d |  j | t d ƒ } d | |  j | ƒ f } |  j | | ƒ S(   Ns   %sRÍ  s   {%s}^{\left(%s\right)}(   Rá   RÀ   R   R»   Rä   (   Rµ   RÂ   Rã   t   nRZ  Râ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RisingFactorialk  s    c         C  sR   | j  \ } } d |  j | t d ƒ } d |  j | ƒ | f } |  j | | ƒ S(   Ns   %sRÍ  s   {\left(%s\right)}_{%s}(   Rá   RÀ   R   R»   Rä   (   Rµ   RÂ   Rã   RÒ  RZ  t   subRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FallingFactorials  s    c         C  s    d | } t  } | d  k	 rV | j d ƒ d k rM d | |  j | ƒ f } qV t } n  d | |  j | j ƒ |  j | j ƒ f } | rœ |  j | | ƒ } n  | S(   Ns   %sR+  iÿÿÿÿs   %s^{%s}s   %s_{%s}\left(%s\right)(   RÊ   R°   t   findR»   R±   R–   t   argumentRä   (   Rµ   RÂ   Rã   t   symRÃ   t   need_exp(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_BesselBase{  s    
	c         C  sW   | s
 d Sd } x) | d  D] } | d |  j  | ƒ 7} q W| |  j  | d ƒ 7} | S(   NRl   iÿÿÿÿs   %s, (   R»   (   Rµ   Ry   Rj   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_vecŒ  s    c         C  s   |  j  | | d ƒ S(   Nt   J(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_besselj•  s    c         C  s   |  j  | | d ƒ S(   NR:   (   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_besseli˜  s    c         C  s   |  j  | | d ƒ S(   NR<   (   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_besselk›  s    c         C  s   |  j  | | d ƒ S(   Nt   Y(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_besselyž  s    c         C  s   |  j  | | d ƒ S(   Nt   y(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_yn¡  s    c         C  s   |  j  | | d ƒ S(   NR©   (   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_jn¤  s    c         C  s   |  j  | | d ƒ S(   Ns   H^{(1)}(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_hankel1§  s    c         C  s   |  j  | | d ƒ S(   Ns   H^{(2)}(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_hankel2ª  s    c         C  s   |  j  | | d ƒ S(   Ns   h^{(1)}(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_hn1­  s    c         C  s   |  j  | | d ƒ S(   Ns   h^{(2)}(   RÚ  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_hn2°  s    Rl   c         C  sI   d |  j  | j d ƒ } | d  k	 r7 d | | | f Sd | | f Sd  S(   Ns   \left(%s\right)i    s	   %s^{%s}%ss   %s%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   t   notationRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_airy³  s    c         C  sI   d |  j  | j d ƒ } | d  k	 r7 d | | | f Sd | | f Sd  S(   Ns   \left(%s\right)i    s   {%s^\prime}^{%s}%ss   %s^\prime%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   Ré  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _hprint_airy_prime»  s    c         C  s   |  j  | | d ƒ S(   Nt   Ai(   Rê  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_airyaiÃ  s    c         C  s   |  j  | | d ƒ S(   Nt   Bi(   Rê  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_airybiÆ  s    c         C  s   |  j  | | d ƒ S(   NRì  (   Rë  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_airyaiprimeÉ  s    c         C  s   |  j  | | d ƒ S(   NRî  (   Rë  (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_airybiprimeÌ  s    c         C  s   d |  j  t | j ƒ ƒ |  j  t | j ƒ ƒ |  j | j ƒ |  j | j ƒ |  j  | j ƒ f } | d  k	 r‰ d | |  j  | ƒ f } n  | S(   NsN   {{}_{%s}F_{%s}\left(\begin{matrix} %s \\ %s \end{matrix}\middle| {%s} \right)}s	   {%s}^{%s}(   R»   R"  t   apt   bqRÛ  R×  R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_hyperÏ  s    *c         C  sÕ   d |  j  t | j ƒ ƒ |  j  t | j ƒ ƒ |  j  t | j ƒ ƒ |  j  t | j ƒ ƒ |  j | j ƒ |  j | j ƒ |  j | j ƒ |  j | j ƒ |  j  | j	 ƒ f	 } | d  k	 rÑ d | |  j  | ƒ f } n  | S(   Ns^   {G_{%s, %s}^{%s, %s}\left(\begin{matrix} %s & %s \\%s & %s \end{matrix} \middle| {%s} \right)}s	   {%s}^{%s}(   R»   R"  Rò  Ró  R~   t   anRÛ  t   aothert   botherR×  R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_meijergÚ  s    **c         C  sE   d |  j  | j d ƒ } | d  k	 r= d |  j  | ƒ | f Sd | S(   Ns   \left(%s\right)i    s   \eta^{%s}%ss   \eta%s(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_dirichlet_etaç  s    c         C  s|   t  | j ƒ d k r7 d t t |  j | j ƒ ƒ } n d |  j | j d ƒ } | d  k	 rt d |  j | ƒ | f Sd | S(   Ni   s   \left(%s, %s\right)s   \left(%s\right)i    s   \zeta^{%s}%ss   \zeta%s(   R"  Rá   RD  R_  R»   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_zetaí  s    "c         C  sJ   d t  t |  j | j ƒ ƒ } | d  k r3 d | Sd |  j | ƒ | f S(   Ns   \left(%s, %s, %s\right)s   \Phi%ss   \Phi^{%s}%s(   RD  R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_lerchphiö  s    c         C  sY   t  |  j | j ƒ \ } } d | } | d  k r? d | | f Sd | |  j | ƒ | f S(   Ns   \left(%s\right)s   \operatorname{Li}_{%s}%ss   \operatorname{Li}_{%s}^{%s}%s(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   Rj   R  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_polylogü  s
    
c         C  se   t  |  j | j ƒ \ } } } } d | | | | f } | d  k	 ra d | d |  j | ƒ } n  | S(   Ns*   P_{%s}^{\left(%s,%s\right)}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  R8  R9  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_jacobi  s
    !c         C  s_   t  |  j | j ƒ \ } } } d | | | f } | d  k	 r[ d | d |  j | ƒ } n  | S(   Ns'   C_{%s}^{\left(%s\right)}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  R8  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_gegenbauer
  s
    c         C  sY   t  |  j | j ƒ \ } } d | | f } | d  k	 rU d | d |  j | ƒ } n  | S(   Ns   T_{%s}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_chebyshevt  s
    c         C  sY   t  |  j | j ƒ \ } } d | | f } | d  k	 rU d | d |  j | ƒ } n  | S(   Ns   U_{%s}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_chebyshevu  s
    c         C  sY   t  |  j | j ƒ \ } } d | | f } | d  k	 rU d | d |  j | ƒ } n  | S(   Ns   P_{%s}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_legendre  s
    c         C  s_   t  |  j | j ƒ \ } } } d | | | f } | d  k	 r[ d | d |  j | ƒ } n  | S(   Ns'   P_{%s}^{\left(%s\right)}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  R8  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_assoc_legendre&  s
    c         C  sY   t  |  j | j ƒ \ } } d | | f } | d  k	 rU d | d |  j | ƒ } n  | S(   Ns   H_{%s}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_hermite-  s
    c         C  sY   t  |  j | j ƒ \ } } d | | f } | d  k	 rU d | d |  j | ƒ } n  | S(   Ns   L_{%s}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_laguerre4  s
    c         C  s_   t  |  j | j ƒ \ } } } d | | | f } | d  k	 r[ d | d |  j | ƒ } n  | S(   Ns'   L_{%s}^{\left(%s\right)}\left(%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  R8  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_assoc_laguerre;  s
    c         C  se   t  |  j | j ƒ \ } } } } d | | | | f } | d  k	 ra d | d |  j | ƒ } n  | S(   Ns   Y_{%s}^{%s}\left(%s,%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  t   mt   thetat   phiRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_YnmB  s
    !c         C  se   t  |  j | j ƒ \ } } } } d | | | | f } | d  k	 ra d | d |  j | ƒ } n  | S(   Ns   Z_{%s}^{%s}\left(%s,%s\right)s   \left(s   \right)^{%s}(   R_  R»   Rá   R°   (   Rµ   RÂ   Rã   RÒ  R  R  R  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_ZnmI  s
    !c         C  s†   | j  d k rr d } | j } | j d k  r= d } | } n  |  j d r^ d | | | j  f Sd | | | j  f S|  j | j ƒ Sd  S(   Ni   Rl   i    s   - RŠ   s	   %s%d / %ds   %s\frac{%d}{%d}(   R<  R;  R®   R»   (   Rµ   RÂ   t   signR;  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RationalP  s    	
c         C  s  |  j  | j ƒ } | j r4 t d „  | j Dƒ ƒ sI t | j ƒ d k rü | d 7} t | j ƒ d k r | |  j  | j ƒ 7} n& | j r§ | |  j  | j d ƒ 7} n  | d 7} t | j ƒ d k rß | |  j  | j ƒ 7} qü | |  j  | j d ƒ 7} n  d | S(   Nc         s  s   |  ] } | t  j k Vq d  S(   N(   R   t   Zero(   Rl  R;  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>_  s    i   s   ; i    s   \rightarrow s   O\left(%s\right)(   R»   RÂ   t   pointRÚ   R"  t	   variables(   Rµ   RÂ   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Order]  s    "
	
c         C  sn   | |  j  d k r" |  j  d | Sd | j k rC |  j | j ƒ n | j } | d k rj d j | ƒ } n  | S(   NR—   s   \R}   s   \mathbf{{{}}}(   R®   R„  Rå   Rº   (   Rµ   RÂ   t   stylet   result(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Symbolm  s    *c         C  s   |  j  | d |  j d ƒS(   NR  R™   (   R  R®   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatrixSymbol{  s    c         C  s³   d | k r | St  | ƒ \ } } } t | ƒ } g  | D] } t | ƒ ^ q8 } g  | D] } t | ƒ ^ qW } | r | d d j | ƒ 7} n  | r¯ | d d j | ƒ 7} n  | S(   NRz   s   ^{%s}RŸ   s   _{%s}(   R   t	   translateRè   (   Rµ   t   stringR„  t   supersRo  t   supRÔ  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRå     s    c         C  sˆ   |  j  d r d } d } n d } d } i d d 6| d 6| d 6d d	 6d
 d 6d d 6} d |  j | j ƒ | | j |  j | j ƒ f S(   NR   s   \gts   \ltt   >t   <Rm  s   ==s   \geqs   >=s   \leqs   <=s   \neqs   !=s   %s %s %s(   R®   R»   t   lhst   rel_opt   rhs(   Rµ   RÂ   t   gtt   ltt   charmap(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Relational‘  s    	
c         C  sÓ   g  | j  d  D]. \ } } d |  j | ƒ |  j | ƒ f ^ q } | j  d j t k r | j d |  j | j  d j ƒ ƒ n= | j d |  j | j  d j ƒ |  j | j  d j ƒ f ƒ d } | d j | ƒ S(   Niÿÿÿÿs   %s & \text{for}\: %ss   %s & \text{otherwise}s   \begin{cases} %s \end{cases}s    \\(   Rá   R»   t   condR   RU  RÂ   Rè   (   Rµ   RÂ   Rë   t   ct   ecpairsRÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Piecewise¥  s    ?		c   	      C  sW  g  } xY t  | j ƒ D]H } | j d j g  | | d  d  … f D] } |  j | ƒ ^ q? ƒ ƒ q W|  j d } | d  k r¾ |  j d d k r— d } q¾ | j d k t k rµ d } q¾ d } n  d	 } | j	 d
 | ƒ } | d k r| j	 d d d | j d ƒ } n  |  j d rF|  j d } |  j
 | } d | | d | } n  | d j | ƒ S(   Ns    & R’   R”   R   t   smallmatrixi
   t   matrixt   arrays    \begin{%MATSTR%}%s\end{%MATSTR%}s   %MATSTR%s   %sRz   R#  s   }%sR‘   s   \lefts   \rights   \\(   R   t   rowsRU  Rè   R»   R®   R°   t   colsR±   Rý   R´   (	   Rµ   RÂ   t   linest   lineRš   R’   t   out_strt
   left_delimt   right_delim(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatrixBase²  s&    F			$c         C  sC   |  j  | j t d d t ƒd |  j | j ƒ |  j | j ƒ f S(   NR­  R¾   s	   _{%s, %s}(   RÀ   t   parentR   R±   R»   Rš   R©   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatrixElementÐ  s    c           sE   ‡  f d †  } ˆ  j  | j ƒ d | | j ƒ d | | j ƒ d S(   Nc           s~   t  |  ƒ }  |  d d k r& |  d =n  |  d |  d d k rH |  d =n  |  d d k re d |  d <n  d j t ˆ  j |  ƒ ƒ S(   Ni   i   i    Rl   t   :(   Rï   Rè   R_  R»   (   RÞ   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   latexsliceÕ  s    

s   \left[s   , s   \right](   R»   R1  t   rowslicet   colslice(   Rµ   RÂ   R4  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatrixSliceÔ  s    c         C  s   |  j  | j ƒ S(   N(   R»   t   blocks(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_BlockMatrixâ  s    c         C  sN   | j  } d d l m } t | | ƒ s9 d |  j | ƒ Sd |  j | ƒ Sd  S(   Niÿÿÿÿ(   t   MatrixSymbols   \left(%s\right)^{T}s   %s^{T}(   R,   t   sympy.matricesR:  R  R»   (   Rµ   RÂ   t   matR:  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Transposeå  s
    	c         C  s   | j  } d |  j | ƒ S(   Ns!   \operatorname{tr}\left(%s \right)(   R,   R»   (   Rµ   RÂ   R<  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Traceí  s    	c         C  sN   | j  } d d l m } t | | ƒ s9 d |  j | ƒ Sd |  j | ƒ Sd  S(   Niÿÿÿÿ(   R:  s   \left(%s\right)^{\dagger}s   %s^{\dagger}(   R,   R;  R:  R  R»   (   Rµ   RÂ   R<  R:  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Adjointñ  s
    	c           sì   d d l  m } m } ‡  ‡ f d †  } ˆ  j } t | d | ƒ re | d j ƒ  t | d ƒ } n t | ƒ } t ˆ  | ƒ rÒ t ˆ  ƒ rÒ | d d k r© | d } n | d | d <d d j t	 | | ƒ ƒ Sd j t	 | | ƒ ƒ Sd  S(   Niÿÿÿÿ(   t   MatMulRÖ   c           s   ˆ j  |  t ˆ  ƒ t ƒ S(   N(   RÀ   R   RÊ   (   RÞ   (   RÂ   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   ü  s   i    i   s   - RŸ   (
   R×   R@  RÖ   Rá   R  R   Rï   R   Rè   R_  (   Rµ   RÂ   R@  RÖ   t   parensRá   (    (   RÂ   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatMulù  s    	!c         C  sŽ   | d  k	 rS d |  j | j d t d d t ƒ|  j | j d ƒ |  j | ƒ f Sd |  j | j d t d d t ƒ|  j | j d ƒ f S(   Ns   \left(%s\bmod{%s}\right)^{%s}i    RÖ   R¾   i   s   %s\bmod{%s}(   R°   RÀ   Rá   R   R±   R»   (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_Mod  s    c           sM   d d l  m ‰  m ‰ m ‰ ‡  ‡ ‡ ‡ f d †  } d j t | | j ƒ ƒ S(   Niÿÿÿÿ(   R   t   MatAddR@  c           s6   t  |  ˆ  ˆ ˆ f ƒ r) d ˆ j |  ƒ Sˆ j |  ƒ S(   Ns   \left(%s\right)(   R  R»   (   RÞ   (   R   RD  R@  Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRA    s    s    \circ (   R×   R   RD  R@  Rè   R_  Rá   (   Rµ   RÂ   RA  (    (   R   RD  R@  Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_HadamardProduct  s    c           sM   d d l  m ‰  m ‰ m ‰ ‡  ‡ ‡ ‡ f d †  } d j t | | j ƒ ƒ S(   Niÿÿÿÿ(   R   RD  R@  c           s6   t  |  ˆ  ˆ ˆ f ƒ r) d ˆ j |  ƒ Sˆ j |  ƒ S(   Ns   \left(%s\right)(   R  R»   (   RÞ   (   R   RD  R@  Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRA  $  s    s	    \otimes (   R×   R   RD  R@  Rè   R_  Rá   (   Rµ   RÂ   RA  (    (   R   RD  R@  Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_KroneckerProduct!  s    c         C  sv   | j  | j } } d d l m } t | | ƒ sR d |  j | ƒ |  j | ƒ f Sd |  j | ƒ |  j | ƒ f Sd  S(   Niÿÿÿÿ(   R:  s   \left(%s\right)^{%s}s   %s^{%s}(   Râ   Rã   R;  R:  R  R»   (   Rµ   RÂ   Râ   Rã   R:  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatPow*  s    c         C  s   d S(   Ns
   \mathbb{0}(    (   Rµ   R5   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ZeroMatrix3  s    c         C  s   d S(   Ns
   \mathbb{I}(    (   Rµ   R:   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Identity6  s    c         C  sµ  | j  ƒ  d k r# |  j | d ƒ S|  j d } | d  k r |  j d d k rX d } q | j  ƒ  d k s} | j d d k r† d } q d	 } n  d
 } | j d | ƒ } |  j d rç |  j d } |  j | } d | | d | } n  | j  ƒ  d k r| d Sg  g g  t | j  ƒ  ƒ D] } g  ^ q} g  | j D] } t t | ƒ ƒ ^ q7} x(t	 j
 | Œ  D]}	 | d j |  j | |	 ƒ ƒ t }
 xê t | j  ƒ  d d d ƒ D]Ì } t | | d ƒ | j | k  r×Pn  |
 r| | j d j | | d ƒ ƒ na | | j | d j | | d ƒ ƒ t | | d ƒ d k rcd | | d d | | d <n  |
 }
 g  | | d <q¬WqeW| d d } | j  ƒ  d d k r±| | } n  | S(   Ni    R’   R”   R   R&  iÿÿÿÿi
   R'  R(  s    \begin{%MATSTR%}%s\end{%MATSTR%}s   %MATSTR%R‘   s   \lefts   \rightRl   i   s    & s   \\s   \left[s   \right]i   (    (   t   rankR»   R®   R°   t   shapeRý   R´   R   Rï   t	   itertoolst   productRU  R±   R"  Rè   (   Rµ   RÂ   R’   t	   block_strR.  R/  Rš   t	   level_strt   shape_rangest   outer_it   event   back_outer_iR-  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_NDimArray9  sL    	%		,(#!

!c   	      C  s!  |  j  | ƒ } d  } d  } xæ | D]Þ } | j } | | k sC | r\ | | k r\ | d 7} n  | | k r¤ | d  k	 r | d 7} n  | j r— | d 7} q¤ | d 7} n  | |  j  | j d ƒ 7} | | k rô | d 7} | |  j  | | ƒ 7} t } n t } | } q" W| d  k	 r| d 7} n  | S(   NR÷   Ri   s   {}^{s   {}_{i    Rm  (   R»   R°   t   is_upRá   R±   RÊ   (	   Rµ   R„  R`  t	   index_mapR-  t   last_valencet   prev_mapt   indext   new_valence(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _printer_tensor_indicesr  s0    		
	
c         C  s0   | j  d j  d } | j ƒ  } |  j | | ƒ S(   Ni    (   Rá   t   get_indicesR[  (   Rµ   RÂ   R„  R`  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensorŽ  s    c         C  sB   | j  j d j d } | j  j ƒ  } | j } |  j | | | ƒ S(   Ni    (   RÂ   Rá   R\  RV  R[  (   Rµ   RÂ   R„  R`  RV  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensorElement“  s    	c         C  sH   | j  ƒ  \ } } | d j g  | D] } |  j | t | ƒ ƒ ^ q" ƒ S(   NRl   (   t!   _get_args_for_traditional_printerRè   RÀ   R   (   Rµ   RÂ   R  Rá   R,   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensMul™  s    	c         C  sn   g  } | j  } x- | D]% } | j |  j | t | ƒ ƒ ƒ q W| j ƒ  d j | ƒ } | j d d ƒ } | S(   Ns    + s   + -s   - (   Rá   RU  RÀ   R   RT  Rè   Rý   (   Rµ   RÂ   R8  Rá   RÞ   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensAdd   s    	#
c         C  s-   d | j  r d n d |  j | j d ƒ f S(   Ns   {}%s{%s}R+  t   _i    (   RU  R»   Rá   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensorIndexª  s    c         C  s-   d d j  g  | D] } |  j | ƒ ^ q ƒ S(   Ns   \left( %s\right)s   , \  (   Rè   R»   (   Rµ   RÂ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_tuple°  s    c         C  s2   g  | j  D] } |  j | ƒ ^ q
 } d j | ƒ S(   Ns	    \otimes (   Rá   R»   Rè   (   Rµ   RÂ   R8  t   elements(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_TensorProduct´  s    %c         C  s2   g  | j  D] } |  j | ƒ ^ q
 } d j | ƒ S(   Ns    \wedge (   Rá   R»   Rè   (   Rµ   RÂ   R8  Re  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_WedgeProduct¸  s    %c         C  s   |  j  | ƒ S(   N(   Rd  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Tuple¼  s    c         C  s-   d d j  g  | D] } |  j | ƒ ^ q ƒ S(   Ns   \left[ %s\right]s   , \  (   Rè   R»   (   Rµ   RÂ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_list¿  s    c         C  ss   t  | j ƒ  d t ƒ} g  } xA | D]9 } | | } | j d |  j | ƒ |  j | ƒ f ƒ q% Wd d j | ƒ S(   NR  s   %s : %ss   \left\{ %s\right\}s   , \  (   R!  t   keysR   RU  R»   Rè   (   Rµ   Re  Rj  RR  R  t   val(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_dictÃ  s    
-c         C  s   |  j  | ƒ S(   N(   Rl  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_DictÍ  s    c         C  s’   t  | j ƒ d k s( | j d d k rE d |  j | j d ƒ } n0 d |  j | j d ƒ |  j | j d ƒ f } | rŽ d | | f } n  | S(   Ni   i    s   \delta\left(%s\right)s+   \delta^{\left( %s \right)}\left( %s \right)s   \left(%s\right)^{%s}(   R"  Rá   R»   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_DiracDeltaÐ  s    (-c         C  sK   |  j  | j d | j d ƒ } |  j  | j d ƒ } d | | f } | S(   Ni    i   i   s$   {\left\langle %s \right\rangle}^{%s}(   R»   Rá   (   Rµ   RÂ   t   shiftR  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_SingularityFunctionÚ  s    !c         C  s7   d |  j  | j d ƒ } | r3 d | | f } n  | S(   Ns   \theta\left(%s\right)i    s   \left(%s\right)^{%s}(   R»   Rá   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Heavisideà  s    c         C  s’   |  j  | j d ƒ } |  j  | j d ƒ } | j d j r_ | j d j r_ d | | f } n d | | f } | d  k	 rŽ d | | f } n  | S(   Ni    i   s   \delta_{%s %s}s   \delta_{%s, %s}s   \left(%s\right)^{%s}(   R»   Rá   RÇ   R°   (   Rµ   RÂ   Rã   Rš   R©   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_KroneckerDeltaæ  s     c         C  st   t  |  j | j ƒ } t d „  | j Dƒ ƒ rD d d j | ƒ } n d d j | ƒ } | rp d | | f } n  | S(   Nc         s  s   |  ] } | j  Vq d  S(   N(   RÇ   (   Rl  RÞ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>ó  s    s   \varepsilon_{%s}RŸ   s   , s   \left(%s\right)^{%s}(   R_  R»   Rá   Rx  Rè   (   Rµ   RÂ   Rã   R`  RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_LeviCivitañ  s    c           sn   t  | j ƒ d k rJ t | j ƒ rJ ˆ  j | j d ƒ d t  | j ƒ Sd j ‡  f d †  | j Dƒ ƒ Sd  S(   Ni   i    s   ^{%d}s    \times c         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   Rl  t   set(   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>ÿ  s    (   R"  t   setsR   R»   Rè   (   Rµ   R;  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ProductSetû  s    %%c         C  s‘   t  | d ƒ r& d |  j | j ƒ  ƒ St  | d ƒ r] d |  j | j ƒ d |  j | j ƒ St  | d ƒ r€ d |  j | j ƒ S|  j d  ƒ Sd  S(   Nt
   as_booleans   \text{Domain: }Rt  s   \text{ in }Rz  s   \text{Domain on }(   R  R»   Rw  Rz  Rt  R°   (   Rµ   Re  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RandomDomain  s    c         C  s"   t  | j d t ƒ} |  j | ƒ S(   NR  (   R!  Rá   R   t
   _print_set(   Rµ   Rj   RR  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FiniteSet  s    c         C  s5   t  | d t ƒ} d j t |  j | ƒ ƒ } d | S(   NR  s   , s   \left\{%s\right\}(   R!  R   Rè   R_  R»   (   Rµ   Rj   RR  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRy    s    c           sÝ   d } | j  j r3 | | d | j | d f } n… | j j ri t | ƒ } t | ƒ t | ƒ | f } nO t | ƒ d k r¬ t | ƒ } t | ƒ t | ƒ | | d f } n t | ƒ } d d j ‡  f d †  | Dƒ ƒ d S(   Ns   \ldotsiÿÿÿÿi   s   \left\{s   , c         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   Rl  t   el(   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>&  s    s   \right\}(	   t   startt   is_infinitet   stept   stopt   itert   nextR"  RD  Rè   (   Rµ   Rj   t   dotst   printsett   it(    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Range  s    !% c         C  sF   d |  j  | j d ƒ } | d  k	 rB d | |  j  | ƒ f } n  | S(   Ns   B_{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_bernoulli)  s    c         C  sF   d |  j  | j d ƒ } | d  k	 rB d | |  j  | ƒ f } n  | S(   Ns   F_{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_fibonacci1  s    c         C  sF   d |  j  | j d ƒ } | d  k	 rB d | |  j  | ƒ f } n  | S(   Ns   L_{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_lucas7  s    c         C  sF   d |  j  | j d ƒ } | d  k	 rB d | |  j  | ƒ f } n  | S(   Ns   T_{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_tribonacci=  s    c           sG  t  | j j ƒ d k s0 t  | j j ƒ d k rx d ˆ  j | j ƒ ˆ  j | j d ƒ ˆ  j | j ƒ ˆ  j | j ƒ f S| j t j k rÛ | j } d | j	 | d ƒ | j	 | d ƒ | j	 | d ƒ | j	 | ƒ f } nG | j t j
 k sü | j d k r| d  } | j d ƒ n t | ƒ } d d	 j ‡  f d
 †  | Dƒ ƒ d S(   Ni    s   \left\{%s\right\}_{%s=%s}^{%s}s   \ldotsi   i   i   i   s   \left[s   , c         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   Rl  R{  (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>V  s    s   \right](   R"  R|  t   free_symbolsR  R»   t   formulaR  R   R~  t   coeffR}  t   lengthRU  RD  Rè   (   Rµ   Rj   R  Rƒ  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_SeqFormulaC  s     0	#%!
 c         C  s†   | j  | j k r& d |  j | j  ƒ S| j r8 d } n d } | j rP d } n d } d | |  j | j  ƒ |  j | j ƒ | f Sd  S(   Ns   \left\{%s\right\}R¥   R   R¤   R¦   s   \left%s%s, %s\right%s(   R|  t   endR»   t	   left_opent
   right_open(   Rµ   Rš   t   leftt   right(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Interval]  s    				c         C  s&   d |  j  | j ƒ |  j  | j ƒ f S(   Ns    \left\langle %s, %s\right\rangle(   R»   t   mint   max(   Rµ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_AccumulationBoundso  s    c         C  s,   d j  g  | j D] } |  j | ƒ ^ q ƒ S(   Ns    \cup (   Rè   Rá   R»   (   Rµ   t   uRš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Unions  s    c         C  s,   d j  g  | j D] } |  j | ƒ ^ q ƒ S(   Ns    \setminus (   Rè   Rá   R»   (   Rµ   R˜  Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Complementv  s    c         C  s,   d j  g  | j D] } |  j | ƒ ^ q ƒ S(   Ns    \cap (   Rè   Rá   R»   (   Rµ   R˜  Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Intersectiony  s    c         C  s,   d j  g  | j D] } |  j | ƒ ^ q ƒ S(   Ns    \triangle (   Rè   Rá   R»   (   Rµ   R˜  Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_SymmetricDifference|  s    c         C  s   d S(   Ns	   \emptyset(    (   Rµ   Rë   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_EmptySet  s    c         C  s   d S(   Ns
   \mathbb{N}(    (   Rµ   RÒ  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Naturals‚  s    c         C  s   d S(   Ns   \mathbb{N}_0(    (   Rµ   RÒ  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Naturals0…  s    c         C  s   d S(   Ns
   \mathbb{Z}(    (   Rµ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Integersˆ  s    c         C  s   d S(   Ns
   \mathbb{R}(    (   Rµ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Reals‹  s    c         C  s   d S(   Ns
   \mathbb{C}(    (   Rµ   Rš   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ComplexesŽ  s    c         C  s}   | j  d } g  t | j j | ƒ D]. \ } } d |  j | ƒ |  j | ƒ f ^ q# } d |  j | j j ƒ d j | ƒ f S(   Ni   s	   %s \in %ss   \left\{%s\; |\; %s\right\}s   , (   Rá   Rn  RT   R  R»   RÂ   Rè   (   Rµ   Rj   Ru  t   vart   setvt   varsets(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ImageSet‘  s    Gc         C  s’   d j  g  t | j ƒ D] } |  j | ƒ ^ q ƒ } | j t j k rf d | |  j | j j ƒ  ƒ f Sd | | |  j | j ƒ |  j | j ƒ f S(   Ns   , s   \left\{%s \mid %s \right\}s+   \left\{%s \mid %s \in %s \wedge %s \right\}(	   Rè   R   RØ  R»   t   base_setR   t   UniversalSett	   conditiont   as_expr(   Rµ   Rj   R£  t
   vars_print(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ConditionSet™  s    4c         C  sW   d j  g  | j D] } |  j | ƒ ^ q ƒ } d |  j | j ƒ | |  j | j ƒ f S(   Ns   , s"   \left\{%s\; |\; %s \in %s \right\}(   Rè   R  R»   RÂ   Ru  (   Rµ   Rj   R£  R«  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ComplexRegion¥  s
    .c           s!   d t  ‡  f d †  | j Dƒ ƒ S(   Ns	   %s \in %sc         3  s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R»   (   Rl  R8  (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>­  s    (   RD  Rá   (   Rµ   Rë   (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Contains¬  s    c         C  s    |  j  | j ƒ  ƒ |  j d ƒ S(   Ns	    + \ldots(   Rõ   t   truncateR»   (   Rµ   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FourierSeries¯  s    c         C  s   |  j  | j ƒ S(   N(   Rõ   t   infinite(   Rµ   Rj   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FormalPowerSeries²  s    c         C  s   d | j  S(   Ns   \mathbb{F}_{%s}(   t   mod(   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FiniteFieldµ  s    c         C  s   d S(   Ns
   \mathbb{Z}(    (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_IntegerRing¸  s    c         C  s   d S(   Ns
   \mathbb{Q}(    (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RationalField»  s    c         C  s   d S(   Ns
   \mathbb{R}(    (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RealField¾  s    c         C  s   d S(   Ns
   \mathbb{C}(    (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ComplexFieldÁ  s    c         C  s>   |  j  | j ƒ } d j t |  j  | j ƒ ƒ } d | | f S(   Ns   , s   %s\left[%s\right](   R»   t   domainRè   R_  Rz  (   Rµ   RÂ   R¹  Rz  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_PolynomialRingÄ  s    c         C  s>   |  j  | j ƒ } d j t |  j  | j ƒ ƒ } d | | f S(   Ns   , s   %s\left(%s\right)(   R»   R¹  Rè   R_  Rz  (   Rµ   RÂ   R¹  Rz  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FractionFieldÉ  s    c         C  sY   |  j  | j ƒ } d j t |  j  | j ƒ ƒ } d } | j sH d } n  d | | | f S(   Ns   , Rl   s   S_<^{-1}s   %s%s\left[%s\right](   R»   R¹  Rè   R_  Rz  t   is_Poly(   Rµ   RÂ   R¹  Rz  t   inv(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_PolynomialRingBaseÎ  s    		c         C  s{  | j  j } g  } x| j ƒ  D]‚\ } } d } xu t | ƒ D]g \ } } | d k r> | d k r | |  j | j | ƒ 7} q¥ | |  j t | j | | ƒ ƒ 7} q> q> W| j rà | rÎ d |  j | ƒ }	 qH|  j | ƒ }	 nh | r9| t j	 k r| j
 d | g ƒ q n  | t j k r9| j
 d | g ƒ q q9n  |  j | ƒ }	 | sW|	 }
 n |	 d | }
 |
 j d ƒ rŽ| j
 d |
 d g ƒ q | j
 d |
 g ƒ q W| d d k rè| j d ƒ } | d k rèd | d | d <qèn  d j | ƒ } t t |  j | j ƒ ƒ } d |  j | j ƒ  ƒ } d	 j | g | | g ƒ } | t k rgd
 | | f } n d | | f } | S(   NRl   i    i   s   \left(%s\right)R  RM  RŸ   s	   domain=%ss   , s   \%s {\left(%s \right)}s$   \operatorname{%s}{\left( %s \right)}(   RM  R  (   Ræ   Rç   Rò   Rñ   R»   t   genst   powRÐ   R   R/  t   extendRÈ   R?  t   popRè   Rï   R_  t
   get_domainRƒ  (   Rµ   t   polyR£  Rò   t   monomRŒ  t   s_monomRš   Rã   t   s_coefft   s_termt   modifierRÂ   R¿  R¹  Rá   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_PolyÖ  sN    *			c         C  sn   | j  j } | d k r! d } n  |  j | j ƒ } | j } | t k rY d | | | f Sd | | | f Sd  S(   Nt   ComplexRootOft   CRootOfs   \%s {\left(%s, %d\right)}s'   \operatorname{%s} {\left(%s, %d\right)}(   Ræ   Rç   R»   RÂ   RY  Rƒ  (   Rµ   R+   R£  RÂ   RY  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ComplexRootOf  s    			c         C  s   | j  j } |  j | j ƒ g } | j t j k	 rO | j |  j | j ƒ ƒ n  | t k rr d | d j	 | ƒ f Sd | d j	 | ƒ f Sd  S(   Ns   \%s {\left(%s\right)}s   , s#   \operatorname{%s} {\left(%s\right)}(
   Ræ   Rç   R»   RÂ   t   funR   t   IdentityFunctionRU  Rƒ  Rè   (   Rµ   RÂ   R£  Rá   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_RootSum  s    c         C  s#   |  j  d } | j |  t d | ƒ S(   NR¢   s	   {%s}^{%d}(   R®   Rü   R   (   Rµ   RÄ  R•   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_PolyElement(  s    c         C  sU   | j  d k r |  j | j ƒ S|  j | j ƒ } |  j | j  ƒ } d | | f Sd  S(   Ni   s   \frac{%s}{%s}(   R3  R»   R2  (   Rµ   R*   R2  R3  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FracElement,  s
    c         C  sž   t  | j ƒ d k r( | j d d  f n | j \ } } d |  j | ƒ } | d  k	 rr d | |  j | ƒ f } n  | d  k	 rš d | |  j | ƒ f } n  | S(   Ni   i    s   E_{%s}s   %s^{%s}s   %s\left(%s\right)(   R"  Rá   R°   R»   (   Rµ   RÂ   Rã   R  RÞ   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_euler4  s    7c         C  sF   d |  j  | j d ƒ } | d  k	 rB d | |  j  | ƒ f } n  | S(   Ns   C_{%s}i    s   %s^{%s}(   R»   Rá   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_catalan=  s    c         C  sU   d j  | | r d n d |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ ƒ S(   Ns5   \mathcal{{{}}}{}_{{{}}}\left[{}\right]\left({}\right)s   ^{-1}Rl   i   i    i   (   Rº   R»   Rá   (   Rµ   RÂ   Rj   t   inverse(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_UnifiedTransformC  s    c         C  s   |  j  | d ƒ S(   NR?   (   RÖ  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MellinTransformF  s    c         C  s   |  j  | d t ƒ S(   NR?   (   RÖ  R±   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_InverseMellinTransformI  s    c         C  s   |  j  | d ƒ S(   Nt   L(   RÖ  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_LaplaceTransformL  s    c         C  s   |  j  | d t ƒ S(   NRÙ  (   RÖ  R±   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_InverseLaplaceTransformO  s    c         C  s   |  j  | d ƒ S(   Nt   F(   RÖ  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FourierTransformR  s    c         C  s   |  j  | d t ƒ S(   NRÜ  (   RÖ  R±   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_InverseFourierTransformU  s    c         C  s   |  j  | d ƒ S(   Nt   SIN(   RÖ  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_SineTransformX  s    c         C  s   |  j  | d t ƒ S(   NRß  (   RÖ  R±   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_InverseSineTransform[  s    c         C  s   |  j  | d ƒ S(   Nt   COS(   RÖ  (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_CosineTransform^  s    c         C  s   |  j  | d t ƒ S(   NRâ  (   RÖ  R±   (   Rµ   RÂ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_InverseCosineTransforma  s    c         C  sS   y, | j  d  k	 r+ |  j | j  j | ƒ ƒ SWn t k
 r? n X|  j t | ƒ ƒ S(   N(   t   ringR°   R»   t   to_sympyR   t   repr(   Rµ   R;  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_DMPd  s    c         C  s   |  j  | ƒ S(   N(   Rè  (   Rµ   R;  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt
   _print_DMFm  s    c         C  s   |  j  t | j ƒ ƒ S(   N(   R»   R   R„  (   Rµ   t   object(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Objectp  s    c         C  s2   |  j  | j ƒ } |  j  | j ƒ } d | | f S(   Ns   %s\rightarrow %s(   R»   R¹  t   codomain(   Rµ   t   morphismR¹  Rì  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Morphisms  s    c         C  s5   |  j  t | j ƒ ƒ } |  j | ƒ } d | | f S(   Ns   %s:%s(   R»   R   R„  Rî  (   Rµ   Rí  t   pretty_namet   pretty_morphism(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_NamedMorphismx  s    c         C  s/   d d l  m } |  j | | j | j d ƒ ƒ S(   Niÿÿÿÿ(   t   NamedMorphismt   id(   t   sympy.categoriesRò  Rñ  R¹  Rì  (   Rµ   Rí  Rò  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_IdentityMorphism}  s    	c         C  sb   g  | j  D] } |  j t | j ƒ ƒ ^ q
 } | j ƒ  d j | ƒ d } |  j | ƒ } | | S(   Ns   \circ R3  (   RS  R»   R   R„  t   reverseRè   Rî  (   Rµ   Rí  t	   componentt   component_names_listt   component_namesRð  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_CompositeMorphism‚  s    +
c         C  s   d j  |  j t | j ƒ ƒ ƒ S(   Ns   \mathbf{{{}}}(   Rº   R»   R   R„  (   Rµ   Rí  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Category  s    c         C  sU   | j  s |  j t j ƒ S|  j | j  ƒ } | j rQ | d |  j | j ƒ 7} n  | S(   Ns   \Longrightarrow %s(   t   premisesR»   R   t   EmptySett   conclusions(   Rµ   t   diagramt   latex_result(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Diagram  s    		c         C  sÔ   d d | j  } x² t | j ƒ D]¡ } xn t | j  ƒ D]] } | | | f rj | t | | | f ƒ 7} n  | d 7} | | j  d k r7 | d 7} q7 q7 W| | j d k r¸ | d 7} n  | d 7} q! W| d 7} | S(	   Ns   \begin{array}{%s}
R#  RŸ   i   s   & s   \\s   
s   \end{array}
(   t   widthR   t   heightt   latex(   Rµ   t   gridR   Rš   R©   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_DiagramGridœ  s    

c         C  s(   d j  |  j | j ƒ |  j | j ƒ ƒ S(   Ns   {{{}}}^{{{}}}(   Rº   R»   Rå  RJ  (   Rµ   R?   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FreeModule®  s    c           s&   d j  d j ‡  f d †  | Dƒ ƒ ƒ S(   Ns   \left[ {} \right]R÷   c         3  s&   |  ] } d  ˆ  j  | ƒ d Vq d S(   Rz   Ri   N(   R»   (   Rl  RÞ   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>´  s    (   Rº   Rè   (   Rµ   R  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_FreeModuleElement±  s    c           s)   d j  d j ‡  f d †  | j Dƒ ƒ ƒ S(   Ns   \left\langle {} \right\rangleR÷   c         3  s&   |  ] } d  ˆ  j  | ƒ d Vq d S(   Rz   Ri   N(   R»   (   Rl  RÞ   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>¸  s    (   Rº   Rè   R¿  (   Rµ   R  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_SubModule¶  s    c           s,   d j  d j ‡  f d †  | j j Dƒ ƒ ƒ S(   Ns   \left\langle {} \right\rangleR÷   c         3  s)   |  ] \ } d  ˆ  j  | ƒ d Vq d S(   Rz   Ri   N(   R»   (   Rl  RÞ   (   Rµ   (    s3   lib/python2.7/site-packages/sympy/printing/latex.pys	   <genexpr>¼  s    (   Rº   Rè   t   _moduleR¿  (   Rµ   R  (    (   Rµ   s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_ModuleImplementedIdealº  s    c         C  s~   g  | j  D]" } |  j | t d d t ƒ^ q
 } | d g g  t | d d ƒ D] \ } } | d | ^ qP } d j | ƒ S(   NRÖ   R¾   i    i   t   ijkRŸ   s    + (   Rá   RÀ   R   R±   Rn  Rè   (   Rµ   RÂ   Rš   Rj   R©   R8  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Quaternion¾  s    /?c         C  s(   d j  |  j | j ƒ |  j | j ƒ ƒ S(   Ns   \frac{{{}}}{{{}}}(   Rº   R»   Rå  t
   base_ideal(   Rµ   t   R(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_QuotientRingÆ  s    c         C  s+   d j  |  j | j ƒ |  j | j j ƒ ƒ S(   Ns   {{{}}} + {{{}}}(   Rº   R»   t   dataRå  R  (   Rµ   RÞ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_QuotientRingElementË  s    c         C  s+   d j  |  j | j ƒ |  j | j j ƒ ƒ S(   Ns   {{{}}} + {{{}}}(   Rº   R»   R  t   modulet   killed_module(   Rµ   R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_QuotientModuleElementÏ  s    c         C  s(   d j  |  j | j ƒ |  j | j ƒ ƒ S(   Ns   \frac{{{}}}{{{}}}(   Rº   R»   Râ   R  (   Rµ   R?   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_QuotientModuleÓ  s    c         C  s:   d j  |  j | j ƒ  ƒ |  j | j ƒ |  j | j ƒ ƒ S(   Ns   {{{}}} : {{{}}} \to {{{}}}(   Rº   R»   t   _sympy_matrixR¹  Rì  (   Rµ   t   h(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_MatrixHomomorphismØ  s    c         C  s/   | j  j | j } d j |  j t | ƒ ƒ ƒ S(   Ns   \mathbf{{{}}}(   t
   _coord_syst   _namest   _indexRº   R»   R   (   Rµ   t   fieldR  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_BaseScalarFieldÜ  s    c         C  s/   | j  j | j } d j |  j t | ƒ ƒ ƒ S(   Ns   \partial_{{{}}}(   R  R  R  Rº   R»   R   (   Rµ   R  R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_BaseVectorFieldà  s    c         C  sg   | j  } t | d ƒ rG | j j | j } d j |  j t | ƒ ƒ ƒ S|  j | ƒ } d j | ƒ Sd  S(   NR  s   \operatorname{{d}}{}s!   \operatorname{{d}}\left({}\right)(   t   _form_fieldR  R  R  R  Rº   R»   R   (   Rµ   t   diffR  R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_Differentialä  s    	c         C  s#   |  j  | j d ƒ } d j | ƒ S(   Ni    s"   \operatorname{{tr}}\left({}\right)(   R»   Rá   Rº   (   Rµ   R;  t   contents(    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt	   _print_Trí  s    c         C  sK   | d  k	 r3 d |  j | j d ƒ |  j | ƒ f Sd |  j | j d ƒ S(   Ns%   \left(\phi\left(%s\right)\right)^{%s}i    s   \phi\left(%s\right)(   R°   R»   Rá   (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_totientò  s    $c         C  sK   | d  k	 r3 d |  j | j d ƒ |  j | ƒ f Sd |  j | j d ƒ S(   Ns(   \left(\lambda\left(%s\right)\right)^{%s}i    s   \lambda\left(%s\right)(   R°   R»   Rá   (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_reduced_totientø  s    $c         C  s   t  | j ƒ d k rH d t t |  j | j d | j d f ƒ ƒ } n d |  j | j d ƒ } | d  k	 r… d |  j | ƒ | f Sd | S(   Ni   s   _%s\left(%s\right)i   i    s   \left(%s\right)s   \sigma^{%s}%ss   \sigma%s(   R"  Rá   RD  R_  R»   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_divisor_sigmaþ  s    $c         C  s   t  | j ƒ d k rH d t t |  j | j d | j d f ƒ ƒ } n d |  j | j d ƒ } | d  k	 r… d |  j | ƒ | f Sd | S(   Ni   s   _%s\left(%s\right)i   i    s   \left(%s\right)s   \sigma^*^{%s}%ss
   \sigma^*%s(   R"  Rá   RD  R_  R»   R°   (   Rµ   RÂ   Rã   RÃ   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_udivisor_sigma	  s    $c         C  sK   | d  k	 r3 d |  j | j d ƒ |  j | ƒ f Sd |  j | j d ƒ S(   Ns$   \left(\nu\left(%s\right)\right)^{%s}i    s   \nu\left(%s\right)(   R°   R»   Rá   (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_primenu	  s    $c         C  sK   | d  k	 r3 d |  j | j d ƒ |  j | ƒ f Sd |  j | j d ƒ S(   Ns'   \left(\Omega\left(%s\right)\right)^{%s}i    s   \Omega\left(%s\right)(   R°   R»   Rá   (   Rµ   RÂ   Rã   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   _print_primeomega	  s    $N(  Rç   t
   __module__t   printmethodRÊ   R°   R±   t   _default_settingsR­   RÀ   RÁ   RË   RÒ   Rß   Rà   RÍ   RÏ   Rä   Rê   Rì   t   _print_BooleanTruet   _print_BooleanFalseRí   Rõ   R   t   _print_PermutationR  R  R  R  R  R  R  R:  RB  RC  RI  RJ  R^  Rb  Rd  Rk  Ru  R|  R‚  R…  R•  R–  t   propertyR¡  R¤  R¥  R¨  t
   _print_Mint
   _print_MaxR©  Rª  R«  R¬  t   _print_DeterminantR®  R¯  Rµ  R¸  R¹  Rº  R»  R³  R²  R½  R¾  R¿  RÀ  RÁ  RÂ  RÃ  RÄ  RÅ  RÆ  RÇ  t   _print_gammaRÈ  RÊ  RË  RÌ  RÎ  RÏ  RÐ  RÑ  RÓ  RÕ  RÚ  RÛ  RÝ  RÞ  Rß  Rá  Rã  Rä  Rå  Ræ  Rç  Rè  Rê  Rë  Rí  Rï  Rð  Rñ  Rô  Rø  Rù  Rú  Rû  Rü  Rý  Rþ  Rÿ  R   R  R  R  R  R  R	  R
  R  R  R  t   _print_RandomSymbolR  Rå   R!  R%  R0  t   _print_ImmutableMatrixt   _print_ImmutableDenseMatrixt   _print_MatrixR2  R7  R9  R=  R>  R?  RB  RC  RE  RF  RG  RH  RI  RT  t   _print_ImmutableDenseNDimArrayt   _print_ImmutableSparseNDimArrayt   _print_MutableDenseNDimArrayt   _print_MutableSparseNDimArrayR[  R]  R^  R`  Ra  Rc  Rd  Rf  Rg  Rh  Ri  Rl  Rm  Rn  Rp  Rq  Rr  Rs  Rv  Rx  Rz  Ry  t   _print_frozensetR…  R†  t   _print_bellR‡  Rˆ  R‰  RŽ  t   _print_SeqPert   _print_SeqAddt   _print_SeqMulR”  R—  R™  Rš  R›  Rœ  R  Rž  RŸ  R   R¡  R¢  R¦  R¬  R­  R®  R°  R²  R´  Rµ  R¶  R·  R¸  Rº  R»  R¾  RÊ  RÍ  RÐ  RÑ  RÒ  RÓ  RÔ  RÖ  R×  RØ  RÚ  RÛ  RÝ  RÞ  Rà  Rá  Rã  Rä  Rè  Ré  Rë  Rî  Rñ  Rõ  Rú  Rû  R  R  R  R  R	  R  R  R  R  R  R  R  R  R  R"  R$  R%  R&  R'  R(  R)  R*  (    (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR†   z   s  
8		
																	e	8								
	"		E			

																													
									4				
							
	
	
																																	9																																									

c         C  sÍ   t  j |  ƒ } | r | S|  j ƒ  t k r9 d |  j ƒ  S|  t k rM d |  Sxu t t j ƒ  d d „  d t ƒD]R } |  j ƒ  j	 | ƒ ro t
 |  ƒ t
 | ƒ k ro t | t |  t
 | ƒ  ƒ ƒ Sqo W|  Sd S(   sŽ  
    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}}}'"
    s   \R  c         S  s
   t  |  ƒ S(   N(   R"  (   RZ  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyRk   7	  Rl   Rö  N(   t   tex_greek_dictionaryt   getR¦  t   greek_letters_sett   other_symbolsR!  t   modifier_dictRj  R±   R@  R"  R  (   Rj   RÃ   R  (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR  	  s    (-#R‹   R   R“   Rš   c         C  s¥   | d k r i  } n  i | d 6| d 6| d 6| d 6| d 6| d 6| d 6| d 6|	 d	 6|
 d
 6| d 6| d 6| d 6| d 6| d 6| d 6| d 6} t | ƒ j |  ƒ S(   s“  Convert the given expression to LaTeX string representation.

    Parameters
    ==========
    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}`.

    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 list, tuple, and
    dictionary.

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

    Rˆ   R‰   RŠ   RŒ   R   RŽ   R   R‘   R’   R”   R•   R–   R—   R˜   R™   R›   Rœ   N(   R°   R†   RÁ   (   RÂ   Rˆ   R‰   RŠ   RŒ   R   RŽ   R   R‘   R’   R”   R•   R–   R—   R˜   R™   R›   Rœ   R¶   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyR  =	  s*    ²	
c         K  s   t  t |  |  ƒ d S(   s`   Prints LaTeX representation of the given expression. Takes the same
    settings as ``latex()``.N(   t   printR  (   RÂ   R¶   (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   print_latex	
  s    (;   t   __doc__t
   __future__R    R   RL  t
   sympy.coreR   R   R   R   t   sympy.core.alphabetsR   t   sympy.core.containersR   t   sympy.core.functionR   R	   R
   t   sympy.core.operationsR   t   sympy.core.sympifyR   t   sympy.logic.boolalgR   t   sympy.printing.precedenceR   t   sympy.printing.printerR   t   sympy.printing.conventionsR   R   R   R   t   mpmath.libmpt   libmpR  R   t   sympy.core.compatibilityR   R   t   sympy.utilities.iterablesR   R(   Rƒ  RC  Rt  RF  RG  t	   frozensetRE  t   compileR#  R†   R  RÊ   R°   R±   R  RI  (    (    (    s3   lib/python2.7/site-packages/sympy/printing/latex.pyt   <module>   sÔ   "	























ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ­			Ç