Ë
    7^(hÕ5  ã                   óò  — 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 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 d dlmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d d	l.m/Z/ d d
l0m1Z1m2Z2 d dl3m4Z4m5Z5 d dl,m6Z6  ed«      \  Z7Z8Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd„ ZEd„ ZFd„ ZGd„ ZHd„ ZId„ ZJd„ ZKd „ ZLd!„ ZMd"„ ZNd#„ ZOd$„ ZPd%„ ZQd&„ ZRd'„ ZSd(„ ZTd)„ ZUd*„ ZVd+„ ZWd,„ ZXd-„ ZYd.„ ZZy/)0é    )ÚSÚpiÚooÚSymbolÚsymbolsÚRationalÚIntegerÚGoldenRatioÚ
EulerGammaÚCatalanÚLambdaÚDummy)Ú	PiecewiseÚsinÚcosÚAbsÚexpÚceilingÚsqrtÚgammaÚsignÚMaxÚMinÚ	factorialÚbeta)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚRange)ÚITE)ÚForÚ
aug_assignÚ
Assignment)Úraises)ÚRCodePrinter)Úimplemented_function)ÚIndexedBaseÚIdx)ÚMatrixÚMatrixSymbol)Úrcodezx,y,zc                  óV   —  G d„ dt         «      } t         | t        «      «      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abs(%s)r   )Ú_printÚargs)ÚselfÚprinters     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/tests/test_rcode.pyÚ_rcodez%test_printmethod.<locals>.fabs._rcode   s   € Ø˜wŸ~™~¨d¯i©i¸©lÓ;Ñ;Ð;ó    N)Ú__name__Ú
__module__Ú__qualname__r8   © r9   r7   Úfabsr1      s   „ ó	<r9   r>   úabs(x))r   r.   Úx)r>   s    r7   Útest_printmethodrA      s&   € ô<Œsô <ô ‘”a“‹>˜XÒ%Ð%Ñ%r9   c                  ó¦   — t        t        t        «      «      dk(  sJ ‚t        t        dz  «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚y )Nzsqrt(x)ç      à?)r.   r   r@   r=   r9   r7   Útest_rcode_sqrtrD      sD   € Ü””a“‹>˜YÒ&Ð&Ð&Ü”�C‘‹=˜IÒ%Ð%Ð%Ü””a“‹>˜YÒ&Ð&Ñ&r9   c                  ó,  — t        t        dz  «      dk(  sJ ‚t        t        t        dz  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 ‚t        t        d	z  «      d
k(  sJ ‚t        t        t        dd«      z  «      dk(  sJ ‚d„ df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 )Né   zx^3zx^(y^3)Úgé   é   g      @z(3.5*2*x)^(-x + y^x)/(x^2 + y)g      ð¿z1.0/xzx^(2.0/3.0)c                 ó   — |j                   S ©N©Ú
is_integer©Úbaser   s     r7   ú<lambda>z test_rcode_Pow.<locals>.<lambda>*   s
   €  c§n¡n€ r9   Údpowic                 ó   — |j                    S rK   rL   rN   s     r7   rP   z test_rcode_Pow.<locals>.<lambda>+   s   € ¨#¯.©.Ð&8€ r9   ÚpowÚPow©Úuser_functionszdpowi(x, 3)gš™™™™™	@zpow(x, 3.2))r.   r@   Úyr)   r   r   )rG   Ú_cond_cfuncs     r7   Útest_rcode_PowrY   "   s  € Ü”�A‘‹;˜%ÒÐÐÜ””Q˜‘T‘Ó˜yÒ(Ð(Ð(Ü˜S¤&¬¨A¬a©C£.Ó1€AÜ�‘A”a“D˜‘H¤¤A¤q¡D¡Ñ)Ñ)¬1¨a©4´!©8Ñ4Ó5Ø(ò)ð )ð )ä”�D‘‹>˜WÒ$Ð$Ð$Ü””H˜Q “NÑ"Ó# }Ò4Ð4Ð4Ù4°gÐ>Ù8¸%Ð@ðB€Kä”�A‘ u¨kÐ&:Ô;¸}ÒLÐLÐLÜ”�C‘¨°Ð(<Ô=ÀÒNÐNÑNr9   c                  ó`   — t        t        t        t        t        z  «      dddœ¬«      dk(  sJ ‚y )NÚmy_maxÚmy_pow)r   rT   rU   zmy_max(x, my_pow(x, 2)))r.   r   r@   r=   r9   r7   Útest_rcode_Maxr]   0   s'   € ä””Q”qœ‘s“°(À(Ñ+KÔLÐPiÒiÐiÑir9   c                  ó°   — t        t        d«      «      dk(  sJ ‚t        t        «      dk(  sJ ‚t        t        «      dk(  sJ ‚t        t         «      dk(  sJ ‚y )NrI   zexp(1)r   ÚInfz-Inf)r.   r   r   r   r=   r9   r7   Útest_rcode_constants_mathhr`   5   sP   € Ü”�Q“‹=˜HÒ$Ð$Ð$Ü”‹9˜ÒÐÐÜ”‹9˜ÒÐÐÜ”"�‹:˜ÒÐÑr9   c                  óŽ   — t        dt        z  «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚t        dt        z  «      dk(  sJ ‚y )NrH   z-GoldenRatio = 1.61803398874989;
2*GoldenRatioz&Catalan = 0.915965594177219;
2*Catalanz,EulerGamma = 0.577215664901533;
2*EulerGamma)r.   r
   r   r   r=   r9   r7   Útest_rcode_constants_otherrb   <   sV   € Ü�”;‘ÓÐ#SÒSÐSÐSÜØ	Œ'‰	óØ?ò@ð @ð @ä�”:‘ÓÐ"QÒQÐQÑQr9   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 )NrF   é   z3.0/7.0é   é	   Ú2iùÿÿÿz-3.0/7.0éýÿÿÿzx + 3.0/7.0z(3.0/7.0)*x)r.   r   r@   r=   r9   r7   Útest_rcode_Rationalri   C   s£   € Ü”˜!˜Q“Ó  IÒ-Ð-Ð-Ü”˜"˜a“Ó! SÒ(Ð(Ð(Ü”˜!˜R“Ó! ZÒ/Ð/Ð/Ü”˜"˜bÓ!Ó" iÒ/Ð/Ð/Ü””X˜a “^Ñ#Ó$¨Ò5Ð5Ð5Ü”˜!˜Q“¤Ñ!Ó" mÒ3Ð3Ñ3r9   c                  óh   — t        t        d«      «      dk(  sJ ‚t        t        d«      «      dk(  sJ ‚y )NéC   Ú67éÿÿÿÿz-1)r.   r	   r=   r9   r7   Útest_rcode_Integerrn   L   s0   € Ü”˜“Ó Ò%Ð%Ð%Ü”˜“Ó Ò%Ð%Ñ%r9   c            	      ó4  — t        t        t        «      t        t        «      z  «      dk(  sJ ‚t        t	        t        «      t        t        «      z   «      dk(  sJ ‚t        t        t        t        t        «      t        t        t        «      «      «      dk(  sJ ‚y )Nzsin(x)^cos(x)zfactorial(x) + gamma(y)zbeta(min(x, y), max(x, y)))
r.   r   r@   r   r   r   rW   r   r   r   r=   r9   r7   Útest_rcode_functionsrp   Q   sj   € Ü””Q“œ3œq›6Ñ!Ó" oÒ5Ð5Ð5Ü”œ1“¤¤a£Ñ(Ó)Ð-FÒFÐFÐFÜ””cœ!œQ“i¤¤Q¬£Ó+Ó,Ð0LÒLÐLÑLr9   c            	      óÚ  — t        d«      } t        dt        | d| z  «      «      }t         || «      «      dk(  sJ ‚t        dt        | d| z  t        z  «      «      }t         || «      «      dt	        j
                  «       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 )Nr@   rG   rH   z2*xzCatalan = %s;
