Ë
    7^(h6+  ã                   óŠ  — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZ d dlmZmZmZ d dlm Z  d dl!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=  e=d«      Z>e>rJe>j~                  j�                  e>j~                  jƒ                  g «      j„                  «      ZCeCjˆ                  ZEd„ ZFd„ ZGd„ ZHd„ ZId„ ZJd„ ZKd„ ZLd„ ZMd„ ZNd„ ZOd „ ZPd!„ ZQd"„ ZRd#„ ZSd$„ ZTd%„ ZUd&„ ZVd'„ ZWd(„ ZXd)„ ZYd*„ ZZd+„ Z[d,„ Z\d-„ Z]d.„ Z^y/)0é    )ÚSum)ÚMod)ÚEqualityÚ
Unequality)Úsqrt)Ú	Piecewise)ÚBlockMatrix)ÚMatrixSymbol)ÚIdentity)Úlambdify)ÚxÚiÚjÚaÚbÚcÚd)ÚFunctionÚPowÚSymbol)ÚMatrixSolve)Ú	logaddexpÚ
logaddexp2)Úlog1pÚexpm1ÚhypotÚlog10Úexp2Úlog2ÚSqrt)ÚArray)ÚArrayTensorProductÚArrayAddÚPermuteDimsÚArrayDiagonal)Ú
JaxPrinterÚ_jax_known_constantsÚ_jax_known_functions)Úconvert_matrix_to_array)ÚskipÚraises)Úimport_moduleÚjaxc                  ó˜   — t        «       } t        dt        dk  fd«      }| j                  |«      dk(  sJ ‚| j                  dh d£ik(  sJ ‚y)zÊ
    NumPyPrinter needs to print Piecewise()'s choicelist as a list to avoid
    breaking compatibility with numpy 1.8. This is not necessary in numpy 1.9+.
    See gh-9747 and gh-9749 for details.
    é   r   )r   TzKjax.numpy.select([jax.numpy.less(x, 0),True], [1,0], default=jax.numpy.nan)z	jax.numpy>   ÚnanÚlessÚselectN)r&   r   r   ÚdoprintÚmodule_imports)ÚprinterÚps     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/tests/test_jax.pyÚtest_jax_piecewise_regressionr8   (   sZ   € ô ‹l€GÜ�1”a˜!‘e�*˜iÓ(€AØ�?‰?˜1ÓØUòVð Vð Và×!Ñ! kÒ3LÐ%MÒMÐMÑMó    c                  óÌ   — t        t        t        «      } t        «       j	                  | «      dk(  sJ ‚t        t        t        «      }t        «       j	                  |«      dk(  sJ ‚y )Nzjax.numpy.logaddexp(a, b)zjax.numpy.logaddexp2(a, b))r   r   r   r&   r3   r   )ÚlaeÚlae2s     r7   Útest_jax_logaddexpr=   5   sQ   € Ü
