§
    OŠtj9R  ã                   ó  — 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 ddlmZ d                     ¦   «         Zd„  ej        ¦   «         D ¦   «         Z eefi d	d
ddddddddddddœ¤ŽZddddddœZd„ e                     ¦   «         D ¦   «         Zd„ e                     ¦   «         D ¦   «         Z G d„ d ee¦  «        ZeD ]Z eed!e› �e
¦  «         ŒeD ]Z eed!e› �e	¦  «         Œi d"d#“d$d$“d%d%“d&d'“d(d)“d*d+“d,d-“d.d.“d/d/“d0d0“d1d1“d2d3“d4d5“d6d6“d7d8“d9d:“d;d<“d=d>d?d@dAdBdCdDdEœ¥ZdFddGœZdH„ e                     ¦   «         D ¦   «         ZdI„ e                     ¦   «         D ¦   «         Z G dJ„ dKe¦  «        Z eD ]Z ee d!e› �e
¦  «         ŒeD ]Z ee d!e› �e	¦  «         ŒdL„ e                     ¦   «         D ¦   «         Z!dM„ e                     ¦   «         D ¦   «         Z" G dN„ dOe¦  «        Z#e!D ]Z ee#d!e› �e
¦  «         Œe"D ]Z ee#d!e› �e	¦  «         ŒdP„ e                     ¦   «         D ¦   «         Z$dQ„ e                     ¦   «         D ¦   «         Z% G dR„ dSe¦  «        Z&e$D ]Z ee&d!e› �e
¦  «         Œe%D ]Z ee&d!e› �e	¦  «         ŒdTS )Ué    )ÚS)ÚLambda)ÚPowé   )ÚPythonCodePrinterÚ_known_functions_mathÚ_print_known_constÚ_print_known_funcÚ_unpack_integral_limitsÚArrayPrinter)ÚCodePrinterz!erf erfc factorial gamma loggammac                 ó.   — g | ]\  }}|t           v¯||f‘ŒS © )Ú_not_in_numpy©Ú.0ÚkÚvs      úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/numpy.pyú
<listcomp>r   	   s*   € ÐXÐXÐX™˜˜1ÀÍ-ÐAWÐAWˆa�ˆVÐAWÐAWÐAWó    ÚarccosÚarccoshÚarcsinÚarcsinhÚarctanÚarctan2ÚarctanhÚexp2ÚsignÚ	logaddexpÚ
logaddexp2ÚisinfÚisnan)ÚacosÚacoshÚasinÚasinhÚatanÚatan2Úatanhr   r    r!   r"   r#   r$   ÚeÚpiÚeuler_gammaÚnanÚinf)ÚExp1ÚPiÚ
EulerGammaÚNaNÚInfinityc                 ó    — i | ]\  }}|d |z   “ŒS ©znumpy.r   r   s      r   ú
<dictcomp>r8   "   ó"   € ÐUÐUÐU©d¨a°˜!˜X¨™\ÐUÐUÐUr   c                 ó    — i | ]\  }}|d |z   “ŒS r7   r   r   s      r   r8   r8   #   r9   r   c                   ól  ‡ — e Zd ZdZdZeZeZd2ˆ fd„	Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd3d„Zde fd„Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d,„ Z0d-Z1d.Z2d/Z3d0Z4d1Z5e6j7        Z8e6j7        Z9e6j7        Z:e6j7        Z;ˆ xZ<S )4ÚNumPyPrinterza
    Numpy printer which handles vectorized piecewise functions,
    logical operators, etc.
    ÚnumpyNc                 óü   •— d                      | j        ¦  «        | _        d                      | j        ¦  «        | _        i t          j        ¥| j        ¥| _        t          ¦   «                              |¬¦  «         dS )z 
        `settings` is passed to CodePrinter.__init__()
        `module` specifies the array module to use, currently 'NumPy', 'CuPy'
        or 'JAX'.
        zPython with {}z_{}code©ÚsettingsN)ÚformatÚ_moduleÚlanguageÚprintmethodr   Ú_kfÚsuperÚ__init__©Úselfr@   Ú	__class__s     €r   rG   zNumPyPrinter.__init__/   sl   ø€ ð )×/Ò/°´Ñ=Ô=ˆŒØ$×+Ò+¨D¬LÑ9Ô9ˆÔà8Õ'Ô+Ð8¨t¬xÐ8ˆŒå‰Œ×Ò (ÐÑ+Ô+Ð+Ð+Ð+r   c                 óp   ‡ — d}d                      |                     ˆ fd„|D ¦   «         ¦  «        ¦  «        S )z+General sequence printer: converts to tupleú, z({},)c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S ©N©Ú_print)r   ÚitemrI   s     €r   ú	<genexpr>z*NumPyPrinter._print_seq.<locals>.<genexpr>B   s/   øè è € Ð,OÐ,OÀ4¨T¯[ª[¸Ñ->Ô->Ð,OÐ,OÐ,OÐ,OÐ,OÐ,Or   )rA   Újoin)rI   ÚseqÚ	delimiters   `  r   Ú
