§
    OŠtj6+  ã                   óz  — 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>r>e>j?         @                    e>j?         A                    g ¦  «        jB        ¦  «        ZCeCjD        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^d/S )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¦  «        }|                      |¦  «        dk    sJ ‚| j        dh d£ik    sJ ‚dS )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/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_jax.pyÚtest_jax_piecewise_regressionr8   (   st   € õ ‰lŒl€GÝ�1•a˜!’e�*˜iÑ(Ô(€AØ�?Š?˜1ÑÔØUòVð Vð Vð VàÔ! kÐ3LÐ3LÐ3LÐ%MÒMÐMÐMÐMÐMÐMó    c                  ó
  — t          t          t          ¦  «        } t          ¦   «                              | ¦  «        dk    sJ ‚t          t          t          ¦  «        }t          ¦   «                              |¦  «        dk    sJ ‚d S )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   sl   € Ý
•A•q‰/Œ/€CÝ‰<Œ<×Ò Ñ$Ô$Ð(CÒCÐCÐCÐCÝ•a�ÑÔ€DÝ‰<Œ<×Ò Ñ%Ô%Ð)EÒEÐEÐEÐEÐEÐEr9   c                  óp  ‡— t           st          d¦  «         t          t          t          z  t          t
          t          f¦  «        } t          t
          t          t          f| d¦  «        }d\  }}t           j         	                    ddd¦  «        Št           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         	                    ddd¦  «        Št           j         
                     |||‰¦  «        t          ˆfd„t          ||dz   ¦  «        D ¦   «         ¦  «        ¦  «        sJ ‚d S )	NúJAX not installedr-   ©r   é
   éÿÿÿÿr/   rA   c              3   ó"   •K  — | ]	}‰|z  V — Œ
d S ©N© ©Ú.0Úi_Úx_s     €r7   ú	<genexpr>ztest_jax_sum.<locals>.<genexpr>E   s'   øè è € Ð0VÐ0V¸b°°r±Ð0VÐ0VÐ0VÐ0VÐ0VÐ0Vr9   c              3   ó"   •K  — | ]	}|‰z  V — Œ
d S rD   rE   rF   s     €r7   rJ   ztest_jax_sum.<locals>.<genexpr>L   s'   øè è € Ð0UÐ0U¸R°°b±Ð0UÐ0UÐ0UÐ0UÐ0UÐ0Ur9   )r-   r*   r   r   r   r   r   r   ÚnumpyÚlinspaceÚallcloseÚsumÚrange)ÚsÚfÚa_Úb_rI   s       @r7   Útest_jax_sumrU   <   sp  ø€ Ýð "ÝÐ Ñ!Ô!Ð!å�A•‰F•Q��1�IÑÔ€AÝ•!•Q��˜A˜uÑ%Ô%€Aà�F€BˆÝ	Œ×	Ò	˜B  BÑ	'Ô	'€BÝŒ9×Ò˜a˜a  B¨™mœm­SÐ0VÐ0VÐ0VÐ0VÅEÈ"ÈbÐSTÉfÑDUÔDUÐ0VÑ0VÔ0VÑ-VÔ-VÑWÔWÐWÐWÐWå�A•‰E•A•q�!�9ÑÔ€AÝ•!•Q��˜A˜uÑ%Ô%€Aà�F€BˆÝ	Œ×	Ò	˜B  BÑ	'Ô	'€BÝŒ9×Ò˜a˜a  B¨™mœm­SÐ0UÐ0UÐ0UÐ0UÅ5ÈÈRÐRSÉVÑCTÔCTÐ0UÑ0UÔ0UÑ-UÔ-UÑVÔVÐVÐVÐVÐVÐVr9   c                  ó6  ‡‡‡— 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                             ddd¦  «        Št           j                              |||‰‰‰¦  «        t          ˆˆˆfd„t          ||dz   ¦  «        D ¦   «         ¦  «        ¦  «        sJ ‚d S )	Nr?   r-   r@   )é   é   rB   r/   rA   c              3   óT   •K  — | ]"}t          ‰‰d z   ¦  «        D ]}‰|z   |z  V — ŒŒ#dS )r/   N)rP   )rG   rH   Új_Úc_Úd_rI   s      €€€r7   rJ   z)test_jax_multiple_sums.<locals>.<genexpr>Z   sK   øè è € ÐbÐb¨bÕPUÐVXÐZ\Ð_`ÑZ`ÑPaÔPaÐbÐbÈ"˜B ™G r™>ÐbÐbÐbÐbÐbÐbÐbr9   )r-   r*   r   r   r   r   r   r   r   r   r   rL   rM   rN   rO   rP   )rQ   rR   rS   rT   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×Ò˜a˜a  B¨¨B°Ñ3Ô3ÝÐbÐbÐbÐbÐbÐbµE¸"¸bÀ1¹fÑ4EÔ4EÐbÑbÔbÑbÔbñdô dð dð dð dð dð dr9   c                  óØ  — t           st          d¦  «         t          ddd¦  «        } t          ddd¦  «        }t          | |z  ¦  «        }t	          | |f|d¦  «        }t           j                             ddgddgg¦  «        }t           j                             dd	gd
dgg¦  «        } |||¦  «        t           j                             ||¦  «        k                         ¦   «         sJ ‚d S )Nr?   ÚMé   ÚNr-   r/   é   é   éþÿÿÿrB   )	r-   r*   r
   r)   r   rL   ÚarrayÚmatmulÚall)r_   ra   ÚcgrR   ÚmaÚmbs         r7   Útest_jax_codegen_einsumrk   ]   sà   € Ýð "ÝÐ Ñ!Ô!Ð!å�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€Aå	   Q¡Ñ	'Ô	'€BÝ�!�Q�˜˜UÑ#Ô#€Aå	Œ�Š˜1˜a˜& 1 a &Ð)Ñ	*Ô	*€BÝ	Œ�Š˜1˜R˜& 2 q 'Ð*Ñ	+Ô	+€BØˆAˆb�"‰IŒI�œ×)Ò)¨"¨bÑ1Ô1Ò1×6Ò6Ñ8Ô8Ð8Ð8Ð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                             ddgdd	gg¦  «        }t           j                             dd
