Ë
    O/æjN  ã                   ó  — 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j                  «       Z ej"                  «       D � �cg c]  \  } }| evsŒ| |f‘Œ c}} Z eefi dd	d
ddddddddddœ¤ŽZddddddœZej#                  «       D � �ci c]  \  } }| d|z   “Œ c}} Zej#                  «       D � �ci c]  \  } }| d|z   “Œ c}} 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,“d-d-“d.d.“d/d0“d1d2“d3d3“d4d5“d6d7“d8d9“d:d;d<d=d>d?d@dAdBœ¥ZdCddDœZej#                  «       D � �ci c]  \  } }| dE|z   “Œ c}} Zej#                  «       D � �ci c]  \  } }| dF|z   “Œ c}} Z G dG„ dHe«      Z eD ]  Z ee de› �e
«       Œ eD ]  Z ee de› �e	«       Œ ej#                  «       D � �ci c]  \  } }| dI|z   “Œ c}} Z!ej#                  «       D � �ci c]  \  } }| dI|z   “Œ c}} Z" G dJ„ dKe«      Z#e!D ]  Z ee#de› �e
«       Œ e"D ]  Z ee#de› �e	«       Œ ej#                  «       D � �ci c]  \  } }| dL|z   “Œ c}} Z$ej#                  «       D � �ci c]  \  } }| dL|z   “Œ c}} Z% G dM„ dNe«      Z&e$D ]  Z ee&de› �e
«       Œ e%D ]  Z ee&de› �e	«       Œ yOc c}} w c c}} w c c}} w c c}} w c c}} w c c}} w c c}} w c c}} w c c}} w )Pé    )ÚS)ÚLambda)ÚPowé   )ÚPythonCodePrinterÚ_known_functions_mathÚ_print_known_constÚ_print_known_funcÚ_unpack_integral_limitsÚArrayPrinter)ÚCodePrinterz!erf erfc factorial gamma loggammaÚarccosÚarccoshÚarcsinÚarcsinhÚarctanÚarctan2ÚarctanhÚexp2ÚsignÚ	logaddexpÚ
logaddexp2Úisnan)ÚacosÚacoshÚasinÚasinhÚatanÚatan2Úatanhr   r   r   r   r   ÚeÚpiÚeuler_gammaÚnanÚinf)ÚExp1ÚPiÚ
EulerGammaÚNaNÚInfinityznumpy.c                   ót  ‡ — e Zd ZdZdZeZeZd*ˆ 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d+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-d(Z.d)Z/e0jb                  Z2e0jb                  Z3e0jb                  Z4e0jb                  Z5ˆ xZ6S ),ÚNumPyPrinterza
    Numpy printer which handles vectorized piecewise functions,
    logical operators, etc.
    Únumpyc                 óì   •— dj                  | j                  «      | _        dj                  | j                  «      | _        i t        j
                  ¥| j
                  ¥| _        t        ‰| �  |¬«       y)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__©Úselfr0   Ú	__class__s     €úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/sympy/printing/numpy.pyr7   zNumPyPrinter.__init__-   s^   ø€ ð )×/Ñ/°·±Ó=ˆŒØ$×+Ñ+¨D¯L©LÓ9ˆÔà8Ô'×+Ñ+Ð8¨t¯x©xÐ8ˆŒä‰Ñ (ÐÕ+ó    c                 óZ   ‡ — d}dj                  |j                  ˆ fd„|D «       «      «      S )z+General sequence printer: converts to tupleú, z({},)c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­w©N©Ú_print)Ú.0Úitemr9   s     €r;   ú	<genexpr>z*NumPyPrinter._print_seq.<locals>.<genexpr>@   s   øè ø€ Ò,OÀ4¨T¯[©[¸×->Ñ,Oùó   ƒ)r1   Újoin)r9   ÚseqÚ	delimiters   `  r;   Ú
