§
    OŠtjÕ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.„ ZZd/S )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                  ór   —  G d„ dt           ¦  «        } t           | t          ¦  «        ¦  «        dk    sJ ‚d S )Nc                   ó   — e Zd Zd„ ZdS )útest_printmethod.<locals>.fabsc                 óH   — d|                      | j        d         ¦  «        z  S )Nzabs(%s)r   )Ú_printÚargs)ÚselfÚprinters     ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_rcode.pyÚ_rcodez%test_printmethod.<locals>.fabs._rcode   s   € Ø˜wŸ~š~¨d¬i¸¬lÑ;Ô;Ñ;Ð;ó    N)Ú__name__Ú
__module__Ú__qualname__r8   © r9   r7   Úfabsr1      s#   € € € € € ð	<ð 	<ð 	<ð 	<ð 	<r9   r>   úabs(x))r   r.   Úx)r>   s    r7   Útest_printmethodrA      sS   € ð<ð <ð <ð <ð <�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 ‚d S )Nzsqrt(x)ç      à?)r.   r   r@   r=   r9   r7   Útest_rcode_sqrtrD      s]   € Ý••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 ‚d S )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€ 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   "   sY  € Ý•�A‘‰;Œ;˜%ÒÐÐÐÝ••Q˜‘T‘ÑÔ˜yÒ(Ð(Ð(Ð(Ý˜S¥&­¨A­a©C¡.¤.Ñ1Ô1€AÝ��A�A•a‘D”D˜‘H¥¥A¥q¡D¡Ñ)Ñ)­1¨a©4µ!©8Ñ4Ñ5Ô5Ø(ò)ð )ð )ð )å•�D‘‰>Œ>˜WÒ$Ð$Ð$Ð$Ý••H˜Q ‘N”NÑ"Ñ#Ô# }Ò4Ð4Ð4Ð4Ø4Ð4°gÐ>Ø8Ð8¸%Ð@ðB€Kå•�A‘ u¨kÐ&:Ð;Ñ;Ô;¸}ÒLÐLÐLÐLÝ•�C‘¨°Ð(<Ð=Ñ=Ô=ÀÒNÐNÐNÐNÐNÐNr9   c                  óz   — t          t          t          t          t          z  ¦  «        dddœ¬¦  «        dk    sJ ‚d S )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Ð+KÐLÑLÔLÐPiÒiÐiÐiÐ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 ‚d S )NrI   zexp(1)r   ÚInfz-Inf)r.   r   r   r   r=   r9   r7   Útest_rcode_constants_mathhr`   5   sl   € Ý•�Q‘”‰=Œ=˜HÒ$Ð$Ð$Ð$Ý•‰9Œ9˜ÒÐÐÐÝ•‰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 ‚d S )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   <   ss   € Ý�•;‘ÑÔÐ#SÒSÐSÐSÐSÝØ	�'‰	ñô Ø?ò@ð @ð @ð @å�•:‘ÑÔÐ"QÒQÐQÐQÐQÐQÐQr9   c                  óÊ  — 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 ‚d S )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Ð5Ý•˜!˜Q‘”¥Ñ!Ñ"Ô" mÒ3Ð3Ð3Ð3Ð3Ð3r9   c                  óŽ   — t          t          d¦  «        ¦  «        dk    sJ ‚t          t          d¦  «        ¦  «        dk    sJ ‚d S )NéC   Ú67éÿÿÿÿz-1)r.   r	   r=   r9   r7   Útest_rcode_Integerrn   L   sF   € Ý•˜‘”ÑÔ Ò%Ð%Ð%Ð%Ý•˜‘”ÑÔ Ò%Ð%Ð%Ð%Ð%Ð%r9   c            	      óœ  — 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 ‚d S )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   s‘   € Ý••Q‘”�3�q™6œ6Ñ!Ñ"Ô" oÒ5Ð5Ð5Ð5Ý•�1‘”¥¥a¡¤Ñ(Ñ)Ô)Ð-FÒFÐFÐFÐFÝ••c�!�Q‘i”i¥¥Q­¡¤Ñ+Ô+Ñ,Ô,Ð0LÒLÐLÐLÐLÐLÐLr9   c            	      óh  — 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 ‚d S )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   s4  € Ý�‰Œ€AÝ˜S¥&¨¨A¨a©C¡.¤.Ñ1Ô1€AÝ���1‘”‰;Œ;˜%ÒÐÐÐÝ˜S¥&¨¨A¨a©Cµ©KÑ"8Ô"8Ñ9Ô9€AÝØ	ˆˆ!‰Œñô Ø-µ´	±´Ñ;ò<ð <ð <ð <å�CÑÔ€AÝˆC•˜ dÐ+Ñ+Ô+Ñ,Ô,€AÝ˜S¥&¨¨A¨q°1©u©I°q¸1±uÑ,=Ñ">Ô">Ñ?Ô?€AÝˆaˆa��!”‰gŒ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 ‚d S )Nz
ceiling(x)r?   zgamma(x))r.   r   r@   r   r   r=   r9   r7   Útest_rcode_exceptionsr}   j   sa   € Ý•�‘”ÑÔ Ò,Ð,Ð,Ð,Ý••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 ‚d S )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Ð7MÈuÐ6UÐVðð Ðõ •˜‘”Ð,<Ð=Ñ=Ô=ÀÒLÐLÐLÐLÝ•�Q‘”Ð(8Ð9Ñ9Ô9¸YÒFÐFÐFÐFÝ•�Q‘”Ð(8Ð9Ñ9Ô9¸XÒEÐEÐEÐEÐEÐEr9   c                  óä  — 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 ‚d S )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Œ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 ‚d S )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                  óR  — 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 ‚d S )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Ý
� Ð
$Ñ
$Ô
$€CØÐ@Ò@Ð@Ð@Ð@ð
 �Y��1˜qš5�z¥A q¡D­!¨Aª# ;Ñ/Ô/Ñ/€DÝ�‰;Œ;ÐBÒ