”A”q‹/€CÜ‹<×Ñ Ó$Ð(CÒCÐCÐCÜ”aœÓ€DÜ‹<×Ñ Ó%Ð)EÒEÐEÑEr9   c                  óì  ‡— t         st        d«       t        t        t        z  t        t
        t        f«      } t        t
        t        t        f| d«      }d\  }}t         j                  j                  ddd«      Št         j                  j                   |||‰«      t        ˆfd„t        ||dz   «      D «       «      «      sJ ‚t        t        t        z  t        t
        t        f«      } t        t
        t        t        f| d«      }d\  }}t         j                  j                  ddd«      Št         j                  j                   |||‰«      t        ˆfd„t        ||dz   «      D «       «      «      sJ ‚y )	NúJAX not installedr-   ©r   é
   éÿÿÿÿr/   rA   c              3   ó(   •K  — | ]	  }‰|z  –— Œ y ­w©N© ©Ú.0Úi_Úx_s     €r7   ú	<genexpr>ztest_jax_sum.<locals>.<genexpr>E   s   øè ø€ Ò0V¸b°°rµÑ0Vùó   ƒc              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­wrD   rE   rF   s     €r7   rJ   ztest_jax_sum.<locals>.<genexpr>L   s   øè ø€ Ò0U¸R°°bµÑ0UùrK   )r-   r*   r   r   r   r   r   r   ÚnumpyÚlinspaceÚallcloseÚsumÚrange)ÚsÚfÚa_Úb_rI   s       @r7   Útest_jax_sumrV   <   s  ø€ ÝÜÐ Ô!äŒA”‰F”Qœœ1�IÓ€AÜ”!”Qœ�˜A˜uÓ%€Aà�F€BˆÜ	�‰×	Ñ	˜B  BÓ	'€BÜ�9‰9×Ñ™a  B¨›m¬SÓ0VÄEÈ"ÈbÐSTÉfÓDUÔ0VÓ-VÔWÐWÐWäŒA”‰E”A”qœ!�9Ó€AÜ”!”Qœ�˜A˜uÓ%€Aà�F€BˆÜ	�‰×	Ñ	˜B  BÓ	'€BÜ�9‰9×Ñ™a  B¨›m¬SÓ0UÄ5ÈÈRÐRSÉVÓCTÔ0UÓ-UÔVÐVÑVr9   c                  óâ  ‡‡‡— t         st        d«       t        t        t        z   t
        z  t
        t        t        ft        t        t        f«      } t        t        t        t        t        t        f| d«      }d\  }}d\  ŠŠt         j                  j                  ddd«      Št         j                  j                   |||‰‰‰«      t        ˆˆˆfd„t        ||dz   «      D «       «      «      sJ ‚y )	Nr?   r-   r@   )é   é   rB   r/   rA   c              3   óV   •K  — | ]   }t        ‰‰d z   «      D ]  }‰|z   |z  –— Œ Œ" y­w)r/   N)rQ   )rG   rH   Új_Úc_Úd_rI   s      €€€r7   rJ   z)test_jax_multiple_sums.<locals>.<genexpr>Z   s5   øè ø€ Òb¨bÔPUÐVXÐZ\Ð_`ÑZ`ÓPaÒbÈ"˜B ™G r�>Ðb˜>Ñbùs   ƒ&))r-   r*   r   r   r   r   r   r   r   r   r   rM   rN   rO   rP   rQ   )rR   rS   rT   rU   r\   r]   rI   s       @@@r7   Útest_jax_multiple_sumsr^   O   sº   ú€ ÝÜÐ Ô!äŒQ”‰U”a‰Kœ!œQ¤˜¤Q¬¬1 IÓ.€AÜ”!”Qœœ1œa� ! UÓ+€Aà�F€BˆØ�F€BˆÜ	�‰×	Ñ	˜B  BÓ	'€BÜ�9‰9×Ñ™a  B¨¨B°Ó3ÜÕb´E¸"¸bÀ1¹fÓ4EÔbÓbôdð dñ dr9   c                  óœ  — t         st        d«       t        ddd«      } t        ddd«      }t        | |z  «      }t	        | |f|d«      }t         j
                  j                  ddgddgg«      }t         j
                  j                  dd	gd