2*x/CatalanÚAÚiÚnT©ÚintegerrI   ©Ú	assign_toz7for (i in 1:n){
   A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
})r   r)   r   r.   r   rt   r*   r+   )r@   rG   rr   rs   ÚresÚrefs         r7   Útest_rcode_inline_functionr{   W   sï   € Ü�‹€AÜ˜S¤&¨¨A¨a©C£.Ó1€AÜ‘�1“‹;˜%ÒÐÐÜ˜S¤&¨¨A¨a©C´©KÓ"8Ó9€AÜÙ	ˆ!‹óØ-´·	±	³Ñ;ò<ð <ð <ä�CÓ€AÜˆC”˜ dÔ+Ó,€AÜ˜S¤&¨¨A¨q°1©u©I°q¸1±uÑ,=Ó">Ó?€AÜ‰a��!‘‹g  1¡Ô&€Cð	ð ð
 �#Š:Ð‰:r9   c                  ó²   — t        t        t        «      «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚t        t	        t        «      «      dk(  sJ ‚y )Nz
ceiling(x)r?   zgamma(x))r.   r   r@   r   r   r=   r9   r7   Útest_rcode_exceptionsr}   j   sE   € Ü”œ“Ó Ò,Ð,Ð,Ü””Q“‹=˜HÒ$Ð$Ð$Ü””q“‹?˜jÒ(Ð(Ñ(r9   c                  óô   — t        dd¬«      } t        dd¬«      }dd„ dfd	„ d
fgdœ}t        t        | «      |¬«      dk(  sJ ‚t        t        | «      |¬«      dk(  sJ ‚t        t        |«      |¬«      dk(  sJ ‚y )Nr@   Fru   rt   TÚmyceilc                 ó   — | j                    S rK   rL   ©r@   s    r7   rP   z+test_rcode_user_functions.<locals>.<lambda>u   s   € ˜qŸ|™|Ð+€ r9   r>   c                 ó   — | j                   S rK   rL   r�   s    r7   rP   z+test_rcode_user_functions.<locals>.<lambda>u   s
   € ÀÇÁ€ r9   Úabs)r   r   rU   z	myceil(x)zfabs(x)zabs(n))r   r.   r   r   )r@   rt   Úcustom_functionss      r7   Útest_rcode_user_functionsr…   p   sˆ   € Ü�˜UÔ#€AÜ�˜TÔ"€AàÙ+¨VÐ4Ñ7MÈuÐ6UÐVñÐô ”˜“Ð,<Ô=ÀÒLÐLÐLÜ”�Q“Ð(8Ô9¸YÒFÐFÐFÜ”�Q“Ð(8Ô9¸XÒEÐEÑEr9   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x & yzx | yz!xz	x & y & zz	x | y | zz	z | x & yzz & (x | y))r.   r   ÚtrueÚfalser@   rW   Úzr=   r9   r7   Útest_rcode_booleanrŒ   |   sþ   € Ü�‹;˜&Ò Ð Ð Ü”—‘‹=˜FÒ"Ð"Ð"Ü�‹<˜7Ò"Ð"Ð"Ü”—‘‹>˜WÒ$Ð$Ð$Ü””Q‘‹<˜7Ò"Ð"Ð"Ü””Q‘‹<˜7Ò"Ð"Ð"Ü”!�‹9˜ÒÐÐÜ””Q‘œ‘Ó˜{Ò*Ð*Ð*Ü””Q‘œ‘Ó˜{Ò*Ð*Ð*Ü”!”a‘%œ1‘Ó Ò,Ð,Ð,Ü”!”a‘%œ1‘Ó Ò.Ð.Ñ.r9   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   r@   rW   r!   r   r    r   r   r=   r9   r7   Útest_rcode_RelationalrŽ   ‰   s’   € Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜gÒ%Ð%Ð%Ü””A”q“‹?˜gÒ%Ð%Ð%Ü””A”q“‹?˜hÒ&Ð&Ñ&r9   c                  óÜ  — t        t        t        dk  ft        dz  df«      } t        | «      }d}||k(  sJ ‚t        d«      }t        | |«      }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k(  sJ ‚t        | d	¬