BÐ
BÐ
BÐ
BÐ
BÐ
Br9   c                  ód   — ddl m}   | t          ¦  «        }t          |¦  «        }d}||k    sJ ‚d S )Nr   )Úsincz(ifelse(x != 0,sin(x)/x,1)))Ú(sympy.functions.elementary.trigonometricr•   r@   r.   )r•   r’   ry   rz   s       r7   Útest_rcode_sincr—   ¨   sB   € Ø=Ð=Ð=Ð=Ð=Ð=Øˆ4•‰7Œ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 ‚d S )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ÑCÑDÔD€AØÐ;Ò;Ð;Ð;Ð;Ý�Q‰3�q‰5•1�a‘4‰<�!˜Q™$Ñ¥¨A­q°3ªw¨<¸Ñ!CÔ!CÑCÅcÍ!ÁfÄfÑLÈqÑP€DÝˆd‰Œ€AØ>€CØ�Š8ˆ8ˆ8ˆ8àC€CÝˆd˜cÐ"Ñ"Ô"€AØ�Š8ˆ8ˆ8ˆ8ˆ8ˆ8r9   c                  ó€   — t          t          dk     t          t          ¦  «        } t	          | ¦  «        }d}||k    sJ ‚d S )NrI   zifelse(x < 1,y,z))r#   r@   rW   r‹   r.   )r’   r™   rz   s      r7   Útest_rcode_ITErœ   ½   s8   € Ý�q�1Šu•a�ÑÔ€DÝˆd‰Œ€AØ€CØ�Š8ˆ8ˆ8ˆ8ˆ8ˆ8r9   c                  ó2   — t          t          d„ ¦  «         d S )Nc                  óH   — 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¤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¦  «        |         }|                     |¦  «        dk    sJ ‚t          d	¦  «        ||f         }|                     |¦  «        d
k    sJ ‚t          d¦  «        |||f         }	|                     |	¦  «        dk    sJ ‚|j        t          ¦   «         k    sJ ‚d S )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Œk�3˜s A™;œ;­¨C°©¬ˆ!€q€AÝ‰Œ€AÝ‰uŒu€A„Hå�CÑÔ˜Ô€AØ×Ò˜AÑÔ &Ò(Ð(Ð(Ð(Ý�CÑÔ˜˜A˜Ô€AØ×Ò˜AÑÔ )Ò+Ð+Ð+Ð+Ý�CÑÔ˜˜A˜q˜Ô!€AØ×Ò˜AÑÔ ,Ò.Ð.Ð.Ð.àŒ8•s‘u”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 ‚d S )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Ð9Ñ9Ô9€EØˆ5ÀÀAÁÀÀÀqÈ1ÁuÀuÀuÐMÒMÐMÐ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 ‚d S )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ˆ6ˆ6ˆ6ˆ6ˆ6r9   c                  ó  — t          ddt          ¬¦  «        \  } }t          d¦  «        }t          d¦  «        }t          | |¦  «        } d| j        j        |j        dœz  }t          ||          ||          ¬¦  «        }||k    sJ ‚d S )	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Ñ2Ô2�D€A€qÝ�CÑÔ€AÝ�CÑÔ€AÝˆAˆq‰	Œ	€Aðð ”7Ô&°!´-Ð@Ð@ñ	A€Hõ
 ��1”  1¤Ð&Ñ&Ô&€DØ�8ÒÐÐÐÐÐr9   c                  ón  — t          dd¬¦  «        \  } }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d|¦  «        }t          d	| ¦  «        }d
}t          |||f         ||         z  ||         z   ||         z   ||         ¬¦  «        }	|	|k    sJ ‚d S )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Ñ9Ô9€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r9   c                  óz  — 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 ‚d S )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Ñ1Ô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Ñ7Ô7€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r9   c                  ó²  — 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 ‚d S )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Ñ1Ô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ÑIÔI€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ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    s4||d         k    s*||d         k    s ||d         k    s||d         k    sJ ‚d S d S d S d S d S d S )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  s3  € Ý˜¨DÐ1Ñ1Ô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ñ 	Lô 	L€Að 	€CØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�FØ�"‰W�r‰\˜B˜s ˜sœGÑ#€Cˆ�Fà��Q”ŠKˆKØ��Q”ŠKˆKØ��Q”ŠKˆKØ��Q”ŠKˆKØ��Q”ŠKˆKØ��Q”ŠKˆKˆKðˆKˆKØˆKØˆKØˆKØˆKØˆKr9   c                  ó˜   — t           t          z   t          t          ¦  «        z   t          z   } t	          | t          g¬¦  «        dk    sJ ‚d S )N)Údereferencezx + y + (*z) + sin((*z)))r@   rW   r   r‹   r.   )r’   s    r7   Útest_dereference_printingrÙ   “  sA   € Ý�q‰5•3•q‘6”6‰>�AÑ€DÝ�¥A 3Ð'Ñ'Ô'Ð+EÒEÐEÐEÐEÐEÐEr9   c            	      ó:  — t          t          t          z  t          dt          z   t          dk    ft          df¦  «        t	          t
          ¦  «        g¦  «        } t          ddd¦  «        }t          | |¦  «        }|dk    sJ ‚t          d|d         z  t          dk    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 ‚d S )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Ô9½3½q¹6¼6ÐBÑ
