K i@vddlZddlmZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZdd lmZdd lmZdd lmZdd lmZdd lmZmZmZddlmZmZddlm Z ddl!m"Z"ddl#m$Z$ddl%m&Z&m'Z'ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z7e/Z8e2Z9GddeZ:ee:dZ;dZy)N)S)Add)Tuple)Function)Mul)NumberRational)Pow)default_sort_key)Symbol) SympifyError)requires_partial) PRECEDENCE precedenceprecedence_traditional)Printerprint_function)sstr) has_variety)sympy_deprecation_warning) prettyForm stringPict)hobjvobjxobjxsym pretty_symbol pretty_atompretty_use_unicode greek_unicodeUpretty_try_use_unicode annotatedis_subscriptable_in_unicode center_padrootc eZdZdZdZddddddddddd Zdd Zd Zed Z d Z d Z dZ dZ ddZeZdZdZdZdZdZdZdZdZdZeZeZeZeZeZeZeZeZ eZ!dZ"dZ#dZ$dZ%dZ&dZ'd Z(dd!Z)d"Z*d#Z+d$Z,d%Z-d&Z.dd'Z/dd(Z0d)Z1d*Z2d+Z3d,Z4d-Z5d.Z6d/Z7d0Z8d1Z9d2Z:d3Z;d4Zd7Z?d8Z@d9ZAd:ZBd;ZCd<ZDd=ZEd>ZFd?ZGd@ZHdAZIdBZJdCZKdDZLdEZMdFZNdGZOdHZPdIZQdJZRdKZSdLZTdMZUdNZVdOZWdPZXdQZYdRZZdSZ[dTZ\dUZ]ifdVZ^dWZ_dXZ`dYZadZZbd[Zcd\Zdd]Zed^Zfd_Zgdd`ZhdaZidbZjdcZkddZl ddeZmdfZndgZodhZpdiZq ddkZrdlZsedmZtdnZudoZvdpZwdqZxdrZydsZzdtZ{duZ|dvZ}dwZ~dxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZddZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZeZeZeZdddjddfdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd„ZdÄZdĄZdńZdƄZdDŽZdȄZdɄZdʄZd˄Zd̄ZeZd̈́Zd΄ZdτZdЄZdфZd҄ZdӄZdԄZdՄZdքZdׄZd؄ZdلZdڄZdۄZd܄Zd݄ZdބZd߄ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy) PrettyPrinterz?Printer, which converts an expression into 2D ASCII-art figure._prettyNautoTplaini) order full_prec use_unicode wrap_line num_columnsuse_unicode_sqrt_char root_notationmat_symbol_styleimaginary_unit perm_cyclicc(tj||t|jdts't dj |jd|jddvr'tdj |jdy)Nr5z&'imaginary_unit' must a string, not {})r,jz4'imaginary_unit' must be either 'i' or 'j', not '{}')r__init__ isinstance _settingsstr TypeErrorformat ValueError)selfsettingss b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/printing/pretty/pretty.pyr9zPrettyPrinter.__init__/sx($..)9:C@DKKDNN[kLlmn n ^^, -Z ?SZZ[_[i[ijz[{|} }@c*tt|SNrr<r@exprs rB emptyPrinterzPrettyPrinter.emptyPrinter7s#d)$$rCc6|jdrytS)Nr/T)r;r)r@s rB _use_unicodezPrettyPrinter._use_unicode:s >>- (%' 'rCcX|j|jdi|jS)N)_printrenderr;rGs rBdoprintzPrettyPrinter.doprintAs%'t{{4 ''9$..99rCc|SrErMr@es rB_print_stringPictzPrettyPrinter._print_stringPictEsrCct|SrE)rrRs rB_print_basestringzPrettyPrinter._print_basestringHs !}rCct|j|jj}t|j d}|S)Natan2)r _print_seqargsparensleftr@rSpforms rB _print_atan2zPrettyPrinter._print_atan2Ks:DOOAFF3::<=EJJw/0 rCcDt|j|}t|SrE)rnamer)r@rS bold_namesymbs rB _print_SymbolzPrettyPrinter._print_SymbolPsQVVY/$rCcF|j||jddk(S)Nr4bold)rdr;rRs rB_print_MatrixSymbolz!PrettyPrinter._print_MatrixSymbolTs$!!!T^^4F%G6%QRRrCct|jd}|dk(r|jdk(}tt||S)Nr.r*)r.)r; _print_levelrr)r@rSr.s rB _print_FloatzPrettyPrinter._print_FloatWs<NN;/  ))Q.I$qI677rCc |j}|j}|j|}t|j d}t|j d}t|j |jt d}t|j d}t|j |j|}t|j d}|S)N()MULTIPLICATION SIGN_expr1_expr2rNrr\rightr!r@rSvec1vec2r^s rB _print_CrosszPrettyPrinter._print_Cross_sxxxx D!EJJsO,EKK,-EJJt{{15J3K'LMNEJJsO,EJJt{{4'89:EJJsO, rCc X|j}|j|}t|jd}t|j d}t|j|jt d}t|j|jt d}|S)NrmrnroNABLA_exprrNrr\rsr!r@rSvecr^s rB _print_CurlzPrettyPrinter._print_Curlksgg C EJJsO,EKK,-EJJt{{15J3K'LMNEJJt{{1W:'>?@ rCc X|j}|j|}t|jd}t|j d}t|j|jt d}t|j|jt d}|S)Nrmrn DOT OPERATORryrzr|s rB_print_DivergencezPrettyPrinter._print_Divergencetsgg C EJJsO,EKK,-EJJt{{1^3D'EFGEJJt{{1W:'>?@ rCc |j}|j}|j|}t|j d}t|j d}t|j |jt d}t|j d}t|j |j|}t|j d}|S)Nrmrnrrprts rB _print_DotzPrettyPrinter._print_Dot}sxxxx D!EJJsO,EKK,-EJJt{{1^3D'EFGEJJsO,EJJt{{4'89:EJJsO, rCc |j}|j|}t|jd}t|j d}t|j|jt d}|S)Nrmrnryrzr@rSfuncr^s rB_print_GradientzPrettyPrinter._print_Gradientscww D!EJJsO,EKK,-EJJt{{1W:'>?@ rCc |j}|j|}t|jd}t|j d}t|j|jt d}|S)Nrmrn INCREMENTrzrs rB_print_LaplacianzPrettyPrinter._print_Laplacianscww D!EJJsO,EKK,-EJJt{{1[>'BCD rCc tt|jj|S#t$r|j |cYSwxYw)N)printer)rr __class____name__KeyErrorrIrRs rB _print_AtomzPrettyPrinter._print_AtomsC (k!++*>*>MN N ($$Q' ' (s),A A cj|jr|j|Sddg}|j|ddS)Nz-oooormrn)rKrrY)r@rSinf_lists rB _print_RealszPrettyPrinter._print_Realss8   ##A& &t}H??8S#6 6rCc|jd}|j|}|jr |js"|jst |j }t |jd}|SNr!)rZrN is_Integeris_nonnegative is_Symbolrr[r\r@rSxr^s rB_print_subfactorialz!PrettyPrinter._print_subfactorialsX FF1I A!"2"2q{{ /EEJJsO, rCc|jd}|j|}|jr |js"|jst |j }t |jd}|SrrZrNrrrrr[rsrs rB_print_factorialzPrettyPrinter._print_factorialsY FF1I A!"2"2q{{ /EEKK,- rCc|jd}|j|}|jr |js"|jst |j }t |jd}|S)Nrz!!rrs rB_print_factorial2zPrettyPrinter._print_factorial2sY FF1I A!"2"2q{{ /EEKK-. rCcx|j\}}|j|}|j|}dt|j|jz}t |j |}t |j |}t |j dd}|jdzdz|_|S)N rmrnri)rZrNmaxwidthrabover[baseline)r@rSnkn_pformk_pformbarr^s rB_print_binomialzPrettyPrinter._print_binomialsvv1++a.++a.#gmmow}}77GMM#./EKK01ELLc23..1,q0 rCctdt|jzdz}|j|j}|j|j }tt j|||dtji}|S)Nrbinding) rrrel_oprNlhsrhsrnextOPENr@rSoplrr^s rB_print_RelationalzPrettyPrinter._print_Relationalsg d188n,s2 3 KK  KK JOOAr15OzO rCcddlm}m}|jr|jd}|j |}t ||r|j|tdSt ||r|j|tdS|jr"|jst|j}t|jtdS|j|S)Nr) EquivalentImpliesNotEquiv)altcharNotArrowNot)sympy.logic.boolalgrrrKrZrNr:_print_Equivalentr_print_Implies is_Booleanis_Notrr[r\_print_Function)r@rSrrargr^s rB _print_NotzPrettyPrinter._print_Nots=   &&)CKK$E#z*--c;z;R-SS#w'**3 J8O*PP~~cjj"ELLN3uzz+e*<=> >''* *rCc|j}|rt|jt}|d}|j|}|jr"|j st |j}|ddD]r}|j|}|jr"|j st |j}t |jd|z}t |j|}t|S)Nkeyrri %s ) rZsortedr rNrrrr[rs)r@rScharsortrZrr^ pform_args rB__print_BooleanzPrettyPrinter.__print_Booleansvv !&&&67D1g C  >>#** /E8 8C C(I~~cjj& (8(8(:;  FTM :;E I 67E 8 rCcv|jr|j|tdS|j|dS)NAndTrrK_PrettyPrinter__print_BooleanrrrRs rB _print_AndzPrettyPrinter._print_And 9   '';u+=> >'''5 5rCcv|jr|j|tdS|j|dS)NOrTrrrRs rB _print_OrzPrettyPrinter._print_Ors9   '';t+<= ='''5 5rCcv|jr|j|tdS|j|dS)NXorTrrrRs rB _print_XorzPrettyPrinter._print_XorrrCcv|jr|j|tdS|j|dS)NNandTrrrRs rB _print_NandzPrettyPrinter._print_Nands9   '';v+>? ?'''5 5rCcv|jr|j|tdS|j|dS)NNorTrrrRs rB _print_NorzPrettyPrinter._print_Nor$rrCc~|jr!|j||xs tddS|j|S)NArrowFrrr@rSrs rBrzPrettyPrinter._print_Implies*s?   ''7+Jk'6JQV'W W''* *rCc~|jr|j||xs tdS|j|dS)NEquivTrrrs rBrzPrettyPrinter._print_Equivalent0s>   ''7+Jk'6JK K'''5 5rCc |j|jd}t|jt d|j S)Nr_)rNrZrrrrr]s rB_print_conjugatezPrettyPrinter._print_conjugate6s9 AFF1I&EKKc5;;=)ABDDrCcr|j|jd}t|jdd}|S)Nr|)rNrZrr[r]s rB _print_AbszPrettyPrinter._print_Abs:s2 AFF1I&ELLc23 rCc|jr8|j|jd}t|j dd}|S|j |S)NrlfloorrfloorrKrNrZrr[rr]s rB _print_floorzPrettyPrinter._print_floor?sL   KKq *E Xx @AEL''* *rCc|jr8|j|jd}t|j dd}|S|j |S)Nrlceilrceilrr]s rB_print_ceilingzPrettyPrinter._print_ceilingGsL   KKq *E Wg >?EL''* *rCc`t|jr|jr td}nd}d}d}t |j D]\}}|j |}t|j|}||z }|jr|dkDr|tt|z}||}`t|jd}t|j|}t|j |jjdtji} t|} |dkDdk7r| tt|z} t| jtj |} | j"dz| _ttj$| | } tj&| _| S)NPARTIAL DIFFERENTIALdrrirrF)rrHrKr!reversedvariable_countrNrr\rr<rsr[FUNCbelowrLINErrMULr) r@deriv deriv_symbolrcount_total_derivsymnumsdsfr^s rB_print_DerivativezPrettyPrinter._print_DerivativeOsx EJJ 'D,=,=34LL  !5!56 -HC C AQVVL12B  $ NNaCH--y - , - &*kk%**&=&D&D&F HOO H<(  !e +:c*;&<==EEKK ;<!+JOOE156"  rCcddlm}m}||k(r!td}t |j S||j j}|gk(r4|j|jdz }t |j Std}|D]L}|jtt|jdd}t |j|}N|S)Nr PermutationCycleri,) sympy.combinatorics.permutationsrrrrr[list cyclic_formrNsizer<tuplereplacers)r@dcrrcycdc_listr,rs rB _print_CyclezPrettyPrinter._print_CycletsG =R.Cszz|, ,bggi(44 b=++bggk*Cszz|, ,n ,A CaM11#r:;Aciil+C , rCcXddlm}m}|j}|t d|ddddn|j j d d }|r|j||S|j}ttt|}td }d }t||D]q\} } |j| } |j| } t| j!| } |rd }nt| j#d } t|j%| }st|j'S)Nrrzw Setting Permutation.print_cyclic is deprecated. Instead use init_printing(perm_cyclic=z). z1.6z#deprecated-permutation-print_cyclic)deprecated_since_versionactive_deprecations_target stacklevelr6TrFr)rrr print_cyclicrr;getr array_formrrangelenrziprNrrr\rsr[)r@rHrrr6lowerupperresultfirsturs1s2cols rB_print_Permutationz PrettyPrinter._print_PermutationsG!..  " %++6-8*/+P ..,,]DAK $$U4[1 1U3u:&'Bu% 4DAqQBQBbhhrl+C #((3-0c!23F 46==?++rCc|j}|j|}|jrt|j }|}|j D]W}|j|d}|j dkDrt|j }t|jd|}Yd}d}|j D]} |j} | dz} |j } | r| dz } td| } t| }|j| | z dzz|_ t| dkDrt| dk(rtd}|j| d}t| dk(r(|j| d}|j| d}| rntddj z }t|jd |z}tdd j z }t|jd |z}t|j}t|j!}| st|jd }|r|}d }t|j|}t|j|}tj"|_|S) Nrriz dTrintrrF)functionrNis_Addrr[limitsrrsheightrKrrr&rr\rrrr)r@integralr prettyFrr prettyArg firsttermr limhH ascii_modevintr^prettyAprettyBspcs rB_print_IntegralzPrettyPrinter._print_Integralsa   ++a. 88 '.."23G :A AaD)I 1$& (8(8(:; ciii89C  : ??. /C AAA"...JQq>Dt$E \\A-EN3x!|s8q=(nG"kk#a&1Gs8q="kk#a&1G"kk#a&1GaW]]_!45C(',,sSy*ABGaW]]_!45C('--c *BCG"EKK$89"EKK$89"EKK$45! u .]. /`CHHQK("  rCc|j}|j|}tdd}tdd}tdd}|jrtdd}tdd}|j }d}d} d} |j D]Z} |j | \} } |dzd zd zdz }||z||dz zz|z|zg}t|dzD]%}|jd |zd |dz zz|zd z'td }t|j|}t| | j } |r|j } t|j| }t|j| }|r d|_d }|j }td }t|jd g|dz z}t|j!|}t|j!|}]| | dzz|_tj"|_|S)Nrrir-UpTackTrrr3rrF)termrNrrKr8r7'_PrettyPrinter__print_SumProduct_Limitsr%appendrrstackrrrrrsrr)r@rHr pretty_funchorizontal_chr corner_chr vertical_chr func_heightr+ max_upper sign_heightr= pretty_lower pretty_upperr sign_linesr pretty_signr8paddings rB_print_ProductzPrettyPrinter._print_Products1yykk$' c1#q\ C|   !#q\Nh*J!((*   ;; FC)-)G)G)L &L, 1_)Q.2E(:55QR79STWaadrrsJ;?+ _!!# "4uQw"H<"WZ]"]^ _%R.K$&7k&7&7&DEKI|':':'<=I)002 $k&7&7 &EFK$k&7&7 &EFK'( $ '')F nG -'--# 1C"DEG$k&7&7&@AK$k&7&7 &DEK; F> );>9 (nn rCc\fd}j|d}||d|d}||fS)Nctdtdzdz}j|}j|}ttj|||}|S)Nr==)rrrNrr)rrrrrr^r@s rB print_startz.print_start.sSC$t*,s23B C A C A 2q 9:ELrCrrri)rN)r@r=r^ prettyUpper prettyLowers` rB__print_SumProduct_Limitsz'PrettyPrinter.__print_SumProduct_Limits-s; kk#a&) !#a&#a&1 K''rCc|j }d}|j}|j|}|jrt |j }|j dz}d}d}d} |jD]I} |j| \} } t|| j }||| j| j|\} }}}td}t |j|}|r|j } t |j| }t |j| }|r8|xj| |j dz|jz z zc_d}td}t |jdg|z}t |j!|}t |j!|}Ls|nd}|| dzz|z|_tj"|_|S)Ncdd}t|d}|dz}|dz}|dz}g} |r| jd|zdz| jdd|dz zztd|D]!} | jd| zdd|| z z#|r| jd|zdd||z zttd|D]!} | jd| zd d|| z z#| jd d|dz zzd z|||z| |fS||z}||z}t d d } | jd|ztd |D](} | jd| z| dd|| z dz z*ttd |D](} | jd| z| d d|| z dz z*| j| d|z||d|zz| |fS)Nc|rt||kDr|S|t|z }|dvs |tdvr|d|zzS|dz}d|z}|dk(rd|z|zS||zd|t|z zzS)N)<^>)r&r)r widhowneedhalfleads rBadjustz6PrettyPrinter._print_Sum..asum..adjust=sc!fslHSV|,&#T%[*@s4x<'Qw4x#:t8a<'ax#tc$i'7"888rCrrirrz\%s`\rn/rsumr4r)Nre)rrLr%rr) hrequiredr(r) use_asciirmr>rwmorelinesr,vsums rBasumz&PrettyPrinter._print_Sum..asum<s 9Iq!A1AAAq=DE S!Ws]+ WQU 45q!BALLSUCQK!@ABLLCGS!a%[!AB!%1+.AALLCE3A;!?@A S3A;.45!d(E4//HHE1~ S!W%q!OALLSUDGS!a%!)_!MNO!%1+.OALLSUDGS!a%!)_!MNO T!Wa[)!af*eT11rCrTrrFr)rKr5rNr6rr[r8r7rKrrrrMrrrrsrr)r@rHr@rxr r:r?r+rSrTr=r`r_rr>slines adjustment prettySignpadascii_adjustments rB _print_SumzPrettyPrinter._print_Sum9s*** ( 2T MM++a. 88 '.."23G NN q   ;; =C'+'E'Ec'J $KI{'9'9';?J(//1 #Z%5%5k%BCJ#Z%5%5k%BCJ  A)91)<)0)9)9*:%;; R.Cicii#q12C#Z%5%5c%:;J *"2"27";z+-r+SuperscriptPlusSuperscriptMinusr)rZrNrrrr[rKrsrrr<rInfinityNegativeInfinityrr) r@rrSzz0dirELimLimArgs rB _print_LimitzPrettyPrinter._print_LimitsX 1b# KKN a=Ju- -AHHS#./AQ   c1{7?S>T.U!VWFd!34FV\\$++b/:; s8t rajj!2D2D%EEC  8;CCk"34[YkMlV\\$++c*:;<#))F+,#))A,? ? rCc |}i}t|jD]7}t|jD]}|j|||f|||f<9d}d}dg|jz}t|jD]I}t t|jDcgc]}|||fj c}xsdg||<Kd} t|jD]}d} t|jD]}|||f} | j ||ksJt | j ||\} } t| j| } t| j| } | | } ut| jd|z} t| j| } | | } t|D]}t| jd} t| j| } | td} | Scc}w)zL This method factors out what is essentially grid printing. rrirNrr) r%rowscolsrNrrr%rrsr\r)r@rSMMsr,r8hsepvsepmaxwDD_rowr r\rsrs rB_print_matrix_contentsz$PrettyPrinter._print_matrix_contentss  qvv 0A166] 0;;qAw/1a4 0 0 taff}qvv LAU166]C2ad8>>+CJsKDG L qvv% ,AE166] 4q!tHwwyDG+++ )DG< e/t - =E"EKKD$9:"EKKN31 44y4[ . - .AGGEN+AK% ,N 92A_DsG8 c|j|}|jdz|_t|j ||}|S)Nr)rr8rrr[)r@rSlparensrparensrs rB_print_MatrixBasezPrettyPrinter._print_MatrixBases=  ' ' *XXZ] '2 3rCc<|j}|jrqddlm}t ||r|j |j ddS|j|}|jdz|_ t|jddS|j |ddS)Nr BlockMatrixr)rrr) r is_MatrixExpr&sympy.matrices.expressions.blockmatrixrr:rblocksrNr8rrr[)r@rSmatrrs rB_print_Determinantz PrettyPrinter._print_Determinantsee    J#{+--cjj#s-SS C AQAJqxxS12 2))#sC)H HrCcf|jrd}nd}|j|jdd|dS)Nu⊗.*c,t|tdkSNrrrrs rBz4PrettyPrinter._print_TensorProduct..#9!#< 5@Q#QrC parenthesizerKrYrZ)r@rH circled_timess rB_print_TensorProductz"PrettyPrinter._print_TensorProduct s<   $M Mtyy$mQS SrCcf|jrd}nd}|j|jdd|dS)Nu∧z/\c,t|tdkSrrrs rBrz3PrettyPrinter._print_WedgeProduct..rrCrr)r@rH wedge_symbols rB_print_WedgeProductz!PrettyPrinter._print_WedgeProducts<   #L Ltyy$lQS SrCc|j|j}t|jdd}|j dz|_t|j d}|S)Nrmrnrtr)rNrrr[r8rr\)r@rSrs rB _print_TracezPrettyPrinter._print_TracesR KK  S) *XXZ] / 0rCc|ddlm}t|j|rv|jj r`|j j rJ|jt|jjd|j|j fzzS|j|j}t|j}|j|j|j fdjddd}ttj||d tji}||_||_|S) Nr MatrixSymbolz_%d%d,  delimiter[]r\rsr)sympy.matricesrr:parentr, is_numberr8rNr rarr[rYrrr prettyFunc prettyArgs)r@rHrr prettyIndicesr^s rB_print_MatrixElementz"PrettyPrinter._print_MatrixElement%s/ t{{L 1FF$$)9)9;;4;;++g8H.HHIK KT[[1J#Z%6%6%89J OOTVVTVV,<Of#Sf1!5M__Z?AzAE *E ,E LrCcddlm}j|j}t |j|st |j }fd}j||j|jj||j|jjfdj ddd}t tj||d t ji}||_||_|S) Nrrct|}|ddk(r|d=|ddk(rd|d<|d|k(rd|d<tj|dS)Nrrirr:r)rrrY)rdimr@s rBppslicez1PrettyPrinter._print_MatrixSlice..ppslice@s^QAtqyaDtqy!ts{!tqC@A ArCrrrrrr)rrrNrr:rr[rYrowslicercolslicerrrrrr)r@mrrrrr^s` rB_print_MatrixSlicez PrettyPrinter._print_MatrixSlice:s/[[* !((L1#Z%6%6%89J B__gajj!((--&H AJJ .&0;?%AAGSX[A\]^` &0ooj*&MOOOO&% rCc|j}|j|}ddlm}m}t ||s.t ||s"|j rt|j}|tdz}|S)NrrrT) rrNrrrr:rrr[)r@rHrr^rrs rB_print_TransposezPrettyPrinter._print_TransposeUs[hh C <3 -3 ,1B1B /E 3( rCc&|j}|j|}|jrtt d}n td}ddlm}m}t||s.t||s"|jrt|j}||z}|S)NDaggerrrr) rrNrKrrrrrr:rr[)r@rHrr^dagrrs rB_print_AdjointzPrettyPrinter._print_Adjoint_swhh C    [23CS/C<3 -3 ,1B1B /Es  rCc|jjdk(r|j|jdS|j|jS)Nririrr)rshaperN)r@Bs rB_print_BlockMatrixz PrettyPrinter._print_BlockMatrixms< 88>>V #;;qxx~. .{{188$$rCc|d}|jD]}|j|}||}|jd}t|j r.t t j|d}|j|}nt t j|d}t t j||}|S)Nrr + )rZrN as_coeff_mmulrcould_extract_minus_signrrr)r@rHr itemr^coeffs rB _print_MatAddzPrettyPrinter._print_MatAddrs II ;DKK%Ey**,Q/U8446"JOOAs$;A 5 9: ;rCclt|j}ddlm}ddlm}ddlm}t|D]n\}}t|t|||frAt|jdkDr)t|j|j||<[|j|||<ptj|S)NrHadamardProduct)KroneckerProductMatAddri)rrZ#sympy.matrices.expressions.hadamardr$sympy.matrices.expressions.kroneckerr!sympy.matrices.expressions.mataddr enumerater:rr&rrNr[__mul__)r@rHrZrrrr,as rB _print_MatMulzPrettyPrinter._print_MatMulsDIIGI<dO )DAq1sFO=MNODII*$dkk!n&;&;&=>Q++a.Q  )!!4((rCcX|jrttdStdS)NIdentityMatrixIrKrrrGs rB_print_IdentityzPrettyPrinter._print_Identitys&   k*:;< <c? "rCcX|jrttdStdS)N ZeroMatrix0rrGs rB_print_ZeroMatrixzPrettyPrinter._print_ZeroMatrixs%   k,78 8c? "rCcX|jrttdStdS)N OneMatrix1rrGs rB_print_OneMatrixzPrettyPrinter._print_OneMatrixs%   k+67 7c? "rCct|j}t|D]\}}|j|||<t j |SrE)rrZrrNrrr@rHrZr,rs rB_print_DotProductzPrettyPrinter._print_DotProductsHDIIdO %DAqkk!nDG %!!4((rCc|j|j}ddlm}t |j|s,|jj rt |j}||j|jz}|S)Nrr) rNbaserrr:rrr[exp)r@rHr^rs rB _print_MatPowzPrettyPrinter._print_MatPows] DII&/$))\2tyy7N7N /E DHH-. rCc ddlmddlmddlm|j r td}nd}|j|jdd|fdS) NrrrMatMulRingrc"t|fSrEr:)rrrr s rBrz6PrettyPrinter._print_HadamardProduct..sz!ffo5V'WrCr) rrrr!sympy.matrices.expressions.matmulr rKrrYrZ)r@rHdelimrrr s @@@rB_print_HadamardProductz$PrettyPrinter._print_HadamardProductsKG<<   'EEtyy$eWY YrCc|jr td}n|jd}|j|j}|j|j}t |jt dkrt|j}ttj||dtji}||zS)Nr .rr) rKrrNrrrrrr[rrr)r@rHcirc pretty_base pretty_exppretty_circ_exps rB_print_HadamardPowerz"PrettyPrinter._print_HadamardPowers   v&D;;s#Dkk$)), [[* dhh *U"3 3#Z%6%6%89J$ __T: . OO O++rCcddlmddlm|jrdt dd}nd}|j |jdd|fdS) Nrrrr TensorProductz x c t|fSrEr )rrr s rBrz7PrettyPrinter._print_KroneckerProduct..sz!ff5E'FrCr)rrr r rKrrYrZ)r@rHrrr s @@rB_print_KroneckerProductz%PrettyPrinter._print_KroneckerProductsR<<    O45Q7EEtyy$eFH HrCc|j|jj}t|j dd}|SNrr)rNlamdarHrr[)r@Xrs rB_print_FunctionMatrixz#PrettyPrinter._print_FunctionMatrixs2 KK % c* +rCc|jdk(sC|j|j}}t|t|ddd}|j |S|j d|j |jz S)NrirFevaluate)rdenrr _print_MulrN)r@rHrr#ress rB_print_TransferFunctionz%PrettyPrinter._print_TransferFunctionsdxx1}xxCc3sB7%HC??3' ';;q>$++dhh"77 7rCct|j}t|jD]-\}}t|j |j ||</tj |SrE)rrZrrrNr[rrs rB _print_SerieszPrettyPrinter._print_Seriess[DIIdii( ;DAq $++a."7"7"9:DG ;!!4((rCcddlm}t|j}g}t |D]}t ||rgt |jdkDrO|j|}|jdz|_ |jt|jv|j|}|jdz|_ |j|tj|S)Nr) MIMOParallelrir)sympy.physics.control.ltir*rrZrr:r&rNr8rrLrr[r)r@rHr*rZ pretty_argsr expressions rB_print_MIMOSerieszPrettyPrinter._print_MIMOSeriess:DII $ /A1l+DII0B![[^ &0&7&7&91&< #"":z/@/@/B#CD![[^ &0&7&7&91&< #"":. /!!;//rCc.d}|jD]}|j|}||}ttj|}|j dz|_ttj|d}ttj||}|S)Nrr)rZrNrrrr8r)r@rHr rr^s rB_print_ParallelzPrettyPrinter._print_Parallels II ;DKK%Ey  23XXZ]  5 9: 5 9: ;rCcddlm}d}|jD]}|j|}||}t t j |}|jdz|_t t j |d}t||r|jdz |_t t j ||}|S)Nr)TransferFunctionMatrixrrri) r+r2rZrNrrrr8rr:)r@rHr2r rr^s rB_print_MIMOParallelz!PrettyPrinter._print_MIMOParallelsD II ;DKK%Ey  23XXZ]  5 9:d$:;!"aAJ 5 9: ;rCcbddlm}m}|j|dd|j}}t ||rt |jn|g}t |j|rt |jjn |jg}t ||r!t |j|r |g||}nt ||r@t |j|r*|j|k(r||}nv|g||j}nat ||r+t |j|r||k(r||}n4||g|}n*||k(r||}n|j|k(r||}n |g||}ttj|j|} | jdz| _|jdk(rttj| dnttj| d} ttj| |j|} |j|| z S)Nr)TransferFunctionSeriesrirrr - )sympy.physics.controlr5r6sys1varr:rrZsys2rrrrNr8rsign) r@rHr5r6rtf num_arg_list den_arg_listr#denoms rB_print_FeedbackzPrettyPrinter._print_FeedbacksB))-aDHH=R)3C)@tCHH~se tyy& )DIINN+04 {  c6 "z$))V'D6,66C V $DII?O)PyyBl+6l6DII6 - .:dii3Pbyl+S0<0byl+bl+:l:\:JOODKKO<=*>Bii2o JOOE59:Z__UE:; JOOE4;;s3CDE{{3%%rCcddlm}m}|j||j|j }|j|j }t tj|}|jdk(rt tjd|nt tjd|}t tj|}d|_ t tj|d}|jdz|_ t j|t d}t|j |r|jd z |_ t tj||}|S) Nr) MIMOSeriesr2rzI + zI - z-1 rrri)r8rCr2rNr;r9rrrr<rsr[rr8rr:)r@rHrCr2inv_matplant _feedbacks rB_print_MIMOFeedbackz!PrettyPrinter._print_MIMOFeedback;s!L++jDII>? DII&  89 HL UWJ 0 0 CDZ--fi@A  1 1) <=   0 0E BC &--/2 &&y*S/B dii!7 8!*!1!1!3a!7I   5 AB rCc|j|j}|jdz |_|jr t dnd}t |j|}|S)Nritauz{t})rN _expr_matr8rrKr rrs)r@rHr subscripts rB_print_TransferFunctionMatrixz+PrettyPrinter._print_TransferFunctionMatrixMsRkk$..)zz|a' ,0,=,=M%(6 #))I./ rCcddlm}|j}|j}|j}|j }|||g||gg}|j |jS)Nrr)rr_A_B_C_DrNr)r@rHrArCrrs rB_print_StateSpacezPrettyPrinter._print_StateSpaceTsSF GG GG GG GGAq6Aq6*+{{3::&&rCc ` ddlm}|js td||jk(rt |jj Sg}g}t||r|jj}nd|fg}|D]\}}t|jj}|jd|D]\} } | dk(r|jd| j zng| dk(r|jd | j znC|j| jd} |j| d z| j z|j| j |dj!d r |dd d|d<n|dj!d r |ddd|d<g} dg} g}t#|D]\}}|jdd |vs|}|j%||d}t'dd|vrct)t+|D]K}d||<||t'ddk(s||dzd k(s'|d|t'ddzd z||z||dzdz}nYnWt'dd|vrI|j-t'dd}|dk7r)d||<|d|t'ddzd z||z||dzdz}|||<|Dcgc]}|j/d }}t1d|D}d|vrHt#|D]:\}}t+|dk(s|j3dd t+|dzd||<<t#|D]+\}}| jt+|||t)|D]}|dzt+|kr|t+| k\r2| jd t5| ddd t+| dz zzz|||k(r| ||xx|||d zz cc<v| |xx||d | dt+||z d zzzz cc<|t+| k\r2| jd t5| ddd t+| dz zzz| |xxd | dd zzz cc<.t d j7| Dcgc]}|dd c}Scc}wcc}w)Nr)Vectorz:ASCII pretty printing of BasisDependent is not implementedc(|djSNr)__str__rs rBrz5PrettyPrinter._print_BasisDependent..msAaDLLNrCrrirrz(-1) rrr3 z)_extz )_lower_hookc32K|]}t|ywrE)r&).0rs rB z6PrettyPrinter._print_BasisDependent..s,AQ,s) sympy.vectorrVrKNotImplementedErrorzeror _pretty_formr:separateitemsr componentsrrLrNr[ startswithrrrr%r&rfindsplitrinsertrpjoin)r@rHrVo1vectstrsrdsystemvect inneritemsrvarg_strlengthsstrsflagr,partstrtempstrparenindexr n_newlinespartsr8r s rB_print_BasisDependentz#PrettyPrinter._print_BasisDependent]s'  %&bc c 499 dii445 5  dF #MMO))+EYKE! 0LFDdoo3356J OO":O ;" 016IIbnn-."WIIgnn-. #kk!68A'GIIgmann<=/% 0 00 a5  E "qE!"IBqE U  c "qE!"IBqEt#B- JAw KKNw!!//(1+r:#w.!&s7|!4""#Q"5>T'1-=='%RS)BTX\B\'.fuoWa8H&H+.'/2:1+'>@GPQ @S'TG!".!,7$MM$~q*ABE{"#Q")&5/D4K"K'*#+.6qk#:%?@DG|T!W tAw%)?? Q58c72;36uQx=4A3445/6$66CI~ C3ws|+<+,c'l1n+=,>%?@GsGBKM22G 3 3&$))T$:QsV$:;<<9)8%;s R& R+ c h ddlm |jdk(r|j|dSggt |jDcgc]}gc}z}|j Dcgc]}t t |}} fd}tj|D]}|dj||d}t |jdz ddD]}t||dz|j |kr`|r||j||dznJ||j|||dzt||dzdk(r|||dgg||d<| }g||dz<|dd} |jdzdk(r || g} |j| Scc}wcc}w) Nr)ImmutableMatrixrMc|dS)NFr!rM)rr}s rBrz0PrettyPrinter._print_NDimArray..sE:rCrTrir) sympy.matrices.immutabler}rankrNr%rr itertoolsproductrLr&) r@rHr, level_str shape_rangesrouter_ieven back_outer_iout_exprr}s @rB_print_NDimArrayzPrettyPrinter._print_NDimArrays< 99;! ;;tBx( (Ddiik(:;1B;; 04 ;1U1X; ;: ((,7 /G bM g /D %diik!mR < / ya01DJJ|4LLl+229\!^3LMl+223!,q.14349\A%5671<69' 5b9:;7= ,/3x,. ,q.) / /"Q<? 99;?a H:H{{8$$3<;s F*(F/c ft|}td|jz}td|jz}d}d}|D]} |j| jd} | |vs|rT|| jk(rE| jrt tj |d}nt tj |d}| |vrMt tj | d} t tj | |j|| } d}nd}| jrht|j| }t|jd| jz}t|jd| jz}ngt|j| }t|jd| jz}t|jd| jz}| j}t |j|} t | j|} | S)Nrrr=TF) rrrNrZis_uprrrsrr) r@raindices index_mapcentertopbot last_valenceprev_maprxindpicpicts rB_printer_tensor_indicesz%PrettyPrinter._printer_tensor_indicessD!V\\^+,V\\^+,  'E[[A/F)#lekk6Q;;$jooc3&?@C$jooc3&?@C !#Z__VS%AB#Z__VT[[SXIY=Z%[\ {{ #))F"34#V\\#flln2D%EF #))C ,>"?@ #))F"34#V\\#flln2D%EF #))C ,>"?@ ;;L+ '.6<<,-4::c?+ rCcx|jdj}|j}|j||SrX)rZra get_indicesr)r@rHrars rB _print_TensorzPrettyPrinter._print_Tensors6yy|  ""$++D'::rCc|jjdj}|jj}|j}|j |||SrX)rHrZrarrr)r@rHrarrs rB_print_TensorElementz"PrettyPrinter._print_TensorElement sJyy~~a %%))'')NN ++D'9EErCc<|j\}}|Dcgc]M}t|tdkr%t|j |j n|j |O}}tj |}|rt|j|S|Scc}wr)!_get_args_for_traditional_printerrrrrNr[rr\)r@rHr<rZr,r^s rB_print_TensMulzPrettyPrinter._print_TensMuls;;= d  #1 % 5(9 9  A--/ 0?C{{1~ N  ""D) uzz$/0 0L sABc|jDcgc]M}t|tdkr%t|j |j n|j |O}}tj |Scc}wr)rZrrrrNr[__add__)r@rHr,rZs rB_print_TensAddzPrettyPrinter._print_TensAddszYY  #1 % 5(9 9  A--/ 0?C{{1~ N  !!4((  sAA5c`|jd}|js| }|j|SrX)rZrrN)r@rHrs rB_print_TensorIndexz PrettyPrinter._print_TensorIndex's,iilzz$C{{3rCc|jr td}nd}d}t|jD]]}|j |}t |j |}||}0t |jd}t |j|}_t |j |jjdt ji}t |}t|jdkDr'||j t|jz}t |jtj|}|jdz|_t tj ||}t j"|_|S)Nrrrrri)rKr!r variablesrNrr\rsrHr[rr&rrrrrrr) r@rrrvariabler r r r^s rB_print_PartialDerivativez&PrettyPrinter._print_PartialDerivative-sA   34LL  1 -H H%AQVVL12By - , - &*kk%**&=&D&D&F HOO H<( u ! #4;;s5??';<.\s=AadGMMO=s"r{r)rrZrNrHcondrrsr&r%rrr\rr[r8rrr)r@pexprrecrrlen_argsr8rrr,rpwdeltawleftwrightrrs ` @rB_print_PiecewisezPrettyPrinter._print_PiecewiseMsD uzz* EEArkk"''*AadGww$$[1!Q$$'--dkk"''.BCE!Q$  Euzz?q#=U8_==## x ,AE1X 4adGwwyDG+++a1779,! %F 34s5y 12=E"EKKD$9:"EKKN3! 4"y4[ . - .AGGEN+A7 ,: b) *XXZ] OO O#s%IcNddlm}|j|j|S)Nr) Piecewise)$sympy.functions.elementary.piecewiserrNrewrite)r@iters rB _print_ITEzPrettyPrinter._print_ITEsB{{3;;y122rCcd}|D]7}|}||} t|jd}t|j|}9| td}|S)Nrr)rrsr)r@rprrrs rB _hprint_veczPrettyPrinter._hprint_vecs^  ,AAy . +  , 93ArCc |r%|js|j|d|f|||dS|j||f|||}ttd|j |j }|j|||f|||S)NrT)r\rsrifascii_nougly)r\rsrr)rKrYrrr8r) r@p1p2r\rsrrtmpseps rB_hprint_vseparatorz PrettyPrinter._hprint_vseparators $"3"3??BR=t5-6t#M Moor2id%9oUc3::<03<<HC}4u)24 4rCc |jDcgc]}|j|}}|jDcgc]}|j|}}|j|j}|j dz|_d}||fD]F}|j |} || }t|jd}t|j| }H|j dz|_t|jd}t|jd}|j||}t|jdd}|j dzdz } |j | z dz } td\} } }}}td| | z z|zd| |z zz| | z}| dzdz}t|j|jt|j}t|j|jt|j}| |z|_t|jd|}|Scc}wcc}w) NrrrmrnriFrZr)aprNbqargumentr8rrrrr\rsrr[r#r&)r@rSrrbrrrrprrrsztaddimgrs rB _print_hyperzPrettyPrinter._print_hypers&'dd +dkk!n + +&'dd +dkk!n + + KK #XXZ]  b 0A$$Q'Ey -/  0XXZ]  s $  %  # #Aq ) c* + A ! U"Q&&s^Aq#s tuqy)C/$%!)2DD %  ,Avk t{{3qtt956 7  CI 67 8S[ Q (Y, +s IIci}|jDcgc]}|j|c}|d<|jDcgc]}|j|c}|d<|jDcgc]}|j|c}|d<|jDcgc]}|j|c}|d<|j|j }|j dz|_i}|D]}|j||||<tdD]}t|d|fj|d|fj} tdD]p} || |f} | | jz dz} | | z | jz } t| jd| z} t| jd| z} | || |f<rt|djd |d}t|jd}t|djd |d}t|j|}|j dz|_t|jd}t|jd}|j!||}t|j#d d }|j dzdz }|j |z dz }t%d \}}}}}td ||z z|zd ||z zz||z}|jt'|j(}|jt'|j*}|jt'|j}|jt'|j}d}|||\}}|||\}}t|jd|}t|jd|}|j|z dz }|dkDrt|jd |z}t|j|} ||_t|j| }||z|_t|jd|}|Scc}wcc}wcc}wcc}w)Nr)rri)rirrrrrirz rmrnGrZrc|j|jz }|dk(r||fS|dkDr|t|jd|zfSt|jd| z|fS)Nrr)rrr\)rrdiffs rBrmz,PrettyPrinter._print_meijerg..adjust sk88: *Dqy2v :rwws4x'8999!2773u9#56::rCr)anrNaotherbmbotherrr8rrr%rrrr\rsrrr[r#r&rr)!r@rSrprrrvpidxr,rr8r r\rsD1D2rrrrrrrrpppqpmpnrmpuplhtrs! rB_print_meijergzPrettyPrinter._print_meijergs  -.TT2T[[^2& -.XX6T[[^6& -.TT2T[[^2& -.XX6T[[^6& KK #XXZ]  /C&&qv.BsG /q Ar1a&z'')2q!f:+;+;+=>D1X 1vJqwwy(Q.t aggi/sTz 23e 45Aq6   F))$6 ; < # ' F))$6 ; <  %XXZ]  s $  %  # #Aq ) c* + A ! U"Q&&s^Aq#s tuqy)C/$%!)2DD %  ,[[QTT # [[QTT # [[QTT # [[QTT # ;BBBB $+ , $+ , ZZ% ! # 6RXXd2g./B  %  #S[ Q (]3626sQ$Q))Q.Q3cnttdd}||j|jdzS)NExp1rSr)rrrNrZ)r@rSrs rB_print_ExpBasezPrettyPrinter._print_ExpBase%s1+fc23t{{166!9---rCc,ttddS)NrrS)rrrRs rB _print_Exp1zPrettyPrinter._print_Exp1+s+fc233rCcX|j|j|j||||S)N)r func_namer\rs)_helper_print_functionrrZ)r@rSrrr\rss rBrzPrettyPrinter._print_Function.s-**166166PY`dlq*rrrCc(|j|dSNrSrrrRs rB_print_mathieuczPrettyPrinter._print_mathieuc4##A#55rCc(|j|dSNrrrrRs rB_print_mathieuszPrettyPrinter._print_mathieus7rrCc(|j|dS)NzC'rrrRs rB_print_mathieucprimez"PrettyPrinter._print_mathieucprime:##A#66rCc(|j|dS)NzS'rrrRs rB_print_mathieusprimez"PrettyPrinter._print_mathieusprime=rrCrc b|rt|t}|st|dr |j}|r|j t |} n%t |j |j} |rX|jr td} nd} |j | } t tj| | dt ji} t |j||j||} t tj| | dt ji} | | _| | _| S)NrrzModifier Letter Low Ringrrrr)rr hasattrrrNr rr[rKrrrrrYrrr) r@rrZrrr elementwiser\rsrrrr^s rBrz$PrettyPrinter._helper_print_function@s $$45DWT:6 I VI%67J#T[[%6%=%=%?@J   "#=>;;t$D#T2"J  !K!R!R6:%"S"IJ &0ooj*&MOOOO&% rCcb|j}|j}|g}|j||ddS)NrT)rr)r5rHr)r@rSrrrZs rB_print_ElementwiseApplyFunctionz-PrettyPrinter._print_ElementwiseApplyFunctiones6zzffu**4QU*VVrCcddlm}ddlm}m}ddlm}ddlm}ddl m }ddl m }|tddg|td d g|td d g|td d g|td dg|tddg|ddgiS)Nr)KroneckerDelta)gamma lowergamma)lerchphi)beta) DiracDelta)ChideltaGammaPhirrBetarr)(sympy.functions.special.tensor_functionsr'sympy.functions.special.gamma_functionsrr&sympy.functions.special.zeta_functionsr&sympy.functions.special.beta_functionsr'sympy.functions.special.delta_functionsr'sympy.functions.special.error_functionsrr )r@rrrrrrrs rB_special_function_classesz'PrettyPrinter._special_function_classesksKMC?F?w!7 A g.8=/<]73W=}V,c2]73W=eU^ % %rCc<|jD]n}t||s|j|jk(s*|jrt |j|dcSt |j|dcS|j}t t |S)Nrri)r issubclassrrKrr)r@rHclsrs rB_print_FunctionClassz"PrettyPrinter._print_FunctionClass{s11 NC$$#,,)F$$%d&D&DS&I!&LMM%d&D&DS&I!&LMM  N MM - 233rCc$|j|SrE)rIrGs rB_print_GeometryEntityz#PrettyPrinter._print_GeometryEntitys  &&rCc|j|jd}|jr;t|r0|j t d|z|jdS|j |S)NrzLi_%srirNrZrKr$rrr@rSrKs rB_print_polylogzPrettyPrinter._print_polylogseKKq *   ! rirrrq) rH signaturerKrr& is_symbolrNrrr)r@rSrHsigarrowvar_forms rB _print_LambdazPrettyPrinter._print_Lambdasvvkk    N34A6EE s8q=SV--a&C;;s#:??8UDKK.s?qqAFF{?sri; rrrrHO) rNrHpointanyr&rrrsrKrr[r\r@rHr^s rB _print_OrderzPrettyPrinter._print_Ordersk DII& JJ3?DJJ?? t~~  " D 12E4>>"Q&"EKK DNN0K$LMT^^$"EKK DNN1->M&)C ##A#;;rCc,d}|j||S)NzB'rrrs rB_print_betainczPrettyPrinter._print_betaincs ##A#;;rCc,d}|j||S)Nrrrrs rB_print_betainc_regularizedz(PrettyPrinter._print_betainc_regularizeds ##A#;;rCcV|jr tdnd}|j||SNr rrrs rB _print_gammazPrettyPrinter._print_gamma,.2.?.?M'*W ##A#;;rCcV|jr tdnd}|j||Srbrrs rB_print_uppergammazPrettyPrinter._print_uppergammardrCcV|jr tdnd}|j||S)Nrrrrrs rB_print_lowergammazPrettyPrinter._print_lowergammas,.2.?.?M'*\ ##A#;;rCct|jrt|jdk(rttd}|j |jd}t|j }|j |jd}t|j }||z}t|jd}t|j|}|S|j |jd}t|j }t|jtd}|S|j|S)Nrrrirr) rKr&rZrr rNr[rsr\r)r@rSrrcr^s rB_print_DiracDeltazPrettyPrinter._print_DiracDelta s   166{a}W56KKq * +KKq * +1"EKK$45"EKKN3 KKq *E /E =+A BCEL''* *rCc|j|jd}|jr;t|r0|j t d|z|jdS|j |S)NrzE_%srirrs rB _print_expintzPrettyPrinter._print_expintseKKq *   !> ) /EEKK01EKK DIIaL(ABC"  rCcp|j||}gg}}d}t|D]^\}}|jrp|jr`|j d\} } | dk(r t | ddi} nt | g| ddi} |j | } |j|| ||jr2|jdkDr#|jd|j||jr0|dkr+|j | } |j|| ||jr6|jt|j |j?|j|j |a|rd } |D]} | | jdkDsnd} |D]t}||d}}|dkr| d }}| r>tt|j tt|jz } n|j |} |r || |} | ||<vtj"|S) Nr-cF|dk(r|jdkDrd}nd}nd}|jtjkDs|jtjk(rt |j }n|}t j||}t|dtjiS)z'Prepend a minus sign to a pretty form. rriz- rGr7r)r8rrNEGADDrr[r)r^rx pform_negrs rBpretty_negativez1PrettyPrinter._print_Add..pretty_negativetsz<<>A% $I #I!  .==JNN2 / 1-Aq9jnn9 9rCF)rationalrr"rirT)_as_ordered_termsris_Mulr as_coeff_mulrrNrL is_Rationalq is_Number is_Relationalrr[r8r<rr)r@rHr-termspformsrrr,rJrothernegtermr^largenegatives rB _print_AddzPrettyPrinter._print_Addps&&t5&9b :*!' 1GAt{{t<<>#00%0@ uB;!5959G!5&A5A5AG G, oeQ78!!dffqj d#q!D1H TE* oeQ78## j$++d*;*B*B*DEF dkk$/0% 1( E $!);  "!&q5h!8&*UD(D&s466{3Js466{4KKE KK-E+E15E!q  " !!6**rCcF ddlm |j}|dtjust d|ddDr}t t|j|}|ddk(}|rtddd|d<tj|}|r.td|jz|j|j}|Sg}g}|jdvr|j}nt |j}t!| fd  }|D]S}|j"r|j$r|j&j(r|j&j*rs|j&d k7r3|j-t/|j0|j& d |j-t/|j0|j& |j(r||tj2urj|j4dk7r$|j-t7|j4|j8dk7s|j-t7|j8C|j-|V|D cgc]} |j| }} |D cgc]} |j| }} t;|dk(rtj|St;|dk(r.|j-|jtjtj|tj|z Scc} wcc} w)Nr)Quantityc3<K|]}t|tywrE)r:r)r\rs rBr]z+PrettyPrinter._print_Mul..s"Os:c6#:"Osriz-1rrG)oldnonecpt|xs(t|txrt|jSrE)r:r r)rrs rBrz*PrettyPrinter._print_Mul..s1*Q*A+K C(IZ-IrCrrFr!)sympy.physics.unitsrrZrOnerUrmaprNrrr rrr-as_ordered_factorsris_commutativeis_Powrr is_negativerLr rrrr rr&) r@rrZstrargsnegoneobjrrraibirs @rBr$zPrettyPrinter._print_Mulso0 || 7aee s"Od12h"OO3t{{D12GQZ4'F'Q2 $$g.C suucllCKKHJ   ::_ ,--/D %Dd!KL D""t{{txx7K7KPTPXPXPdPd88r>HHSTXXIFGHHSTXXI67!!d!**&<66Q;HHhtvv.066Q;HHhtvv.0 () )T[[_ ) )'( )T[[_ ) ) q6Q;%%q) )1v{$++aee,.%%q)**<*LcD |j|}|jdrm|jra|dk(r\|jdk(rI|j dk(s|j r*|j rt|jtdStdd tdd z}|j|}|jdk7r&|j||jd|z zS|dk(rdnt|jd}t|dkDrdt|dz z|z}t|dz|z}d |_|jdz tdj! fd t# D} dz |_t|j%|}t'd|j|_tt)d d|j z}t|j+|}t|j|}|S) Nr2rrirornrrrZrc3FK|]}d|z dz zzd|zzyw)rriNrM)r\r,_zZ linelengths rBr]z0PrettyPrinter._print_nth_root..s5(  a!# $s *SU 2( s!r)rNr;rKr8rrrrr\nth_rootrr<ljustr&rrrjr%rsrrr) r@rr&bprettyrootsignrprettyrdiagonalr rrs @@rB_print_nth_rootzPrettyPrinter._print_nth_roots++d# NN2 38I8I gnn.!3A%__)<)<w||HQK89 93la=3&++d# >> q ;;t$dkk!D&&99 9AIb3w<#5#5a#8 s8a<CHqL)H4HcDj834^^%) dii( :&(    'Nx~~h78 7#3#34 tCW]]_!45 6  a( ) x( )rCcddlm}|j\}}|jr|tj urt d|j|z S||\}}|tjurQ|jrE|js9|js |jr!|jdr|j||S|jr/|dkr*t d|jt|| dz S|j rCt |j|j#j%|j|S|j||j|zS)Nr)fractionrr3Fr!)sympy.simplify.simplifyr as_base_exprr NegativeOnerrNris_Atomrrrr;rr rr[__pow__)r@powerrrrSrrs rB _print_PowzPrettyPrinter._print_Pow!s4  "1   AMM!!#t{{1~55A;DAqAEEzaii !--STS^S^7++Aq11}}Q!#t{{3q1"u3M'NNN ??t{{1~4467?? AO O{{1~t{{1~--rCc>|j|jdSrX)rNrZrGs rB_print_UnevaluatedExprz$PrettyPrinter._print_UnevaluatedExpr3s{{499Q<((rCc|dk(r=|dkr$tt|tjStt|St|dk\rut|dk\rg|dkr9tt|tjtt|z Stt|tt|z Sy)Nrir)r )rr<rabs)r@rrs rB__print_numer_denomz!PrettyPrinter.__print_numer_denom6s 61u!#a&*..AA!#a&)) Vr\c!fl1u!#a&*..A*SQRVBTTT "#a&)*SV*<<<rCcx|j|j|j}||S|j|SrE)!_PrettyPrinter__print_numer_denomrrrIr@rHr*s rB_print_RationalzPrettyPrinter._print_RationalHs8))$&&$&&9  M$$T* *rCcx|j|j|j}||S|j|SrE)r numerator denominatorrIrs rB_print_FractionzPrettyPrinter._print_FractionPs:))$..$:J:JK  M$$T* *rCc\t|jdk\rXt|jsC|j|jd|jt|jzS|jr t dnd}|j |jddd|zdS)NrirMultiplicationrrcR|jxs|jxs |jSrE)is_Unionis_Intersection is_ProductSetsets rBrz1PrettyPrinter._print_ProductSet..^s+CLL=L##6=L:=:K:KrCr)r&setsrrNrKrrY)r@r prod_chars rB_print_ProductSetzPrettyPrinter._print_ProductSetXs qvv;! K$7;;qvvay)T[[QVV-EE E9=9J9J $45PSI??1664v 7I1L#M MrCc`t|jt}|j|dddS)Nrr}r)rrZr rY)r@r rds rB_print_FiniteSetzPrettyPrinter._print_FiniteSetas(qvv#34uc366rCcR|jr td}nd}|jjr<|jjr&|j j r|ddd|f}n|ddd|f}n|jjr||d|j z |df}ny|jjr#t|}t|t||f}n@t|dkDr't|}t|t|||df}n t|}|j|ddd S) NDots...rrrir4rrr) rKrstart is_infinitestopstep is_positiveiterrr&rrY)r@r dotsprintsetits rB _print_RangezPrettyPrinter._print_Rangees   v&DD 77  166#5#5vv!!Q4/Ar4/ WW QrUQVV^QrU2H VV  aBBxb4/H VaZaBBxb426HQxHxc499rCc|j|jk(r |j|jddddS|jrd}nd}|j rd}nd}|j|jdd||S) Nrirrrmrrnrr)rendrYrZ left_open right_openr@r,r\rss rB_print_IntervalzPrettyPrinter._print_Interval~sp 77aee ??166"1:sC8 8{{||??166"1:tU; ;rCcJd}d}|j|jdd||S)NrfrgrrYrZrs rB_print_AccumulationBoundsz'PrettyPrinter._print_AccumulationBoundss)qvvbqz477rCcbdtddz}|j|jdd|dS)Nr IntersectionrcR|jxs|jxs |jSrE)rr is_Complementrs rBrz3PrettyPrinter._print_Intersection..s+8I8I9A"||9A/2/@/@rCrrrYrZr@r,rs rB_print_Intersectionz!PrettyPrinter._print_Intersections=[== qvvtT9-AB BrCcbdtddz}|j|jdd|dS)NrUnionr!cR|jxs|jxs |jSrE)rrrrs rBrz,PrettyPrinter._print_Union..s-8I8I9H"229H696G6GrCrr)r@r,union_delimiters rB _print_UnionzPrettyPrinter._print_Unions= ;w#<<qvvtT?-HI IrCc|js tddtdz}|j|jdd|S)Nz?ASCII pretty printing of SymmetricDifference is not implementedrSymmetricDifference)rKr`rrYrZ)r@r, sym_delimeters rB_print_SymmetricDifferencez(PrettyPrinter._print_SymmetricDifferences@  %&gh h-B!CC qvvtT=AArCcHd}|j|jdd|dS)Nz \ cR|jxs|jxs |jSrE)rrrrs rBrz1PrettyPrinter._print_Complement..s(c&7&7'/3;N;N'/"%,,rCrrrs rB_print_ComplementzPrettyPrinter._print_Complements. qvvtT9/0 0rCc|jr tdnd|j}|j}|j}|j |j }t|dk(r3|j|d|dfd}|j||ddd d Stfd t||D}|j|dd d }|j||ddd d S)NSmallElementOfinrirrrrrTr\rsrrc3BK|]\}}|dd|dfD]}|yw)rrNrM)r\r:setvr8inns rBr]z0PrettyPrinter._print_ImageSet..s7< TS#tT:Q 1sDG <*- /A**4033:>#+O O#+O OrCc|jrtd}td}nd}d}|jt|j}t |j dd}|*|j|j j}nN|j|j }|jr'|j|}t|j}|jtjur|j||dddd S|j|j}|j|||||fd }|j||dddd S) Nr rrandas_exprrrTrrr)rKrrYrrgetattr conditionrNrrr[base_setr UniversalSetr) r@rr_andrrrrrSs rB_print_ConditionSetz!PrettyPrinter._print_ConditionSetsB   ./Cu%DCDOOE"&&M2 ",, 48  ;;r||3356D;;r||,D  {{4(!4;;=1 ;;!.. (**9d14T58+: :{{2;;' OOYT4>&)  +&&y!#S6:c'K KrCc2|jr td}nd}|j|j}|j |j }|j |j }|j|||fd}|j||ddddS) Nr rrrrrTr)rKrrYrrNrHrr)r@rrrrHprodsetsrSs rB_print_ComplexRegionz"PrettyPrinter._print_ComplexRegions   ./CCOOBLL1 {{277#;;rww' OOYX6&)  +&&tQS6:c'K KrCc |j\}}|jrMdtdd}tt j |j |||j |ddiStt|S)Nr ElementOfrrq)rZrKrrrrrNr)r@rSr:rels rB_print_ContainszPrettyPrinter._print_Containssz66S   [-.a0Bzt{{3/?/14;;s3C EQNOQ Qd1g& &rCcf|jjtjurA|jjtjur|j |j S|jr td}nd}|j|j|j |zS)Nrr) rformularrQbnrNa0rKrrtruncate)r@r rs rB_print_FourierSeriesz"PrettyPrinter._print_FourierSeries sw 44<<166 !addllaff&<;;qtt$ $   v&DDqzz|,t{{4/@@@rCc8|j|jSrE)rinfiniter@r s rB_print_FormalPowerSeriesz&PrettyPrinter._print_FormalPowerSeries sqzz**rCct|j|jj}|jt d}t|j |S)NSetExpr)rrNrr[r rs)r@se pretty_set pretty_names rB_print_SetExprzPrettyPrinter._print_SetExpr sKRVV!4!;!;!=> kk&"34 ;,,Z899rCc|jr td}nd}t|jjdkDs"t|j jdkDr t d|jtjurY|j }||j|dz |j|dz |j|dz |j|f}nX|j tjus|jdkDr"|dd}|j|t|}n t|}|j|S) Nrrrz@Pretty printing of sequences with symbolic bound not implementedr3rrir4)rKrr&r free_symbolsrr`rrrrlengthrLr _print_list)r@r rrrs rB_print_SeqFormulazPrettyPrinter._print_SeqFormula s   v&DD qww## $q (C0C0C,Dq,H%&hi i 77a(( (66DaggdQh/1Bq!1774=2H VVqzz !QXX\!uH OOD !XHQxH))rCcy)NFrMrs rBrzPrettyPrinter.3 srCc>g}|D]U}|j|} ||rt| j} |r|j||j| W|s t d} ntt j |} t| j|||} | S)Nrr{)rNrr[rLrr) r@seqr\rsrrrrrr^r s rBrYzPrettyPrinter._print_seq2 s !DKK%ED!"ELLN3 i( MM%  !2AJOOV45A u^L MrCcd}|D]5}||}t|j|}t|j|}7| tdS|S)Nr)rrs)r@rrZr^rs rBrjzPrettyPrinter.joinF s\ 6C}"EKK $:;"EKK$45  6 =b> !LrCc(|j|ddSrrY)r@rs rBr;zPrettyPrinter._print_listU sq#s++rCct|dk(rHttj|j |dd}t|j dddS|j |ddS)NrirrrmrnTr{)r&rrrrNr[rY)r@rptuples rB _print_tuplezPrettyPrinter._print_tupleX s\ q6Q;QqT1BC!HIFv}}S#d}KL L??1c3/ /rCc$|j|SrE)rErGs rB _print_TuplezPrettyPrinter._print_Tuple_ s  &&rCct|jt}g}|D]U}|j|}|j||}t t j |d|}|j|W|j|ddS)Nrz: rr) rkeysr rNrrrrLrY)r@rrIrdrruVr s rB _print_dictzPrettyPrinter._print_dictb saffh$45 A AA AaD!AJOOAtQ78A LLO  uc3//rCc$|j|SrE)rK)r@rs rB _print_DictzPrettyPrinter._print_Dicto s""rCc|s tdSt|t}|j|}t|j ddd}|S)Nzset()rrrTr{)rrr rYr[r@r rdprettys rB _print_setzPrettyPrinter._print_setr sIg& &q./'V]]3D]IJ rCc*|s tdSt|t}|j|}t|j ddd}t|j ddd}tt j t|j|}|S) Nz frozenset()rrrTr{rmrn) rrr rYr[rrtyperrOs rB_print_frozensetzPrettyPrinter._print_frozensetz sm, ,q./'V]]3D]IJV]]3D]IJZ__T!W-=-=vFG rCcX|jrttdStdS)NUniverserrr0s rB_print_UniversalSetz!PrettyPrinter._print_UniversalSet s&   k*56 6n- -rCc*tt|SrErr)r@rings rB_print_PolyRingzPrettyPrinter._print_PolyRing $t*%%rCc*tt|SrErY)r@fields rB_print_FracFieldzPrettyPrinter._print_FracField s$u+&&rCc*tt|SrErF)r@elms rB_print_FreeGroupElementz%PrettyPrinter._print_FreeGroupElement s#c(##rCc*tt|SrErY)r@polys rB_print_PolyElementz PrettyPrinter._print_PolyElement r\rCc*tt|SrErY)r@fracs rB_print_FracElementz PrettyPrinter._print_FracElement r\rCc|jr-|j|jjS|j|jSrE) is_aliasedrNas_polyrrGs rB_print_AlgebraicNumberz$PrettyPrinter._print_AlgebraicNumber s< ??;;t||~5578 8;;t||~. .rCc|j|jd|jg}t|j |j }t|j d}|S)NlexrCRootOf)rrHrxrrYr[r\r@rHrZr^s rB_print_ComplexRootOfz"PrettyPrinter._print_ComplexRootOf sU 7DDOOD188:;EJJy12 rCcF|j|jdg}|jtjur*|j |j |jt|j|j}t|jd}|S)NrnrRootSum) rrHrrIdentityFunctionrLrNrrYr[r\rps rB_print_RootSumzPrettyPrinter._print_RootSum sz 78 881-- - KK DHH- .DOOD188:;EJJy12 rCc~|jrtdd}nd}tt||jzS)NIntegersz_%dzGF(%d))rKrrrmod)r@rHforms rB_print_FiniteFieldz PrettyPrinter._print_FiniteField s:   !*-.c2DD-txx899rCcX|jrttdStdS)NrwZZrrGs rB_print_IntegerRingz PrettyPrinter._print_IntegerRing s&   k*56 6d# #rCcX|jrttdStdS)N RationalsQQrrGs rB_print_RationalFieldz"PrettyPrinter._print_RationalField s&   k+67 7d# #rCc|jr td}nd}|jr t|S|j t |dzt |jzS)NRealsRRrrKrhas_default_precisionrrNrr< precisionr@domainprefixs rB_print_RealFieldzPrettyPrinter._print_RealField sV    )FF  ' 'f% %;;}Vc\C@P@Prvertrrps rB _print_SubszPrettyPrinter._print_Subs s AFF#ELLN+#llnq0ELLNa4Q<%..AEKK./ NN!+EKK'*1;;'@9C"# OOT[[1.T DKK!? &0ooj*&MOOOO%% rCc&|j|dS)NrrrRs rB _print_eulerzPrettyPrinter._print_euler3 **1c22rCc&|j|dS)NrSrrRs rB_print_catalanzPrettyPrinter._print_catalan6 rrCc&|j|dS)NrrrRs rB_print_bernoullizPrettyPrinter._print_bernoulli9 rrCc&|j|dS)NLrrRs rB _print_lucaszPrettyPrinter._print_lucas> rrCc&|j|dS)NrrrRs rB_print_fibonaccizPrettyPrinter._print_fibonacciA rrCc&|j|dS)NrrrRs rB_print_tribonaccizPrettyPrinter._print_tribonacciD rrCcp|jr|j|tdS|j|dS)Nr stieltjes)rKrr rRs rB_print_stieltjeszPrettyPrinter._print_stieltjesG s6   ..q-2HI I..q+> >rCc0|j|jd}t|jtd}t|j|j|jd}|jrt t d}n t d}|}t |jd|jz}t |jd|jz}t|j|dtjiS)Nrrrirrrr) rNrZrrsrKrrr\rrPOW)r@rSr^rrrrs rB_print_KroneckerDeltaz#PrettyPrinter._print_KroneckerDeltaM s AFF1I&EKK 389EKK AFF1I(>?@   =12A3A !&&QWWY/0!''#aggi-01399S>B*..BBrCct|drG|jd}t|j|j|j }|St|dr|jd}t|j|j|j }t|j|jd}t|j|j|j }|St|drC|jd}t|j|j|j }|S|jdS)N as_booleanzDomain: rz in rz Domain on )rrNrrsrrr)r@rr^s rB_print_RandomDomainz!PrettyPrinter._print_RandomDomainZ s 1l #KK +E DKK ,G HIEL Q KK +E DKK ,B CDE DKK,? @AE DKK,> ?@EL Q "KK -E DKK ,B CDEL;;t$ $rCc |j*|j|jj|S |jt |S#t$rY%wxYwrE)rZrNto_sympyr reprr@rs rB _print_DMPzPrettyPrinter._print_DMPl s[ vv!{{166??1#566" {{47##   s5A AAc$|j|SrE)rrs rB _print_DMFzPrettyPrinter._print_DMFu sq!!rCcJ|jt|jSrErNrra)r@objects rB _print_ObjectzPrettyPrinter._print_Objectx s{{=566rCctd}|j|j}|j|j}|j ||d}t |S)Nz-->r)rrNrcodomainrsr)r@morphismrLrrtails rB_print_MorphismzPrettyPrinter._print_Morphism{ sQU X__-;;x001||E8,Q/$rCc|jt|j}|j|}t |j d|dS)Nrr)rNrrarrrs)r@rr6pretty_morphisms rB_print_NamedMorphismz"PrettyPrinter._print_NamedMorphism sFkk- ">? ..x8+++CA!DEErCchddlm}|j||j|jdS)Nr) NamedMorphismid)sympy.categoriesrrrr)r@rrs rB_print_IdentityMorphismz%PrettyPrinter._print_IdentityMorphism s02(( (//8+<+|js|jtjS|j|j}|jr>dt dz}|j|jd}|j ||}t|dS)Nrz==>r)premisesrNrEmptySet conclusionsrrsr)r@diagram pretty_result results_arrowpretty_conclusionss rB_print_DiagramzPrettyPrinter._print_Diagram s;;qzz* * G$4$45   "T%[0M!%W-@-@!A!!D )//13M-*++rCc  ddlm}|t|jDcgc]<}t|jDcgc]}|||fr|||fn t dc}>c}}}|j |Scc}wcc}}w)Nr)Matrixr)rrr%r8rr r)r@gridrr,r8matrixs rB_print_DiagramGridz PrettyPrinter._print_DiagramGrid s)"' "46$)#46)-QT $q!t*s C667**62266sB A;B ;B c(|j|ddSrrBr@rs rB_print_FreeModuleElementz&PrettyPrinter._print_FreeModuleElement sq#s++rCc |jDcgc]+}|Dcgc]}|jj|c}-}}}|j|ddScc}wcc}}wNrfrg)rrZrrY)r@rrrrs rB_print_SubModulezPrettyPrinter._print_SubModule sL=>VVDcS1#1DDtS#..2Ds A"A AAcp|j|j|j|jzSrE)rNrZrr@rs rB_print_FreeModulezPrettyPrinter._print_FreeModule s'{{166"DKK$777rCc|jj}|j|jjDcgc] \}||c}ddScc}wr)rZrrY_moduler)r@rrrs rB_print_ModuleImplementedIdealz+PrettyPrinter._print_ModuleImplementedIdeal s>ffoo!))..A3AAA3LLAsAcp|j|j|j|jz SrE)rNrZ base_idealr@Rs rB_print_QuotientRingz!PrettyPrinter._print_QuotientRing s'{{166"T[[%>>>rCc|j|jj||j|jjzSrE)rNrZrrrs rB_print_QuotientRingElementz(PrettyPrinter._print_QuotientRingElement s6{{166??1-.QVV=N=N1OOOrCc|j|j|j|jjzSrE)rNdatamodule killed_modulers rB_print_QuotientModuleElementz*PrettyPrinter._print_QuotientModuleElement s-{{166"T[[1G1G%HHHrCcp|j|j|j|jz SrE)rNrrrs rB_print_QuotientModulez#PrettyPrinter._print_QuotientModule s'{{166"T[[%AAArCc &|j|j}|jdz|_t |j d|j|j dtddz|j|j}|S)Nrz : z %s> rG) rN _sympy_matrixr8rrrsrrr)r@r>rr^s rB_print_MatrixHomomorphismz'PrettyPrinter._print_MatrixHomomorphism sqQ__./ --/Q.FLL AHH0E d3l "DKK $;=> rCc8|j|jSrErNra)r@manifolds rB_print_ManifoldzPrettyPrinter._print_Manifold s{{8==))rCc8|j|jSrEr)r@patchs rB _print_PatchzPrettyPrinter._print_Patch s{{5::&&rCc8|j|jSrEr)r@coordss rB_print_CoordSystemz PrettyPrinter._print_CoordSystem s{{6;;''rCc|jj|jj}|j t |SrE) _coord_sysr_indexrarNr)r@r^strings rB_print_BaseScalarFieldz$PrettyPrinter._print_BaseScalarField s6!!))%,,7<<{{=011rCctddz|jj|jjz}|j t |S)Nrr)r!rrrrarNr)r@r^r s rB_print_BaseVectorFieldz$PrettyPrinter._print_BaseVectorField sF $ % +e.>.>.F.Fu||.T.Y.Y Y{{=+,,rCc||jr td}nd}|j}t|drM|jj |j j}|j|dzt|zS|j|}t|j}t|j|S)N Differentialrrr) rKr _form_fieldrrrrrarNrrr[r\)r@rrr^rr^s rB_print_Differentialz!PrettyPrinter._print_Differential s   N+AA   5, '%%--ell;@@F;;q3wv)>>? ?KK&E /Euzz!}- -rCc|j|jd}t|jd|jj z}t|j d}|S)Nrz%s(rn)rNrZrr\rrrs)r@rr^s rB _print_TrzPrettyPrinter._print_Tr sR AFF1I&EJJu 0D0D'EFGEKK,- rCc|j|jd}t|j}|jr t|j t d}|St|j d}|S)NrnurNrZrr[rKr\r r]s rB_print_primenuzPrettyPrinter._print_primenu sj AFF1I&ELLN+    =+> ?@E  4 01E rCc|j|jd}t|j}|jr t|j t d}|St|j d}|S)NrOmegar(r]s rB_print_primeomegazPrettyPrinter._print_primeomega sj AFF1I&ELLN+    =+A BCE  7 34E rCc|jjdk(rD|jr|jtd}|S|jt d}|S|j |S)NdegreeDegree)rarKrNrchrrIr]s rB_print_QuantityzPrettyPrinter._print_Quantity s_ 66;;( "   K$9:L CH-L$$Q' 'rCctdt|jzdz}|j|j}|j|j }tt j|||}|S)Nr)rrrrNrrrrrs rB_print_AssignmentBasez#PrettyPrinter._print_AssignmentBase s^ d144j(3. / KK  KK JOOAr156 rCc8|j|jSrErr0s rB _print_StrzPrettyPrinter._print_Str# s{{166""rCrE)F)T)rr)NNrF)FNrmrn)FNrFrmrn)r __module__ __qualname____doc__ printmethod_default_settingsr9rIpropertyrKrPrTrVr_rd_print_RandomSymbolrgrkrwr~rrrrr_print_Infinity_print_NegativeInfinity_print_EmptySet_print_Naturals_print_Naturals0_print_Integers_print_Rationals_print_Complexes_print_EmptySequencerrrrrrrrrrrrrrrrrrrr rr0rErZrKr~rrrrrrrrrrrrrrrrrrrrrrrr&r(r.r0r3rArGrLrTr{rrrrrrrrrrrrrrrrrrrrrrrrrrrr r$r)r+r-r0r3r5r8r;r>rArCrErNrWrZr\r^r`rcrfrhrkrmrorsrvrxr~rrrrrr$rrrrrrrrrrrrrrr rr r#r'r-r1r7r< _print_SeqPer _print_SeqAdd _print_SeqMulrYrjr;rErGrKrMrQrTrWr[r_rbrerhrlrqrurzr}rrrrrrrrrrrr _print_bellrrrrrrrrrrrrrrrrrrrrrrr r rrrrrrr#r%r)r,r2r4r6rMrCrBr(r(sIK!%# ~%(( :  (S8  ("O)!O!O"!O""&7 +"*6 6 6 6 6 + 6 E ++#J&",JIV4l (_B8AF ISS*6 % " )# # # ) Y, H 8) 0 ""&H$'d=L%B@B!F; F ) @6p3 4.`Rh. 4CF!s 6677HLGJ%(#JW  % %4'' <<@6677886886K [* <<<<<<+&'    2 1 (F+P:Az*X.$)$++M7:2<"8 BIB0O:K> K'A+: **&M%M%M#'tt(( ,0' 0#. &'$&&/  :$ $ T T  &"(333#K333? C%$$"7 F E A9 ,3,/8M?PIB*'(2- .(#rCr(c t|}|jd}t|} |j|t|S#t|wxYw)zReturns a string containing the prettified form of expr. For information on keyword arguments see pretty_print function. r/)r(r;rrP)rHrArr/uflags rBrPrP' sK x B,,}-K { +E"zz$5!5!s A Ac .tt|fi|y)aPrints expr in pretty form. pprint is just a shortcut for this function. Parameters ========== expr : expression The expression to print. wrap_line : bool, optional (default=True) Line wrapping enabled/disabled. num_columns : int or None, optional (default=None) Number of columns before line breaking (default to None which reads the terminal width), useful when using SymPy without terminal. use_unicode : bool or None, optional (default=None) Use unicode characters, such as the Greek letter pi instead of the string pi. full_prec : bool or string, optional (default="auto") Use full precision. order : bool or string, optional (default=None) Set to 'none' for long expressions if slow; default is None. use_unicode_sqrt_char : bool, optional (default=True) Use compact single-character square root symbol (when unambiguous). root_notation : bool, optional (default=True) Set to 'False' for printing exponents of the form 1/n in fractional form. By default exponent is printed in root form. mat_symbol_style : string, optional (default="plain") Set to "bold" for printing MatrixSymbols using a bold mathematical symbol face. By default the standard face is used. imaginary_unit : string, optional (default="i") Letter to use for imaginary unit when use_unicode is True. Can be "i" (default) or "j". N)printrP)rHkwargss rB pretty_printrP: sV &  !rCc zddlm}ddlm}d|vrd|d<|t |fi|j |y)aPrints expr using the pager, in pretty form. This invokes a pager command using pydoc. Lines are not wrapped automatically. This routine is meant to be used with a pager that allows sideways scrolling, like ``less -S``. Parameters are the same as for ``pretty_print``. If you wish to wrap lines, pass ``num_columns=None`` to auto-detect the width of the terminal. r)pager)getpreferredencodingr1i N)pydocrRlocalerSrPencode)rHrArRrSs rB pager_printrWj s=+H$"( & " " ) )*>*@ ABrC)?r sympy.corersympy.core.addrsympy.core.containersrsympy.core.functionrsympy.core.mulrsympy.core.numbersrr sympy.core.powerr sympy.core.sortingr sympy.core.symbolr sympy.core.sympifyr sympy.printing.conventionsrsympy.printing.precedencerrrsympy.printing.printerrrsympy.printing.strrsympy.utilities.iterablesrsympy.utilities.exceptionsr sympy.printing.pretty.stringpictrr&sympy.printing.pretty.pretty_symbologyrrrrrrrr r!r"r#r$r%r&rpprint_use_unicodepprint_try_use_unicoder(rPrPpprintrWrMrCrBrms'(/ /$+7TT:#1@Cbbbb (/F,#GF,#RX ""$+"Z CrC