_print_seqzNumPyPrinter._print_seq=   s=   ø€ ð ˆ	Ø�~Š~˜iŸnšnÐ,OÐ,OÐ,OÐ,OÈ3Ð,OÑ,OÔ,OÑOÔOÑPÔPÐPr   c                 óF   — d|                       t          j        ¦  «        z   S )Nú-)rP   r   r5   ©rI   Úexprs     r   Ú_print_NegativeInfinityz$NumPyPrinter._print_NegativeInfinityD   s   € Ø�T—[’[¥¤Ñ,Ô,Ñ,Ð,r   c                 ó–  ‡ — |                      ¦   «         d         t          j        urj|                      ¦   «         d         |                      ¦   «         d         gz   }d                     d                     ˆ fd„|D ¦   «         ¦  «        ¦  «        S d                     d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )zMatrix multiplication printerr   r   ú({})z).dot(c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   ©r   ÚirI   s     €r   rR   z-NumPyPrinter._print_MatMul.<locals>.<genexpr>K   s-   øè è € Ð.QÐ.QÀ!¨t¯{ª{¸1©~¬~Ð.QÐ.QÐ.QÐ.QÐ.QÐ.Qr   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z-NumPyPrinter._print_MatMul.<locals>.<genexpr>L   s-   øè è € Ð*MÐ*M¸a¨4¯;ª;°q©>¬>Ð*MÐ*MÐ*MÐ*MÐ*MÐ*Mr   )Úas_coeff_matricesr   ÚOnerA   rS   Úargs)rI   rZ   Ú	expr_lists   `  r   Ú_print_MatMulzNumPyPrinter._print_MatMulG   s¸   ø€ à×!Ò!Ñ#Ô# AÔ&­a¬eÐ3Ð3Ø×.Ò.Ñ0Ô0°Ô3°d×6LÒ6LÑ6NÔ6NÈqÔ6QÐ4SÑSˆIØ—=’= §¢Ð.QÐ.QÐ.QÐ.QÀyÐ.QÑ.QÔ.QÑ!QÔ!QÑRÔRÐRØ�}Š}˜XŸ]š]Ð*MÐ*MÐ*MÐ*MÀ4Ä9Ð*MÑ*MÔ*MÑMÔMÑNÔNÐNr   c                 óÞ   — d                      |                      | j        dz   ¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )zMatrix power printerz
{}({}, {})z.linalg.matrix_powerr   r   ©rA   Ú_module_formatrB   rP   rd   rY   s     r   Ú_print_MatPowzNumPyPrinter._print_MatPowN   s^   € à×"Ò" 4×#6Ò#6°t´|ÐF\Ñ7\Ñ#]Ô#]Ø�KŠK˜œ	 !œÑ%Ô% t§{¢{°4´9¸Q´<Ñ'@Ô'@ñBô Bð 	Br   c                 ó    — d                      |                      | j        dz   ¦  «        |                      |j        d         ¦  «        ¦  «        S )zMatrix inverse printerú{}({})z.linalg.invr   rh   rY   s     r   Ú_print_InversezNumPyPrinter._print_InverseS   sD   € à�Š˜t×2Ò2°4´<À-Ñ3OÑPÔPØ�KŠK˜œ	 !œÑ%Ô%ñ'ô 'ð 	'r   c                 ó  — |j         \  }}|j        d         dk    r|j        }|j        d         dk    r|j        }|                      | j        dz   ¦  «        ›d|                      |¦  «        ›d|                      |¦  «        ›d�S )Nr   r   z.dotú(rL   ú))rd   ÚshapeÚTri   rB   rP   )rI   rZ   Úarg1Úarg2s       r   Ú_print_DotProductzNumPyPrinter._print_DotProductX   s‘   € ð ”Y‰
ˆˆdØŒ:�aŒ=˜AÒÐØ”6ˆDØŒ:�aŒ=˜AÒÐØ”6ˆDà#×2Ò2°4´<À&Ñ3HÑIÔIÐIÐIØ#Ÿ{š{¨4Ñ0Ô0Ð0Ð0Ø#Ÿ{š{¨4Ñ0Ô0Ð0Ð0ð2ð 	2r   c                 ó®   — |                       | j        dz   ¦  «        ›d|                      |j        ¦  «        ›d|                      |j        ¦  «        ›d�S )Nz.linalg.solvero   rL   rp   )ri   rB   rP   ÚmatrixÚvectorrY   s     r   Ú_print_MatrixSolvezNumPyPrinter._print_MatrixSolvee   sX   € Ø#×2Ò2°4´<À/Ñ3QÑRÔRÐRÐRØ#Ÿ{š{¨4¬;Ñ7Ô7Ð7Ð7Ø#Ÿ{š{¨4¬;Ñ7Ô7Ð7Ð7ð9ð 	9r   c                 ó”   — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        ¦  «        S )Nrl   z.zeros©rA   ri   rB   rP   rq   rY   s     r   Ú_print_ZeroMatrixzNumPyPrinter._print_ZeroMatrixj   s@   € Ø�Š˜t×2Ò2°4´<À(Ñ3JÑKÔKØ�KŠK˜œ
Ñ#Ô#ñ%ô %ð 	%r   c                 ó”   — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        ¦  «        S )Nrl   z.onesr{   rY   s     r   Ú_print_OneMatrixzNumPyPrinter._print_OneMatrixn   s@   € Ø�Š˜t×2Ò2°4´<À'Ñ3IÑJÔJØ�KŠK˜œ
Ñ#Ô#ñ%ô %ð 	%r   c                 óª  ‡ — ddl m}m} |j        }t	          |t
          ¦  «        st          ||f |||¦  «        ¦  «        }d                     ‰                      ‰ j        dz   ¦  «        d 	                    ˆ fd„|j
        d         D ¦   «         ¦  «        ‰                      |j
        d         ¦  «        ‰                      |j        ¦  «        ¦  «        S )Nr   )r`   Újz{}(lambda {}: {}, {})z.fromfunctionrL   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   ©r   ÚargrI   s     €r   rR   z5NumPyPrinter._print_FunctionMatrix.<locals>.<genexpr>x   s/   øè è € Ð@Ð@¨3�d—k’k #Ñ&Ô&Ð@Ð@Ð@Ð@Ð@Ð@r   r   )Ú	sympy.abcr`   r€   ÚlamdaÚ
isinstancer   rA   ri   rB   rS   rd   rP   rq   )rI   rZ   r`   r€   r…   s   `    r   Ú_print_FunctionMatrixz"NumPyPrinter._print_FunctionMatrixr   sÓ   ø€ Ø"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø”
ˆÝ˜%¥Ñ(Ô(ð 	0Ý˜A˜q˜6 5 5¨¨A¡;¤;Ñ/Ô/ˆEØ&×-Ò-¨d×.AÒ.AÀ$Ä,ÐQ`ÑB`Ñ.aÔ.aØ�IŠIÐ@Ð@Ð@Ð@°%´*¸Q´-Ð@Ñ@Ô@Ñ@Ô@Ø�KŠK˜œ
 1œÑ&Ô&¨¯ª°D´JÑ(?Ô(?ñAô Að 	Ar   c                 ó8  ‡ ‡— ‰                       ‰ j        dz   ¦  «        Šd                     ˆˆ fd„|j        d d…         D ¦   «         ¦  «        d                     ‰                      |j        d         ¦  «        dt          |j        ¦  «        dz
  z  ¦  «        z   S )Nú	.multiplyÚ c              3   ój   •K  — | ]-}d                       ‰‰                     |¦  «        ¦  «        V — Œ.dS ©z{}({}, N©rA   rP   ©r   rƒ   ÚfuncrI   s     €€r   rR   z6NumPyPrinter._print_HadamardProduct.<locals>.<genexpr>}   óS   øè è € ð 'ð 'Øð !×'Ò'¨¨d¯kªk¸#Ñ.>Ô.>Ñ?Ô?ð 'ð 'ð 'ð 'ð 'ð 'r   éÿÿÿÿú{}{}rp   r   ©ri   rB   rS   rd   rA   rP   Úlen©rI   rZ   r�   s   ` @r   Ú_print_HadamardProductz#NumPyPrinter._print_HadamardProduct{   s¨   øø€ Ø×"Ò" 4¤<°+Ñ#=Ñ>Ô>ˆØ�wŠwð 'ð 'ð 'ð 'ð 'Ø”y  " ”~ð'ñ 'ô 'ñ 'ô 'Ø)/¯ª°t·{²{À4Ä9ÈRÄ=Ñ7QÔ7QØ•3�t”y‘>”> AÑ%Ñ&ñ*(ô *(ñ(ð 	(r   c                 ó8  ‡ ‡— ‰                       ‰ j        dz   ¦  «        Šd                     ˆˆ fd„|j        d d…         D ¦   «         ¦  «        d                     ‰                      |j        d         ¦  «        dt          |j        ¦  «        dz
  z  ¦  «        z   S )Nz.kronrŠ   c              3   ój   •K  — | ]-}d                       ‰‰                     |¦  «        ¦  «        V — Œ.dS rŒ   r�   rŽ   s     €€r   rR   z7NumPyPrinter._print_KroneckerProduct.<locals>.<genexpr>ƒ   r�   r   r‘   r’   rp   r   r“   r•   s   ` @r   Ú_print_KroneckerProductz$NumPyPrinter._print_KroneckerProduct�   s¨   øø€ Ø×"Ò" 4¤<°'Ñ#9Ñ:Ô:ˆØ�wŠwð 'ð 'ð 'ð 'ð 'Ø”y  " ”~ð'ñ 'ô 'ñ 'ô 'Ø)/¯ª°t·{²{À4Ä9ÈRÄ=Ñ7QÔ7QØ•3�t”y‘>”> AÑ%Ñ&ñ*(ô *(ñ(ð 	(r   c                 óØ   — d                      |                      | j        dz   ¦  «        |                      | j        dz   ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz
{}({}({}))z
.conjugatez
.transposer   rh   rY   s     r   Ú_print_AdjointzNumPyPrinter._print_Adjoint‡   s_   € Ø×"Ò"Ø×Ò ¤¨|Ñ ;Ñ<Ô<Ø×Ò ¤¨|Ñ ;Ñ<Ô<Ø�KŠK˜œ	 !œÑ%Ô%ñ'ô 'ð 	'r   c                 óö   — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        ¦  «        }d                      |                      | j        dz   ¦  «        |¦  «        S )Nrl   z.diagz{}({}, (-1, 1))z.reshape)rA   ri   rB   rP   rƒ   )rI   rZ   Úvects      r   Ú_print_DiagonalOfzNumPyPrinter._print_DiagonalOf�   su   € Ø�ŠØ×Ò ¤¨wÑ 6Ñ7Ô7Ø�KŠK˜œÑ!Ô!ñ#ô #ˆð !×'Ò'Ø×Ò ¤¨zÑ 9Ñ:Ô:¸DñBô Bð 	Br   c                 ó    — d                      |                      | j        dz   ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nrl   z	.diagflatr   rh   rY   s     r   Ú_print_DiagMatrixzNumPyPrinter._print_DiagMatrix”   sD   € Ø�Š˜t×2Ò2°4´<À+Ñ3MÑNÔNØ�KŠK˜œ	 !œÑ%Ô%ñ'ô 'ð 	'r   c           
      óH  — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        |                      | j        dz   ¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz{}({}, {}({}, {}))r‰   ú.eyer   r   )rA   ri   rB   rP   rƒ   rq   rY   s     r   Ú_print_DiagonalMatrixz"NumPyPrinter._print_DiagonalMatrix˜   s…   € Ø#×*Ò*¨4×+>Ò+>¸t¼|ÈkÑ?YÑ+ZÔ+ZØ�KŠK˜œÑ!Ô! 4×#6Ò#6°t´|ÀfÑ7LÑ#MÔ#MØ�KŠK˜œ
 1œÑ&Ô&¨¯ª°D´J¸q´MÑ(BÔ(BñDô Dð 	Dr   c                 ó¬  ‡ ‡‡‡— ddl mŠmŠ ˆˆ ˆfd„Šd                     d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        }d                     d                     ˆfd„|j        D ¦   «         ¦  «        ¦  «        }d                     ‰                      ‰ j        d	z   ¦  «        ||‰                      t          j
        ¦  «        ¦  «        S )
zPiecewise function printerr   )ÚITEÚsimplify_logicc                 ó”   •— |                       ‰¦  «        r‰                      ‰| ¦  «        ¦  «        S ‰                     | ¦  «        S )z$ Problem having an ITE in the cond. )ÚhasrP   )Úcondr¥   rI   r¦   s    €€€r   Ú
print_condz1NumPyPrinter._print_Piecewise.<locals>.print_cond    sC   ø€ à�xŠx˜‰}Œ}ð )Ø—{’{ > >°$Ñ#7Ô#7Ñ8Ô8Ð8à—{’{ 4Ñ(Ô(Ð(r   z[{}]ú,c              3   óL   •K  — | ]}‰                      |j        ¦  «        V — Œd S rN   )rP   rZ   r‚   s     €r   rR   z0NumPyPrinter._print_Piecewise.<locals>.<genexpr>¦   s1   øè è € Ð&RÐ&RÀ t§{¢{°3´8Ñ'<Ô'<Ð&RÐ&RÐ&RÐ&RÐ&RÐ&Rr   c              3   ó8   •K  — | ]} ‰|j         ¦  «        V — Œd S rN   )r©   )r   rƒ   rª   s     €r   rR   z0NumPyPrinter._print_Piecewise.<locals>.<genexpr>§   s/   øè è € Ð&QÐ&QÀ z z°#´(Ñ';Ô';Ð&QÐ&QÐ&QÐ&QÐ&QÐ&Qr   z{}({}, {}, default={})z.select)Úsympy.logic.boolalgr¥   r¦   rA   rS   rd   ri   rB   rP   r   r4   )rI   rZ   ÚexprsÚcondsr¥   rª   r¦   s   `   @@@r   Ú_print_PiecewisezNumPyPrinter._print_Piecewise�   sò   øøøø€ à;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð —’˜cŸhšhÐ&RÐ&RÐ&RÐ&RÈÌ	Ð&RÑ&RÔ&RÑRÔRÑSÔSˆØ—’˜cŸhšhÐ&QÐ&QÐ&QÐ&QÀtÄyÐ&QÑ&QÔ&QÑQÔQÑRÔRˆð
 (×.Ò.Ø×Ò ¤¨yÑ 8Ñ9Ô9¸5À%Ø�KŠK�œÑÔñ ô  ð 	 r   c                 óT  •— dddddddœ}|j         |v ru|                      |j        ¦  «        }|                      |j        ¦  «        }d                     |                      | j        d	z   ||j                  z   ¦  «        ||¬