_print_seqzNumPyPrinter._print_seq;   s(   ø€ ð ˆ	Ø�~‰~˜iŸn™nÓ,OÈ3Ô,OÓOÓPÐPr<   c                 óF   — d| j                  t        j                  «      z   S )Nú-)rB   r   r*   ©r9   Úexprs     r;   Ú_print_NegativeInfinityz$NumPyPrinter._print_NegativeInfinityB   s   € Ø�T—[‘[¤§¡Ó,Ñ,Ð,r<   c                 óR  ‡ — |j                  «       d   t        j                  urQ|j                  «       d   |j                  «       d   gz   }dj                  dj	                  ˆ fd„|D «       «      «      S dj                  dj	                  ˆ fd„|j
                  D «       «      «      S )zMatrix multiplication printerr   r   ú({})z).dot(c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   ©rC   Úir9   s     €r;   rE   z-NumPyPrinter._print_MatMul.<locals>.<genexpr>I   s   øè ø€ Ò.QÀ!¨t¯{©{¸1¯~Ñ.QùrF   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z-NumPyPrinter._print_MatMul.<locals>.<genexpr>J   s   øè ø€ Ò*M¸a¨4¯;©;°q¯>Ñ*MùrF   )Úas_coeff_matricesr   ÚOner1   rG   Úargs)r9   rN   Ú	expr_lists   `  r;   Ú_print_MatMulzNumPyPrinter._print_MatMulE   s†   ø€ à×!Ñ!Ó# AÑ&¬a¯e©eÑ3Ø×.Ñ.Ó0°Ñ3°d×6LÑ6LÓ6NÈqÑ6QÐ4SÑSˆIØ—=‘= §¡Ó.QÀyÔ.QÓ!QÓRÐRØ�}‰}˜XŸ]™]Ó*MÀ4Ç9Á9Ô*MÓMÓNÐNr<   c                 óÐ   — dj                  | j                  | j                  dz   «      | j                  |j                  d   «      | j                  |j                  d   «      «      S )zMatrix power printerz
{}({}, {})z.linalg.matrix_powerr   r   ©r1   Ú_module_formatr2   rB   rX   rM   s     r;   Ú_print_MatPowzNumPyPrinter._print_MatPowL   sU   € à×"Ñ" 4×#6Ñ#6°t·|±|ÐF\Ñ7\Ó#]Ø�K‰K˜Ÿ	™	 !™Ó% t§{¡{°4·9±9¸Q±<Ó'@óBð 	Br<   c                 ó–   — dj                  | j                  | j                  dz   «      | j                  |j                  d   «      «      S )zMatrix inverse printerú{}({})z.linalg.invr   r\   rM   s     r;   Ú_print_InversezNumPyPrinter._print_InverseQ   s=   € à�‰˜t×2Ñ2°4·<±<À-Ñ3OÓPØ�K‰K˜Ÿ	™	 !™Ó%ó'ð 	'r<   c                 ó"  — |j                   \  }}|j                  d   dk7  r|j                  }|j                  d   dk7  r|j                  }| j                  | j                  dz   «      ›d| j                  |«      ›d| j                  |«      ›d�S )Nr   r   z.dotú(r>   ú))rX   ÚshapeÚTr]   r2   rB   )r9   rN   Úarg1Úarg2s       r;   Ú_print_DotProductzNumPyPrinter._print_DotProductV   s|   € ð —Y‘Y‰
ˆˆdØ�:‰:�a‰=˜AÒØ—6‘6ˆDØ�:‰:�a‰=˜AÒØ—6‘6ˆDà#×2Ñ2°4·<±<À&Ñ3HÕIØ#Ÿ{™{¨4Õ0Ø#Ÿ{™{¨4Õ0ð2ð 	2r<   c                 ó´   — | j                  | j                  dz   «      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )Nz.linalg.solverc   r>   rd   )r]   r2   rB   ÚmatrixÚvectorrM   s     r;   Ú_print_MatrixSolvezNumPyPrinter._print_MatrixSolvec   sC   € Ø#×2Ñ2°4·<±<À/Ñ3QÕRØ#Ÿ{™{¨4¯;©;Õ7Ø#Ÿ{™{¨4¯;©;Õ7ð9ð 	9r<   c                 ó�   — dj                  | j                  | j                  dz   «      | j                  |j                  «      «      S )Nr`   z.zeros©r1   r]   r2   rB   re   rM   s     r;   Ú_print_ZeroMatrixzNumPyPrinter._print_ZeroMatrixh   s9   € Ø�‰˜t×2Ñ2°4·<±<À(Ñ3JÓKØ�K‰K˜Ÿ
™
Ó#ó%ð 	%r<   c                 ó�   — dj                  | j                  | j                  dz   «      | j                  |j                  «      «      S )Nr`   z.onesro   rM   s     r;   Ú_print_OneMatrixzNumPyPrinter._print_OneMatrixl   s9   € Ø�‰˜t×2Ñ2°4·<±<À'Ñ3IÓJØ�K‰K˜Ÿ
™
Ó#ó%ð 	%r<   c                 óŠ  ‡ — ddl m}m} |j                  }t	        |t
        «      st        ||f |||«      «      }dj                  ‰ j                  ‰ j                  dz   «      dj                  ˆ fd„|j                  d   D «       «      ‰ j                  |j                  d   «      ‰ j                  |j                  «      «      S )Nr   )rT   Újz{}(lambda {}: {}, {})z.fromfunctionr>   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   ©rC   Úargr9   s     €r;   rE   z5NumPyPrinter._print_FunctionMatrix.<locals>.<genexpr>v   s   øè ø€ Ò@¨3�d—k‘k #×&Ñ@ùrF   r   )Ú	sympy.abcrT   rt   ÚlamdaÚ