gddgg¦  «        }t           j                             ddgddgg¦  «        }t           j                             ddgd	dgg¦  «        }t          | |¦  «        }t          | |f|d¦  «        }	 |	||¦  «        t           j                             |ddg|ddg¦  «        k                         ¦   «         sJ ‚t          | |¦  «        }t          | |f|d¦  «        }	 |	||¦  «        ||z   k                         ¦   «         sJ ‚t          | ||¦  «        }t          | ||f|d¦  «        }	 |	|||¦  «        ||z   |z   k                         ¦   «         sJ ‚t          | |||¦  «        }t          | |||f|d¦  «        }	 |	||||¦  «        ||z   |z   |z   k                         ¦   «         sJ ‚t          | ddg¦  «        }t          | f|d¦  «        }	 |	|¦  «        |j        k                         ¦   «         sJ ‚t          t          | |¦  «        g d¢¦  «        }t          | |f|d¦  «        }	 |	||¦  «        t           j                             t           j                             |ddg|ddg¦  «        d¦  «        k                         ¦   «         sJ ‚t          t          | |¦  «        d¦  «        }t          | |f|d¦  «        }	 |	||¦  «        t           j                             t           j                             |ddg|ddg¦  «        dd¬¦  «        k                         ¦   «         sJ ‚d S )Nr?   r_   r`   ra   ÚPÚQr/   rb   rc   rd   rB   r   é   r-   )r/   r`   rb   r   ©r/   r`   )Úaxis1Úaxis2)r-   r*   r
   rL   re   r"   r   Úeinsumrg   r#   r$   ÚTÚ	transposer%   Údiagonal)
r_   ra   rm   rn   ri   rj   ÚmcÚmdrh   rR   s
             r7   Útest_jax_codegen_extrary   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ØˆAˆb�"‰IŒI�œ×)Ò)¨"¨q°!¨f°b¸1¸a¸&ÑAÔAÒA×FÒFÑHÔHÐHÐHÐHå	�!�Q‰Œ€BÝ�!�Q�˜˜UÑ#Ô#€AØˆAˆb�"‰IŒI˜˜B™Ò×#Ò#Ñ%Ô%Ð%Ð%Ð%å	�!�Q˜Ñ	Ô	€BÝ�!�Q˜�˜B Ñ&Ô&€AØˆAˆb�"�b‰MŒM˜R ™U 2™XÒ%×*Ò*Ñ,Ô,Ð,Ð,Ð,å	�!�Q˜˜1Ñ	Ô	€BÝ�!�Q˜˜1�˜r 5Ñ)Ô)€AØˆAˆb�"�b˜"ÑÔ  B¡ r¡¨"¡Ò,×1Ò1Ñ3Ô3Ð3Ð3Ð3å	�Q˜˜A˜Ñ	Ô	€BÝ�!��r˜5Ñ!Ô!€AØˆAˆb‰EŒE�R”TŠM×ÒÑ Ô Ð Ð Ð å	Õ'¨¨1Ñ-Ô-¨|¨|¨|Ñ	<Ô	<€BÝ�!�Q�˜˜UÑ#Ô#€AØˆAˆb�"‰IŒI�œ×,Ò,­S¬Y×-=Ò-=¸bÀ1ÀaÀ&È"ÈqÐRSÈfÑ-UÔ-UÐWcÑdÔdÒd×iÒiÑkÔkÐkÐkÐkå	Õ)¨!¨QÑ/Ô/°Ñ	8Ô	8€BÝ�!�Q�˜˜UÑ#Ô#€AØˆAˆb�"‰IŒI�œ×+Ò+­C¬I×,<Ò,<¸RÀ!ÀQÀÈÈaÐQRÈVÑ,TÔ,TÐ\]ÐefÐ+ÑgÔgÒg×lÒlÑnÔnÐnÐnÐnÐnÐnr9   c                  óŠ  — t           st          d¦  «         t          t          d¦  «        } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚t          t          d¦  «        } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚t          dk     } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚t          dk    } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚t          dk    } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d	¢¦  «        sJ ‚t          dk    } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d
¢¦  «        sJ ‚t          dk    t          dk     z  } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚t          dk    t          dk     z  } t	          t          f| d¦  «        }t           j                             g d¢¦  «        }t           j                              ||¦  «        g d¢¦  «        sJ ‚d S )Nr?   r/   r-   )r   r/   r`   )FTF)TFT)TFF)TTF)FFT)FTTr`   )TTT)	r-   r*   r   r   r   rL   re   Úarray_equalr   )ÚerR   rI   s      r7   Útest_jax_relationalr}   –   s=  € Ýð "ÝÐ Ñ!Ô!Ð!å•�A‰Œ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(<Ð(<Ð(<Ñ=Ô=Ð=Ð=Ð=å•1�aÑÔ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(;Ð(;Ð(;Ñ<Ô<Ð<Ð<Ð<å	
ˆQŠ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(<Ð(<Ð(<Ñ=Ô=Ð=Ð=Ð=å	
ˆaŠ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(;Ð(;Ð(;Ñ<Ô<Ð<Ð<Ð<å	
ˆQŠ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(<Ð(<Ð(<Ñ=Ô=Ð=Ð=Ð=å	
ˆaŠ€Aå•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(;Ð(;Ð(;Ñ<Ô<Ð<Ð<Ð<õ 
ˆaŠ•A˜’EÑ€AÝ•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(<Ð(<Ð(<Ñ=Ô=Ð=Ð=Ð=å	
ˆaŠ•A˜’EÑ€AÝ•!��q˜%Ñ Ô €AÝ	Œ�Š˜˜˜Ñ	#Ô	#€BÝŒ9× Ò    2¡¤Ð(:Ð(:Ð(:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;r9   c                  ó  — t           st          d¦  «         t          t          t          ¦  «        } t          t          t          f| d¦  «        }t           j                             g d¢¦  «        }d}t           j                              |||¦  «        g d¢¦  «        sJ ‚t           j                             g d¢¦  «        }t           j                             g d¢¦  «        }t           j                              |||¦  «        g d¢¦  «        sJ ‚t           j                             g d¢¦  «        }t           j                             g d¢¦  «        }t           j                              |||¦  «        g d¢¦  «        sJ ‚d S )	Nr?   r-   )r   r/   r`   rb   r`   )r   r/   r   r/   )r`   r`   r`   r`   )r`   rb   rc   é   )r   r   r   r   )	r-   r*   r   r   r   r   rL   re   r{   )r|   rR   rS   rT   s       r7   Útest_jax_modr€   É   s=  € Ýð "ÝÐ Ñ!Ô!Ð!å�A�q‰	Œ	€AÝ•!•Q�˜˜EÑ"Ô"€Aå	Œ�Š˜˜˜Ñ	&Ô	&€BØ	
€BÝŒ9× Ò    2 r¡¤¨L¨L¨LÑ9Ô9Ð9Ð9Ð9å	Œ�Š˜˜˜Ñ	&Ô	&€BÝ	Œ�Š˜˜˜Ñ	&Ô	&€BÝŒ9× Ò    2 r¡¤¨L¨L¨LÑ9Ô9Ð9Ð9Ð9å	Œ�Š˜˜˜Ñ	&Ô	&€BÝ	Œ�Š˜˜˜Ñ	&Ô	&€BÝŒ9× Ò    2 r¡¤¨L¨L¨LÑ9Ô9Ð9Ð9Ð9Ð9Ð9r9   c                  ó˜   — t           st          d¦  «         t          ddd¬¦  «        } t          g | d¦  «        } |¦   «         dk    sJ ‚d S )Nr?   r`   rB   F)Úevaluater-   g      à?)r-   r*   r   r   )ÚexprrR   s     r7   Útest_jax_powr„   Ý   sU   € Ýð "ÝÐ Ñ!Ô!Ð!åˆq�"˜uÐ%Ñ%Ô%€DÝ��T˜5Ñ!Ô!€AØˆ1‰3Œ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 ‚d S )Nr?   r-   g»½×Ùß|Û=g#B’¡œ·;)r-   r*   r   r   r   ÚabsÚJAX_DEFAULT_EPSILON©rR   s    r7   Útest_jax_expm1r‰   æ   si   € Ýð "ÝÐ Ñ!Ô!Ð!å•!�•u�Q‘x”x Ñ'Ô'€AÝˆqˆq�‰xŒx˜%Ñ %Ñ'Ñ(Ô(¨EÕ4GÑ,GÒGÐGÐ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 ‚d S )Nr?   r-   g>ÃØN}a+)r-   r*   r   r   r   r†   r‡   rˆ   s    r7   Útest_jax_log1pr‹   î   sd   € Ýð "ÝÐ Ñ!Ô!Ð!å•!�•u�Q‘x”x Ñ'Ô'€AÝˆqˆq�‰xŒ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 ‚d S )Nr?   r-   rb   rc   r   )r-   r*   r†   r   r   r   r   r‡   rE   r9   r7   Útest_jax_hypotr�   õ   sc   € Ýð "ÝÐ Ñ!Ô!Ð!ÝÐ3�x��A˜¥¥a­¡¤¨UÑ3Ô3°A°qÑ9Ô9¸AÑ=Ñ>Ô>ÕBUÒUÐUÐUÐUÐUÐUr9   c            	      óÌ   — t           st          d¦  «         t           t          t          ft          t          ¦  «        d¦  «        d¦  «        dz
  ¦  «        t          k    sJ ‚d S )Nr?   r-   éd   r`   )r-   r*   r†   r   r   r   r‡   rE   r9   r7   Útest_jax_log10r�   ú   s]   € Ýð "ÝÐ Ñ!Ô!Ð!åÐ.�x�˜�e¥A™hœh¨Ñ.Ô.¨sÑ3Ô3°aÑ7Ñ8Ô8Õ<OÒOÐOÐOÐOÐOÐOr9   c            	      óÌ   — t           st          d¦  «         t           t          t          ft          t          ¦  «        d¦  «        d¦  «        dz
  ¦  «        t          k    sJ ‚d S )Nr?   r-   r   é    )r-   r*   r†   r   r   r   r‡   rE   r9   r7   Útest_jax_exp2r“     s]   € Ýð "ÝÐ Ñ!Ô!Ð!ÝÐ-�x�˜�d¥1™gœg uÑ-Ô-¨aÑ0Ô0°2Ñ5Ñ6Ô6Õ:MÒMÐMÐMÐMÐMÐMr9   c            	      óÌ   — t           st          d¦  «         t           t          t          ft          t          ¦  «        d¦  «        d¦  «        dz
  ¦  «        t          k    sJ ‚d S )Nr?   r-   é   é   )r-   r*   r†   r   r   r   r‡   rE   r9   r7   Útest_jax_log2r—     s]   € Ýð "ÝÐ Ñ!Ô!Ð!ÝÐ-�x�˜�d¥1™gœg uÑ-Ô-¨cÑ2Ô2°QÑ6Ñ7Ô7Õ;NÒNÐNÐNÐNÐNÐNr9   c            	      óÌ   — t           st          d¦  «         t           t          t          ft          t          ¦  «        d¦  «        d¦  «        dz
  ¦  «        t          k    sJ ‚d S ©Nr?   r-   rc   r`   )r-   r*   r†   r   r   r    r‡   rE   r9   r7   Útest_jax_Sqrtrš     ó]   € Ýð "ÝÐ Ñ!Ô!Ð!ÝÐ-�x�˜�d¥1™gœg uÑ-Ô-¨aÑ0Ô0°1Ñ4Ñ5Ô5Õ9LÒLÐLÐLÐLÐLÐLr9   c            	      óÌ   — t           st          d¦  «         t           t          t          ft          t          ¦  «        d¦  «        d¦  «        dz
  ¦  «        t          k    sJ ‚d S r™   )r-   r*   r†   r   r   r   r‡   rE   r9   r7   Útest_jax_sqrtr�     r›   r9   c                  óP  — 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                             g d¢g d	¢g d
¢g¦  «        }t           j        j                             |¦  «        dk    sJ ‚t           j                             g d¢¦  «        }t           j         	                     |||¦  «         |||¦  «        ¦  «        sJ ‚d S )Nr?   r_   rb   r   r/   rB   r-   )r/   r`   rb   )rb   r`   r   )r   é   ro   )rb   rc   r   )
r-   r*   r
   r   r   rL   re   ÚlinalgÚmatrix_rankrN   )r_   r   rƒ   Úmatsolve_exprrR   Ú
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Ô7€Jå	Œ�Š˜)˜)˜) Y Y Y°	°	°	Ð:Ñ	;Ô	;€BÝŒ9Ô×'Ò'¨Ñ+Ô+¨qÒ0Ð0Ð0Ð0å	Œ�Š˜˜˜Ñ	#Ô	#€BåŒ9×Ò˜j˜j¨¨RÑ0Ô0°!°!°B¸±)´)Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r9   c                  óP  — 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          ¦   «         }|                     |¦  «        d	k    sJ ‚d S )
Nr?   Úa_1rA   rb   Ú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�gÒÐÐÐå‰lŒl€GØ�?Š?˜1ÑÔÐ!LÒLÐLÐLÐLÐLÐLr9   c                  óî  ‡‡— t           st          d¦  «         t          ddd¦  «        } t          | | t	          d¦  «        z   d¦  «        }t           j                             ddgddgg¦  «        }t           j                             ddgddgg¦  «        } ||¦  «        |k                         ¦   «         sJ ‚d	d
lm	}  |dd¬¦  «        Št          d‰‰¦  «        Št          t          ˆˆfd„¦  «         d S )Nr?   r_   r`   r-   r/   rb   rc   r   r   )ÚsymbolsÚnT)Úintegerc                  óF   •— t          ‰ ‰ t          ‰¦  «        z   d¦  «        S )Nr-   )r   r   )ra   r²   s   €€r7   ú<lambda>z"test_issue_17006.<locals>.<lambda>L  s   ø€ ­°°A½À¹¼±OÀUÑ(KÔ(K€ r9   )r-   r*   r
   r   r   rL   re   rg   Úsympy.core.symbolr±   r+   ÚNotImplementedError)r_   rR   ri   Úmrr±   ra   r²   s        @@r7   Útest_issue_17006r¹   =  s  øø€ Ýð "ÝÐ Ñ!Ô!Ð!å�S˜!˜QÑÔ€Aå��A� ™œ‘O UÑ+Ô+€AÝ	Œ�Š˜1˜a˜& 1 a &Ð)Ñ	*Ô	*€BÝ	Œ�Š˜1˜a˜& 1 a &Ð)Ñ	*Ô	*€BàˆAˆb‰EŒE�RŠK×ÒÑÔÐÐÐà)Ð)Ð)Ð)Ð)Ð)Øˆ�˜TÐ"Ñ"Ô"€AÝ�S˜!˜QÑÔ€AÝ
