§
    OŠtji,  ã                   óž  — 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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. d dl%m/Z/  ed	¦  «        \  Z0Z1Z2d
„ 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!„ ZJd"„ ZKd#S )$é    )ÚpiÚooÚsymbolsÚRationalÚIntegerÚGoldenRatioÚ
EulerGammaÚCatalanÚLambdaÚDummyÚSÚEqÚNeÚLeÚLtÚGtÚGeÚMod)Ú	PiecewiseÚsinÚcosÚAbsÚexpÚceilingÚsqrtÚsinhÚcoshÚtanhÚasinÚacosÚacoshÚMaxÚMin)Úraises)ÚJavascriptCodePrinter)Úimplemented_function)ÚIndexedBaseÚIdx)ÚMatrixÚMatrixSymbol©Újscodezx,y,zc                  óT   — t          t          t          ¦  «        ¦  «        dk    sJ ‚d S )NúMath.abs(x))r,   r   Úx© ó    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_jscode.pyÚtest_printmethodr3      s%   € Ý•#•a‘&”&‰>Œ>˜]Ò*Ð*Ð*Ð*Ð*Ð*r1   c                  óâ   — t          t          t          ¦  «        ¦  «        dk    sJ ‚t          t          dz  ¦  «        dk    sJ ‚t          t          t          j        dz  z  ¦  «        dk    sJ ‚d S )NzMath.sqrt(x)g      à?é   zMath.cbrt(x))r,   r   r/   r   ÚOner0   r1   r2   Útest_jscode_sqrtr7      sc   € Ý•$•q‘'”'‰?Œ?˜nÒ,Ð,Ð,Ð,Ý•!�S‘&‰>Œ>˜^Ò+Ð+Ð+Ð+Ý•!•a”e˜A‘g‘,ÑÔ >Ò1Ð1Ð1Ð1Ð1Ð1r1   c                  óÂ  — t          dt          t          dt          z  ¦  «        ¦  «        } t          t          dz  ¦  «        dk    sJ ‚t          t          t          dz  z  ¦  «        dk    sJ ‚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 ‚d S )NÚgé   r5   zMath.pow(x, 3)zMath.pow(x, Math.pow(y, 3))é   g      @z;Math.pow(3.5*2*x, -x + Math.pow(y, x))/(Math.pow(x, 2) + y)g      ð¿z1/x)r&   r   r/   r,   Úy)r9   s    r2   Útest_jscode_Powr=      sÍ   € Ý˜S¥&­¨A­a©C¡.¤.Ñ1Ô1€AÝ•!�Q‘$‰<Œ<Ð+Ò+Ð+Ð+Ð+Ý•!•a˜‘d‘)ÑÔÐ =Ò=Ð=Ð=Ð=Ý�!�Q�Q•q‘T”T˜#‘X¥¥Q­¡T¡Ñ*Ñ*­A¨q©Dµ1©HÑ5Ñ6Ô6ØEòFð Fð Fð Få•!�T‘'‰?Œ?˜eÒ#Ð#Ð#Ð#Ð#Ð#r1   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 )Nr;   zMath.EzMath.PIzNumber.POSITIVE_INFINITYzNumber.NEGATIVE_INFINITY)r,   r   r   r   r0   r1   r2   Útest_jscode_constants_mathhr?   $   sn   € Ý•#�a‘&”&‰>Œ>˜XÒ%Ð%Ð%Ð%Ý•"‰:Œ:˜Ò"Ð"Ð"Ð"Ý•"‰:Œ:Ð3Ò3Ð3Ð3Ð3Ý•2�#‰;Œ;Ð4Ò4Ð4Ð4Ð4Ð4Ð4r1   c                  ó2  — 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 ‚d S )Nr:   z#var GoldenRatio = %s;
2*GoldenRatioé   zvar Catalan = %s;
2*Catalanz!var EulerGamma = %s;
2*EulerGamma)r,   r   Úevalfr
   r	   r0   r1   r2   Útest_jscode_constants_otherrC   +   s»   € ÝØ	�+‰ñô Ø@Å;ÔCTÐUWÑCXÔCXÑXòYð Yð Yð Yå�!•G‘)ÑÔÐ >ÅÄÈrÑARÔARÑ RÒRÐRÐRÐRÝØ	�*‰ñô Ø=Å