¦  «        S t          ¦   «                              |¦  «        S )z.Relational printer for Equality and UnequalityÚequalÚ	not_equalÚlessÚ
less_equalÚgreaterÚgreater_equal)z==z!=ú<z<=ú>z>=z{op}({lhs}, {rhs})ú.)ÚopÚlhsÚrhs)	Úrel_oprP   r½   r¾   rA   ri   rB   rF   Ú_print_Relational)rI   rZ   r¼   r½   r¾   rJ   s        €r   rÀ   zNumPyPrinter._print_Relational°   s¼   ø€ ð ØØØØØ!ð
ð 
ˆð Œ;˜"ÐÐØ—+’+˜dœhÑ'Ô'ˆCØ—+’+˜dœhÑ'Ô'ˆCØ'×.Ò.°$×2EÒ2EÀdÄlÐUXÑFXÐY[Ð\`Ô\gÔYhÑFhÑ2iÔ2iØ36¸Cð /ñ Aô Að Aå‰wŒw×(Ò(¨Ñ.Ô.Ð.r   c                 ó®   ‡ — d                      ‰                      ‰ j        dz   ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )úLogical And printerú{}.reduce(({}))z.logical_andr«   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z*NumPyPrinter._print_And.<locals>.<genexpr>Æ   sT   øè è € ð  eHð  eHÐxyÐei×epÒepÐqrÑesÔesð  eHð  eHð  eHð  eHð  eHð  eHr   ©rA   ri   rB   rS   rd   rY   s   ` r   Ú
_print_AndzNumPyPrinter._print_AndÁ   s�   ø€ ð
 !×'Ò'¨×(;Ò(;¸D¼LÈ>Ñ<YÑ(ZÔ(ZÐ\_×\dÒ\dð  eHð  eHð  eHð  eHð  ~Bô  ~Gð  eHñ  eHô  eHñ  ]Hô  ]Hñ  Iô  Ið  	Ir   c                 ó®   ‡ — d                      ‰                      ‰ j        dz   ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )úLogical Or printerrÃ   z.logical_orr«   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z)NumPyPrinter._print_Or.<locals>.<genexpr>Í   sT   øè è € ð  dGð  dGÐwxÐdh×doÒdoÐpqÑdrÔdrð  dGð  dGð  dGð  dGð  dGð  dGr   rÅ   rY   s   ` r   Ú	_print_OrzNumPyPrinter._print_OrÈ   s�   ø€ ð
 !×'Ò'¨×(;Ò(;¸D¼LÈ=Ñ<XÑ(YÔ(YÐ[^×[cÒ[cð  dGð  dGð  dGð  dGð  }Aô  }Fð  dGñ  dGô  dGñ  \Gô  \Gñ  Hô  Hð  	Hr   c                 ó®   ‡ — d                      ‰                      ‰ j        dz   ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )zLogical Not printerrl   z.logical_notr«   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z*NumPyPrinter._print_Not.<locals>.<genexpr>Ô   s4   øè è € Ð[~Ð[~ÐopÐ\`×\gÒ\gÐhiÑ\jÔ\jÐ[~Ð[~Ð[~Ð[~Ð[~Ð[~r   rÅ   rY   s   ` r   Ú