«      }|dk(  sJ ‚dt        t        t        dk  ft        dz  t        dk  f«      z  } t        | «      dk(  sJ ‚y )NrI   rH   Tzifelse(x < 1,x,x^2)Útauztau = ifelse(x < 1,x,x^2);rF   z'2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3))Úcrw   z,c = 2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3));z&2*ifelse(x < 1,x,ifelse(x < 2,x^2,NA)))r   r@   r.   r   )Úexprry   rz   r�   s       r7   Útest_rcode_Piecewiser“   ’   sô   € Ü”aœ˜Q™�Z¤! Q¡$¨ Ó.€DÜˆd‹€CØ€CØ�#Š:Ðˆ:Üˆu‹€CÜˆd�3‹€CØ$€CØ�#Š:Ðˆ:àŒYœœ1˜q™5�z¤A q¡D¬!¨A©# ;´°A±°d°Ó<Ñ<€DÜ�‹;ÐCÒCÐCÐCÜ
� Ô
$€CØÐ@Ò@Ð@Ð@ð
 ŒYœœ1˜q™5�z¤A q¡D¬!¨A©# ;Ó/Ñ/€DÜ�‹;ÐBÒ
BÐBÑ
Br9   c                  óP   — ddl m}   | t        «      }t        |«      }d}||k(  sJ ‚y )Nr   )Úsincz(ifelse(x != 0,sin(x)/x,1)))Ú(sympy.functions.elementary.trigonometricr•   r@   r.   )r•   r’   ry   rz   s       r7   Útest_rcode_sincr—   ¨   s(   € Ý=Ù”‹7€DÜ
�‹+€CØ
'€CØ�#Š:Ð‰:r9   c            	      ó†  — t        dt        t        t        dk  ft        dz   t        dk  ft        dz  df«      z  «      } | dk(  sJ ‚t        t        z  t        z  t        dz  z   t        dz  z   t        dt        dk  fd«      z   t        t        «      z   dz
  }t        |«      } d}| |k(  sJ ‚d	}t        |d