Ô@PÐQSÑ@TÔ@TÑTòUð Uð Uð Uð Uð Ur1   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 ‚d S )
Nr5   é   z3/7é   é	   Ú2éùÿÿÿz-3/7éýÿÿÿ)r,   r   r0   r1   r2   Útest_jscode_RationalrK   3   sŽ   € Ý•(˜1˜a‘.”.Ñ!Ô! UÒ*Ð*Ð*Ð*Ý•(˜2˜q‘/”/Ñ"Ô" cÒ)Ð)Ð)Ð)Ý•(˜1˜b‘/”/Ñ"Ô" fÒ,Ð,Ð,Ð,Ý•(˜2˜rÑ"Ô"Ñ#Ô# uÒ,Ð,Ð,Ð,Ð,Ð,r1   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/   r<   r   r   r   r   r   r0   r1   r2   Útest_RelationalrM   :   sÎ   € Ý•"•Q�‘(”(ÑÔ˜xÒ'Ð'Ð'Ð'Ý•"•Q�‘(”(ÑÔ˜xÒ'Ð'Ð'Ð'Ý•"•Q�‘(”(ÑÔ˜xÒ'Ð'Ð'Ð'Ý•"•Q�‘(”(ÑÔ˜wÒ&Ð&Ð&Ð&Ý•"•Q�‘(”(ÑÔ˜wÒ&Ð&Ð&Ð&Ý•"•Q�‘(”(ÑÔ˜xÒ'Ð'Ð'Ð'Ð'Ð'r1   c                  ól  — t          t          t          t          ¦  «        ¦  «        dk    sJ ‚t          t          t          t          t          z   ¦  «        ¦  «        dk    sJ ‚t	          dd¬¦  «        \  } }t          t          | |¦  «        ¦  «        dk    sJ ‚t          t          | |dz   ¦  «        ¦  «        dk    sJ ‚t          t          d	d
d¬¦  «        ¦  «        dk    sJ ‚t          t          | |¦  «         ¦  «        dk    sJ ‚t          t          t          | |¦  «        z  ¦  «        dk    sJ ‚d S )Nz((x % y) + y) % yz#((x % (x + y)) + (x + y)) % (x + y)zp1 p2T)Úpositivezp1 % p2r5   zp1 % (p2 + 3)rJ   rI   F)Úevaluatez(-3) % (-7)z
-(p1 % p2)zx*(p1 % p2))r,   r   r/   r<   r   )Úp1Úp2s     r2   Útest_ModrS   C   s  € Ý•#•a�‘)”)ÑÔÐ 3Ò3Ð3Ð3Ð3Ý•#•a��Q™‘-”-Ñ Ô Ð$IÒIÐIÐIÐIÝ�W tÐ,Ñ,Ô,�F€BˆÝ•#�b˜"‘+”+ÑÔ )Ò+Ð+Ð+Ð+Ý•#�b˜"˜q™&‘/”/Ñ"Ô" oÒ5Ð5Ð5Ð5Ý•#�b˜" uÐ-Ñ-Ô-Ñ.Ô.°-Ò?Ð?Ð?Ð?Ý•3�r˜2‘;”;�,ÑÔ <Ò/Ð/Ð/Ð/Ý•!•C˜˜B‘K”K‘-Ñ Ô  MÒ1Ð1Ð1Ð1Ð1Ð1r1   c                  óŽ   — t          t          d¦  «        ¦  «        dk    sJ ‚t          t          d¦  «        ¦  «        dk    sJ ‚d S )NéC   Ú67éÿÿÿÿz-1)r,   r   r0   r1   r2   Útest_jscode_IntegerrX   N   sF   € Ý•'˜"‘+”+ÑÔ $Ò&Ð&Ð&Ð&Ý•'˜"‘+”+ÑÔ $Ò&Ð&Ð&Ð&Ð&Ð&r1   c                  óv  — 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          ¦  «        z   ¦  «        dk    sJ ‚t          t          t          ¦  «        t          t          ¦  «        z  ¦  «        dk    sJ ‚t          t          t          ¦  «        t          t          ¦  «        z
  ¦  «        dk    sJ ‚d S )Nz"Math.pow(Math.sin(x), Math.cos(x))zMath.sinh(x)*Math.cosh(x)zMath.max(x, y) + Math.min(x, y)zMath.tanh(x)*Math.acosh(y)z-Math.acos(y) + Math.asin(x))r,   r   r/   r   r   r   r"   r<   r#   r   r!   r   r    r0   r1   r2   Útest_jscode_functionsrZ   S   sâ   € Ý•#•a‘&”&�C¥™FœFÑ"Ñ#Ô#Ð'KÒKÐKÐKÐKÝ•$•q‘'”'�D¥™GœGÑ#Ñ$Ô$Ð(CÒCÐCÐCÐCÝ•#•a�‘)”)�c¥!¥Q™iœiÑ'Ñ(Ô(Ð,MÒMÐMÐMÐMÝ•$•q‘'”'�%¥™(œ(Ñ"Ñ#Ô#Ð'CÒCÐCÐCÐCÝ•$•q‘'”'�$�q™'œ'‘/Ñ"Ô"Ð&DÒDÐDÐDÐDÐDÐDr1   c            	      ób  — 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 ‚d S )Nr/   r9   r:   z2*xzvar Catalan = %s;