CÔ
C€CÝ�S˜!˜QÑÔ€AÝˆc�1‰Œ€AØð	òð ð ð õ
 �a˜˜$œ‘i¥ Q¢Ð'¨!¨D¬'°4¨Ñ9Ô9½CÀÀ$Ä¹L¼LÑHÈ1ÈTÌ7ÑR€DÝˆd‰Œ€AØÐ@Ò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ô 	2€Aõ ��A‰;Œ;ð	ò	ð 	ð 	ð 	ð 	ð 	r9   c                  óœ  — 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 ‚d S )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Œ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 ‚d S )Nz
x = y + z;ú+zx += y + z;)r.   r&   r@   rW   r‹   r%   r=   r9   r7   Útest_rcode_Assignmenträ   Å  sX   € Ý•�A�q¥1™uÑ%Ô%Ñ&Ô&¨,Ò6Ð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 ‚d S )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ê   Ê  s]   € Ý�A�u�Q˜˜A‰Œ¥­A¨sµAÑ!6Ô!6Ð 7Ñ8Ô8€AÝ
�‰(Œ(€CØð ò ð ð ð ð ð r9   c                  óF  — 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                              || |z
  ¦  «        }t          |¦  «        d	k    sJ ‚d S )
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Œ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û      sr  ððIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið IðEð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð Eà :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø -Ð -Ð -Ð -Ð -Ð -Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à &Ð &Ð &Ð &Ð &Ð &à
ˆ'�'Ñ
Ô
�€€1€að&ð &ð &ð'ð 'ð 'ðOð Oð Oðjð jð jð
 ð  ð  ðRð Rð Rð4ð 4ð 4ð&ð &ð &ð
Mð Mð Mðð ð ð&)ð )ð )ð	Fð 	Fð 	Fð/ð /ð /ð'ð 'ð 'ðCð Cð Cð,ð ð ð
ð 
ð 
ðð ð ð?ð ?ð ?ðð ð ðNð Nð Nðð ð ð,ð ð ð$ð ð ð.ð ð ð8ð ð ð:6ð 6ð 6ðrFð Fð Fð
ð ð ð>ð ð ð=ð =ð =ð
ð ð ð
%ð 
%ð 
%ð 
%ð 
%r9   