¬«      } | |k(  sJ ‚y )NrH   rI   Tz)2*ifelse(x < 1,x,ifelse(x < 2,x + 1,x^2))r   rC   )rI   Tz4x^2 + x*y*z + y^2 + ifelse(x < 0.5,0,1) + cos(z) - 1z9c = x^2 + x*y*z + y^2 + ifelse(x < 0.5,0,1) + cos(z) - 1;r‘   rw   )r.   r   r@   rW   r‹   r   )Úpr’   rz   s      r7   Útest_rcode_Piecewise_deeprš   °   sº   € Üˆa”	œ1œa !™e˜*¤q¨1¡u¬a°!©e n´q¸!±t¸T°lÓCÑCÓD€AØÐ;Ò;Ð;Ð;ÜŒQ‰3Œq‰5”1�a‘4‰<œ!˜Q™$Ñ¤¨A¬q°3©w¨<¸Ó!CÑCÄcÌ!ÃfÑLÈqÑP€DÜˆd‹€AØ>€CØ�Š8€Oˆ8àC€CÜˆd˜cÔ"€AØ�Š8€O‰8r9   c                  ód   — t        t        dk  t        t        «      } t	        | «      }d}||k(  sJ ‚y )NrI   zifelse(x < 1,y,z))r#   r@   rW   r‹   r.   )r’   r™   rz   s      r7   Útest_rcode_ITErœ   ½   s-   € ÜŒq�1‰u”aœÓ€DÜˆd‹€AØ€CØ�Š8€O‰8r9   c                  ó&   — t        t        d„ «       y )Nc                  ó6   — t        t        t        «      d¬«      S )NÚgarbage)Úmethod)r.   r   r@   r=   r9   r7   rP   z%test_rcode_settings.<locals>.<lambda>Å   s   € œe¤C¬£F°9Ô=€ r9   )r'   Ú	TypeErrorr=   r9   r7   Útest_rcode_settingsr¢   Ä   s   € Ü
Œ9Ñ=Õ>r9   c                  ó´  — t        dd¬«      \  } }}t        d| «      t        d|«      t        d|«      }}}t        «       }t        «       |_        t        d«      |   }|j                  |«      dk(  sJ ‚t        d	«      ||f   }|j                  |«      d
k(  sJ ‚t        d«      |||f   }	|j                  |	«      dk(  sJ ‚|j                  t        «       k(  sJ ‚y )Nzn m oTru   rs   ÚjÚkr@   zx[j]rr   zA[i, j]ÚBz
B[i, j, k])r   r+   r(   ÚsetÚ_not_rr*   Ú_print_Indexed)
rt   ÚmÚors   r¤   r¥   r™   r@   rr   r¦   s
             r7   Útest_rcode_Indexedr¬   È   sÙ   € Ü�g tÔ,�G€A€qˆ!Ü�#�q‹kœ3˜s A›;¬¨C°«ˆ!€q€AÜ‹€AÜ‹u€A„Hä�CÓ˜Ñ€AØ×Ñ˜AÓ &Ò(Ð(Ð(Ü�CÓ˜˜A˜Ñ€AØ×Ñ˜AÓ )Ò+Ð+Ð+Ü�CÓ˜˜A˜q˜Ñ!€AØ×Ñ˜AÓ ,Ò.Ð.Ð.à�8‰8”s“uÒÐÑr9   c                  ó@  — d} t        d| f¬«      }t        d| f¬«      }t        d| dz
  f¬«      }t        d| dz
  «      }t        ||   ||dz      ||   z
  ||dz      ||   z
  z  «      }t        |j                  |j
                  d¬	«      }|d