ÕÐ KÐ KÐ KÐ KÐ KÑLÔLÐLÐLÐLr9   c                  óÖ   — t          ¦   «                              t          d¦  «        ¦  «        dk    sJ ‚t          ¦   «                              t          d¦  «        ¦  «        dk    sJ ‚d S )N)rp   )rb   r   z!jax.numpy.array([[1, 2], [3, 5]])rp   zjax.numpy.array([1, 2]))r&   r3   r!   rE   r9   r7   Útest_jax_arrayr»   O  s_   € Ý‰<Œ<×Ò¥Ð&6Ñ 7Ô 7Ñ8Ô8Ð<_Ò_Ð_Ð_Ð_Ý‰<Œ<×Ò¥ f¡¤Ñ.Ô.Ð2KÒKÐKÐKÐKÐKÐKr9   c                  óž   — t           d         dk    sJ ‚t           d         dk    sJ ‚t          d         dk    sJ ‚t          d         dk    sJ ‚d S )	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  sb   € Ý Ô&¨/Ò9Ð9Ð9Ð9Ý Ô-Ð1HÒHÐHÐHÐHå Ô'Ð+=Ò=Ð=Ð=Ð=Ý Ô&¨/Ò9Ð9Ð9Ð9Ð9Ð9r9   c                  ój   — t          ¦   «         } t          | d¦  «        sJ ‚t          | d¦  «        sJ ‚d S )NÚ_print_acosÚ
_print_log)r&   Úhasattr)Úprntrs    r7   Útest_jax_print_methodsrÇ   \  s=   € Ý‰LŒL€EÝ�5˜-Ñ(Ô(Ð(Ð(Ð(Ý�5˜,Ñ'Ô'Ð'Ð'Ð'Ð'Ð'r9   c                  ó`   — t          ¦   «         } t          | d¦  «        sJ ‚| j        dk    sJ ‚d S )NÚprintmethodÚ_jaxcode)r&   rÅ   rÉ   )r5   s    r7   Útest_jax_printmethodrË   b  s;   € Ý‰lŒl€GÝ�7˜MÑ*Ô*Ð*Ð*Ð*ØÔ *Ò,Ð,Ð,Ð,Ð,Ð,r9   c                  óª   —  G d„ dt           ¦  «        } t          ¦   «         }|                      | t          d¦  «        ¦  «        ¦  «        dk    sJ ‚d S )Nc                   ó   — e Zd Zd„ ZdS )ú+test_jax_custom_print_method.<locals>.expm1c                 ó†   — | j         \  }d|                     |¦  «        › d�}|                     |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  sG   € Ø”‰BˆAØ4 §¢¨qÑ 1Ô 1Ð4Ð4Ð4ˆHØ×)Ò)¨'¬/¸CÑ*?À(Ñ*JÑKÔKÐKr9   N)Ú__name__Ú
__module__Ú__qualname__rÊ   rE   r9   r7   r   rÎ   j  s(   € € € € € ð	Lð 	Lð 	Lð 	Lð 	Lr9   r   r   zjax.numpy.expm1(x))r   r&   r3   r   )r   r5   s     r7   Útest_jax_custom_print_methodrÛ   h  ss   € ðLð Lð Lð Lð L•ñ Lô Lð Lõ ‰lŒl€GØ�?Š?˜5˜5¥¨¡¤Ñ-Ô-Ñ.Ô.Ð2FÒFÐFÐFÐ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-   rL   Úfinfore   ÚdtypeÚdeafult_float_infoÚepsr‡   r8   r=   rU   r]   rk   ry   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Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø :Ð :Ð :Ð :Ð :Ð :Ø >Ð >Ð >Ð >Ð >Ð >Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð à WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ WÐ WÐ WÐ WÐ WÐ Wà -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (ð €m�EÑÔ€àð 1ØœŸš¨¬¯ª¸Ñ)<Ô)<Ô)BÑCÔCÐØ,Ô0Ðð
Nð 
Nð 
NðFð Fð FðWð Wð Wð&dð dð dð9ð 9ð 9ð'oð 'oð 'oðT1<ð 1<ð 1<ðf:ð :ð :ð(ð ð ðHð Hð Hð@ð @ð @ðVð Vð Vð
Pð Pð PðNð Nð NðOð Oð OðMð Mð MðMð Mð Mð=ð =ð =ð*Mð Mð MðMð Mð Mð$Lð Lð Lð
:ð :ð :ð(ð (ð (ð-ð -ð -ð
Gð 
Gð 
Gð 
Gð 
Gr9   