isinstancer   r1   r]   r2   rG   rX   rB   re   )r9   rN   rT   rt   ry   s   `    r;   Ú_print_FunctionMatrixz"NumPyPrinter._print_FunctionMatrixp   s˜   ø€ ß"Ø—
‘
ˆÜ˜%¤Ô(Ü˜A˜q˜6¡5¨¨A£;Ó/ˆEØ&×-Ñ-¨d×.AÑ.AÀ$Ç,Á,ÐQ`ÑB`Ó.aØ�I‰IÓ@°%·*±*¸Q±-Ô@Ó@Ø�K‰K˜Ÿ
™
 1™Ó&¨¯©°D·J±JÓ(?óAð 	Ar<   c                 ó"  ‡ ‡— ‰ j                  ‰ j                  dz   «      Šdj                  ˆˆ fd„|j                  d d D «       «      dj	                  ‰ j                  |j                  d   «      dt        |j                  «      dz
  z  «      z   S )Nú	.multiplyÚ c              3   ó`   •K  — | ]%  }d j                  ‰‰j                  |«      «      –— Œ' y­w©z{}({}, N©r1   rB   ©rC   rw   Úfuncr9   s     €€r;   rE   z6NumPyPrinter._print_HadamardProduct.<locals>.<genexpr>{   ó/   øè ø€ ò 'Øð !×'Ñ'¨¨d¯k©k¸#Ó.>×?ñ 'ùó   ƒ+.éÿÿÿÿú{}{}rd   r   ©r]   r2   rG   rX   r1   rB   Úlen©r9   rN   rƒ   s   ` @r;   Ú_print_HadamardProductz#NumPyPrinter._print_HadamardProducty   s}   ù€ Ø×"Ñ" 4§<¡<°+Ñ#=Ó>ˆØ�w‰wô 'Ø—y‘y  "�~ô'ó 'Ø)/¯©°t·{±{À4Ç9Á9ÈRÁ=Ó7QØ”3�t—y‘y“> AÑ%Ñ&ó*(ñ(ð 	(r<   c                 ó"  ‡ ‡— ‰ j                  ‰ j                  dz   «      Šdj                  ˆˆ fd„|j                  d d D «       «      dj	                  ‰ j                  |j                  d   «      dt        |j                  «      dz
  z  «      z   S )Nz.kronr~   c              3   ó`   •K  — | ]%  }d j                  ‰‰j                  |«      «      –— Œ' y­wr€   r�   r‚   s     €€r;   rE   z7NumPyPrinter._print_KroneckerProduct.<locals>.<genexpr>�   r„   r…   r†   r‡   rd   r   rˆ   rŠ   s   ` @r;   Ú_print_KroneckerProductz$NumPyPrinter._print_KroneckerProduct   s}   ù€ Ø×"Ñ" 4§<¡<°'Ñ#9Ó:ˆØ�w‰wô 'Ø—y‘y  "�~ô'ó 'Ø)/¯©°t·{±{À4Ç9Á9ÈRÁ=Ó7QØ”3�t—y‘y“> AÑ%Ñ&ó*(ñ(ð 	(r<   c                 óÐ   — dj                  | j                  | j                  dz   «      | j                  | j                  dz   «      | j                  |j                  d   «      «      S )Nz
{}({}({}))z
.conjugatez
.transposer   r\   rM   s     r;   Ú_print_AdjointzNumPyPrinter._print_Adjoint…   sW   € Ø×"Ñ"Ø×Ñ §¡¨|Ñ ;Ó<Ø×Ñ §¡¨|Ñ ;Ó<Ø�K‰K˜Ÿ	™	 !™Ó%ó'ð 	'r<   c                 óì   — dj                  | j                  | j                  dz   «      | j                  |j                  «      «      }dj                  | j                  | j                  dz   «      |«      S )Nr`   z.diagz{}({}, (-1, 1))z.reshape)r1   r]   r2   rB   rw   )r9   rN   Úvects      r;   Ú_print_DiagonalOfzNumPyPrinter._print_DiagonalOf‹   sg   € Ø�‰Ø×Ñ §¡¨wÑ 6Ó7Ø�K‰K˜Ÿ™Ó!ó#ˆð !×'Ñ'Ø×Ñ §¡¨zÑ 9Ó:¸DóBð 	Br<   c                 ó–   — dj                  | j                  | j                  dz   «      | j                  |j                  d   «      «      S )Nr`   z	.diagflatr   r\   rM   s     r;   Ú_print_DiagMatrixzNumPyPrinter._print_DiagMatrix’   s=   € Ø�‰˜t×2Ñ2°4·<±<À+Ñ3MÓNØ�K‰K˜Ÿ	™	 !™Ó%ó'ð 	'r<   c           
      ó>  — dj                  | j                  | j                  dz   «      | j                  |j                  «      | j                  | j                  dz   «      | j                  |j
                  d   «      | j                  |j
                  d   «      «      S )Nz{}({}, {}({}, {}))r}   ú.eyer   r   )r1   r]   r2   rB   rw   re   rM   s     r;   Ú_print_DiagonalMatrixz"NumPyPrinter._print_DiagonalMatrix–   sz   € Ø#×*Ñ*¨4×+>Ñ+>¸t¿|¹|ÈkÑ?YÓ+ZØ�K‰K˜Ÿ™Ó! 4×#6Ñ#6°t·|±|ÀfÑ7LÓ#MØ�K‰K˜Ÿ
™
 1™Ó&¨¯©°D·J±J¸q±MÓ(BóDð 	Dr<   c                 óŽ  ‡ ‡‡‡— ddl mŠmŠ ˆˆ ˆfd„Šdj                  dj	                  ˆ fd„|j
                  D «       «      «      }dj                  dj	                  ˆfd„|j
                  D «       «      «      }dj                  ‰ j                  ‰ j                  d	z   «      ||‰ j                  t        j                  «      «      S )