|dz   ›d|dz   ›d�k(  sJ ‚y )Né   rW   )Úshaper@   ÚDyrI   rs   F)rx   ÚcontractzDy[i] = (y[z] - y[i])/(x[z
] - x[i]);)r*   r+   r   r.   ÚrhsÚlhs)Úlen_yrW   r@   r°   rs   ÚeÚcode0s          r7   Ú2test_rcode_Indexed_without_looking_for_contractionr·   ×   s«   € Ø€EÜ�C ˜xÔ(€AÜ�C ˜xÔ(€AÜ	�T %¨¡' Ô	,€BÜˆC��q‘Ó€AÜˆˆA‰��1�Q‘3‘˜˜!™‘˜q  1¡™v a¨¡d™{Ñ+Ó,€AÜ�!—%‘% 1§5¡5°5Ô9€EÙÀÀAÃÀqÈ1ÃuÐMÒMÐMÑMr9   c                  óÞ   — t        dd¬«      \  } }t        d«      }t        d«      }t        d«      }t        d|«      }t        d| «      }d	}t        |||f   ||   z  ||   ¬
«      }||k(  sJ ‚y )Nún mTru   rr   r@   rW   rs   r¤   zjfor (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      y[i] = A[i, j]*x[j] + y[i];
   }
}rw   ©r   r*   r+   r.   )	rt   rª   rr   r@   rW   rs   r¤   Úsr‘   s	            r7   Útest_rcode_loops_matrix_vectorr¼   â   s}   € Ü�5 $Ô'�D€A€qÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€Að	ð ô 	ˆa��1�‰g�a˜‘d‰l a¨¡dÔ+€AØ�Š6€M‰6r9   c                  óò   — t        ddt        ¬«      \  } }t        d«      }t        d«      }t        | |«      } d| j                  j
                  |j
                  dœz  }t        ||    ||    ¬«      }||k(  sJ ‚y )	Nzi mT)rv   Úclsr@   rW   zMfor (i_%(icount)i in 1:m_%(mcount)i){
   y[i_%(icount)i] = x[i_%(icount)i];
})ÚicountÚmcountrw   )r   r   r*   r+   ÚlabelÚdummy_indexr.   )rs   rª   r@   rW   ÚexpectedÚcodes         r7   Útest_dummy_loopsrÅ   ø   s~   € ô �5 $¬EÔ2�D€A€qÜ�CÓ€AÜ�CÓ€AÜˆAˆq‹	€Aðð —7‘7×&Ñ&°!·-±-Ñ@ñ	A€Hô
 ��1‘  1¡Ô&€DØ�8ÒÐÑr9   c                  ó  — t        dd¬«      \  } }t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }d
}t        |||f   ||   z  ||   z   ||   z   ||   ¬«      }	|	|k(  sJ ‚y )Nr¹   Tru   rr   r@   rW   r‹   rs   r¤   ztfor (i in 1:m){
   y[i] = x[i] + z[i];
}
for (i in 1:m){
   for (j in 1:n){
      y[i] = A[i, j]*x[j] + y[i];
   }
}rw   rº   )
rt   rª   rr   r@   rW   r‹   rs   r¤   r»   r‘   s
             r7   Útest_rcode_loops_addrÇ   
  s™   € Ü�5 $Ô'�D€A€qÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€Að	ð ô 	ˆa��1�‰g�a˜‘d‰l˜Q˜q™TÑ! A a¡DÑ(°A°a±DÔ9€AØ�Š6€M‰6r9   c                  ó  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d|«      }t        d| «      }t        d	|«      }	t        d