dgg«      } |||«      t         j
                  j                  ||«      k(  j                  «       sJ ‚y )Nr?   ÚMé   ÚNr-   r/   é   é   éþÿÿÿrB   )	r-   r*   r
   r)   r   rM   ÚarrayÚmatmulÚall)r`   rb   ÚcgrS   ÚmaÚmbs         r7   Útest_jax_codegen_einsumrl   ]   s¶   € ÝÜÐ Ô!ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€Aä	   Q¡Ó	'€BÜ�!�Q�˜˜UÓ#€Aä	�‰�‰˜1˜a˜& 1 a &Ð)Ó	*€BÜ	�‰�‰˜1˜R˜& 2 q 'Ð*Ó	+€BÙˆb�"‹IœŸ™×)Ñ)¨"¨bÓ1Ñ1×6Ñ6Ô8Ð8Ñ8r9   c            
      ó‚  — t         st        d«       t        ddd«      } t        ddd«      }t        ddd«      }t        ddd«      }t         j                  j	                  ddgdd	gg«      }t         j                  j	                  dd
gddgg«      }t         j                  j	                  ddgddgg«      }t         j                  j	                  ddgd	dgg«      }t        | |«      }t        | |f|d«      }	 |	||«      t         j                  j                  |ddg|ddg«      k(  j                  «       sJ ‚t        | |«      }t        | |f|d«      }	 |	||«      ||z   k(  j                  «       sJ ‚t        | ||«      }t        | ||f|d«      }	 |	|||«      ||z   |z   k(  j                  «       sJ ‚t        | |||«      }t        | |||f|d«      }	 |	||||«      ||z   |z   |z   k(  j                  «       sJ ‚t        | ddg«      }t        | f|d«      }	 |	|«      |j                  k(  j                  «       sJ ‚t        t        | |«      g d¢«      }t        | |f|d«      }	 |	||«      t         j                  j                  t         j                  j                  |ddg|ddg«      d«      k(  j                  «       sJ ‚t        t        | |«      d«      }t        | |f|d«      }	 |	||«      t         j                  j                  t         j                  j                  |ddg|ddg«      dd¬«      k(  j                  «       sJ ‚y )Nr?   r`   ra   rb   ÚPÚQr/   rc   rd   re   rB   r   é   r-   )r/   ra   rc   r   ©r/   ra   )Úaxis1Úaxis2)r-   r*   r
   rM   rf   r"   r   Úeinsumrh   r#   r$   ÚTÚ	transposer%   Údiagonal)