2*x/CatalanrA   ÚAÚiÚnT©Úintegerr;   ©Ú	assign_toz@for (var i=0; i<n; i++){
   A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
})r   r&   r   r,   r
   rB   r'   r(   )r/   r9   r\   r]   s       r2   Útest_jscode_inline_functionrc   [   s-  € Ý�‰Œ€AÝ˜S¥&¨¨A¨a©C¡.¤.Ñ1Ô1€AÝ�!�!�A‘$”$‰<Œ<˜5Ò Ð Ð Ð Ý˜S¥&¨¨A¨a©Cµ©KÑ"8Ô"8Ñ9Ô9€AÝ�!�!�A‘$”$‰<Œ<Ð;½g¼mÈBÑ>OÔ>OÑOÒOÐOÐOÐOÝ�CÑÔ€AÝˆC•˜ dÐ+Ñ+Ô+Ñ,Ô,€AÝ˜S¥&¨¨A¨q°1©u©I°q¸1±uÑ,=Ñ">Ô">Ñ?Ô?€AÝ�!�!�A�a”D‘'”' Q q¤TÐ*Ñ*Ô*ð	òð ð ð ð ð r1   c                  ó¢   — t          t          t          ¦  «        ¦  «        dk    sJ ‚t          t          t          ¦  «        ¦  «        dk    sJ ‚d S )NzMath.ceil(x)r.   )r,   r   r/   r   r0   r1   r2   Útest_jscode_exceptionsre   k   sD   € Ý•'�!‘*”*ÑÔ Ò/Ð/Ð/Ð/Ý•#•a‘&”&‰>Œ>˜]Ò*Ð*Ð*Ð*Ð*Ð*r1   c                  ó  — 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 )Nzx && yzx || yz!xzx && y && zzx || y || zzz || x && yzz && (x || y))r,   r/   r<   Úzr0   r1   r2   Útest_jscode_booleanrh   p   sÛ   € Ý•!•a‘%‰=Œ=˜HÒ$Ð$Ð$Ð$Ý•!•a‘%‰=Œ=˜HÒ$Ð$Ð$Ð$Ý•1�"‰:Œ:˜ÒÐÐÐÝ•!•a‘%�!‘)ÑÔ Ò-Ð-Ð-Ð-Ý•!•a‘%�!‘)ÑÔ Ò-Ð-Ð-Ð-Ý•1•q‘5�A‘+ÑÔ -Ò/Ð/Ð/Ð/Ý•1•q‘5�A‘+ÑÔ /Ò1Ð1Ð1Ð1Ð1Ð1r1   c                  óŽ  ‡— t          t          t          dk     ft          dz  df¦  «        Št          ‰¦  «        } d}| |k    sJ ‚t          ‰d¬¦  «        dk    sJ ‚t          t          t          dk     ft          dz  t          dk    ft          t          ¦  «        t          dk    f¦  «        Št	          t
          ˆfd	„¦  «         d S )