|«      }
d}t        |||	|
f   ||||	|
f   z  ||   ¬«      }||k(  sJ ‚y )Nún m o pTru   ÚaÚbrW   rs   r¤   r¥   Úlz¾for (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         for (l in 1:p){
            y[i] = a[i, j, k, l]*b[j, k, l] + y[i];
         }
      }
   }
}rw   rº   )rt   rª   r«   r™   rÊ   rË   rW   rs   r¤   r¥   rÌ   r»   r‘   s                r7   Ú&test_rcode_loops_multiple_contractionsrÍ   !  s¢   € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Að	ð ô 	ˆa��1�a�‰j˜˜1˜a  A˜:™Ñ&°!°A±$Ô7€AØ�Š6€M‰6r9   c                  óF  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }	t        d
|«      }
t        d|«      }d}t        |||	|
|f   |||	|
|f   z   ||	|
|f   z  ||   ¬«      }||k(  sJ ‚y )NrÉ   Tru   rÊ   rË   r‘   rW   rs   r¤   r¥   rÌ   zÐfor (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         for (l in 1:p){
            y[i] = (a[i, j, k, l] + b[i, j, k, l])*c[j, k, l] + y[i];
         }
      }
   }
}rw   rº   )rt   rª   r«   r™   rÊ   rË   r‘   rW   rs   r¤   r¥   rÌ   r»   s                r7   Útest_rcode_loops_addfactorrÏ   =  s½   € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Að	ð ô 	ˆq��A�q˜!�‰}˜q  A q¨! ™}Ñ,¨a°°1°a°©jÑ8ÀAÀaÁDÔI€AØ�Š6€M‰6r9   c                  ó’  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }	t        d
|«      }
d}d}d}d}t        ||	   |||	f   z  ||
   |||
f   z  z   ||	   ||
   z  |||	|