zPiecewise function printerr   )ÚITEÚsimplify_logicc                 óv   •— | j                  ‰«      r‰j                   ‰| «      «      S ‰j                  | «      S )z$ Problem having an ITE in the cond. )ÚhasrB   )Úcondrš   r9   r›   s    €€€r;   Ú
print_condz1NumPyPrinter._print_Piecewise.<locals>.print_condž   s1   ø€ à�x‰x˜Œ}Ø—{‘{¡>°$Ó#7Ó8Ð8à—{‘{ 4Ó(Ð(r<   z[{}]ú,c              3   óT   •K  — | ]  }‰j                  |j                  «      –— Œ! y ­wr@   )rB   rN   rv   s     €r;   rE   z0NumPyPrinter._print_Piecewise.<locals>.<genexpr>¤   s   øè ø€ Ò&RÀ t§{¡{°3·8±8×'<Ñ&Rùs   ƒ%(c              3   óB   •K  — | ]  } ‰|j                   «      –— Œ y ­wr@   )rž   )rC   rw   rŸ   s     €r;   rE   z0NumPyPrinter._print_Piecewise.<locals>.<genexpr>¥   s   øè ø€ Ò&QÀ¡z°#·(±(×';Ñ&Qùs   ƒz{}({}, {}, default={})z.select)Úsympy.logic.boolalgrš   r›   r1   rG   rX   r]   r2   rB   r   r)   )r9   rN   ÚexprsÚcondsrš   rŸ   r›   s   `   @@@r;   Ú_print_PiecewisezNumPyPrinter._print_Piecewise›   s�   û€ ç;ö	)ð —‘˜cŸh™hÓ&RÈÏ	É	Ô&RÓRÓSˆØ—‘˜cŸh™hÓ&QÀtÇyÁyÔ&QÓQÓRˆð
 (×.Ñ.Ø×Ñ §¡¨yÑ 8Ó9¸5À%Ø�K‰KœŸ™Óó ð 	 r<   c                 ó<  •— dddddddœ}|j                   |v rv| j                  |j                  «      }| j                  |j                  «      }dj	                  | j                  | 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_oprB   r²   r³   r1   r]   r2   r6   Ú_print_Relational)r9   rN   r±   r²   r³   r:   s        €r;   rµ   zNumPyPrinter._print_Relational®   s¨   ø€ ð ØØØØØ!ñ
ˆð �;‰;˜"ÑØ—+‘+˜dŸh™hÓ'ˆCØ—+‘+˜dŸh™hÓ'ˆCØ'×.Ñ.°$×2EÑ2EÀdÇlÁlÐUXÑFXÐY[Ð\`×\gÑ\gÑYhÑFhÓ2iØ36¸Cð /ó Að Aä‰wÑ(¨Ó.Ð.r<   c                 ó¤   ‡ — dj                  ‰ j                  ‰ j                  dz   «      dj                  ˆ fd„|j                  D «       «      «      S )úLogical And printerú{}.reduce(({}))z.logical_andr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z*NumPyPrinter._print_And.<locals>.<genexpr>Ä   s'   øè ø€ ò  eHÐxyÐei×epÑepÐqr×esñ  eHùrF   ©r1   r]   r2   rG   rX   rM   s   ` r;   Ú
_print_AndzNumPyPrinter._print_And¿   sc   ø€ ð
 !×'Ñ'¨×(;Ñ(;¸D¿L¹LÈ>Ñ<YÓ(ZÐ\_×\dÑ\dó  eHð  ~B÷  ~Gñ  ~Gô  eHó  ]Hó  Ið  	Ir<   c                 ó¤   ‡ — dj                  ‰ j                  ‰ j                  dz   «      dj                  ˆ fd„|j                  D «       «      «      S )úLogical Or printerr¸   z.logical_orr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z)NumPyPrinter._print_Or.<locals>.<genexpr>Ë   s'   øè ø€ ò  dGÐwxÐdh×doÑdoÐpq×drñ  dGùrF   rº   rM   s   ` r;   Ú	_print_OrzNumPyPrinter._print_OrÆ   sc   ø€ ð
 !×'Ñ'¨×(;Ñ(;¸D¿L¹LÈ=Ñ<XÓ(YÐ[^×[cÑ[có  dGð  }A÷  }Fñ  }Fô  dGó  \Gó  Hð  	Hr<   c                 ó¤   ‡ — dj                  ‰ j                  ‰ j                  dz   «      dj                  ˆ fd„|j                  D «       «      «      S )zLogical Not printerr`   z.logical_notr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z*NumPyPrinter._print_Not.<locals>.<genexpr>Ò   s   øè ø€ Ò[~ÐopÐ\`×\gÑ\gÐhi×\jÑ[~ùrF   rº   rM   s   ` r;   Ú
_print_NotzNumPyPrinter._print_NotÍ   sC   ø€ ð
 �‰˜t×2Ñ2°4·<±<À.Ñ3PÓQÐSV×S[ÑS[Ó[~Ðtx×t}Ñt}Ô[~ÓS~ÓÐr<   c                 óü   — |j                   j                  rF|j                   j                  r0t        |j                  |j                   j                  «       d¬«      }| j                  ||| j                  dz   ¬«      S )NF)Úevaluatez.sqrt)ÚrationalÚsqrt)ÚexpÚ