r`   rb   rn   ro   rj   rk   ÚmcÚmdri   rS   s
             r7   Útest_jax_codegen_extrarz   l   s  € ÝÜÐ Ô!ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ	�‰�‰˜1˜a˜& 1 a &Ð)Ó	*€BÜ	�‰�‰˜1˜R˜& 2 q 'Ð*Ó	+€BÜ	�‰�‰˜1˜a˜& 1 a &Ð)Ó	*€BÜ	�‰�‰˜1˜R˜& 1 a &Ð)Ó	*€Bä	˜A˜qÓ	!€BÜ�!�Q�˜˜UÓ#€AÙˆb�"‹IœŸ™×)Ñ)¨"¨q°!¨f°b¸1¸a¸&ÓAÑA×FÑFÔHÐHÐHä	�!�Q‹€BÜ�!�Q�˜˜UÓ#€AÙˆb�"‹I˜˜B™Ñ×#Ñ#Ô%Ð%Ð%ä	�!�Q˜Ó	€BÜ�!�Q˜�˜B Ó&€AÙˆb�"�b‹M˜R ™U 2™XÑ%×*Ñ*Ô,Ð,Ð,ä	�!�Q˜˜1Ó	€BÜ�!�Q˜˜1�˜r 5Ó)€AÙˆb�"�b˜"Ó  B¡ r¡¨"¡Ñ,×1Ñ1Ô3Ð3Ð3ä	�Q˜˜A˜Ó	€BÜ�!��r˜5Ó!€AÙˆb‹E�R—T‘T‰M×ÑÔ Ð Ð ä	Ô'¨¨1Ó-ª|Ó	<€BÜ�!�Q�˜˜UÓ#€AÙˆb�"‹IœŸ™×,Ñ,¬S¯Y©Y×-=Ñ-=¸bÀ1ÀaÀ&È"ÈqÐRSÈfÓ-UÐWcÓdÑd×iÑiÔkÐkÐkä	Ô)¨!¨QÓ/°Ó	8€BÜ�!�Q�˜˜UÓ#€AÙˆb�"‹IœŸ™×+Ñ+¬C¯I©I×,<Ñ,<¸RÀ!ÀQÀÈÈaÐQRÈVÓ,TÐ\]ÐefÐ+ÓgÑg×lÑlÔnÐnÑnr9   c                  óÊ  — t         st        d«       t        t        d«      } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚t        t        d«      } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚t        dk  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚t        dk  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚t        dkD  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d	¢«      sJ ‚t        dk\  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d
¢«      sJ ‚t        dk\  t        dk  z  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚t        dk\  t        dk  z  } t	        t        f| d«      }t         j
                  j                  g d¢«      }t         j
                  j                   ||«      g d¢«      sJ ‚y )Nr?   r/   r-   )r   r/   ra   )FTF)TFT)TFF)TTF)FFT)FTTra   )TTT)	r-   r*   r   r   r   rM   rf   Úarray_equalr   )ÚerS   rI   s      r7   Útest_jax_relationalr~   –   sw  € ÝÜÐ Ô!ä”�A‹€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(<Ô=Ð=Ð=ä”1�aÓ€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(;Ô<Ð<Ð<ä	
ˆQ‰€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(<Ô=Ð=Ð=ä	
ˆa‰€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(;Ô<Ð<Ð<ä	
ˆQ‰€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(<Ô=Ð=Ð=ä	
ˆa‰€Aä”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(;Ô<Ð<Ð<ô 
ˆa‰”A˜‘EÑ€AÜ”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(<Ô=Ð=Ð=ä	
ˆa‰”A˜‘EÑ€AÜ”!��q˜%Ó €AÜ	�‰�‰šÓ	#€BÜ�9‰9× Ñ ¡ 2£Ò(:Ô;Ð;Ñ;r9   c                  óÌ  — t         st        d«       t        t        t        «      } t        t        t        f| d«      }t         j                  j                  g d¢«      }d}t         j                  j                   |||«      g d¢«      sJ ‚t         j                  j                  g d¢«      }t         j                  j                  g d¢«      }t         j                  j                   |||«      g d¢«      sJ ‚t         j                  j                  g d¢«      }t         j                  j                  g d¢«      }t         j                  j                   |||«      g d¢«      sJ ‚y )	Nr?   r-   )r   r/   ra   rc   ra   )r   r/   r   r/   )ra   ra   ra   ra   )ra   rc   rd   é   )r   r   r   r   )	r-   r*   r   r   r   r   rM   rf   r|   )r}   rS   rT   rU   s       r7   Útest_jax_modr�   É   sê   € ÝÜÐ Ô!äŒAŒq‹	€AÜ”!”Q�˜˜EÓ"€Aä	�‰�‰šÓ	&€BØ	
€BÜ�9‰9× Ñ ¡ 2 r£ªLÔ9Ð9Ð9ä	�‰�‰šÓ	&€BÜ	�‰�‰šÓ	&€BÜ�9‰9× Ñ ¡ 2 r£ªLÔ9Ð9Ð9ä	�‰�‰šÓ	&€BÜ	�‰�‰šÓ	&€BÜ�9‰9× Ñ ¡ 2 r£ªLÔ9Ð9Ñ9r9   c                  ót   — t         st        d«       t        ddd¬«      } t        g | d«      } |«       dk(  sJ ‚y )Nr?   ra   rB   F)Úevaluater-   g      à?)r-   r*   r   r   )ÚexprrS   s     r7   Útest_jax_powr…   Ý   s8   € ÝÜÐ Ô!äˆq�"˜uÔ%€DÜ��T˜5Ó!€AÙ‹3�#Š:Ð‰:r9   c                  óª   — t         st        d«       t        t        ft	        t        «      d«      } t         | d«      dz
  dz
  «      dt        z  k  sJ ‚y )Nr?   r-   g»½×Ùß|Û=g#B’¡œ·;)r-   r*   r   r   r   ÚabsÚJAX_DEFAULT_EPSILON©rS   s    r7   Útest_jax_expm1rŠ   æ   sI   € ÝÜÐ Ô!ä”!�”uœQ“x Ó'€AÜ‰q�‹x˜%Ñ %Ñ'Ó(¨EÔ4GÑ,GÒGÐGÑGr9   c                  ó¤   — t         st        d«       t        t        ft	        t        «      d«      } t         | d«      dz
  «      dt        z  k  sJ ‚y )Nr?   r-   g>ÃØN}a+)r-   r*   r   r   r   r‡   rˆ   r‰   s    r7   Útest_jax_log1prŒ   î   sD   € ÝÜÐ Ô!ä”!�”uœQ“x Ó'€AÜ‰q�‹x˜%ÑÓ  EÔ,?Ñ$?Ò?Ð?Ñ?r9   c            
      ó°   — t         st        d«       t         t        t        t
        ft        t        t
        «      d«      dd«      dz
  «      t        k  sJ ‚y )Nr?   r-   rc   rd   r€   )r-   r*   r‡   r   r   r   r   rˆ   rE   r9   r7   Útest_jax_hypotrŽ   õ   sD   € ÝÜÐ Ô!ÜÐ3ŒxœœA˜¤¤a¬£¨UÓ3°A°qÓ9¸AÑ=Ó>ÔBUÒUÐUÑUr9   c            	      óš   — t         st        d«       t         t        t        ft        t        «      d«      d«      dz
  «      t        k  sJ ‚y )Nr?   r-   éd   ra   )r-   r*   r‡   r   r   r   rˆ   rE   r9   r7   Útest_jax_log10r‘   ú   s>   € ÝÜÐ Ô!äÐ.Œxœ˜œe¤A›h¨Ó.¨sÓ3°aÑ7Ó8Ô<OÒOÐOÑOr9   c            	      óš   — t         st        d«       t         t        t        ft        t        «      d«      d«      dz
  «      t        k  sJ ‚y )Nr?   r-   r€   é    )r-   r*   r‡   r   r   r   rˆ   rE   r9   r7   Útest_jax_exp2r”     s>   € ÝÜÐ Ô!ÜÐ-Œxœ˜œd¤1›g uÓ-¨aÓ0°2Ñ5Ó6Ô:MÒMÐMÑMr9   c            	      óš   — t         st        d«       t         t        t        ft        t        «      d«      d«      dz
  «      t        k  sJ ‚y )Nr?   r-   é   é   )r-   r*   r‡   r   r   r   rˆ   rE   r9   r7   Útest_jax_log2r˜     s>   € ÝÜÐ Ô!ÜÐ-Œxœ˜œd¤1›g uÓ-¨cÓ2°QÑ6Ó7Ô;NÒNÐNÑNr9   c            	      óš   — t         st        d«       t         t        t        ft        t        «      d«      d«      dz
  «      t        k  sJ ‚y ©Nr?   r-   rd   ra   )r-   r*   r‡   r   r   r    rˆ   rE   r9   r7   Útest_jax_Sqrtr›     ó>   € ÝÜÐ Ô!ÜÐ-Œxœ˜œd¤1›g uÓ-¨aÓ0°1Ñ4Ó5Ô9LÒLÐLÑLr9   c            	      óš   — t         st        d«       t         t        t        ft        t        «      d«      d«      dz
  «      t        k  sJ ‚y rš   )r-   r*   r‡   r   r   r   rˆ   rE   r9   r7   Útest_jax_sqrtrž     rœ   r9   c                  ó  — t         st        d«       t        ddd«      } t        ddd«      }| dz  |z  |z   }t        | |«      |z   }t	        | |f|d«      }t	        | |f|d«      }t         j
                  j                  g d¢g d	¢g d
¢g«      }t         j
                  j                  j                  |«      dk(  sJ ‚t         j
                  j                  g d¢«      }t         j
                  j                   |||«       |||«      «      sJ ‚y )Nr?   r`   rc   r   r/   rB   r-   )r/   ra   rc   )rc   ra   r€   )r€   é   rp   )rc   rd   r€   )