f   z  z   ||   ¬«      }i }||z   |z   |d d z   |d<   ||z   |z   |d d z   |d<   ||z   |z   |d d z   |d<   ||z   |z   |d d z   |d<   ||z   |z   |d d z   |d<   ||z   |z   |d d z   |d<   ||d   k(  s/||d   k(  s&||d   k(  s||d   k(  s||d   k(  s||d   k(  sJ ‚y y y y y y )NrÉ   Tru   rÊ   rË   r‘   rW   rs   r¤   r¥   zfor (i in 1:m){
   y[i] = 0;
}
zufor (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         y[i] = b[j]*b[k]*c[i, j, k] + y[i];
      }
   }
}
zLfor (i in 1:m){
   for (k in 1:o){
      y[i] = a[i, k]*b[k] + y[i];
   }
}
zLfor (i in 1:m){
   for (j in 1:n){
      y[i] = a[i, j]*b[j] + y[i];
   }
}
rw   rm   r   rI   rH   rF   é   r®   rº   )rt   rª   r«   r™   rÊ   rË   r‘   rW   rs   r¤   r¥   Ús0Ús1Ús2Ús3rz   s                   r7   Útest_rcode_loops_multiple_termsrÖ   Z  sû  € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Að	ð ð	ð ð	ð ð	ð ô 	Ø	ˆ!‰ˆQˆq�!ˆt‰W‰�q˜‘t˜A˜a ˜d™G‘|Ñ# a¨¡d¨1¨Q©4¡i°°!°Q¸°'±
Ñ&:Ñ:ÀaÈÁdô	L€Að 	€CØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜GÑ#€Cˆ�Fà��Q‘ŠKØ��Q‘ŠKØ��Q‘ŠKØ��Q‘ŠKØ��Q‘ŠKØ��Q‘ŠKðð ð
 ð ð ð ð ð r9   c                  óz   — t         t        z   t        t        «      z   t        z   } t	        | t        g¬«      dk(  sJ ‚y )N)Údereferencezx + y + (*z) + sin((*z)))r@   rW   r   r‹   r.   )r’   s    r7   Útest_dereference_printingrÙ   “  s0   € ÜŒq‰5”3”q“6‰>œAÑ€DÜ�¤A 3Ô'Ð+EÒEÐEÑEr9   c            	      ó`  — t        t        t        z  t        dt        z   t        dkD  ft        df«      t	        t
        «      g«      } t        ddd«      }t        | |«      }|dk(  sJ ‚t        d|d   z  t        dkD  f|d   df«      t	        |d	   «      z   |d
   z   }t        |«      }|dk(  sJ ‚t        ddd«      }t        ddd«      }t        t	        |d	   «      dt        |d   «      g|d	   |d   z   |d   dgd|d   z  |d	   z  t        |d
   «      dz   dgg«      }t        ||«      dk(  sJ ‚y )NrH   r   Trr   rF   rI   z8A[0] = x*y;
A[1] = ifelse(y > 0,x + 2,y);
A[2] = sin(z);)rH   r   )rI   r   ©r   r   z,ifelse(x > 0,2*A[2],A[2]) + sin(A[1]) + A[0]Úqr®   ÚM)rF   r   )rÑ   r   rÑ   z�M[0] = sin(q[1]);
M[1] = 0;
M[2] = cos(q[2]);
M[3] = q[1] + q[2];
M[4] = q[3];
M[5] = 5;
M[6] = 2*q[4]/q[1];
M[7] = sqrt(q[0]) + 4;
M[8] = 0;)
r,   r@   rW   r   r   r‹   r-   r.   r   r   )Úmatrr   r™   r’   rÜ   rÝ   rª   s          r7   Útest_Matrix_printingrß   ˜  s\  € ä
”!”A‘#”y !¤a¡%¬¨1© ´°4¨yÓ9¼3¼q»6ÐBÓ
C€CÜ�S˜!˜QÓ€AÜˆc�1‹€AØð	òð ð ô
 �a˜˜$™‘i¤ Q¡Ð'¨!¨D©'°4¨Ó9¼CÀÀ$Á»LÑHÈ1ÈTÉ7ÑR€DÜˆd‹€AØÐ@ÒAÐAÐAä�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ”�Q�s‘V“˜a¤ Q s¡V£Ð-Ø	