Nr;   r:   Tz,((x < 1) ? (
   x
)
: (
   Math.pow(x, 2)
))Úcra   z8if (x < 1) {
   c = x;
}
else {
   c = Math.pow(x, 2);
}r   c                  ó"   •— t          ‰ ¦  «        S )Nr+   )Úexprs   €r2   ú<lambda>z'test_jscode_Piecewise.<locals>.<lambda>�   s   ø€ �v d™|œ|€ r1   )r   r/   r,   r   r$   Ú
ValueError)ÚpÚsrl   s     @r2   Útest_jscode_Piecewiserq   z   sÄ   ø€ Ý•a�˜Qš�Z¥! Q¡$¨ Ñ.Ô.€DÝˆt‰Œ€Aðð ð �Š6ˆ6ˆ6ˆ6Ý�$ #Ð&Ñ&Ô&ðò	ð 	ð 	ð 	õ •a�˜Qš�Z¥! Q¡$­¨Aª µµQ±´½¸Qº°Ñ@Ô@€DÝ
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ð,Ð,r1   c                  óŽ   — t          dt          t          t          dk     ft          dz  df¦  «        z  ¦  «        } d}| |k    sJ ‚d S )Nr:   r;   Tz.2*((x < 1) ? (
   x
)
: (
   Math.pow(x, 2)
)))r,   r   r/   )ro   rp   s     r2   Útest_jscode_Piecewise_deeprs   “   sK   € Ýˆq•�A�q 1šu˜:­¨1©¨d |Ñ4Ô4Ñ4Ñ5Ô5€Aðð ð �Š6ˆ6ˆ6ˆ6ˆ6ˆ6r1   c                  ó2   — t          t          d„ ¦  «         d S )Nc                  óH   — t          t          t          ¦  «        d¬¦  «        S )NÚgarbage)Úmethod)r,   r   r/   r0   r1   r2   rm   z&test_jscode_settings.<locals>.<lambda>¢   s   € �f¥S­¡V¤V°IÐ>Ñ>Ô>€ r1   )r$   Ú	TypeErrorr0   r1   r2   Útest_jscode_settingsry   ¡   s   € Ý
�9Ð>Ð>Ñ?Ô?Ð?Ð?Ð?r1   c                  ód  — t          dd¬¦  «        \  } }}t          d| ¦  «        t          d|¦  «        t          d|¦  «        }}}t          ¦   «         }t          ¦   «         |_        t          d¦  «        |         }|                     |¦  «        dk    sJ ‚t          d	¦  «        ||f         }|                     |¦  «        d
||z  |z   z  k    sJ ‚t          d¦  «        |||f         }	|                     |	¦  «        d||z  |z  ||z  z   |z   z  k    sJ ‚|j        t          ¦   «         k    sJ ‚d S )Nzn m oTr_   r]   ÚjÚkr/   zx[j]r\   zA[%s]ÚBzB[%s])r   r(   r%   ÚsetÚ_not_cr'   Ú_print_Indexed)
r^   ÚmÚor]   r{   r|   ro   r/   r\   r}   s
             r2   Útest_jscode_Indexedrƒ   ¥   s5  € Ý�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ÑÔ '¨Q¨q©S°©UÑ"3Ò3Ð3Ð3Ð3Ý�CÑÔ˜˜A˜q˜Ô!€AØ×Ò˜AÑÔ '¨Q¨q©S°©U°1°Q±3©Y°q©[Ñ"9Ò9Ð9Ð9Ð9àŒ8•s‘u”uÒÐÐÐÐÐr1   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 mTr_   r\   r/   r<   r]   r{   zˆfor (var i=0; i<m; i++){
   y[i] = 0;
}
for (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      y[i] = A[n*i + j]*x[j] + y[i];
   }
}ra   ©r   r'   r(   r,   )	r^   r�   r\   r/   r<   r]   r{   rp   rj   s	            r2   Útest_jscode_loops_matrix_vectorr‡   µ   sœ   € Ý�5 $Ð'Ñ'Ô'�D€A€qÝ�CÑÔ€AÝ�CÑÔ€AÝ�CÑÔ€AÝˆC�‰Œ€AÝˆC�‰Œ€Að	ð õ 	ˆq��A�Œw�q˜”t‰| q¨¤tÐ,Ñ,Ô,€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r1   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)r`   Úclsr/   r<   zlfor (var i_%(icount)i=0; i_%(icount)i<m_%(mcount)i; i_%(icount)i++){
   y[i_%(icount)i] = x[i_%(icount)i];
})ÚicountÚmcountra   )r   r   r'   r(   ÚlabelÚdummy_indexr,   )r]   r�   r/   r<   ÚexpectedÚcodes         r2   Útest_dummy_loopsr�   Ë   s•   € Ý�5 $­EÐ2Ñ2Ô2�D€A€qÝ�CÑÔ€AÝ�CÑÔ€AÝˆAˆq‰	Œ	€Að	ð ”7Ô&°!´-Ð@Ð@ñ	A€Hõ
 �!�A”$ ! A¤$Ð'Ñ'Ô'€DØ�8ÒÐÐÐÐÐr1   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…   Tr_   r\   r/   r<   rg   r]   r{   z’for (var i=0; i<m; i++){
   y[i] = x[i] + z[i];
}
for (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      y[i] = A[n*i + j]*x[j] + y[i];
   }
}ra   r†   )
r^   r�   r\   r/   r<   rg   r]   r{   rp   rj   s
             r2   Útest_jscode_loops_addr’   Ú   s»   € Ý�5 $Ð'Ñ'Ô'�D€A€qÝ�CÑÔ€AÝ�CÑÔ€AÝ�CÑÔ€AÝ�CÑÔ€AÝˆC�‰Œ€AÝˆC�‰Œ€Að	ð õ 	ˆq��A�Œw�q˜”t‰|˜a œdÑ" Q q¤TÑ)°Q°q´TÐ:Ñ:Ô:€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r1   c                  óâ  — t          dd¬¦  «        \  } }}}t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d|¦  «        }t          d| ¦  «        }t          d	|¦  «        }	t          d
|¦  «        }
d|| z  |z  |z  ||z  |z  z   |	|z  z   |
z   ›d||z  |z  |	|z  z   |
z   ›d�dz   }t          |||	|
f         ||||	|
f         z  ||         ¬¦  «        }||k    sJ ‚d S )Nún m o pTr_   ÚaÚbr<   r]   r{   r|   Úlz³for (var i=0; i<m; i++){
   y[i] = 0;
}
for (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      for (var k=0; k<o; k++){
         for (var l=0; l<p; l++){
            y[i] = a[z]*b[ú
] + y[i];
ú         }
      }
   }
}ra   r†   )r^   r�   r‚   ro   r•   r–   r<   r]   r{   r|   r—   rp   rj   s                r2   Ú'test_jscode_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ð 78¸±c¸!±e¸A±gÀÀ!ÁÀAÁ±oÈÈ!ÉÑ6KÈaÑ6OÐ6OÐ6OÐQRÐSTÑQTÐUVÑQVÐYZÐ[\ÑY\ÑQ\Ð_`ÑQ`ÐQ`ÐQ`ð	bð	ñ	ð õ 	ˆq��A�q�Œz˜!˜A˜q ! Q˜Jœ-Ñ'°1°Q´4Ð8Ñ8Ô8€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r1   c                  óV  — t          dd¬¦  «        \  } }}}t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d|¦  «        }t          d	| ¦  «        }	t          d
|¦  «        }
t          d|¦  «        }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   }t          |||	|
|f         |||	|
|f         z   ||	|
|f         z  ||         ¬¦  «        }||k    sJ ‚d S )Nr”   Tr_   r•   r–   rj   r<   r]   r{   r|   r—   z´for (var i=0; i<m; i++){
   y[i] = 0;
}
for (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      for (var k=0; k<o; k++){
         for (var l=0; l<p; l++){
            y[i] = (a[z] + b[z])*c[r˜   r™   ra   r†   )r^   r�   r‚   ro   r•   r–   rj   r<   r]   r{   r|   r—   rp   s                r2   Útest_jscode_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€Að ABÀ!ÁÀAÁÀaÁÈ!ÈAÉ#ÈaÉ%ÁÐRSÐTUÑRUÑ@UÐXYÑ@YÐ@YÐ@YÐ[\Ð]^Ñ[^Ð_`Ñ[`ÐabÑ[bÐefÐghÑehÐijÑejÑ[jÐmnÐopÑmpÑ[pÐstÑ[tÐ[tÐ[tÐvwÐxyÑvyÐz{Ñv{Ð~ð  ABñ  Bñ  wBð  EFñ  wFð  wFð  wFð	Gð	ñ	ð õ 	��!�Q˜˜1�*”  ! Q¨¨1 *¤Ñ-¨q°°A°q°¬zÑ9ÀQÀqÄTÐJÑJÔJ€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r1   c                  óT  — t          dd¬¦  «        \  } }}}t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d|¦  «        }t          d	| ¦  «        }	t          d
|¦  «        }
d}d|| z  |z  |	|z  z   |
z   z  dz   }d||z  |
z   z  dz   }d|| z  |	z   z  dz   }t          ||	         |||	f         z  ||
         |||
f         z  z   ||	         ||
         z  |||	|
f         z  z   ||         ¬¦  «        }|||z   |z   |d d…         z   k    su|||z   |z   |d d…         z   k    s`|||z   |z   |d d…         z   k    sK|||z   |z   |d d…         z   k    s6|||z   |z   |d d…         z   k    s!|||z   |z   |d d…         z   k    sJ ‚d S d S d S d S d S d S )Nr”   Tr_   r•   r–   rj   r<   r]   r{   r|   z(for (var i=0; i<m; i++){
   y[i] = 0;
}
z|for (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      for (var k=0; k<o; k++){
         y[i] = b[j]*b[k]*c[%s] + y[i];
z      }
   }
}
zUfor (var i=0; i<m; i++){
   for (var k=0; k<o; k++){
      y[i] = a[%s]*b[k] + y[i];
z   }
}
zUfor (var i=0; i<m; i++){
   for (var j=0; j<n; j++){
      y[i] = a[%s]*b[j] + y[i];
ra   rW   r†   )r^   r�   r‚   ro   r•   r–   rj   r<   r]   r{   r|   Ús0Ús1Ús2Ús3s                  r2   Ú test_jscode_loops_multiple_termsr¢   *  sO  € Ý˜¨DÐ1Ñ1Ô1�J€A€qˆ!ˆQÝ�CÑÔ€AÝ�CÑÔ€AÝ�CÑÔ€AÝ�CÑÔ€AÝˆC�‰Œ€AÝˆC�‰Œ€AÝˆC�‰Œ€Að	ð ð	4ð 89¸±s¸1±u¸qÀ¹s±{ÀQ±ñ	Hð	ñ		ð ð	,à/0°©s°Q©wñ	8ð	ñ	ð ð	,à/0°©s°Q©wñ	8ð	ñ	ð õ 	Ø	ˆ!ŒˆQˆq�!ˆtŒW‰�q˜”t˜A˜a ˜dœG‘|Ñ# a¨¤d¨1¨Q¬4¡i°°!°Q¸°'´
Ñ&:Ñ:ÀaÈÄdð	Lñ 	Lô 	L€Aà��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ø��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ø��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ø��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ø��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ø��b‘˜2‘  3 B 3¤Ñ'Ò'Ð'Ð'ð(Ð'Ð'Ø'Ð'Ø'Ð'Ø'Ð'Ø'Ð'Ø'Ð'r1   c            	      ó2  — 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 )Nr:   r   Tr\   r5   r;   zUA[0] = x*y;
if (y > 0) {
   A[1] = x + 2;
}
else {
   A[1] = y;
}
A[2] = Math.sin(z);)r:   r   )r;   r   ©r   r   z?((x > 0) ? (
   2*A[2]
)
: (
   A[2]
)) + Math.sin(A[1]) + A[0]Úqé   ÚM)r5   r   )é   r   r¨   zœM[0] = Math.sin(q[1]);
M[1] = 0;
M[2] = Math.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] = Math.sqrt(q[0]) + 4;
M[8] = 0;)
r)   r/   r<   r   r   rg   r*   r,   r   r   )Úmatr\   rl   r¥   r§   r�   s         r2   Útest_Matrix_printingrª   Z  sœ  € å
•!•A‘#•y !¥a¡%­¨1ª µ°4¨yÑ9Ô9½3½q¹6¼6ÐBÑ
CÔ
C€CÝ�S˜!˜QÑÔ€AÝ�#�q‰>Œ>ð	òð ð ð õ �a˜˜$œ‘i¥ Q¢Ð'¨!¨D¬'°4¨Ñ9Ô9½CÀÀ$Ä¹L¼LÑHÈ1ÈTÌ7ÑR€DÝ�$‰<Œ<ð	%ò&ð &ð &ð &õ 	�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õ �!�Q‰<Œ<ð	ò	ð 	ð 	ð 	ð 	ð 	r1   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 )
Nr\   r;   r5   r}   ÚCr¤   zA[0]z3*A[0]z
(A - B)[0])r*   r,   Úsubs)r\   r}   r¬   ÚFs       r2   Útest_MatrixElement_printingr¯   ‚  s©   € å�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€Aå�!�D”'‰?Œ?˜fÒ$Ð$Ð$Ð$Ý�!�a˜”g‘+ÑÔ (Ò*Ð*Ð*Ð*à	ˆ$Œ�Š�Q˜˜A™ÑÔ€AÝ�!‰9Œ9˜Ò$Ð$Ð$Ð$Ð$Ð$r1   N)LÚ
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   r   r   r    r!   r"   r#   Úsympy.testing.pytestr$   Úsympy.printing.jscoder%   Úsympy.utilities.lambdifyr&   Úsympy.tensorr'   r(   Úsympy.matricesr)   r*   r,   r/   r<   rg   r3   r7   r=   r?   rC   rK   rM   rS   rX   rZ   rc   re   rh   rq   rs   ry   rƒ   r‡   r�   r’   rš   rœ   r¢   rª   r¯   r0   r1   r2   ú<module>r·      s²  ðð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ðLð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Là 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à (Ð (Ð (Ð (Ð (Ð (à
ˆ'�'Ñ
Ô
�€€1€að+ð +ð +ð2ð 2ð 2ð$ð $ð $ð5ð 5ð 5ðUð Uð Uð-ð -ð -ð(ð (ð (ð2ð 2ð 2ð'ð 'ð 'ð
Eð Eð Eðð ð ð +ð +ð +ð
2ð 2ð 2ð-ð -ð -ð2ð ð ð@ð @ð @ðð ð ð ð ð ð,ð ð ðð ð ð.ð ð ð8ð ð ð:-)ð -)ð -)ð`%ð %ð %ðP
&ð 
&ð 
&ð 
&ð 
&r1   