is_integerÚis_negativer   ÚbaseÚevalfÚ_hprint_Powr2   )r9   rN   rÅ   s      r;   Ú
_print_PowzNumPyPrinter._print_PowÔ   sY   € à�8‰8×Ò 4§8¡8×#7Ò#7Ü�t—y‘y $§(¡(§.¡.Ó"2¸UÔCˆDØ×Ñ ¨x¸d¿l¹lÈWÑ>TÐÓUÐUr<   c                 óØ   ‡ — dj                  ‰ j                  ‰ j                  dz   «      ‰ j                  ‰ j                  «      dj                  ˆ fd„|j                  D «       «      «      S )Nú{}({}.asarray([{}]), axis=0)z.aminr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z*NumPyPrinter._print_Min.<locals>.<genexpr>Û   ó?   øè ø€ ò  Nqð  bcð  OS÷  OZñ  OZð  [\÷  O]ñ  NqùrF   rº   rM   s   ` r;   Ú
_print_MinzNumPyPrinter._print_MinÚ   ó�   ø€ Ø-×4Ñ4°T×5HÑ5HÈÏÉÐX_ÑI_Ó5`Ðbf×buÑbuÐvz÷  wCñ  wCó  cDð  FI÷  FNñ  FNó  Nqð  gk÷  gpñ  gpô  Nqó  Fqó  rð  	rr<   c                 óØ   ‡ — dj                  ‰ j                  ‰ j                  dz   «      ‰ j                  ‰ j                  «      dj                  ˆ fd„|j                  D «       «      «      S )NrÏ   z.amaxr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z*NumPyPrinter._print_Max.<locals>.<genexpr>Þ   rÑ   rF   rº   rM   s   ` r;   Ú
_print_MaxzNumPyPrinter._print_MaxÝ   rÓ   r<   c                 ó‚   — | j                  | j                  dz   «      ›d| j                  |j                  d   «      ›d�S )Nz.anglerc   r   rd   ©r]   r2   rB   rX   rM   s     r;   Ú
_print_argzNumPyPrinter._print_argß   s7   € Ø×.Ñ.¨t¯|©|¸hÑ/FÕGÈÏÉÐUY×U^ÑU^Ð_`ÑUaÕIbÐcÐcr<   c                 ó‚   — | j                  | j                  dz   «      ›d| j                  |j                  d   «      ›d�S )Nz.imagrc   r   rd   rØ   rM   s     r;   Ú	_print_imzNumPyPrinter._print_imâ   ó7   € Ø×.Ñ.¨t¯|©|¸gÑ/EÕFÈÏÉÐTX×T]ÑT]Ð^_ÑT`ÕHaÐbÐbr<   c                 ó�   ‡ — ‰ j                  ‰ j                  dz   «      ›ddj                  ˆ fd„|j                  D «       «      ›d�S )Nz.modrc   r>   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rv   s     €r;   rE   z*NumPyPrinter._print_Mod.<locals>.<genexpr>ç   s   øè ø€ Ò3 #ˆT�[‰[˜×Ñ3ùrF   rd   )r]   r2   rG   rX   rM   s   ` r;   Ú
_print_ModzNumPyPrinter._print_Modå   s<   ø€ Ø×.Ñ.¨t¯|©|¸fÑ/DÕEÀtÇyÁyÛ3¨¯©Ô3õH5ð 6ð 	6r<   c                 ó‚   — | j                  | j                  dz   «      ›d| j                  |j                  d   «      ›d�S )Nz.realrc   r   rd   rØ   rM   s     r;   Ú	_print_rezNumPyPrinter._print_reé   rÜ   r<   c                 ó¤   — | j                  | j                  dz   «      ›d| j                  |j                  d   t        j
                  z  «      ›d�S )Nz.sincrc   r   rd   )r]   r2   rB   rX   r   r'   rM   s     r;   Ú_print_sinczNumPyPrinter._print_sincì   sC   € Ø×.Ñ.¨t¯|©|¸gÑ/EÕFÈÏÉÐTX×T]ÑT]Ð^_ÑT`Ôab×aeÑaeÑTeÕHfÐgÐgr<   c                 óì   — | j                   j                  |j                  j                  d «      }|€| j	                  | j
                  dz   «      }|›d| j                  |j                  «       «      ›d�S )Nz.arrayrc   rd   )Úknown_functionsÚgetr:   Ú__name__r]   r2   rB   ÚtolistrŠ   s      r;   Ú_print_MatrixBasezNumPyPrinter._print_MatrixBaseï   s\   € Ø×#Ñ#×'Ñ'¨¯©×(?Ñ(?ÀÓFˆØˆ<Ø×&Ñ& t§|¡|°hÑ'>Ó?ˆDÚ §¡¨T¯[©[«]Õ!;Ð<Ð<r<   c                 óÔ   — |j                   }t        d„ |D «       «      r@| j                  | j                  dz   «      ›d| j	                  |j                   d   «      ›d�S t        d«      ‚)Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr@   )Ú