_print_NotzNumPyPrinter._print_NotÏ   sV   ø€ ð
 �Š˜t×2Ò2°4´<À.Ñ3PÑQÔQÐSV×S[ÒS[Ð[~Ð[~Ð[~Ð[~ÐtxÔt}Ð[~Ñ[~Ô[~ÑS~ÔS~ÑÔÐr   Fc                 óÎ   — |j         j        r:|j         j        r.t          |j        |j                              ¦   «         d¬¦  «        }|                      ||| j        dz   ¬¦  «        S )NF)Úevaluatez.sqrt)ÚrationalÚsqrt)ÚexpÚ
is_integerÚis_negativer   ÚbaseÚevalfÚ_hprint_PowrB   )rI   rZ   rÐ   s      r   Ú
_print_PowzNumPyPrinter._print_PowÖ   sa   € àŒ8Ôð 	D 4¤8Ô#7ð 	DÝ�t”y $¤(§.¢.Ñ"2Ô"2¸UÐCÑCÔCˆDØ×Ò ¨x¸d¼lÈWÑ>TÐÑUÔUÐUr   r¼   c                 ó,  ‡ — t          |¦  «        dk    rt          d|› �¦  «        ‚t          |¦  «        dk    r‰                      |d         ¦  «        S ‰                      d¦  «        }ˆ fd„|D ¦   «         }|› d|› dd                     |¦  «        › d	�S )
Nr   zNeed at least one argument for r   zfunctools.reducec                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   rO   r‚   s     €r   r   z8NumPyPrinter._helper_minimum_maximum.<locals>.<listcomp>â   s%   ø€ Ð3Ð3Ð3 s�$—+’+˜cÑ"Ô"Ð3Ð3Ð3r   ro   z, [rL   z]))r”   ÚNotImplementedErrorrP   ri   rS   )rI   r¼   rd   Ú_reduceÚs_argss   `    r   Ú_helper_minimum_maximumz$NumPyPrinter._helper_minimum_maximumÜ   s¦   ø€ Ýˆt‰9Œ9˜Š>ˆ>Ý%Ð&LÈÐ&LÐ&LÑMÔMÐMÝ�‰YŒY˜!Š^ˆ^Ø—;’;˜t AœwÑ'Ô'Ð'Ø×%Ò%Ð&8Ñ9Ô9ˆØ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3ˆØÐ8Ð8˜BÐ8Ð8 4§9¢9¨VÑ#4Ô#4Ð8Ð8Ð8Ð8r   c                 ó,   — |                       |¦  «        S rN   )Ú_print_minimumrY   s     r   Ú
_print_MinzNumPyPrinter._print_Minå   ó   € Ø×"Ò" 4Ñ(Ô(Ð(r   c                 óÆ   — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        |                      |j        ¦  «        ¦  «        S )Nú{}({}, axis={})z.amin©rA   ri   rB   rP   ÚarrayÚaxisrY   s     r   Ú_print_aminzNumPyPrinter._print_aminè   ój   € Ø ×'Ò'¨×(;Ò(;¸D¼LÈ7Ñ<RÑ(SÔ(SÐUY×U`ÒU`ÐaeÔakÑUlÔUlÐnr×nyÒnyÐz~ô  {Dñ  oEô  oEñ  Fô  Fð  	Fr   c                 ób   — |                       | j        dz   ¦  «        } | j        |g|j        ¢R Ž S )Nz.minimum©ri   rB   rÞ   rd   ©rI   rZ   r¼   s      r   rà   zNumPyPrinter._print_minimumë   ó9   € Ø× Ò  ¤°
Ñ!:Ñ;Ô;ˆØ+ˆtÔ+¨BÐ;°´Ð;Ð;Ð;Ð;r   c                 ó,   — |                       |¦  «        S rN   )Ú_print_maximumrY   s     r   Ú
_print_MaxzNumPyPrinter._print_Maxï   râ   r   c                 óÆ   — d                      |                      | j        dz   ¦  «        |                      |j        ¦  «        |                      |j        ¦  «        ¦  «        S )Nrä   z.amaxrå   rY   s     r   Ú_print_amaxzNumPyPrinter._print_amaxò   ré   r   c                 ób   — |                       | j        dz   ¦  «        } | j        |g|j        ¢R Ž S )Nz.maximumrë   rì   s      r   rï   zNumPyPrinter._print_maximumõ   rí   r   c                 ó„   — |                       | j        dz   ¦  «        ›d|                      |j        d         ¦  «        ›d�S )Nz.anglero   r   rp   ©ri   rB   rP   rd   rY   s     r   Ú
_print_argzNumPyPrinter._print_argù   sD   € Ø×.Ò.¨t¬|¸hÑ/FÑGÔGÐGÐGÈÏÊÐUYÔU^Ð_`ÔUaÑIbÔIbÐIbÐIbÐcÐcr   c                 ó„   — |                       | j        dz   ¦  «        ›d|                      |j        d         ¦  «        ›d�S )Nz.imagro   r   rp   rõ   rY   s     r   Ú	_print_imzNumPyPrinter._print_imü   óD   € Ø×.Ò.¨t¬|¸gÑ/EÑFÔFÐFÐFÈÏÊÐTXÔT]Ð^_ÔT`ÑHaÔHaÐHaÐHaÐbÐbr   c                 ó’   ‡ — ‰                       ‰ j        dz   ¦  «        ›dd                     ˆ fd„|j        D ¦   «         ¦  «        ›d�S )Nz.modro   rL   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r‚   s     €r   rR   z*NumPyPrinter._print_Mod.<locals>.<genexpr>  s/   øè è € Ð3Ð3 #ˆT�[Š[˜ÑÔÐ3Ð3Ð3Ð3Ð3Ð3r   rp   )ri   rB   rS   rd   rY   s   ` r   Ú
_print_ModzNumPyPrinter._print_Modÿ   sb   ø€ Ø×.Ò.¨t¬|¸fÑ/DÑEÔEÐEÐEÀtÇyÂyØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3ñH5ô H5ð H5ð H5ð 6ð 	6r   c                 ó„   — |                       | j        dz   ¦  «        ›d|                      |j        d         ¦  «        ›d�S )Nz.realro   r   rp   rõ   rY   s     r   Ú	_print_rezNumPyPrinter._print_re  rù   r   c                 óž   — |                       | j        dz   ¦  «        ›d|                      |j        d         t          j        z  ¦  «        ›d�S )Nz.sincro   r   rp   )ri   rB   rP   rd   r   r2   rY   s     r   Ú_print_sinczNumPyPrinter._print_sinc  sM   € Ø×.Ò.¨t¬|¸gÑ/EÑFÔFÐFÐFÈÏÊÐTXÔT]Ð^_ÔT`ÕabÔaeÑTeÑHfÔHfÐHfÐHfÐgÐgr   c                 ó~  — d|j         v rD|                      | j        › d| j        › �¦  «        }|› d|                      |j         ¦  «        › d�S | j                             |j        j        d ¦  «        }|€|                      | j        › d�¦  «        }|›d|                      | 	                    ¦   «         ¦  «        ›d�S )Nr   r»   ro   rp   ú.array)
rq   ri   rB   Ú_zerosrP   Úknown_functionsÚgetrJ   Ú__name__Útolistr•   s      r   Ú_print_MatrixBasezNumPyPrinter._print_MatrixBase	  sÀ   € Ø�”
ˆ?ˆ?Ø×&Ò&¨$¬,Ð'FÐ'F¸¼Ð'FÐ'FÑGÔGˆDØÐ7Ð7˜TŸ[š[¨¬Ñ4Ô4Ð7Ð7Ð7Ð7ØÔ#×'Ò'¨¬Ô(?ÀÑFÔFˆØˆ<Ø×&Ò&¨$¬,Ð'>Ð'>Ð'>Ñ?Ô?ˆDØ˜4˜4 §¢¨T¯[ª[©]¬]Ñ!;Ô!;Ð!;Ð!;Ð<Ð<r   c                 óâ   — |j         }t          d„ |D ¦   «         ¦  «        rA|                      | j        dz   ¦  «        ›d|                      |j         d         ¦  «        ›d�S t          d¦  «        ‚)Nc              3   ó$   K  — | ]}|j         V — Œd S rN   )Ú
is_Integer)r   Údims     r   rR   z/NumPyPrinter._print_Identity.<locals>.<genexpr>  s$   è è € Ð/Ð/ #ˆsŒ~Ð/Ð/Ð/Ð/Ð/Ð/r   r¢   ro   r   rp   zFSymbolic matrix dimensions are not yet supported for identity matrices)rq   Úallri   rB   rP   rÛ   )rI   rZ   rq   s      r   Ú_print_IdentityzNumPyPrinter._print_Identity  sz   € Ø”
ˆÝÐ/Ð/¨Ð/Ñ/Ô/Ñ/Ô/ð 	pØ#×2Ò2°4´<À&Ñ3HÑIÔIÐIÐIÈ4Ï;Ê;ÐW[ÔWaÐbcÔWdÑKeÔKeÐKeÐKeÐfÐfå%Ð&nÑoÔoÐor   c                 óÄ   — d                      |                      | j        dz   ¦  «        |                      |j        d                              ¦   «         ¦  «        ¦  «        S )Nrl   z.blockr   )rA   ri   rB   rP   rd   r  rY   s     r   Ú_print_BlockMatrixzNumPyPrinter._print_BlockMatrix  sS   € Ø�Š˜t×2Ò2°4´<À(Ñ3JÑKÔKØ!%§¢¨T¬Y°q¬\×-@Ò-@Ñ-BÔ-BÑ!CÔ!CñEô Eð 	Er   c                 óÜ  — |                      ¦   «         dk    r>|                      | j        › d�¦  «        }|› d|                      |d         ¦  «        › d�S d|j        v rD|                      | j        › d| j        › �¦  «        }|› d|                      |j        ¦  «        › d�S |                      | j        › d�¦  «        }|› d|                      |                     ¦   «         ¦  «        › d�S )Nr   r  ro   r   rp   r»   )Úrankri   rB   rP   rq   r  r  r•   s      r   Ú_print_NDimArrayzNumPyPrinter._print_NDimArray  sø   € Ø�9Š9‰;Œ;˜!ÒÐØ×&Ò&¨$¬,Ð'>Ð'>Ð'>Ñ?Ô?ˆDØÐ5Ð5˜TŸ[š[¨¨b¬Ñ2Ô2Ð5Ð5Ð5Ð5Ø�”
ˆ?ˆ?Ø×&Ò&¨$¬,Ð'FÐ'F¸¼Ð'FÐ'FÑGÔGˆDØÐ7Ð7˜TŸ[š[¨¬Ñ4Ô4Ð7Ð7Ð7Ð7Ø×"Ò" d¤lÐ#:Ð#:Ð#:Ñ;Ô;ˆØÐ6Ð6˜Ÿš T§[¢[¡]¤]Ñ3Ô3Ð6Ð6Ð6Ð6r   ÚaddÚeinsumÚ	transposeÚonesÚzerosrN   )F)=r  Ú
__module__Ú__qualname__Ú__doc__rB   Ú_numpy_known_functionsrE   Ú_numpy_known_constantsÚ_kcrG   rV   r[   rf   rj   rm   ru   ry   r|   r~   r‡   r–   r™   r›   rž   r    r£   r±   rÀ   rÆ   rÊ   rÍ   rØ   ÚstrrÞ   rá   rè   rà   rð   rò   rï   rö   rø   rü   rþ   r   r  r  r  r  Ú_addÚ_einsumÚ
_transposeÚ_onesr  r   Ú_print_not_supportedÚ_print_lowergammaÚ_print_uppergammaÚ_print_fresnelcÚ_print_fresnelsÚ__classcell__©rJ   s   @r   r<   r<   %   s  ø€ € € € € ðð ð
 €GØ
 €CØ
 €Cð,ð ,ð ,ð ,ð ,ð ,ðQð Qð Qð-ð -ð -ðOð Oð OðBð Bð Bð
'ð 'ð 'ð
2ð 2ð 2ð9ð 9ð 9ð
%ð %ð %ð%ð %ð %ðAð Að Að(ð (ð (ð(ð (ð (ð'ð 'ð 'ðBð Bð Bð'ð 'ð 'ðDð Dð Dð
 ð  ð  ð&/ð /ð /ð /ð /ð"Ið Ið IðHð Hð Hð@ð @ð @ðVð Vð Vð Vð9¨#ð 9ð 9ð 9ð 9ð)ð )ð )ðFð Fð Fð<ð <ð <ð)ð )ð )ðFð Fð Fð<ð <ð <ðdð dð dðcð cð cð6ð 6ð 6ðcð cð cðhð hð hð=ð =ð =ðpð pð pðEð Eð Eð7ð 7ð 7ð €DØ€GØ€JØ€EØ€Fà#Ô8ÐØ#Ô8ÐØ!Ô6€OØ!Ô6€O€O€O€O€Or   r<   Ú_print_ÚEiÚexpiÚerfÚerfcÚbesseljÚjvÚbesselyÚyvÚbesseliÚivÚbesselkÚkvÚcosm1Úpowm1Ú	factorialÚgammaÚloggammaÚgammalnÚdigammaÚpsiÚ	polygammaÚRisingFactorialÚpochÚjacobiÚeval_jacobiÚ
gegenbauerÚeval_gegenbauerÚeval_chebytÚeval_chebyuÚeval_legendreÚeval_hermiteÚeval_laguerreÚeval_genlaguerreÚbetaÚlambertw)Ú
chebyshevtÚ
chebyshevuÚlegendreÚhermiteÚlaguerreÚassoc_laguerrerM  ÚLambertWÚgolden_ratio)ÚGoldenRatior2   c                 ó    — i | ]\  }}|d |z   “ŒS )zscipy.special.r   r   s      r   r8   r8   Y  s$   € ÐfÐfÐf±t°q¸!˜!Ð.°Ñ2ÐfÐfÐfr   c                 ó    — i | ]\  }}|d |z   “ŒS )zscipy.constants.r   r   s      r   r8   r8   Z  s$   € ÐjÐjÐj¹¸¸A˜!Ð0°1Ñ4ÐjÐjÐjr   c                   ó¶   ‡ — e Zd Zi ej        ¥e¥Zi ej        ¥e¥Zdˆ fd„	Zd„ Z	e	Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚSciPyPrinterNc                 óZ   •— t          ¦   «                              |¬¦  «         d| _        d S )Nr?   zPython with SciPy and NumPy)rF   rG   rC   rH   s     €r   rG   zSciPyPrinter.__init__a  s)   ø€ Ý‰Œ×Ò (ÐÑ+Ô+Ð+Ø5ˆŒˆˆr   c                 óN  — g g g }}}|                      ¦   «                              ¦   «         D ]G\  \  }}}|                     |¦  «         |                     |¦  «         |                     |¦  «         ŒHd                     |                      d¦  «        ||||j        ¬¦  «        S )Nz+{name}(({data}, ({i}, {j})), shape={shape})zscipy.sparse.coo_matrix)ÚnameÚdatar`   r€   rq   )ÚtodokÚitemsÚappendrA   ri   rq   )rI   rZ   r`   r€   r_  ÚrÚcr   s           r   Ú_print_SparseRepMatrixz#SciPyPrinter._print_SparseRepMatrixe  s¤   € Ø˜˜Rˆdˆ1ˆØŸš™œ×+Ò+Ñ-Ô-ð 	ð 	‰I‰FˆQ��AØ�HŠH�Q‰KŒKˆKØ�HŠH�Q‰KŒKˆKØ�KŠK˜‰NŒNˆNˆNà<×CÒCØ×$Ò$Ð%>Ñ?Ô?Ø˜˜a t¤zð Dñ 
ô 
ð 	
r   c           	      ó  — d                      |                      d¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz{0}({2}, {1}, {3})zscipy.special.lpmvr   r   é   ©rA   ri   rP   rd   rY   s     r   Ú_print_assoc_legendrez"SciPyPrinter._print_assoc_legendret  sk   € Ø#×*Ò*Ø×ÒÐ 4Ñ5Ô5Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%ñ	'ô 'ð 	'r   c           	      óö   — d                      |                      d¦  «        |                      d¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nú{0}({2})*{1}({2}, {3})úscipy.special.gammazscipy.special.gammaincr   r   rh  rY   s     r   r%  zSciPyPrinter._print_lowergamma{  sh   € Ø'×.Ò.Ø×ÒÐ 5Ñ6Ô6Ø×ÒÐ 8Ñ9Ô9Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%ñ	'ô 'ð 	'r   c           	      óö   — d                      |                      d¦  «        |                      d¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nrk  rl  zscipy.special.gammainccr   r   rh  rY   s     r   r&  zSciPyPrinter._print_uppergamma‚  sh   € Ø'×.Ò.Ø×ÒÐ 5Ñ6Ô6Ø×ÒÐ 9Ñ:Ô:Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%ñ	'ô 'ð 	'r   c                 ó&  ‡ — ‰                       d¦  «        }‰                       d¦  «        }ˆ fd„|j        D ¦   «         }d|› d|d         › d|d         › d|d         › d	|› d|d         › d|d         › d|d
         › d|› d|d         › d|d         › d�S )Núscipy.special.betainczscipy.special.betac                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   rO   r‚   s     €r   r   z/SciPyPrinter._print_betainc.<locals>.<listcomp>Œ  s%   ø€ Ð6Ð6Ð6 S�—’˜CÑ Ô Ð6Ð6Ð6r   ro   r   rL   r   é   z) - rg  z))             * rp   )ri   rd   )rI   rZ   ÚbetaincrM  rd   s   `    r   Ú_print_betainczSciPyPrinter._print_betainc‰  s  ø€ Ø×%Ò%Ð&=Ñ>Ô>ˆØ×"Ò"Ð#7Ñ8Ô8ˆØ6Ð6Ð6Ð6¨D¬IÐ6Ñ6Ô6ˆð,�7ð ,ð ,˜T !œWð ,ð ,¨¨Q¬ð ,ð ,°4¸´7ð ,ð ,Àð ,ð ,È$ÈqÌ'ð ,ð ,ÐUYÐZ[ÔU\ð ,ð ,Ð`dÐefÔ`gð ,ð ,Øð,ð ,Ø˜1”gð,ð ,Ø!% a¤ð,ð ,ð ,ð 	,r   c           
      óJ  — d                      |                      d¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz'{0}({1}, {2}, {4}) - {0}({1}, {2}, {3})ro  r   r   rg  rq  rh  rY   s     r   Ú_print_betainc_regularizedz'SciPyPrinter._print_betainc_regularized�  s€   € Ø8×?Ò?Ø×ÒÐ 7Ñ8Ô8Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%Ø�KŠK˜œ	 !œÑ%Ô%ñ'ô 'ð 	'r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nú	{}({})[0]úscipy.special.fresnelr   rh  rY   s     r   r(  zSciPyPrinter._print_fresnels˜  óA   € Ø×!Ò!Ø×#Ò#Ð$;Ñ<Ô<Ø—’˜DœI aœLÑ)Ô)ñ+ô +ð 	+r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nú	{}({})[1]rx  r   rh  rY   s     r   r'  zSciPyPrinter._print_fresnelc�  ry  r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nrw  úscipy.special.airyr   rh  rY   s     r   Ú_print_airyaizSciPyPrinter._print_airyai¢  óA   € Ø×!Ò!Ø×#Ò#Ð$8Ñ9Ô9Ø—’˜DœI aœLÑ)Ô)ñ+ô +ð 	+r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nr{  r}  r   rh  rY   s     r   Ú_print_airyaiprimezSciPyPrinter._print_airyaiprime§  r  r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz	{}({})[2]r}  r   rh  rY   s     r   Ú_print_airybizSciPyPrinter._print_airybi¬  r  r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nz	{}({})[3]r}  r   rh  rY   s     r   Ú_print_airybiprimezSciPyPrinter._print_airybiprime±  r  r   c                 óF   — |                        |j        |j        Ž ¦  «        S rN   ©rP   Ú_eval_rewrite_as_zetard   rY   s     r   Ú_print_bernoullizSciPyPrinter._print_bernoulli¶  s!   € à�{Š{Ð5˜4Ô5°t´yÐAÑBÔBÐBr   c                 óF   — |                        |j        |j        Ž ¦  «        S rN   r‡  rY   s     r   Ú_print_harmoniczSciPyPrinter._print_harmonicº  s!   € Ø�{Š{Ð5˜4Ô5°t´yÐAÑBÔBÐBr   c           	      ó  ‡ — t          |¦  «        \  }}t          |¦  «        dk    rA‰                      d¦  «        }dt          t	          ‰ j        |d         ¦  «        ¦  «        z  }nI‰                      d¦  «        }d                     d                     ˆ fd„|D ¦   «         ¦  «        ¦  «        }d	                     |d                     t	          ‰ j        |¦  «        ¦  «        ‰                      |j        d         ¦  «        |¦  «        S )