ˆ3‰�!�C‘&‰˜!˜D™' 1Ð%Ø	
ˆ1ˆT‰7‰�1�S‘6Ñ	œ4  #¡›<¨!Ñ+¨QÐ/ð1ó 	2€Aô ��A‹;ð	ò	ð 	ñ 	r9   c                  óD  — t        t        «      t        z  } t        | «      dk(  sJ ‚t        | d«      }|dk(  sJ ‚t        t        dt        z  t        dz  z   «      t        z  t        dz  z   «      }|dk(  sJ ‚t        t	        t        «      «      } t        | «      }|dk(  sJ ‚y )Nz	y*sign(x)r‹   zz = y*sign(x);rH   zx^2 + x*sign(x^2 + 2*x)zsign(cos(x)))r   r@   rW   r.   r   )r’   r™   s     r7   Útest_rcode_sgnrá   ·  s˜   € ä”‹7”Q‰;€DÜ�‹;˜+Ò%Ð%Ð%Üˆd�CÓ€AØÐ!Ò!Ð!Ð!äŒd�1”q‘5œ1˜a™4‘<Ó ¤1Ñ$¤q¨!¡tÑ+Ó,€AØÐ*Ò*Ð*Ð*ä””A“‹<€DÜˆd‹€AØ�ÒÐÑr9   c                  óª   — t        t        t        t        t        z   «      «      dk(  sJ ‚t        t        t        dt        t        z   «      «      dk(  sJ ‚y )Nz
x = y + z;ú+zx += y + z;)r.   r&   r@   rW   r‹   r%   r=   r9   r7   Útest_rcode_Assignmenträ   Å  s@   € Ü”œAœq¤1™uÓ%Ó&¨,Ò6Ð6Ð6Ü”œA˜s¤A¬¡EÓ*Ó+¨}Ò<Ð<Ñ<r9   c            	      óˆ   — t        t        t        ddd«      t        t        dt        «      g«      } t        | «      }|dk(  sJ ‚y )Nr   é
   rH   Ú*z.for(x in seq(from=0, to=9, by=2){
   y *= x;
})r$   r@   r"   r%   rW   r.   )ÚfÚsols     r7   Útest_rcode_Forrê   Ê  sD   € ÜŒAŒu�Q˜˜A‹¤¬A¨s´AÓ!6Ð 7Ó8€AÜ
�‹(€CØð ò ð ñ r9   c                  óô   — t        ddd«      } t        ddd«      }t        ddd«      }t        | d   «      dk(  sJ ‚t        d| d   z  «      dk(  sJ ‚|d   j                  || |z
  «      }t        |«      d	k(  sJ ‚y )
Nrr   rI   rF   r¦   ÚCrÛ   zA[0]z3*A[0]z
(A - B)[0])r-   r.   Úsubs)rr   r¦   rì   ÚFs       r7   Útest_MatrixElement_printingrï   Ò  s‡   € ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€Aä��4‘‹>˜VÒ#Ð$Ð#Ü��Q�t‘W‘Ó Ò)Ð*Ð)à	ˆ$‰�‰�Q˜˜A™Ó€AÜ�‹8�|Ò#Ð$Ñ#r9   N)[Ú
sympy.corer   r   r   r   r   r   r	   r
   r   r   r   r   Úsympy.functionsr   r   r   r   r   r   r   r   r   r   r   r   r   Úsympy.core.relationalr   r   r   r   r    r!   Ú
sympy.setsr"   Úsympy.logicr#   Úsympy.codegenr$   r%   r&   Úsympy.testing.pytestr'   Úsympy.printing.rcoder(   Úsympy.utilities.lambdifyr)   Úsympy.tensorr*   r+   Úsympy.matricesr,   r-   r.   r@   rW   r‹   rA   rD   rY   r]   r`   rb   ri   rn   rp   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=   r9   r7   ú<module>rû      s  ð÷I÷ I÷ Ió I÷E÷ E÷ Eõ Eç :× :Ý Ý ß 5Ñ 5Ý 'Ý -Ý 9ß )ß /å &á
�'Ó
�€€1€aò&ò'òOòjò
 òRò4ò&ò
Mòò&)ò	Fò/ò'òCò,ò
òò?òòNòò,ò$ò.ò8ò:6òrFò
ò>ò=ò
ó
%r9   