is_Integer)rC   Údims     r;   rE   z/NumPyPrinter._print_Identity.<locals>.<genexpr>÷   s   è ø€ Ò/ #ˆs�~�~Ñ/ùs   ‚r—   rc   r   rd   zFSymbolic matrix dimensions are not yet supported for identity matrices)re   Úallr]   r2   rB   ÚNotImplementedError)r9   rN   re   s      r;   Ú_print_IdentityzNumPyPrinter._print_Identityõ   sZ   € Ø—
‘
ˆÜÑ/¨Ô/Ô/Ø#×2Ñ2°4·<±<À&Ñ3HÕIÈ4Ï;É;ÐW[×WaÑWaÐbcÑWdÕKeÐfÐfä%Ð&nÓoÐor<   c                 ó²   — dj                  | j                  | j                  dz   «      | j                  |j                  d   j                  «       «      «      S )Nr`   z.blockr   )r1   r]   r2   rB   rX   rè   rM   s     r;   Ú_print_BlockMatrixzNumPyPrinter._print_BlockMatrixü   sH   € Ø�‰˜t×2Ñ2°4·<±<À(Ñ3JÓKØ!%§¡¨T¯Y©Y°q©\×-@Ñ-@Ó-BÓ!CóEð 	Er<   c                 ó$  •— t        |j                  «      dk(  r1| j                  dz   | j                  |j                  d   «      z   dz   S t        |j                  «      dk(  r| j                  |j                  «       «      S t        ‰| �  | |«      S )Nr   z.array(r   rd   é   )r‰   re   r2   rB   rX   Útomatrixr6   Ú_print_not_supported)r9   rN   r:   s     €r;   Ú_print_NDimArrayzNumPyPrinter._print_NDimArray   st   ø€ Üˆt�z‰z‹?˜aÒØ—<‘< )Ñ+¨d¯k©k¸$¿)¹)ÀA¹,Ó.GÑGÈ#ÑMÐMÜˆt�z‰z‹?˜aÒØ—;‘;˜tŸ}™}›Ó/Ð/ä‰wÑ+¨D°$Ó7Ð7r<   ÚaddÚeinsumÚ	transposeÚonesÚzerosr@   )F)7rç   Ú
__module__Ú__qualname__Ú__doc__r2   Ú_numpy_known_functionsr5   Ú_numpy_known_constantsÚ_kcr7   rJ   rO   rZ   r^   ra   ri   rm   rp   rr   r{   r‹   rŽ   r�   r“   r•   r˜   r¦   rµ   r»   r¿   rÂ   rÍ   rÒ   rÖ   rÙ   rÛ   rß   rá   rã   ré   rð   rò   r÷   Ú_addÚ_einsumÚ
_transposeÚ_onesÚ_zerosr   rö   Ú_print_lowergammaÚ_print_uppergammaÚ_print_fresnelcÚ_print_fresnelsÚ__classcell__©r:   s   @r;   r,   r,   #   s  ø„ ñð
 €GØ
 €CØ
 €Cõ,òQò-òOòBò
'ò
2ò9ò
%ò%òAò(ò(ò'òBò'òDò
 ô&/ò"IòHò@óVòròròdòcò6òcòhò=òpòEô8ð €DØ€GØ€JØ€EØ€Fà#×8Ñ8ÐØ#×8Ñ8ÐØ!×6Ñ6€OØ!×6Ñ6„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_laguerrer0  ÚLambertWÚgolden_ratio)ÚGoldenRatior'   zscipy.special.zscipy.constants.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 )ÚSciPyPrinterc                 ó4   •— t         ‰| �  |¬«       d| _        y )Nr/   zPython with SciPy and NumPy)r6   r7   r3   r8   s     €r;   r7   zSciPyPrinter.__init__B  s   ø€ Ü‰Ñ (ÐÔ+Ø5ˆ�r<   c                 ó$  — g g g }}}|j                  «       j                  «       D ];  \  \  }}}|j                  |«       |j                  |«       |j                  |«       Œ= dj                  | j	                  d«      ||||j
                  ¬«      S )Nz+{name}(({data}, ({i}, {j})), shape={shape})zscipy.sparse.coo_matrix)ÚnameÚdatarT   rt   re   )ÚtodokÚitemsÚappendr1   r]   re   )r9   rN   rT   rt   r@  ÚrÚcÚvs           r;   Ú_print_SparseRepMatrixz#SciPyPrinter._print_SparseRepMatrixF  s�   € Ø˜˜Rˆdˆ1ˆØŸ™›×+Ñ+Ó-ò 	‰I‰FˆQ��AØ�H‰H�QŒKØ�H‰H�QŒKØ�K‰K˜�Nð	ð
 =×CÑCØ×$Ñ$Ð%>Ó?Ø˜˜a t§z¡zð Dó 