Nr   zscipy.integrate.quadz%s, %sr   zscipy.integrate.nquadr]   rL   c              3   ób   •K  — | ])}d t          t          ‰j        |¦  «        ¦  «        z  V — Œ*dS )z(%s, %s)N)ÚtupleÚmaprP   )r   ÚlrI   s     €r   rR   z/SciPyPrinter._print_Integral.<locals>.<genexpr>Æ  sU   øè è € ð 0Ið 0IØ<=�
�U¥3 t¤{°AÑ#6Ô#6Ñ7Ô7Ñ7ð0Ið 0Ið 0Ið 0Ið 0Ið 0Ir   z{}(lambda {}: {}, {})[0])	r   r”   ri   rŽ  r�  rP   rA   rS   rd   )rI   r,   Úintegration_varsÚlimitsÚ
module_strÚ	limit_strs   `     r   Ú_print_IntegralzSciPyPrinter._print_Integral½  s  ø€ Ý#:¸1Ñ#=Ô#=Ñ Ð˜&åˆv‰;Œ;˜!ÒÐà×,Ò,Ð-CÑDÔDˆJØ ¥5­¨T¬[¸&À¼)Ñ)DÔ)DÑ#EÔ#EÑEˆIˆIà×,Ò,Ð-DÑEÔEˆJØŸš d§i¢ið 0Ið 0Ið 0Ið 0IØAGð0Iñ 0Iô 0Iñ 'Iô 'Iñ Jô JˆIð *×0Ò0ØØ—	’	�#˜dœkÐ+;Ñ<Ô<Ñ=Ô=Ø—’˜AœF 1œIÑ&Ô&Øñ	ô ð 	r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nrw  úscipy.special.sicir   rh  rY   s     r   Ú	_print_SizSciPyPrinter._print_SiÏ  r  r   c                 ó�   — d                      |                      d¦  «        |                      |j        d         ¦  «        ¦  «        S )Nr{  r—  r   rh  rY   s     r   Ú	_print_CizSciPyPrinter._print_CiÔ  r  r   rN   )r  r  r  r<   rE   Ú_scipy_known_functionsr  Ú_scipy_known_constantsrG   re  Ú_print_ImmutableSparseMatrixri  r%  r&  rs  ru  r(  r'  r~  r�  rƒ  r…  r‰  r‹  r•  r˜  rš  r)  r*  s   @r   r[  r[  \  sp  ø€ € € € € à
8ˆ\ÔÐ
8Ð!7Ð
8€CØ
8ˆ\ÔÐ
8Ð!7Ð
8€Cð6ð 6ð 6ð 6ð 6ð 6ð

ð 

ð 

ð $:Ð ð'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð,ð ,ð ,ð'ð 'ð 'ð+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
Cð Cð CðCð Cð Cðð ð ð$+ð +ð +ð
+ð +ð +ð +ð +ð +ð +r   r[  c                 ó    — i | ]\  }}|d |z   “ŒS ©zcupy.r   r   s      r   r8   r8   à  ó"   € ÐTÐTÐT©T¨Q°˜˜W q™[ÐTÐTÐTr   c                 ó    — i | ]\  }}|d |z   “ŒS rŸ  r   r   s      r   r8   r8   á  r   r   c                   ó0   ‡ — e Zd ZdZdZeZeZdˆ fd„	Z	ˆ xZ
S )ÚCuPyPrinterz`
    CuPy printer which handles vectorized piecewise functions,
    logical operators, etc.
    ÚcupyNc                 óL   •— t          ¦   «                              |¬¦  «         d S )Nr?   )rF   rG   rH   s     €r   rG   zCuPyPrinter.__init__í  s$   ø€ Ý‰Œ×Ò (ÐÑ+Ô+Ð+Ð+Ð+r   rN   )r  r  r  r  rB   Ú_cupy_known_functionsrE   Ú_cupy_known_constantsr  rG   r)  r*  s   @r   r£  r£  ã  sX   ø€ € € € € ðð ð
 €GØ