r-   r*   r
   r   r   rM   rf   ÚlinalgÚmatrix_rankrO   )r`   r   r„   Úmatsolve_exprrS   Ú
f_matsolveÚm0Úx0s           r7   Útest_jax_matsolver§     så   € ÝÜÐ Ô!ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€Aàˆr‰7�Q‰;˜‰?€DÜ  1Ó%¨Ñ)€Mä�!�Q�˜˜uÓ%€AÜ˜1˜a˜& -°Ó7€Jä	�‰�‰š)¢Y²	Ð:Ó	;€BÜ�9‰9×Ñ×'Ñ'¨Ó+¨qÒ0Ð0Ð0ä	�‰�‰šÓ	#€Bä�9‰9×Ñ™j¨¨RÓ0±!°B¸³)Ô<Ð<Ñ<r9   c                  ó  — t         st        d«       t        ddd«      } t        ddd«      }t        ddd«      }t        ddd«      }t        | |g||gg«      }|j                  dk(  sJ ‚t        «       }|j                  |«      d	k(  sJ ‚y )
Nr?   Úa_1rA   rc   Úa_2Úa_3Úa_4)é   r    z)jax.numpy.block([[a_1, a_2], [a_3, a_4]]))r-   r*   r
   r	   Úshaper&   r3   )r©   rª   r«   r¬   ÚAr5   s         r7   Ú
test_16857r°   .  sŽ   € ÝÜÐ Ô!ä
�u˜b !Ó
$€CÜ
�u˜b !Ó
$€CÜ
�u˜b !Ó
$€CÜ
�u˜b !Ó
$€CÜ�c˜3�Z # s Ð,Ó-€AØ�7‰7�gÒÐÐä‹l€GØ�?‰?˜1ÓÐ!LÒLÐLÑLr9   c                  ó¢  ‡‡— t         st        d«       t        ddd«      } t        | | t	        d«      z   d«      }t         j
                  j                  ddgddgg«      }t         j
                  j                  ddgddgg«      } ||«      |k(  j                  «       sJ ‚d	d
lm	}  |dd¬«      Št        d‰‰«      Št        t        ˆˆfd„«       y )Nr?   r`   ra   r-   r/   rc   rd   r€   r   )ÚsymbolsÚnT)Úintegerc                  ó6   •— t        ‰ ‰ t        ‰«      z   d«      S )Nr-   )r   r   )rb   r³   s   €€r7   ú<lambda>z"test_issue_17006.<locals>.<lambda>L  s   ø€ ¬°°A¼À»±OÀUÓ(K€ r9   )r-   r*   r
   r   r   rM   rf   rh   Úsympy.core.symbolr²   r+   ÚNotImplementedError)r`   rS   rj   Úmrr²   rb   r³   s        @@r7   Útest_issue_17006rº   =  s´   ù€ ÝÜÐ Ô!ä�S˜!˜QÓ€Aä��Aœ ›‘O UÓ+€AÜ	�‰�‰˜1˜a˜& 1 a &Ð)Ó	*€BÜ	�‰�‰˜1˜a˜& 1 a &Ð)Ó	*€Báˆb‹E�R‰K×ÑÔÐÐå)Ù�˜TÔ"€AÜ�S˜!˜QÓ€AÜ
ÔÔ KÕLr9   c                  ó    — t        «       j                  t        d«      «      dk(  sJ ‚t        «       j                  t        d«      «      dk(  sJ ‚y )N)rq   )rc   r€   z!jax.numpy.array([[1, 2], [3, 5]])rq   zjax.numpy.array([1, 2]))r&   r3   r!   rE   r9   r7   Útest_jax_arrayr¼   O  sD   € Ü‹<×Ñ¤Ð&6Ó 7Ó8Ð<_Ò_Ð_Ð_Ü‹<×Ñ¤ f£Ó.Ð2KÒKÐKÑKr9   c                  ót   — t         d   dk(  sJ ‚t         d   dk(  sJ ‚t        d   dk(  sJ ‚t        d   dk(  sJ ‚y )	NÚNaNzjax.numpy.nanÚ
EulerGammazjax.numpy.euler_gammaÚacoszjax.numpy.arccosÚlogzjax.numpy.log)r'   r(   rE   r9   r7   Útest_jax_known_funcs_constsrÂ   T  sP   € Ü Ñ&¨/Ò9Ð9Ð9Ü Ñ-Ð1HÒHÐHÐHä Ñ'Ð+=Ò=Ð=Ð=Ü Ñ&¨/Ò9Ð9Ñ9r9   c                  óP   — t        «       } t        | d«      sJ ‚t        | d«      sJ ‚y )NÚ_print_acosÚ
_print_log)r&   Úhasattr)Úprntrs    r7   Útest_jax_print_methodsrÈ   \  s)   € Ü‹L€EÜ�5˜-Ô(Ð(Ð(Ü�5˜,Ô'Ð'Ñ'r9   c                  óV   — t        «       } t        | d«      sJ ‚| j                  dk(  sJ ‚y )NÚprintmethodÚ_jaxcode)r&   rÆ   rÊ   )r5   s    r7   Útest_jax_printmethodrÌ   b  s-   € Ü‹l€GÜ�7˜MÔ*Ð*Ð*Ø×Ñ *Ò,Ð,Ñ,r9   c                  ó€   —  G d„ dt         «      } t        «       }|j                   | t        d«      «      «      dk(  sJ ‚y )Nc                   ó   — e Zd Zd„ Zy)ú+test_jax_custom_print_method.<locals>.expm1c                 óŠ   — | j                   \  }d|j                  |«      › d�}|j                  |j                  dz   |z   «      S )Nzexpm1(ú)ú.)ÚargsÚ_printÚ_module_formatÚ_module)Úselfr5   r   Úfunctions       r7   rË   z4test_jax_custom_print_method.<locals>.expm1._jaxcodel  sD   € Ø—‘‰BˆAØ §¡¨qÓ 1Ð2°!Ð4ˆHØ×)Ñ)¨'¯/©/¸CÑ*?À(Ñ*JÓKÐKr9   N)Ú__name__Ú
__module__Ú__qualname__rË   rE   r9   r7   r   rÏ   j  s   „ ó	Lr9   r   r   zjax.numpy.expm1(x))r   r&   r3   r   )r   r5   s     r7   Útest_jax_custom_print_methodrÜ   h  s:   € ôL”ô Lô ‹l€GØ�?‰?™5¤¨£Ó-Ó.Ð2FÒFÐFÑFr9   N)_Úsympy.concrete.summationsr   Úsympy.core.modr   Úsympy.core.relationalr   r   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú&sympy.matrices.expressions.blockmatrixr	   Ú"sympy.matrices.expressions.matexprr
   Ú"sympy.matrices.expressions.specialr   Úsympy.utilities.lambdifyr   Ú	sympy.abcr   r   r   r   r   r   r   Ú
sympy.corer   r   r   Úsympy.codegen.matrix_nodesr   Úsympy.codegen.numpy_nodesr   r   Úsympy.codegen.cfunctionsr   r   r   r   r   r   r    Úsympy.tensor.arrayr!   Ú0sympy.tensor.array.expressions.array_expressionsr"   r#   r$   r%   Úsympy.printing.numpyr&   r'   r(   Ú3sympy.tensor.array.expressions.from_matrix_to_arrayr)   Úsympy.testing.pytestr*   r+   Úsympy.externalr,   r-   rM   Úfinforf   ÚdtypeÚdeafult_float_infoÚepsrˆ   r8   r=   rV   r^   rl   rz   r~   r�   r…   rŠ   rŒ   rŽ   r‘   r”   r˜   r›   rž   r§   r°   rº   r¼   rÂ   rÈ   rÌ   rÜ   rE   r9   r7   ú<module>rõ      s+  ðÝ )Ý ß 8Ý 9Ý :Ý >Ý ;Ý 7Ý -ç )× )Ñ )ß ,Ñ ,Ý 2ß ;ß Q× QÑ QÝ $÷ó ç WÑ WÝ Wç -Ý (ñ �EÓ€áØŸ™Ÿ™¨¯©¯©¸Ó)<×)BÑ)BÓCÐØ,×0Ñ0Ðò
NòFòWò&dò9ò'oòT1<òf:ò(òHò@òVò
PòNòOòMòMò=ò*MòMò$Lò
:ò(ò-ó
Gr9   