ð 	
r<   c           	      óð   — dj                  | j                  d«      | j                  |j                  d   «      | j                  |j                  d   «      | j                  |j                  d   «      «      S )Nz{0}({2}, {1}, {3})zscipy.special.lpmvr   r   rô   ©r1   r]   rB   rX   rM   s     r;   Ú_print_assoc_legendrez"SciPyPrinter._print_assoc_legendreU  s`   € Ø#×*Ñ*Ø×ÑÐ 4Ó5Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%ó	'ð 	'r<   c           	      óÖ   — dj                  | j                  d«      | j                  d«      | j                  |j                  d   «      | j                  |j                  d   «      «      S )Nú{0}({2})*{1}({2}, {3})úscipy.special.gammazscipy.special.gammaincr   r   rI  rM   s     r;   r  zSciPyPrinter._print_lowergamma\  s[   € Ø'×.Ñ.Ø×ÑÐ 5Ó6Ø×ÑÐ 8Ó9Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%ó	'ð 	'r<   c           	      óÖ   — dj                  | j                  d«      | j                  d«      | j                  |j                  d   «      | j                  |j                  d   «      «      S )NrL  rM  zscipy.special.gammainccr   r   rI  rM   s     r;   r	  zSciPyPrinter._print_uppergammac  s[   € Ø'×.Ñ.Ø×ÑÐ 5Ó6Ø×ÑÐ 9Ó:Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%ó	'ð 	'r<   c                 ó  — | j                  d«      }| j                  d«      }|j                  D �cg c]  }| j                  |«      ‘Œ }}d|› d|d   › d|d   › d|d   › d|› d|d   › d|d   › d|d	   › d
|› d|d   › d|d   › d�S c c}w )Núscipy.special.betainczscipy.special.betarc   r   r>   r   é   z) - rô   z))             * rd   )r]   rX   rB   )r9   rN   Úbetaincr0  rw   rX   s         r;   Ú_print_betainczSciPyPrinter._print_betaincj  sÇ   € Ø×%Ñ%Ð&=Ó>ˆØ×"Ñ"Ð#7Ó8ˆØ,0¯I©IÖ6 S�—‘˜CÕ Ð6ˆÐ6Ø�7�)˜1˜T !™W˜I R¨¨Q© y°°4¸±7°)¸4À¸yÈÈ$ÈqÉ'ÈÐRTÐUYÐZ[ÑU\ÐT]Ð]_Ð`dÐefÑ`gÐ_hð iØˆf�A�d˜1‘g�Y˜b  a¡ 	¨ð,ð 	,ùò 7s   ±Bc           
      ó*  — dj                  | j                  d«      | j                  |j                  d   «      | j                  |j                  d   «      | j                  |j                  d   «      | j                  |j                  d   «      «      S )Nz'{0}({1}, {2}, {4}) - {0}({1}, {2}, {3})rP  r   r   rô   rQ  rI  rM   s     r;   Ú_print_betainc_regularizedz'SciPyPrinter._print_betainc_regularizedq  st   € Ø8×?Ñ?Ø×ÑÐ 7Ó8Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%Ø�K‰K˜Ÿ	™	 !™Ó%ó'ð 	'r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nú	{}({})[0]úscipy.special.fresnelr   rI  rM   s     r;   r  zSciPyPrinter._print_fresnelsy  ó8   € Ø×!Ñ!Ø×#Ñ#Ð$;Ó<Ø—‘˜DŸI™I a™LÓ)ó+ð 	+r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nú	{}({})[1]rX  r   rI  rM   s     r;   r
  zSciPyPrinter._print_fresnelc~  rY  r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )NrW  úscipy.special.airyr   rI  rM   s     r;   Ú_print_airyaizSciPyPrinter._print_airyaiƒ  ó8   € Ø×!Ñ!Ø×#Ñ#Ð$8Ó9Ø—‘˜DŸI™I a™LÓ)ó+ð 	+r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nr[  r]  r   rI  rM   s     r;   Ú_print_airyaiprimezSciPyPrinter._print_airyaiprimeˆ  r_  r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nz	{}({})[2]r]  r   rI  rM   s     r;   Ú_print_airybizSciPyPrinter._print_airybi�  r_  r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nz	{}({})[3]r]  r   rI  rM   s     r;   Ú_print_airybiprimezSciPyPrinter._print_airybiprime’  r_  r<   c                 óR   — | j                   |j                  |j                  Ž «      S r@   ©rB   Ú_eval_rewrite_as_zetarX   rM   s     r;   Ú_print_bernoullizSciPyPrinter._print_bernoulli—  s#   € à�{‰{Ð5˜4×5Ñ5°t·y±yÐAÓBÐBr<   c                 óR   — | j                   |j                  |j                  Ž «      S r@   rg  rM   s     r;   Ú_print_harmoniczSciPyPrinter._print_harmonic›  s#   € Ø�{‰{Ð5˜4×5Ñ5°t·y±yÐAÓBÐBr<   c           	      óÄ  ‡ — t        |«      \  }}t        |«      dk(  r7‰ j                  d«      }dt        t	        ‰ j
                  |d   «      «      z  }n:‰ j                  d«      }dj                  dj                  ˆ fd„|D «       «      «      }d	j                  |dj                  t	        ‰ j
                  |«      «      ‰ j                  |j                  d   «      |«      S )
