Ë
    7^(hÔ.  ã                   ó¤  — d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+  ed	d
d¬«      \  Z,Z-Z. edd¬«      \  Z/Z0Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd „ ZCd!„ ZDd"„ ZEd#„ ZFd$„ ZGd%„ ZHd&„ ZId'„ ZJy())é    )ÚSÚpiÚooÚsymbolsÚRationalÚIntegerÚGoldenRatioÚ
EulerGammaÚCatalanÚLambdaÚDummyÚEqÚNeÚLeÚLtÚGtÚGeÚMod)	Ú	PiecewiseÚsinÚcosÚAbsÚexpÚceilingÚsqrtÚsignÚfloor)ÚITE)Úraises)Úimplemented_function)ÚIndexedBaseÚIdx)ÚMatrixSymbolÚSparseMatrixÚMatrix©Ú	rust_codezx,y,zFT)ÚintegerÚrealzk,m,n©r(   c                  óh   — t        t        d«      «      dk(  sJ ‚t        t        d«      «      dk(  sJ ‚y )Né*   Ú42iÈÿÿÿz-56)r'   r   © ó    ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/tests/test_rust.pyÚtest_Integerr1      s0   € Ü”W˜R“[Ó! TÒ)Ð)Ð)Ü”W˜S“\Ó" eÒ+Ð+Ñ+r/   c                  óœ  — t        t        t        t        «      «      dk(  sJ ‚t        t	        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚y )Nzx == yzx != yzx <= yzx < yzx > yzx >= y)	r'   r   ÚxÚyr   r   r   r   r   r.   r/   r0   Útest_Relationalr5      s˜   € Ü”Rœœ1“XÓ (Ò*Ð*Ð*Ü”Rœœ1“XÓ (Ò*Ð*Ð*Ü”Rœœ1“XÓ (Ò*Ð*Ð*Ü”Rœœ1“XÓ 'Ò)Ð)Ð)Ü”Rœœ1“XÓ 'Ò)Ð)Ð)Ü”Rœœ1“XÓ (Ò*Ð*Ñ*r/   c                  óX  — t        t        dd«      «      dk(  sJ ‚t        t        dd«      «      dk(  sJ ‚t        t        dd«      «      dk(  sJ ‚t        t        d	d«      «      dk(  sJ ‚t        t        t        dd«      z   «      d
k(  sJ ‚t        t        dd«      t        z  «      dk(  sJ ‚y )Né   é   z	3_f64/7.0é   é	   Ú2iùÿÿÿz
-3_f64/7.0éýÿÿÿzx + 3_f64/7.0z(3_f64/7.0)*x)r'   r   r3   r.   r/   r0   Útest_Rationalr=       s£   € Ü”X˜a “^Ó$¨Ò3Ð3Ð3Ü”X˜b !“_Ó%¨Ò,Ð,Ð,Ü”X˜a “_Ó%¨Ò5Ð5Ð5Ü”X˜b "Ó%Ó&¨+Ò5Ð5Ð5Ü”Qœ ! Q›Ñ'Ó(¨OÒ;Ð;Ð;Ü”X˜a “^¤AÑ%Ó&¨/Ò9Ð9Ñ9r/   c                  ó˜  — t        t        t        z   «      dk(  sJ ‚t        t        t        z
  «      dk(  sJ ‚t        t        t        z  «      dk(  sJ ‚t        t        t        z  «      dk(  sJ ‚t        t         «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚t        t        dz   «      dk(  sJ ‚t        t        t        z   «      d	k(  sJ ‚y )
Nzx + yzx - yzx*yzx*y.recip()z-xé   z2.0*xzy + 2.0zn as f64 + x)r'   r3   r4   Únr.   r/   r0   Útest_basic_opsrA   )   s·   € Ü”Qœ‘UÓ˜wÒ&Ð&Ð&Ü”Qœ‘UÓ˜wÒ&Ð&Ð&Ü”Qœ‘UÓ˜uÒ$Ð$Ð$Ü”Qœ‘UÓ˜}Ò,Ð,Ð,Ü”a�R‹=˜DÒ Ð Ð Ü�Qœ‘UÓ˜wÒ&Ð&Ð&Ü”Q˜‘UÓ˜yÒ(Ð(Ð(Ü”Qœ‘UÓ˜~Ò-Ð-Ñ-r/   c                  ó–   —  G d„ dt         «      } t         | t        «      «      dk(  sJ ‚t        ddd«      }t        |d   «      dk(  sJ ‚y )	Nc                   ó   — e Zd Zd„ Zy)útest_printmethod.<locals>.fabsc                 óD   — d|j                  | j                  d   «      z  S )Nz	%s.fabs()r   )Ú_printÚargs)ÚselfÚprinters     r0   Ú
_rust_codez)test_printmethod.<locals>.fabs._rust_code5   s   € Ø §¡°·	±	¸!±Ó!=Ñ=Ð=r/   N)Ú__name__Ú
__module__Ú__qualname__rJ   r.   r/   r0   ÚfabsrD   4   s   „ ó	>r/   rN   zx.fabs()Úaé   r7   )r   r   za[0])r   r'   r3   r#   )rN   rO   s     r0   Útest_printmethodrQ   3   sL   € ô>Œsô >ô ‘Tœ!“WÓ Ò+Ð+Ð+Ü�S˜!˜QÓ€AÜ�Q�s‘VÓ Ò&Ð&Ñ&r/   c                  óH  — t        t        t        «      t        t        «      z  «      dk(  sJ ‚t        t	        t        «      «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚t        t        t        d«      «      dk(  sJ ‚y )Nzx.sin().powf(x.cos())zx.abs()úx.ceil()z	x.floor()r7   zx - 3.0*((1_f64/3.0)*x).floor())r'   r   r3   r   Úabsr   r   r   r.   r/   r0   Útest_FunctionsrU   <   s„   € Ü”Sœ“Vœs¤1›vÑ%Ó&Ð*AÒAÐAÐAÜ”Sœ“VÓ 	Ò)Ð)Ð)Ü”WœQ“ZÓ  JÒ.Ð.Ð.Ü”Uœ1“XÓ +Ò-Ð-Ð-ô ”Sœ˜A“YÓÐ#DÒDÐDÑDr/   c                  ój  — t        dt        z  «      dk(  sJ ‚t        t        dz  «      t        t        dz  «      cxk(  rdk(  sJ ‚ J ‚t        t        t        «      «      dk(  sJ ‚t        t        t        j                  z  «      t        t        dz  «      cxk(  rdk(  sJ ‚ J ‚t        dt        t        «      z  «      dk(  sJ ‚t        t        t        j                   z  «      t        t        dz  «      cxk(  rdk(  sJ ‚ J ‚t        dt
        z  «      d	k(  sJ ‚t        t
        dz  «      t        t
        dz  «      cxk(  rd	k(  sJ ‚ J ‚t        t
        dz  «      d
k(  sJ ‚t        t        t        dd«      z  «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚t        t        dz  «      dk(  sJ ‚t        t        t        dz  z  «      dk(  sJ ‚t        t        t        dd«      z  «      dk(  sJ ‚t        dt        t        dt        z  «      «      } t        d | t        «      dz  t        t        t        z  z
  z  z  t        dz  t        z   z  «      dk(  sJ ‚d„ ddfd„ ddfg}t        t        dz  d|i¬«      dk(  sJ ‚t        t        dz  d|i¬«      dk(  sJ ‚y )NrP   z	x.recip()éÿÿÿÿg      ð¿zx.sqrt()g      à?zx.sqrt().recip()g      à¿z
PI.recip()zPI.sqrt().recip()r7   zx.cbrt()r?   zx.exp2()zx.exp()z	x.powi(3)zx.powf(y.powi(3))zx.powf(2_f64/3.0)Úgg      @z0(3.5*2.0*x).powf(-x + y.powf(x))/(x.powi(2) + y)c                 ó   — |j                   S ©N©Ú
is_integer©Úbaser   s     r0   ú<lambda>ztest_Pow.<locals>.<lambda>]   s
   €  c§n¡n€ r/   Údpowic                 ó   — |j                    S rZ   r[   r]   s     r0   r_   ztest_Pow.<locals>.<lambda>^   s   € ¨#¯.©.Ð&8€ r/   ÚpowÚPow©Úuser_functionsz
x.dpowi(3)gš™™™™™	@z
x.pow(3.2))r'   r3   r   r   ÚHalfr   r   r   r4   r    r   )rX   Ú_cond_cfuncs     r0   Útest_Powrh   F   s{  € Ü�Q”q‘S‹>˜[Ò(Ð(Ð(Ü”Q˜‘UÓœy¬¨D©Ó1Ô@°[Ò@Ð@Ñ@Ð@Ð@Ü”Tœ!“WÓ Ò+Ð+Ð+Ü”QœŸ™‘YÓ¤9¬Q°©VÓ#4ÔB¸
ÒBÐBÑBÐBÐBä�Q”tœA“w‘YÓÐ#5Ò5Ð5Ð5Ü”QœŸ™˜‘ZÓ ¤I¬a°©gÓ$6ÔLÐ:LÒLÐLÑLÐLÐLä�Q”r‘T‹?˜lÒ*Ð*Ð*Ü”R˜‘VÓ¤	¬"¨d©(Ó 3ÔC°|ÒCÐCÑCÐCÐCÜ”R˜‘XÓÐ"5Ò5Ð5Ð5ä”Qœ  A›Ñ&Ó'¨:Ò5Ð5Ð5Ü�Qœ‘T‹?˜jÒ(Ð(Ð(Ü”Sœ“VÓ 	Ò)Ð)Ð)Ü”Q˜‘T‹?˜kÒ)Ð)Ð)Ü”Qœ˜A™‘YÓÐ#6Ò6Ð6Ð6Ü”Qœ  A›Ñ&Ó'Ð+>Ò>Ð>Ð>ä˜S¤&¬¨A¬a©C£.Ó1€AÜ�Q™œ!›˜S™¤A¬¬1©¡HÑ-Ñ-¬q°!©t´a©xÑ8Ó9Ø:ò;ð ;ð ;á4°g¸qÐAÙ8¸%ÀÐCðE€Kä”Q˜‘T¨5°+Ð*>Ô?À<ÒOÐOÐOÜ”Q˜‘V¨U°KÐ,@ÔAÀ\ÒQÐQÑQr/   c                  ó   — t        t        «      dk(  sJ ‚t        t        «      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        t         «      dk(  sJ ‚t        t        j
                  «      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        t        d«      «      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚y )NÚPIÚINFINITYÚNEG_INFINITYÚNANrP   ÚE)	r'   r   r   r   ÚInfinityÚNegativeInfinityÚNaNr   ÚExp1r.   r/   r0   Útest_constantsrs   c   s¯   € Ü”R‹=˜DÒ Ð Ð Ü”R‹=˜JÒ&Ð&Ð&Ü”Q—Z‘ZÓ  JÒ.Ð.Ð.Ü”b�S‹>˜^Ò+Ð+Ð+Ü”Q×'Ñ'Ó(¨NÒ:Ð:Ð:Ü”Q—U‘UÓ˜uÒ$Ð$Ð$Ü”S˜“VÓ Ò#Ð#Ð#Ü”Q—V‘VÓ Ò#Ð#Ñ#r/   c                  ó  — t        dt        z  «      dt        j                  d«      z  k(  sJ ‚t        dt        z  «      dt        j                  d«      z  k(  sJ ‚t        dt        z  «      dt	        j                  d«      z  k(  sJ ‚y )Nr?   z,const GoldenRatio: f64 = %s;
2.0*GoldenRatioé   z$const Catalan: f64 = %s;
2.0*Catalanz*const EulerGamma: f64 = %s;
2.0*EulerGamma)r'   r	   Úevalfr   r
   r.   r/   r0   Útest_constants_otherrw   n   s‰   € Ü�Q”{‘]Ó#Ð'VÔYd×YjÑYjÐkmÓYnÑ'nÒnÐnÐnÜØŒg‰IóØAÄGÇMÁMÐRTÓDUÑUòVð Vð Vä�Q”z‘\Ó"Ð&SÔV`×VfÑVfÐgiÓVjÑ&jÒjÐjÑjr/   c                  ób  — t        d«      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        d«      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        t        t
        z  «      dk(  sJ ‚t        t        t
        z  «      dk(  sJ ‚t        t         «      dk(  sJ ‚t        t        t
        z  t        z  «      dk(  sJ ‚t        t        t
        z  t        z  «      d	k(  sJ ‚t        t        t
        z  t        z  «      d
k(  sJ ‚t        t        t
        z  t        z  «      dk(  sJ ‚y )NTÚtrueFÚfalsezk && mzk || mz!kzk && m && nzk || m || nzn || k && mzn && (k || m))r'   r   ry   rz   ÚkÚmr@   r.   r/   r0   Útest_booleanr}   u   s  € Ü�T‹?˜fÒ$Ð$Ð$Ü”Q—V‘VÓ Ò&Ð&Ð&Ü�UÓ˜wÒ&Ð&Ð&Ü”Q—W‘WÓ Ò(Ð(Ð(Ü”Qœ‘UÓ˜xÒ'Ð'Ð'Ü”Qœ‘UÓ˜xÒ'Ð'Ð'Ü”a�R‹=˜DÒ Ð Ð Ü”Qœ‘UœQ‘YÓ =Ò0Ð0Ð0Ü”Qœ‘UœQ‘YÓ =Ò0Ð0Ð0Ü”aœ!‘eœq‘[Ó! ]Ò2Ð2Ð2Ü”aœ!‘eœq‘[Ó! _Ò4Ð4Ñ4r/   c                  óT  ‡ — t        t        t        dk  ft        dz   df«      Š t        ‰ «      dk(  sJ ‚t        ‰ d¬«      dk(  sJ ‚t        ‰ dd¬«      d	k(  sJ ‚t        t        t        dk  ft        dz   t        d
k  ft        dz   df«      Š t        ‰ d¬«      dk(  sJ ‚t        ‰ dd¬«      dk(  sJ ‚t        ‰ d¬«      dk(  sJ ‚dt        t        t        dk  ft        dz   t        d
k  ft        dz   df«      z  Š t        ‰ d¬«      dk(  sJ ‚dt        t        t        dk  ft        dz   t        d
k  ft        dz   df«      z  dz
  Š t        ‰ d¬«      dk(  sJ ‚t        t        t        dk  ft        dz  t        dkD  ft        t        «      t        dkD  f«      Š t	        t
        ˆ fd„«       y )NrP   r?   Tz+if (x < 1.0) {
    x
} else {
    x + 2.0
}Úr©Ú	assign_toz0r = if (x < 1.0) {
    x
} else {
    x + 2.0
};)r�   Úinlinez(r = if (x < 1.0) { x } else { x + 2.0 };é   )r‚   zAif (x < 1.0) { x } else if (x < 5.0) { x + 1.0 } else { x + 2.0 }zFr = if (x < 1.0) { x } else if (x < 5.0) { x + 1.0 } else { x + 2.0 };zRr = if (x < 1.0) {
    x
} else if (x < 5.0) {
    x + 1.0
} else {
    x + 2.0
};zE2.0*if (x < 1.0) { x } else if (x < 5.0) { x + 1.0 } else { x + 2.0 }r,   zL2.0*if (x < 1.0) { x } else if (x < 5.0) { x + 1.0 } else { x + 2.0 } - 42.0r   c                  ó   •— t        ‰ «      S rZ   r&   ©Úexprs   €r0   r_   z test_Piecewise.<locals>.<lambda>¨   s   ø€ œy¨›€ r/   )r   r3   r'   r   r   Ú
ValueErrorr…   s   @r0   Útest_Piecewiserˆ   ƒ   sà  ø€ Ü”aœ˜Q™�Z¤! a¡%¨ Ó/€DÜ�T‹?ðòð ð ô �T SÔ)ð	òð ð ô �T S°Ô6Ø2ò4ð 4ð 4ä”aœ˜Q™�Z¤! a¡%¬¨Q© ´!°a±%¸°Ó?€DÜ�T $Ô'ØKòMð Mð Mä�T S°Ô6ØPòRð Rð Rä�T SÔ)ð	òð ð ð ŒYœœ1˜q™5�z¤A¨¡E¬1¨q©5 >´A¸±E¸4°=ÓAÑA€DÜ�T $Ô'ØOòQð Qð QàŒYœœ1˜q™5�z¤A¨¡E¬1¨q©5 >´A¸±E¸4°=ÓAÑAÀBÑF€DÜ�T $Ô'ØVòXð Xð Xô ”aœ˜Q™�Z¤! Q¡$¬¨A© ´´Q³¼¸Q¹°Ó@€DÜ
Œ:Ó.Õ/r/   c                  óz   — t         t        z   t        t        «      z   t        z   } t	        | t        g¬«      dk(  sJ ‚y )N©Údereferencezx + y + (*z) + (*z).sin())r3   r4   r   Úzr'   r…   s    r0   Útest_dereference_printingr�   «   s0   € ÜŒq‰5”3”q“6‰>œAÑ€DÜ�T¬ sÔ+Ð/JÒJÐJÑJr/   c                  ó:  — t        t        «      t        z  } t        | «      dk(  sJ ‚t        | d¬«      dk(  sJ ‚t        t        t        z   «      dz   } t        | «      dk(  sJ ‚t        | d¬«      dk(  sJ ‚t        t	        t        «      «      } t        | «      dk(  sJ ‚y )	Nz6y*(if (x == 0.0) { 0.0 } else { (x).signum() }) as f64r   r€   z;r = y*(if (x == 0.0) { 0.0 } else { (x).signum() }) as f64;r,   z:(if (x + y == 0.0) { 0.0 } else { (x + y).signum() }) + 42z?r = (if (x + y == 0.0) { 0.0 } else { (x + y).signum() }) + 42;z9(if (x.cos() == 0.0) { 0.0 } else { (x.cos()).signum() }))r   r3   r4   r'   r   r…   s    r0   Ú	test_signr�   °   s“   € Ü”‹7”Q‰;€DÜ�T‹?ÐVÒVÐVÐVÜ�T SÔ)Ð-jÒjÐjÐjä””A‘‹;˜Ñ€DÜ�T‹?ÐZÒZÐZÐZÜ�T SÔ)Ð-nÒnÐnÐnä””A“‹<€DÜ�T‹?ÐYÒYÐYÑYr/   c                  ó  — t        d«      \  } }t        |«      }t        |«      dk(  sJ ‚t        ||g¬«      dk(  sJ ‚t        |d¬«      dk(  sJ ‚t        t        «      5  t        |d¬	«       d d d «       y # 1 sw Y   y xY w)
Nzx ifz	if_.sin()rŠ   z(*if_).sin()Ú_unreserved)Úreserved_word_suffixzif_unreserved.sin()T)Úerror_on_reserved)r   r   r'   r   r‡   )r3   r4   r†   s      r0   Útest_reserved_wordsr”   ½   s~   € ä�6‹?�D€A€qäˆq‹6€DÜ�T‹?˜kÒ)Ð)Ð)Ü�T¨ sÔ+¨~Ò=Ð=Ð=Ü�T°Ô>ÐBWÒWÐWÐWä	”
Ó	ñ 0Ü�$¨$Õ/÷0÷ 0ñ 0ús   ÁA5Á5A>c                  ó\   — t        t        dk  t        t        «      } t	        | «      dk(  sJ ‚y )NrP   z#if (k < 1) {
    m
} else {
    n
})r   r{   r|   r@   r'   )Úekprs    r0   Útest_ITEr—   Ê   s/   € ÜŒq�1‰u”aœÓ€DÜ�T‹?ðòð ñ r/   c                  ó,  — t        dd¬«      \  } }}t        d| «      t        d|«      t        d|«      }}}t        d«      |   }t        |«      dk(  sJ ‚t        d	«      ||f   }t        |«      d
k(  sJ ‚t        d«      |||f   }t        |«      dk(  sJ ‚y )Nzn m oTr*   ÚiÚjr{   r3   zx[j]ÚAz
A[m*i + j]ÚBzB[m*o*i + o*j + k])r   r"   r!   r'   )	r@   r|   Úor™   rš   r{   r3   r›   rœ   s	            r0   Útest_Indexedrž   Ô   s¡   € Ü�g tÔ,�G€A€qˆ!Ü�#�q‹kœ3˜s A›;¬¨C°«ˆ!€q€Aä�CÓ˜Ñ€AÜ�Q‹<˜6Ò!Ð!Ð!ä�CÓ˜˜A˜Ñ€AÜ�Q‹<˜<Ò'Ð'Ð'ä�CÓ˜˜A˜q˜Ñ!€AÜ�Q‹<Ð/Ò/Ð/Ñ/r/   c                  ó¢   — t        ddt        ¬«      \  } }t        d«      }t        d«      }t        | |«      } t	        ||    ||    ¬«      dk(  sJ ‚y )Nzi mT)r(   Úclsr3   r4   r€   z"for i in 0..m {
    y[i] = x[i];
})r   r   r!   r"   r'   )r™   r|   r3   r4   s       r0   Útest_dummy_loopsr¡   â   sY   € Ü�5 $¬EÔ2�D€A€qÜ�CÓ€AÜ�CÓ€AÜˆAˆq‹	€Aä�Q�q‘T Q q¡TÔ*ð	òð ñ r/   c                  óD  — t        dd¬«      \  } }t        d«      }t        d«      }t        d«      }t        d«      }t        d| «      }t        d	|«      }t        |||f   ||   z  ||   ¬
«      dk(  sJ ‚t        |||f   ||   z  ||   z   ||   z   ||   ¬
«      dk(  sJ ‚y )Nzm nTr*   r›   r3   r4   rŒ   r™   rš   r€   zrfor i in 0..m {
    y[i] = 0;
}
for i in 0..m {
    for j in 0..n {
        y[i] = A[n*i + j]*x[j] + y[i];
    }
}z|for i in 0..m {
    y[i] = x[i] + z[i];
}
for i in 0..m {
    for j in 0..n {
        y[i] = A[n*i + j]*x[j] + y[i];
    }
}©r   r!   r"   r'   )r|   r@   r›   r3   r4   rŒ   r™   rš   s           r0   Ú
test_loopsr¤   î   sÈ   € Ü�5 $Ô'�D€A€qÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€Aä�Q�q˜!�t‘W˜Q˜q™T‘\¨Q¨q©TÔ2ð	òð ð ô �Q�q˜!�t‘W˜Q˜q™T‘\ A a¡DÑ(¨1¨Q©4Ñ/¸1¸Q¹4Ô@ð	òð ñ r/   c                  ó|  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d|«      }t        d| «      }t        d	|«      }	t        d
|«      }
t        |||	|
f   ||||	|
f   z  ||   ¬«      d|| z  |z  |z  ||z  |z  z   |	|z  z   |
z   ›d||z  |z  |	|z  z   |
z   ›d�dz   k(  sJ ‚y )Nzn m o pTr*   rO   Úbr4   r™   rš   r{   Úlr€   z‘for i in 0..m {
    y[i] = 0;
}
for i in 0..m {
    for j in 0..n {
        for k in 0..o {
            for l in 0..p {
                y[i] = a[z]*b[ú
] + y[i];
ú            }
        }
    }
}r£   )r@   r|   r�   ÚprO   r¦   r4   r™   rš   r{   r§   s              r0   Ú test_loops_multiple_contractionsr«     sõ   € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Aä�Q�q˜!˜Q�w‘Z  ! Q¨¨1 *¡Ñ-¸¸1¹Õ>ð ;<¸A¹#¸a¹%À¹'ÀAÀaÁCÈÁE¹/ÈAÈaÉCÑ:OÐRSÓ:SÐUVÐWXÑUXÐYZÑUZÐ]^Ð_`Ñ]`ÑU`ÐcdÓUdð	fð	ñ	òð ñ r/   c            	      óæ  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d«      }t        d| «      }t        d	|«      }	t        d
|«      }
t        d|«      }t        |||	|
|f   |||	|
|f   z   ||	|
|f   z  ||   ¬«      }|d||z  |z  |z  |	|z  |z  z   |
|z  z   |z   ›d||z  |z  |z  |	|z  |z  z   |
|z  z   |z   ›d|	|z  |z  |
|z  z   |z   ›d�dz   k(  sJ ‚y )Nzm n o pTr*   rO   r¦   Úcr4   r™   rš   r{   r§   r€   z’for i in 0..m {
    y[i] = 0;
}
for i in 0..m {
    for j in 0..n {
        for k in 0..o {
            for l in 0..p {
                y[i] = (a[z] + b[z])*c[r¨   r©   r£   )r|   r@   r�   rª   rO   r¦   r­   r4   r™   rš   r{   r§   Úcodes                r0   Útest_loops_addfactorr¯   %  sm  € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Aä�a˜˜1˜a ˜
‘m a¨¨1¨a°¨
¡mÑ3°Q°q¸!¸Q°w±ZÑ?È1ÈQÉ4ÔP€DÙð EFÀaÁCÈÁEÈ!ÁGÈaÐPQÉcÐRSÉeÁOÐVWÐXYÑVYÑDYÐ\]ÓD]Ð_`ÐabÑ_bÐcdÑ_dÐefÑ_fÐijÐklÑilÐmnÑinÑ_nÐqrÐstÑqtÑ_tÐwxÓ_xÐz{Ð|}Ñz}Ð~Ñzð  CDð  EFñ  CFñ  {Fð  IJó  {Jð	Kð	ñ	òð ñ r/   c                  ó&   — t        t        d„ «       y )Nc                  ó6   — t        t        t        «      d¬«      S )NÚgarbage)Úmethod)r'   r   r3   r.   r/   r0   r_   ztest_settings.<locals>.<lambda>A  s   € œi¬¬A«°yÔA€ r/   )r   Ú	TypeErrorr.   r/   r0   Útest_settingsrµ   @  s   € Ü
Œ9ÑAÕBr/   c            	      óÔ  — t        d«      } t        dt        | d| z  «      «      }t         || «      «      dk(  sJ ‚t        dt        | d| z  t        z  «      «      }t         || «      «      dt	        j
                  d«      z  k(  sJ ‚t        d«      }t        dt        d	d
¬«      «      }t        dt        | | d| z   z  d| z   z  «      «      }t         |||   «      ||   ¬«      dk(  sJ ‚y )Nr3   rX   r?   z2*xz&const Catalan: f64 = %s;
2.0*x/Catalanru   r›   r™   r@   Tr*   rP   r€   z8for i in 0..n {
    A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
})r   r    r   r'   r   rv   r!   r"   )r3   rX   r›   r™   s       r0   Útest_inline_functionr·   D  sí   € Ü�‹€AÜ˜S¤&¨¨A¨a©C£.Ó1€AÜ‘Q�q“T‹?˜eÒ#Ð#Ð#ä˜S¤&¨¨A¨a©C´©KÓ"8Ó9€AÜ‘Q�q“T‹?Ø1´G·M±MÀ"Ó4EÑEòGð Gð Gô 	�CÓ€AÜˆC”˜ dÔ+Ó,€AÜ˜S¤&¨¨A¨q°1©u©I°q¸1±uÑ,=Ó">Ó?€AÜ‘Q�q˜‘t“W¨¨!©Ô-ð	òð ñ r/   c                  óø   — t        dd¬«      } t        dd¬«      }dd„ dd	fd
„ dd	fgdœ}t        t        | «      |¬«      dk(  sJ ‚t        t        | «      |¬«      dk(  sJ ‚t        t        |«      |¬«      dk(  sJ ‚y )Nr3   Fr*   r@   TÚceilc                 ó   — | j                    S rZ   r[   ©r3   s    r0   r_   z%test_user_functions.<locals>.<lambda>[  s   € ˜qŸ|™|Ð+€ r/   rN   é   c                 ó   — | j                   S rZ   r[   r»   s    r0   r_   z%test_user_functions.<locals>.<lambda>[  s
   € ÀAÇLÁL€ r/   rT   )r   r   rd   rS   zfabs(x)zabs(n))r   r'   r   r   )r3   r@   Úcustom_functionss      r0   Útest_user_functionsr¿   V  sŽ   € Ü�˜UÔ#€AÜ�˜TÔ"€AàÙ+¨V°QÐ7Ñ:PÐRWÐYZÐ9[Ð\ñÐô ”W˜Q“ZÐ0@ÔAÀZÒOÐOÐOÜ”S˜“VÐ,<Ô=ÀÒJÐJÐJÜ”S˜“VÐ,<Ô=ÀÒIÐIÑIr/   c                  ó°   — t        t        g d¢«      «      dk(  sJ ‚t        t        «      5  t        t        g d¢g«      «       d d d «       y # 1 sw Y   y xY w)N©rP   r?   r7   z	[1, 2, 3])r'   r%   r   r‡   r.   r/   r0   Útest_matrixrÂ   b  sF   € Ü”VšIÓ&Ó'¨;Ò6Ð6Ð6Ü	”
Ó	ñ 'Ü”&š)˜Ó%Ô&÷'÷ 'ñ 'ús   «AÁAc                  óz   — t        t        «      5  t        t        g d¢g«      «       d d d «       y # 1 sw Y   y xY w)NrÁ   )r   ÚNotImplementedErrorr'   r$   r.   r/   r0   Útest_sparse_matrixrÅ   h  s/   € ä	Ô#Ó	$ñ -Ü”,¢	˜{Ó+Ô,÷-÷ -ñ -ús   �1±:N)KÚ
sympy.corer   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Úsympy.functionsr   r   r   r   r   r   r   r   r   Úsympy.logicr   Úsympy.testing.pytestr   Úsympy.utilities.lambdifyr    Úsympy.tensorr!   r"   Úsympy.matricesr#   r$   r%   Úsympy.printing.codeprinterr'   r3   r4   rŒ   r{   r|   r@   r1   r5   r=   rA   rQ   rU   rh   rs   rw   r}   rˆ   r�   r�   r”   r—   rž   r¡   r¤   r«   r¯   rµ   r·   r¿   rÂ   rÅ   r.   r/   r0   ú<module>rÎ      sí   ð÷5÷ 5÷ 5÷ 5÷ 5÷*÷ *õ *å Ý 'Ý 9ß )ß =Ñ =å 0á
�' 5¨tÔ
4�€€1€aÙ
�' 4Ô
(�€€1€aò,ò
+ò:ò.ò'òEòRò:$òkò5ò%0òPKò

Zò
0òò0ò	òò<ò2ò6Còò$	Jò'ó-r/   