€CØ
€Cð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,r   r£  c                 ó    — i | ]\  }}|d |z   “ŒS ©z
jax.numpy.r   r   s      r   r8   r8   ÷  ó#   € ÐWÐWÐW±°°1˜˜<¨!Ñ+ÐWÐWÐWr   c                 ó    — i | ]\  }}|d |z   “ŒS r©  r   r   s      r   r8   r8   ø  rª  r   c                   ó<   ‡ — e Zd ZdZdZeZeZdˆ fd„	Z	d„ Z
d„ Zˆ xZS )Ú
JaxPrinterz_
    JAX printer which handles vectorized piecewise functions,
    logical operators, etc.
    z	jax.numpyNc                 óZ   •— t          ¦   «                              |¬¦  «         d| _        d S )Nr?   Ú_jaxcode)rF   rG   rD   rH   s     €r   rG   zJaxPrinter.__init__  s,   ø€ Ý‰Œ×Ò (ÐÑ+Ô+Ð+Ø%ˆÔÐÐr   c                 óà   ‡ — d                      ‰                      ‰ j        dz   ¦  «        ‰                      ‰ j        ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )rÂ   ú{}({}.asarray([{}]), axis=0)z.allr«   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z(JaxPrinter._print_And.<locals>.<genexpr>  ó-   øè è € Ð7Ð7¨�T—[’[ ‘^”^Ð7Ð7Ð7Ð7Ð7Ð7r   rÅ   rY   s   ` r   rÆ   zJaxPrinter._print_And	  ól   ø€ à-×4Ò4Ø×Ò ¤¨vÑ 5Ñ6Ô6Ø×Ò ¤Ñ-Ô-Ø�HŠHÐ7Ð7Ð7Ð7¨T¬YÐ7Ñ7Ô7Ñ7Ô7ñ
ô 
ð 	
r   c                 óà   ‡ — d                      ‰                      ‰ j        dz   ¦  «        ‰                      ‰ j        ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )rÈ   r±  z.anyr«   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rN   rO   r_   s     €r   rR   z'JaxPrinter._print_Or.<locals>.<genexpr>  r³  r   rÅ   rY   s   ` r   rÊ   zJaxPrinter._print_Or  r´  r   rN   )r  r  r  r  rB   Ú_jax_known_functionsrE   Ú_jax_known_constantsr  rG   rÆ   rÊ   r)  r*  s   @r   r­  r­  ú  sv   ø€ € € € € ðð ð €Gà
€CØ
€Cð&ð &ð &ð &ð &ð &ð

ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
r   r­  N)'Ú
sympy.corer   Úsympy.core.functionr   Úsympy.core.powerr   Úpycoder   r   r	   r
   r   r   Úcodeprinterr   Úsplitr   ra  Ú	_in_numpyÚdictÚ_known_functions_numpyÚ_known_constants_numpyr  r  r<   r�   ÚsetattrÚconstÚ_known_functions_scipy_specialÚ _known_constants_scipy_constantsr›  rœ  r[  r¦  r§  r£  r·  r¸  r­  r   r   r   ú<module>rÇ     sÅ  ðØ Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø  Ð  Ð  Ð  Ð  Ð  ð Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  Kð  KØ $Ð $Ð $Ð $Ð $Ð $ð 4×9Ò9Ñ;Ô;€ØXÐXÐ ;Ð 5Ô ;Ñ =Ô =ÐXÑXÔX€	Ø˜˜ið ð ØØØØØØØØØØØØØð,ð ,ð ð Ð ð" Ø
ØØØðð Ð ð VÐUÐ6L×6RÒ6RÑ6TÔ6TÐUÑUÔUÐ ØUÐUÐ6L×6RÒ6RÑ6TÔ6TÐUÑUÔUÐ ðK7ð K7ð K7ð K7ð K7�<Ð!2ñ K7ô K7ð K7ðZ #ð ?ð ?€DØ€GˆLÐ* DÐ*Ð*Ð,=Ñ>Ô>Ð>Ð>à#ð Að A€EØ€GˆLÐ+ EÐ+Ð+Ð-?Ñ@Ô@Ð@Ð@ð"Øˆ&ð"à	ˆ5ð"ð ˆFð"ð ˆtð	"ð
 ˆtð"ð ˆtð"ð ˆtð"ð ˆWð"ð ˆWð"ð �ð"ð ˆWð"ð �	ð"ð ˆuð"ð �ð"ð �vð"ð  ˆmð!"ð" Ð#ð#"ð$  ØØØØØ(ØØð3"ð "ð "Ð ð: "Ø
ð$ð $Ð  ð gÐfÐ?]×?cÒ?cÑ?eÔ?eÐfÑfÔfÐ ØjÐjÐAa×AgÒAgÑAiÔAiÐjÑjÔjÐ ð{+ð {+ð {+ð {+ð {+�<ñ {+ô {+ð {+ðz #ð ?ð ?€DØ€GˆLÐ* DÐ*Ð*Ð,=Ñ>Ô>Ð>Ð>à#ð Að A€EØ€GˆLÐ+ EÐ+Ð+Ð-?Ñ@Ô@Ð@Ð@ð UÐTÐ5K×5QÒ5QÑ5SÔ5SÐTÑTÔTÐ ØTÐTÐ5K×5QÒ5QÑ5SÔ5SÐTÑTÔTÐ ð,ð ,ð ,ð ,ð ,�,ñ ,ô ,ð ,ð "ð >ð >€DØ€GˆKÐ) 4Ð)Ð)Ð+<Ñ=Ô=Ð=Ð=à"ð @ð @€EØ€GˆKÐ* 5Ð*Ð*Ð,>Ñ?Ô?Ð?Ð?ð XÐWÐ8N×8TÒ8TÑ8VÔ8VÐWÑWÔWÐ ØWÐWÐ8N×8TÒ8TÑ8VÔ8VÐWÑWÔWÐ ð
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð> !ð =ð =€DØ€GˆJÐ( $Ð(Ð(Ð*;Ñ<Ô<Ð<Ð<à!ð ?ð ?€EØ€GˆJÐ) %Ð)Ð)Ð+=Ñ>Ô>Ð>Ð>ð?ð ?r   