Nr   zscipy.integrate.quadz%s, %sr   zscipy.integrate.nquadrQ   r>   c              3   ób   •K  — | ]&  }d t        t        ‰j                  |«      «      z  –— Œ( y­w)z(%s, %s)N)ÚtupleÚmaprB   )rC   Úlr9   s     €r;   rE   z/SciPyPrinter._print_Integral.<locals>.<genexpr>§  s-   øè ø€ ò 0IØ<=�
œU¤3 t§{¡{°AÓ#6Ó7Õ7ñ0Iùs   ƒ,/z{}(lambda {}: {}, {})[0])	r   r‰   r]   rn  ro  rB   r1   rG   rX   )r9   r!   Úintegration_varsÚlimitsÚ
module_strÚ	limit_strs   `     r;   Ú_print_IntegralzSciPyPrinter._print_Integralž  sÐ   ø€ Ü#:¸1Ó#=Ñ Ð˜&äˆv‹;˜!Òà×,Ñ,Ð-CÓDˆJØ ¤5¬¨T¯[©[¸&À¹)Ó)DÓ#EÑE‰Ià×,Ñ,Ð-DÓEˆJØŸ™ d§i¡ió 0IØAGô0Ió 'Ió JˆIð *×0Ñ0ØØ—	‘	œ#˜dŸk™kÐ+;Ó<Ó=Ø—‘˜AŸF™F 1™IÓ&Øó	ð 	r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )NrW  úscipy.special.sicir   rI  rM   s     r;   Ú	_print_SizSciPyPrinter._print_Si°  r_  r<   c                 ó|   — dj                  | j                  d«      | j                  |j                  d   «      «      S )Nr[  rw  r   rI  rM   s     r;   Ú	_print_CizSciPyPrinter._print_Ciµ  r_  r<   r@   )rç   rý   rþ   r,   r5   Ú_scipy_known_functionsr  Ú_scipy_known_constantsr7   rG  Ú_print_ImmutableSparseMatrixrJ  r  r	  rS  rU  r  r
  r^  ra  rc  re  ri  rk  ru  rx  rz  r  r  s   @r;   r<  r<  =  s“   ø„ à
8ˆ\×ÑÐ
8Ð!7Ð
8€CØ
8ˆ\×ÑÐ
8Ð!7Ð
8€Cõ6ò

ð $:Ð ò'ò'ò'ò,ò'ò+ò
+ò
+ò
+ò
+ò
+ò
CòCòò$+ö
+r<   r<  zcupy.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.
    Úcupyc                 ó&   •— t         ‰| �  |¬«       y )Nr/   )r6   r7   r8   s     €r;   r7   zCuPyPrinter.__init__Î  s   ø€ Ü‰Ñ (ÐÕ+r<   r@   )rç   rý   rþ   rÿ   r2   Ú_cupy_known_functionsr5   Ú_cupy_known_constantsr  r7   r  r  s   @r;   r  r  Ä  s#   ø„ ñð
 €GØ
€CØ
€C÷,ñ ,r<   r  z
jax.numpy.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.numpyc                 ó4   •— t         ‰| �  |¬«       d| _        y )Nr/   Ú_jaxcode)r6   r7   r4   r8   s     €r;   r7   zJaxPrinter.__init__å  s   ø€ Ü‰Ñ (ÐÔ+Ø%ˆÕr<   c                 óØ   ‡ — dj                  ‰ j                  ‰ j                  dz   «      ‰ j                  ‰ j                  «      dj                  ˆ fd„|j                  D «       «      «      S )r·   rÏ   z.allr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z(JaxPrinter._print_And.<locals>.<genexpr>ï  ó   øè ø€ Ò7¨�T—[‘[ —^Ñ7ùrF   rº   rM   s   ` r;   r»   zJaxPrinter._print_Andê  óU   ø€ à-×4Ñ4Ø×Ñ §¡¨vÑ 5Ó6Ø×Ñ §¡Ó-Ø�H‰HÓ7¨T¯Y©YÔ7Ó7ó
ð 	
r<   c                 óØ   ‡ — dj                  ‰ j                  ‰ j                  dz   «      ‰ j                  ‰ j                  «      dj                  ˆ fd„|j                  D «       «      «      S )r½   rÏ   z.anyr    c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   rA   rS   s     €r;   rE   z'JaxPrinter._print_Or.<locals>.<genexpr>÷  rŠ  rF   rº   rM   s   ` r;   r¿   zJaxPrinter._print_Orò  r‹  r<   r@   )rç   rý   rþ   rÿ   r2   Ú_jax_known_functionsr5   Ú_jax_known_constantsr  r7   r»   r¿   r  r  s   @r;   r…  r…  Û  s(   ø„ ñð €Gà
€CØ
€Cõ&ò

ö
r<   r…  N)'Ú
sympy.corer   Úsympy.core.functionr   Úsympy.core.powerr   Úpycoder   r   r	   r
   r   r   Úcodeprinterr   ÚsplitÚ_not_in_numpyrB  Ú	_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…  )ÚkrF  s   00r;   ú<module>r      s‡  ðÝ Ý &Ý  ÷ K÷  KÝ $ð 4×9Ñ9Ó;€Ø ;Ð 5× ;Ñ ;Ó =×X™˜˜1ÀÈ-ÒAWˆa�ŠVÓX€	Ù˜iñ ØØØØØØØØØØØØñ,ñ Ð ð Ø
ØØØñÐ ð 7M×6RÑ6RÓ6T×U©d¨a°˜!˜X¨™\™/ÓUÐ Ø6L×6RÑ6RÓ6T×U©d¨a°˜!˜X¨™\™/ÓUÐ ôn7�<Ð!2ô n7ð` #ò ?€DÙˆL˜G D 6Ð*Ð,=Õ>ð?ð $ò A€EÙˆL˜G E 7Ð+Ð-?Õ@ðAð"Øˆ&ð"à	ˆ5ð"ð ˆFð"ð ˆtð	"ð
 ˆtð"ð ˆtð"ð ˆtð"ð ˆWð"ð ˆWð"ð �ð"ð ˆWð"ð �	ð"ð ˆuð"ð �ð"ð �vð"ð  ˆmð!"ð" Ð#ð#"ð$  ØØØØØ(ØØò3"Ð ð: "Ø
ñ$Ð  ð @^×?cÑ?cÓ?e×f±t°q¸!˜!Ð.°Ñ2Ñ2ÓfÐ ØAa×AgÑAgÓAi×j¹¸¸A˜!Ð0°1Ñ4Ñ4ÓjÐ ô{+�<ô {+ðz #ò ?€DÙˆL˜G D 6Ð*Ð,=Õ>ð?ð $ò A€EÙˆL˜G E 7Ð+Ð-?Õ@ðAð 6L×5QÑ5QÓ5S×T©T¨Q°˜˜W q™[™ÓTÐ Ø5K×5QÑ5QÓ5S×T©T¨Q°˜˜W q™[™ÓTÐ ô,�,ô ,ð "ò >€DÙˆK˜7 4 &Ð)Ð+<Õ=ð>ð #ò @€EÙˆK˜7 5 'Ð*Ð,>Õ?ð@ð 9O×8TÑ8TÓ8V×W±°°1˜˜<¨!Ñ+Ñ+ÓWÐ Ø8N×8TÑ8TÓ8V×W±°°1˜˜<¨!Ñ+Ñ+ÓWÐ ô
�ô 
ð> !ò =€DÙˆJ˜' $ Ð(Ð*;Õ<ð=ð "ò ?€EÙˆJ˜' % Ð)Ð+=Õ>ñ?ùói Yùó. VùÛUùór gùÛjùóL UùÛTùó, XùÛWs<   ÁKÁKÂKÂ<KÅKÆK%ÇK+ÈK1ÉK7ÊK=