§
    OŠtjÌB  ã                   ó   — d dl 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 d dlmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d d	l/m0Z0m1Z1 d d
l2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlCmEZE  ed¦  «        xZFZGeGrd dlHZHdeHjI        d<    e;ddd¦  «        ZJ e;ddd¦  «        ZK e;ddd¦  «        ZL e;ddd¦  «        ZM ed¦  «        \  ZNZOZPZQeF�7d„  eRd dd¦  «        D ¦   «         ZSeF T                    eS¦  «        ZU e3eS¦  «        ZVd.d„ZWd.d„ZXd„ ZYd „ fd!„ZZd"„ fd#„Z[d$„ Z\eEd%„ ¦   «         Z]d&„ Z^d'„ Z_eEd(„ ¦   «         Z`d)„ Zad*„ Zbd+„ Zcd,„ Zdd-„ ZedS )/é    N)Ú
Derivative)Úsymbols)Ú	Piecewise)ÚArrayTensorProductÚArrayAddÚPermuteDimsÚArrayDiagonal)ÚEqÚNeÚGeÚGtÚLeÚLt)Úimport_module)ÚAbsÚceilingÚexpÚfloorÚsignÚsinÚasinÚsqrtÚcosÚacosÚtanÚatanÚatan2ÚcoshÚacoshÚsinhÚasinhÚtanhÚatanhÚreÚimÚargÚerfÚloggammaÚlog)ÚisnanÚisinf)ÚMatrixÚ
MatrixBaseÚeyeÚ
randMatrix)ÚDeterminantÚHadamardProductÚInverseÚMatrixSymbolÚTrace)Útensorflow_code)Úconvert_matrix_to_array)Úlambdify)Úskip)ÚXFAILÚ
tensorflowÚ2ÚTF_CPP_MIN_LOG_LEVELÚMé   ÚNÚPÚQzx y z tc           	      óN   — g | ]"}t          t          ||d z   ¦  «        ¦  «        ‘Œ#S )r>   )ÚlistÚrange©Ú.0Úis     úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_tensorflow.pyú
<listcomp>rI   (   s,   € Ð
7Ð
7Ð
7 1�4•�a˜˜1™‘”ÑÔÐ
7Ð
7Ð
7ó    é	   Fc                 óL  — t          | |d¦  «        }|sd„ | D ¦   «         }nd„ | D ¦   «         }t                               ¦   «         }d }|                     ¦   «         5  d„ |D ¦   «         }t          j        j                             |¬¦  «        }|                      ||Ž ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          t          | |¦  «        ¦  «        ¦  «        }	|	                     ¦   «         }	|	j        r=t          |	t          ¦  «        s|	                     ¦   «         }	|	                     ¦   «         }	|s||	k                         ¦   «         sJ ‚d S d„ |D ¦   «         }d„ |	D ¦   «         }	t#          d„ t          ||	¦  «        D ¦   «         ¦  «        sJ ‚d S )	Nr:   c                 óB   — g | ]}t          |j        |j        ¦  «        ‘ŒS © ©r/   ÚrowsÚcols©rF   Úvs     rH   rI   z._compare_tensorflow_matrix.<locals>.<listcomp>0   s&   € ÐIÐIÐI¸!�: a¤f¨a¬fÑ5Ô5ÐIÐIÐIrJ   c                 óH   — g | ]}t          |j        |j        ¦  «        d z  ‘Œ S )g      Y@rO   rR   s     rH   rI   z._compare_tensorflow_matrix.<locals>.<listcomp>2   s+   € ÐNÐNÐN¸q�: a¤f¨a¬fÑ5Ô5°dÑ:ÐNÐNÐNrJ   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rN   ©Úevalr5   rE   s     rH   rI   z._compare_tensorflow_matrix.<locals>.<listcomp>7   ó(   € ÐNÐNÐN¸�D¥°Ñ!3Ô!3Ñ4Ô4ÐNÐNÐNrJ   ©Úgraphc                 ó   — g | ]	}|D ]}|‘ŒŒ
S rN   rN   ©rF   ÚrowrG   s      rH   rI   z._compare_tensorflow_matrix.<locals>.<listcomp>E   ó%   € Ð)Ð)Ð)�3 SÐ)Ð) ˆQÐ)Ð)Ð)Ð)rJ   c                 ó   — g | ]	}|D ]}|‘ŒŒ
S rN   rN   r\   s      rH   rI   z._compare_tensorflow_matrix.<locals>.<listcomp>F   r^   rJ   c              3   ó¦   K  — | ]L\  }}t          ||z
  ¦  «        d dt          t          t          |¦  «        d ¦  «        ¦  «        z
   z  k     V — ŒMdS ©é
   é   N©ÚabsÚintr)   ©rF   ÚaÚbs      rH   ú	<genexpr>z-_compare_tensorflow_matrix.<locals>.<genexpr>G   óq   è è € ð Lð LÙ9=¸¸A�C��!‘‰HŒH�r˜Q�s¥3¥s¨1¡v¤v¨r¡?¤?Ñ3Ô3Ñ3Ð4Ñ4Ò4ðLð Lð Lð Lð Lð LrJ   ©r7   ÚtfÚGraphÚ
as_defaultÚcompatÚv1ÚSessionÚrunÚsubsÚdictÚzipÚdoitÚ	is_MatrixÚ
isinstancer-   Úas_explicitÚtolistÚall©
Ú	variablesÚexprÚ	use_floatÚfÚrandom_matricesrZ   ÚrÚrandom_variablesÚsessionÚes
             rH   Ú_compare_tensorflow_matrixr‡   -   s  € Ý�˜D ,Ñ/Ô/€AØð OØIÐI¸yÐIÑIÔIˆˆàNÐNÀIÐNÑNÔNˆå�HŠH‰JŒJ€EØ€AØ	×	Ò	Ñ	Ô	ð .ð .ØNÐN¸oÐNÑNÔNÐÝ”)”,×&Ò&¨UÐ&Ñ3Ô3ˆØ�KŠK˜˜Ð+Ð,Ñ-Ô-ˆð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð
 	�	Š	•$•s˜9 oÑ6Ô6Ñ7Ô7Ñ8Ô8€AØ	�Š‰Œ€AØ„{ð Ý˜!�ZÑ(Ô(ð 	 Ø—’‘”ˆAØ�HŠH‰JŒJˆàð LØ�Q’�|Š|‰~Œ~ÐÐˆ~ÐÐà)Ð)˜!Ð)Ñ)Ô)ˆØ)Ð)˜!Ð)Ñ)Ô)ˆÝð Lð LÝADÀQÈÁÄðLñ Lô Lñ Lô Lð 	Lð 	Lð Lð 	Lð 	Ló   ÁA
B2Â2B6Â9B6c                 óL  — t          | |d¦  «        }|sd„ | D ¦   «         }nd„ | D ¦   «         }t                               ¦   «         }d }|                     ¦   «         5  d„ |D ¦   «         }t          j        j                             |¬¦  «        }|                      ||Ž ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          t          | |¦  «        ¦  «        ¦  «        }	|	                     ¦   «         }	|	j        r=t          |	t          ¦  «        s|	                     ¦   «         }	|	                     ¦   «         }	|s||	k                         ¦   «         sJ ‚d S d„ |D ¦   «         }d„ |	D ¦   «         }	t#          d„ t          ||	¦  «        D ¦   «         ¦  «        sJ ‚d S )	Nr:   c                 óH   — g | ]}t          |j        |j        ¦  «        d z  ‘Œ S )rc   ©r.   rP   rQ   rR   s     rH   rI   z6_compare_tensorflow_matrix_inverse.<locals>.<listcomp>P   s+   € ÐDÐDÐD°Q�3˜qœv q¤vÑ.Ô.¨qÑ0ÐDÐDÐDrJ   c                 óH   — g | ]}t          |j        |j        ¦  «        d z  ‘Œ S )g…ëQ¸	@r‹   rR   s     rH   rI   z6_compare_tensorflow_matrix_inverse.<locals>.<listcomp>R   s+   € ÐGÐGÐG¸�3˜qœv q¤vÑ.Ô.¨tÑ3ÐGÐGÐGrJ   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rN   rV   rE   s     rH   rI   z6_compare_tensorflow_matrix_inverse.<locals>.<listcomp>W   rX   rJ   rY   c                 ó   — g | ]	}|D ]}|‘ŒŒ
S rN   rN   r\   s      rH   rI   z6_compare_tensorflow_matrix_inverse.<locals>.<listcomp>e   r^   rJ   c                 ó   — g | ]	}|D ]}|‘ŒŒ
S rN   rN   r\   s      rH   rI   z6_compare_tensorflow_matrix_inverse.<locals>.<listcomp>f   r^   rJ   c              3   ó¦   K  — | ]L\  }}t          ||z
  ¦  «        d dt          t          t          |¦  «        d ¦  «        ¦  «        z
   z  k     V — ŒMdS ra   rd   rg   s      rH   rj   z5_compare_tensorflow_matrix_inverse.<locals>.<genexpr>g   rk   rJ   rl   r}   s
             rH   Ú"_compare_tensorflow_matrix_inverser‘   M   s  € Ý�˜D ,Ñ/Ô/€AØð HØDÐD¸)ÐDÑDÔDˆˆàGÐG¸YÐGÑGÔGˆå�HŠH‰JŒJ€EØ€AØ	×	Ò	Ñ	Ô	ð .ð .ØNÐN¸oÐNÑNÔNÐÝ”)”,×&Ò&¨UÐ&Ñ3Ô3ˆØ�KŠK˜˜Ð+Ð,Ñ-Ô-ˆð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð
 	�	Š	•$•s˜9 oÑ6Ô6Ñ7Ô7Ñ8Ô8€AØ	�Š‰Œ€AØ„{ð Ý˜!�ZÑ(Ô(ð 	 Ø—’‘”ˆAØ�HŠH‰JŒJˆàð LØ�Q’�|Š|‰~Œ~ÐÐˆ~ÐÐà)Ð)˜!Ð)Ñ)Ô)ˆØ)Ð)˜!Ð)Ñ)Ô)ˆÝð Lð LÝADÀQÈÁÄðLñ Lô Lñ Lô Lð 	Lð 	Lð Lð 	Lð 	Lrˆ   c                 ó  — t          | |d¦  «        }d„ | D ¦   «         }t                               ¦   «         }d }|                     ¦   «         5  d„ |D ¦   «         }t          j        j                             |¬¦  «        }|                      ||Ž ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          t          | |¦  «        ¦  «        ¦  «        }|                     ¦   «         }t          ||z
  ¦  «        dk     sJ ‚d S )Nr:   c                 ól   — g | ]1}t          |j        |j        ¦  «                             ¦   «         d z  ‘Œ2S )éd   )r/   rP   rQ   ÚevalfrR   s     rH   rI   z5_compare_tensorflow_matrix_scalar.<locals>.<listcomp>m   sJ   € ð Eð Eð EØ56�
�1”6˜1œ6Ñ"Ô"×(Ò(Ñ*Ô*¨SÑ0ðEð Eð ErJ   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rN   rV   rE   s     rH   rI   z5_compare_tensorflow_matrix_scalar.<locals>.<listcomp>s   rX   rJ   rY   ç�íµ ÷Æ°>)r7   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   re   )	r~   r   r�   r‚   rZ   rƒ   r„   r…   r†   s	            rH   Ú!_compare_tensorflow_matrix_scalarr˜   k   sK  € Ý�˜D ,Ñ/Ô/€AðEð EØ:CðEñ Eô E€Oõ �HŠH‰JŒJ€EØ€AØ	×	Ò	Ñ	Ô	ð .ð .ØNÐN¸oÐNÑNÔNÐÝ”)”,×&Ò&¨UÐ&Ñ3Ô3ˆØ�KŠK˜˜Ð+Ð,Ñ-Ô-ˆð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð
 	�	Š	•$•s˜9 oÑ6Ô6Ñ7Ô7Ñ8Ô8€AØ	�Š‰Œ€AÝˆq�‰s‰8Œ8�fÒÐÐÐÐÐs   ÁA
B#Â#B'Â*B'c                  ó,   — t          j        dd¦  «        S ©Nr   rb   ©ÚrandomÚrandintrN   rJ   rH   ú<lambda>rž   }   ó   € ¥¤°°2Ñ!6Ô!6€ rJ   c                 ó>  ‡— t          | |d¦  «        }ˆfd„| D ¦   «         }t                               ¦   «         }d }|                     ¦   «         5  d„ |D ¦   «         }t          j        j                             |¬¦  «        }|                      ||Ž ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          t          | |¦  «        ¦  «        ¦  «                             ¦   «                              ¦   «         }	t          ||	z
  ¦  «        dk     sJ ‚d S )Nr:   c                 ó$   •— g | ]} ‰¦   «         ‘ŒS rN   rN   ©rF   rS   Úrngs     €rH   rI   z._compare_tensorflow_scalar.<locals>.<listcomp>   ó   ø€ Ð
$Ð
$Ð
$�Qˆ3ˆ3‰5Œ5Ð
$Ð
$Ð
$rJ   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rN   rV   rE   s     rH   rI   z._compare_tensorflow_scalar.<locals>.<listcomp>„   ó(   € Ð8Ð8Ð8¨q•$• qÑ)Ô)Ñ*Ô*Ð8Ð8Ð8rJ   rY   r—   )r7   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   r•   rw   re   ©
r~   r   r£   r�   ÚrvsrZ   rƒ   Útf_rvsr…   r†   s
     `       rH   Ú_compare_tensorflow_scalarrª   |   sH  ø€ å�˜D ,Ñ/Ô/€AØ
$Ð
$Ð
$Ð
$˜)Ð
$Ñ
$Ô
$€Cå�HŠH‰JŒJ€EØ€AØ	×	Ò	Ñ	Ô	ð $ð $Ø8Ð8°CÐ8Ñ8Ô8ˆÝ”)”,×&Ò&¨UÐ&Ñ3Ô3ˆØ�KŠK˜˜˜6˜
Ñ#Ô#ˆð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 	�	Š	•$•s˜9 cÑ*Ô*Ñ+Ô+Ñ,Ô,×2Ò2Ñ4Ô4×9Ò9Ñ;Ô;€AÝˆq�‰s‰8Œ8�fÒÐÐÐÐÐó   ÁA
B&Â&B*Â-B*c                  ó,   — t          j        dd¦  «        S rš   r›   rN   rJ   rH   rž   rž   �   rŸ   rJ   c                 óú  ‡— t          | |d¦  «        }ˆfd„| D ¦   «         }t                               ¦   «         }d }|                     ¦   «         5  d„ |D ¦   «         }t          j        j                             |¬¦  «        }|                      ||Ž ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          t          | |¦  «        ¦  «        ¦  «                             ¦   «         }	||	k    sJ ‚d S )Nr:   c                 ó$   •— g | ]} ‰¦   «         ‘ŒS rN   rN   r¢   s     €rH   rI   z2_compare_tensorflow_relational.<locals>.<listcomp>�   r¤   rJ   c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS rN   rV   rE   s     rH   rI   z2_compare_tensorflow_relational.<locals>.<listcomp>”   r¦   rJ   rY   )r7   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   r§   s
     `       rH   Ú_compare_tensorflow_relationalr°   Œ   s,  ø€ å�˜D ,Ñ/Ô/€AØ
$Ð
$Ð
$Ð
$˜)Ð
$Ñ
$Ô
$€Cå�HŠH‰JŒJ€EØ€AØ	×	Ò	Ñ	Ô	ð $ð $Ø8Ð8°CÐ8Ñ8Ô8ˆÝ”)”,×&Ò&¨UÐ&Ñ3Ô3ˆØ�KŠK˜˜˜6˜
Ñ#Ô#ˆð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 	�	Š	•$•s˜9 cÑ*Ô*Ñ+Ô+Ñ,Ô,×1Ò1Ñ3Ô3€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r«   c                  óü   — t          t          d¦  «        ¦  «        dk    sJ ‚t          t          t	          t
          ¦  «        gt          t          ¦  «        t           gg¦  «        } t          | ¦  «        dk    sJ ‚d S )Nr>   z6tensorflow.constant([[1, 0, 0], [0, 1, 0], [0, 0, 1]])zPtensorflow.Variable([[x, tensorflow.math.sin(y)], [tensorflow.math.exp(z), -t]]))	r5   r.   r,   Úxr   Úyr   ÚzÚt©r   s    rH   Útest_tensorflow_printingr·   œ   s†   € Ý�3˜q™6œ6Ñ"Ô"Ø@òAð Að Að Aõ •A•s�1‘v”v�;¥¥Q¡¤­!¨ Ð-Ñ.Ô.€DÝ˜4Ñ Ô ð	.ò.ð .ð .ð .ð .ð .rJ   c                  ó‚  — t           st          d¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| ¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| ¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        d	k    sJ ‚t          t          f| d
„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          dz  } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t!          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t#          t$          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t$          t          f| d„ ¬¦  «         t'          t          ¦  «        } t	          | ¦  «        dk    sJ ‚t          t          f| d„ ¬¦  «         t)          t          ¦  «        } t	          | ¦  «        d k    sJ ‚t          t          f| d!„ ¬¦  «         t+          t          ¦  «        } t	          | ¦  «        d"k    sJ ‚t          t          f| d#„ ¬¦  «         t-          t          ¦  «        } t	          | ¦  «        d$k    sJ ‚t          t          f| d%„ ¬¦  «         t/          t          ¦  «        } t	          | ¦  «        d&k    sJ ‚t          t          f| d'„ ¬¦  «         t1          t          ¦  «        } t	          | ¦  «        d(k    sJ ‚t          t          f| d)„ ¬¦  «         t3          t          ¦  «        } t	          | ¦  «        d*k    sJ ‚t          t          f| d+„ ¬¦  «         t5          t          ¦  «        } t	          | ¦  «        d,k    sJ ‚t          t          f| d-„ ¬¦  «         d S ).NúTensorFlow not installedztensorflow.math.abs(x)ztensorflow.math.sign(x)ztensorflow.math.ceil(x)c                  ó(   — t          j         ¦   «         S ©N©rœ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>¸   ó   € µv´}±´€ rJ   )r£   ztensorflow.math.floor(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>¼   r½   rJ   ztensorflow.math.exp(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>À   r½   rJ   ztensorflow.math.sqrt(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ä   r½   rJ   rc   ztensorflow.math.pow(x, 4)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>È   r½   rJ   ztensorflow.math.cos(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ì   r½   rJ   ztensorflow.math.acos(x)c                  ó,   — t          j        dd¦  «        S )Nr   gffffffî?©rœ   ÚuniformrN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ð   s   € µv´~ÀaÈÑ7NÔ7N€ rJ   ztensorflow.math.sin(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ô   r½   rJ   ztensorflow.math.asin(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ø   r½   rJ   ztensorflow.math.tan(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>Ü   r½   rJ   ztensorflow.math.atan(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>à   r½   rJ   ztensorflow.math.atan2(y, x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ä   s   € ½¼¹¼€ rJ   ztensorflow.math.cosh(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>è   r½   rJ   ztensorflow.math.acosh(x)c                  ó,   — t          j        dd¦  «        S ©Né   é   rÄ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ì   ó   € µv´~ÀaÈÑ7KÔ7K€ rJ   ztensorflow.math.sinh(x)c                  ó,   — t          j        dd¦  «        S rÍ   rÄ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ð   rÐ   rJ   ztensorflow.math.asinh(x)c                  ó,   — t          j        dd¦  «        S rÍ   rÄ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ô   rÐ   rJ   ztensorflow.math.tanh(x)c                  ó,   — t          j        dd¦  «        S rÍ   rÄ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ø   rÐ   rJ   ztensorflow.math.atanh(x)c                  ó,   — t          j        dd¦  «        S )Ng      à¿g      à?rÄ   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>ý   s   € ¥¤¨s°BÑ 7Ô 7€ rJ   ztensorflow.math.erf(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>  ó   € ¥¤¡¤€ rJ   ztensorflow.math.lgamma(x)c                  ó(   — t          j         ¦   «         S r»   r¼   rN   rJ   rH   rž   z&test_tensorflow_math.<locals>.<lambda>  rÖ   rJ   )rm   r8   r   r²   r5   rª   r   r   r   r   r   r   r   r   r   r   r   r   r³   r   r   r    r!   r"   r#   r'   r(   r¶   s    rH   Útest_tensorflow_mathrØ   ©   s²  € åð )ÝÐ'Ñ(Ô(Ð(å�q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<Ý¥˜t TÑ*Ô*Ð*å•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÑ*Ô*Ð*å•1‰:Œ:€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰8Œ8€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå�q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå�‰6€DÝ˜4Ñ Ô Ð$?Ò?Ð?Ð?Ð?Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå�q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/NÐ/NÐOÑOÔOÐOå�q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå�q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå••A‰;Œ;€DÝ˜4Ñ Ô Ð$AÒAÐAÐAÐAÝ¥¥1˜v tÐ1HÐ1HÐIÑIÔIÐIå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/FÐ/FÐGÑGÔGÐGå•‰8Œ8€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>Ý¥˜t TÐ/KÐ/KÐLÑLÔLÐLå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/KÐ/KÐLÑLÔLÐLå•‰8Œ8€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>Ý¥˜t TÐ/KÐ/KÐLÑLÔLÐLå•‰7Œ7€DÝ˜4Ñ Ô Ð$=Ò=Ð=Ð=Ð=Ý¥˜t TÐ/KÐ/KÐLÑLÔLÐLå•‰8Œ8€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>ÝÝ	
ˆˆdÐ7Ð7ð9ñ 9ô 9ð 9õ �q‰6Œ6€DÝ˜4Ñ Ô Ð$<Ò<Ð<Ð<Ð<ÝÝ	
ˆˆdÐ/Ð/ð1ñ 1ô 1ð 1õ •A‰;Œ;€DÝ˜4Ñ Ô Ð$?Ò?Ð?Ð?Ð?ÝÝ	
ˆˆdÐ/Ð/ð1ñ 1ô 1ð 1ð 1ð 1rJ   c                  óð   — t          t          t          ¦  «        ¦  «        dk    sJ ‚t          t          t          ¦  «        ¦  «        dk    sJ ‚t          t	          t          ¦  «        ¦  «        dk    sJ ‚d S )Nztensorflow.math.real(x)ztensorflow.math.imag(x)ztensorflow.math.angle(x))r5   r$   r²   r%   r&   rN   rJ   rH   Útest_tensorflow_complexesrÚ   
  sh   € Ý�2�a™5œ5Ñ!Ô!Ð%>Ò>Ð>Ð>Ð>Ý�2�a™5œ5Ñ!Ô!Ð%>Ò>Ð>Ð>Ð>Ý�3�q™6œ6Ñ"Ô"Ð&@Ò@Ð@Ð@Ð@Ð@Ð@rJ   c                  ó¶  — t           st          d¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         t          t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          t          f| ¦  «         d S )Nr¹   ztensorflow.math.equal(x, y)ztensorflow.math.not_equal(x, y)z#tensorflow.math.greater_equal(x, y)ztensorflow.math.greater(x, y)z tensorflow.math.less_equal(x, y)ztensorflow.math.less(x, y))rm   r8   r
   r²   r³   r5   r°   r   r   r   r   r   r¶   s    rH   Útest_tensorflow_relationalrÜ     s�  € Ýð )ÝÐ'Ñ(Ô(Ð(å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$AÒAÐAÐAÐAÝ"¥A¥q 6¨4Ñ0Ô0Ð0å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$EÒEÐEÐEÐEÝ"¥A¥q 6¨4Ñ0Ô0Ð0å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$IÒIÐIÐIÐIÝ"¥A¥q 6¨4Ñ0Ô0Ð0å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$CÒCÐCÐCÐCÝ"¥A¥q 6¨4Ñ0Ô0Ð0å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$FÒFÐFÐFÐFÝ"¥A¥q 6¨4Ñ0Ô0Ð0å�a•‰8Œ8€DÝ˜4Ñ Ô Ð$@Ò@Ð@Ð@Ð@Ý"¥A¥q 6¨4Ñ0Ô0Ð0Ð0Ð0rJ   c                  ól  — t           st          d¦  «         t          } t          | ¦  «        dk    sJ ‚t	          t          f| ¦  «         t          t
          z   } t          | ¦  «        dk    sJ ‚t	          t          t
          f| ¦  «         t          t
          z  } t          | ¦  «        dk    sJ ‚t	          t          t
          f| ¦  «         t          t          t
          ¦  «        } t          | ¦  «        dk    sJ ‚t	          t          t
          f| ¦  «         t          t
          z  t          z  t          z  } t          | ¦  «        dk    sJ ‚t	          t          t
          t          t          f| ¦  «         t          dz  } t          | ¦  «        dk    sJ ‚t	          t          f| ¦  «         t          t          ¦  «        } t          | ¦  «        d	k    sJ ‚t	          t          f| ¦  «         t          t          ¦  «        } t          | ¦  «        d
k    sJ ‚t          t          f| ¦  «         t          t          ¦  «        } t          | ¦  «        dk    sJ ‚t          t          f| d¬¦  «         t          j        } t          | d¬¦  «        dk    sJ ‚t          | d¬¦  «        dk    sJ ‚t	          t          f| ¦  «         d S )Nr¹   r=   útensorflow.math.add(M, N)ztensorflow.linalg.matmul(M, N)ztensorflow.math.multiply(M, N)zXtensorflow.linalg.matmul(tensorflow.linalg.matmul(tensorflow.linalg.matmul(M, N), P), Q)r>   z;tensorflow.linalg.matmul(tensorflow.linalg.matmul(M, M), M)ztensorflow.linalg.trace(M)ztensorflow.linalg.det(M)ztensorflow.linalg.inv(M)T)r€   z1.14)Útensorflow_versionz%tensorflow.linalg.matrix_transpose(M)z1.13ztensorflow.matrix_transpose(M))rm   r8   r=   r5   r‡   r?   r1   r@   rA   r4   r0   r˜   r2   r‘   ÚTr¶   s    rH   Útest_tensorflow_matricesrá   /  s�  € åð )ÝÐ'Ñ(Ô(Ð(å€DÝ˜4Ñ Ô  CÒ'Ð'Ð'Ð'Ý¥˜t TÑ*Ô*Ð*å�q‰5€DÝ˜4Ñ Ô Ð$?Ò?Ð?Ð?Ð?Ý¥¥1˜v tÑ,Ô,Ð,å�q‰5€DÝ˜4Ñ Ô Ð$DÒDÐDÐDÐDÝ¥¥1˜v tÑ,Ô,Ð,å�1�aÑ Ô €DÝ˜4Ñ Ô Ð$DÒDÐDÐDÐDÝ¥¥1˜v tÑ,Ô,Ð,å�Q‰3�q‰5•‰7€DÝ˜4Ñ Ô ð	9ò9ð 9ð 9ð 9õ ¥¥1¥a­˜|¨TÑ2Ô2Ð2åˆa‰4€DÝ˜4Ñ Ô ØEòFð Fð Fð Få¥˜t TÑ*Ô*Ð*å•‰8Œ8€DÝ˜4Ñ Ô Ð$@Ò@Ð@Ð@Ð@Ý¥˜t TÑ*Ô*Ð*å•q‰>Œ>€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>Ý%¥q d¨DÑ1Ô1Ð1å•1‰:Œ:€DÝ˜4Ñ Ô Ð$>Ò>Ð>Ð>Ð>Ý&­ t¨T¸TÐBÑBÔBÐBåŒ3€DÝ˜4°FÐ;Ñ;Ô;Ø/ò0ð 0ð 0ð 0å˜4°FÐ;Ñ;Ô;Ø(ò)ð )ð )ð )õ ¥˜t TÑ*Ô*Ð*Ð*Ð*rJ   c                  óæ  — t           st          d¦  «         t                                ¦   «         } |                      ¦   «         5  t           j        j                             | ¬¦  «        }t          ddd¦  «        }t          ddd¦  «        }t          ||z  ¦  «        }t          ||f|d¦  «        }t            
                    ddgdd	gg¦  «        }t            
                    dd
gddgg¦  «        }|                      |||¦  «        ¦  «        }|                     t                                ||¦  «        ¦  «        }	||	k                         ¦   «         sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr¹   rY   r=   rÏ   r?   r:   rÎ   r>   rc   éþÿÿÿéÿÿÿÿ)rm   r8   rn   ro   rp   rq   rr   r3   r6   r7   Úconstantrs   Úmatmulr|   )
rZ   r…   r=   r?   Úcgr�   ÚmaÚmbr³   Úcs
             rH   Útest_codegen_einsumrë   e  sŽ  € Ýð )ÝÐ'Ñ(Ô(Ð(å�HŠH‰JŒJ€EØ	×	Ò	Ñ	Ô	ð ð Ý”)”,×&Ò&¨UÐ&Ñ3Ô3ˆå˜˜a Ñ#Ô#ˆÝ˜˜a Ñ#Ô#ˆå$ Q¨¡UÑ+Ô+ˆÝ�a˜�V˜R Ñ.Ô.ˆå�[Š[˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆÝ�[Š[˜1˜R˜& 2 q 'Ð*Ñ+Ô+ˆØ�KŠK˜˜˜"˜b™	œ	Ñ"Ô"ˆØ�KŠK�Ÿ	š	 " bÑ)Ô)Ñ*Ô*ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~Ððð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁDE&Å&E*Å-E*c            
      óV  — t           st          d¦  «         t                                ¦   «         } |                      ¦   «         5  t           j        j                             ¦   «         }t          ddd¦  «        }t          ddd¦  «        }t          ddd¦  «        }t          ddd¦  «        }t                                ddgdd	gg¦  «        }t                                dd
gddgg¦  «        }t                                ddgddgg¦  «        }t                                ddgd	dgg¦  «        }	t          ||¦  «        }
t          |
¦  «        dk    sJ ‚t          ||f|
d¦  «        }|                      |||¦  «        ¦  «        }|                     t                                d||¦  «        ¦  «        }||k                         ¦   «         sJ ‚t          ||¦  «        }
t          |
¦  «        dk    sJ ‚t          ||f|
d¦  «        }|                      |||¦  «        ¦  «        }|                     ||z   ¦  «        }||k                         ¦   «         sJ ‚t          |||¦  «        }
t          |
¦  «        dk    sJ ‚t          |||f|
d¦  «        }|                      ||||¦  «        ¦  «        }|                     ||z   |z   ¦  «        }||k                         ¦   «         sJ ‚t          ||||¦  «        }
t          |
¦  «        dk    sJ ‚t          ||||f|
d¦  «        }|                      |||||	¦  «        ¦  «        }|                     ||z   |z   |	z   ¦  «        }||k                         ¦   «         sJ ‚t!          |ddg¦  «        }
t          |
¦  «        dk    sJ ‚t          |f|
d¦  «        }|                      ||¦  «        ¦  «        }|                     t                                |¦  «        ¦  «        }||k                         ¦   «         sJ ‚t!          t          ||¦  «        g d¢¦  «        }
t          |
¦  «        dk    sJ ‚t          ||f|
d¦  «        }|                      |||¦  «        ¦  «        }|                     t                                t                                d||¦  «        g d¢¦  «        ¦  «        }||k                         ¦   «         sJ ‚t%          t          ||¦  «        d¦  «        }
t          |
¦  «        dk    sJ ‚t          ||f|
d¦  «        }|                      |||¦  «        ¦  «        }|                     t                                d||¦  «        ¦  «        }||k                         ¦   «         sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr¹   r=   rÏ   r?   r@   rA   rÎ   r>   rc   rã   rä   r   é   z'tensorflow.linalg.einsum("ab,cd", M, N)r:   zij,klrÞ   z1tensorflow.math.add(tensorflow.math.add(M, N), P)zItensorflow.math.add(tensorflow.math.add(tensorflow.math.add(M, N), P), Q)ztensorflow.transpose(M, [1, 0]))rÎ   rÏ   r>   r   zKtensorflow.transpose(tensorflow.linalg.einsum("ab,cd", M, N), [1, 2, 3, 0])zab,cd)rÎ   rÏ   z,tensorflow.linalg.einsum("ab,bc->acb", M, N)z
ab,bc->acb)rm   r8   rn   ro   rp   rq   rr   r3   rå   r   r5   r7   rs   Úeinsumr|   r   r   Ú	transposer	   )rZ   r…   r=   r?   r@   rA   rè   ré   ÚmcÚmdrç   r�   r³   rê   s                 rH   Útest_codegen_extrarò   z  sÝ  € Ýð )ÝÐ'Ñ(Ô(Ð(å�HŠH‰JŒJ€EØ	×	Ò	Ñ	Ô	ð Bð BÝ”)”,×&Ò&Ñ(Ô(ˆå˜˜a Ñ#Ô#ˆÝ˜˜a Ñ#Ô#ˆÝ˜˜a Ñ#Ô#ˆÝ˜˜a Ñ#Ô#ˆÝ�[Š[˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆÝ�[Š[˜1˜R˜& 2 q 'Ð*Ñ+Ô+ˆÝ�[Š[˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆÝ�[Š[˜1˜R˜& 1 a &Ð)Ñ*Ô*ˆå  1Ñ%Ô%ˆÝ˜rÑ"Ô"Ø5ò6ð 6ð 6ð 6å�a˜�V˜R Ñ.Ô.ˆØ�KŠK˜˜˜"˜b™	œ	Ñ"Ô"ˆØ�KŠK�Ÿ	š	 '¨2¨rÑ2Ô2Ñ3Ô3ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~å�a˜‰^Œ^ˆÝ˜rÑ"Ô"Ð&AÒAÐAÐAÐAÝ�a˜�V˜R Ñ.Ô.ˆØ�KŠK˜˜˜"˜b™	œ	Ñ"Ô"ˆØ�KŠK˜˜R™Ñ Ô ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~å�a˜˜AÑÔˆÝ˜rÑ"Ô"Ø?ò@ð @ð @ð @å�a˜˜A�Y  LÑ1Ô1ˆØ�KŠK˜˜˜"˜b "™œÑ&Ô&ˆØ�KŠK˜˜R™ "™Ñ%Ô%ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~å�a˜˜A˜qÑ!Ô!ˆÝ˜rÑ"Ô"ðHòHð Hð Hð Hõ �a˜˜A˜q�\ 2 |Ñ4Ô4ˆØ�KŠK˜˜˜"˜b " bÑ)Ô)Ñ*Ô*ˆØ�KŠK˜˜R™ "™ rÑ)Ñ*Ô*ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~å˜˜Q ˜FÑ#Ô#ˆÝ˜rÑ"Ô"Ð&GÒGÐGÐGÐGÝ�a�T˜2˜|Ñ,Ô,ˆØ�KŠK˜˜˜"™œÑÔˆØ�KŠK�Ÿš RÑ(Ô(Ñ)Ô)ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~åÕ+¨A¨qÑ1Ô1°<°<°<Ñ@Ô@ˆÝ˜rÑ"Ô"ðIòIð Ið Ið Iõ �a˜�V˜R Ñ.Ô.ˆØ�KŠK˜˜˜"˜b™	œ	Ñ"Ô"ˆØ�KŠK�Ÿš¥R§Y¢Y¨w¸¸BÑ%?Ô%?ÀÀÀÑNÔNÑOÔOˆØ�Q’�|Š|‰~Œ~ÐÐˆ~åÕ-¨a°Ñ3Ô3°VÑ<Ô<ˆÝ˜rÑ"Ô"Ø:ò;ð ;ð ;ð ;å�a˜�V˜R Ñ.Ô.ˆØ�KŠK˜˜˜"˜b™	œ	Ñ"Ô"ˆØ�KŠK�Ÿ	š	 ,°°BÑ7Ô7Ñ8Ô8ˆØ�Q’�|Š|‰~Œ~ÐÐˆ~ÐðEBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   ÁUVÖV"Ö%V"c                  óF  — t          ddd¦  «        } t          ddd¦  «        }t          ddd¦  «        }t          | d         ¦  «        dk    sJ ‚t          d| d         z  ¦  «        dk    sJ ‚|d                              || |z
  ¦  «        }t          |¦  «        d	k    sJ ‚d S )
NÚArÎ   r>   ÚBÚC)r   r   zA[0, 0]z	3*A[0, 0]z&(tensorflow.math.add((-1)*B, A))[0, 0])r3   r5   rt   )rô   rõ   rö   ÚFs       rH   Útest_MatrixElement_printingrø   Ä  s®   € Ý�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€AÝ�S˜!˜QÑÔ€Aå˜1˜Tœ7Ñ#Ô# yÒ0Ð0Ð0Ð0Ý˜1˜q œw™;Ñ'Ô'¨;Ò6Ð6Ð6Ð6à	ˆ$Œ�Š�Q˜˜A™ÑÔ€AÝ˜1ÑÔÐ!IÒIÐIÐIÐIÐIÐIrJ   c                  ó~   — t          t          t          ¦  «        t          ¦  «        } t          | ¦  «        dk    sJ ‚d S )Nz2tensorflow.gradients(tensorflow.math.sin(x), x)[0])r   r   r²   r5   r¶   s    rH   Útest_tensorflow_Derivativerú   Ð  sC   € Ý•c�!‘f”f�aÑ Ô €DÝ˜4Ñ Ô Ø<ò=ð =ð =ð =ð =ð =rJ   c                  ó"  — t           st          d¦  «         t          d¦  «        } t          dt	          | ¦  «        fd¦  «        }t          |¦  «        }d}t          |¦  «        |k    sJ d|› d|› �¦   «         ‚t          d¦  «        dft          d	¦  «        d
ft          d¦  «        d
fdfD ]f\  }} t          | |d¬¦  «        t                                |g¦  «        ¬¦  «        }||k     	                    ¦   «          
                    ¦   «         sJ ‚Œgt          d¦  «        } t          dt          | ¦  «        fd¦  «        }t          |¦  «        }d}t          |¦  «        |k    sJ d|› d|› �¦   «         ‚t          d	¦  «        dft          d¦  «        dft          d¦  «        d
fdfD ]f\  }} t          | |d¬¦  «        t                                |g¦  «        ¬¦  «        }||k     	                    ¦   «          
                    ¦   «         sJ ‚Œgd S )Nr¹   r²   g        )ç      ð?Tz5tensorflow.where(tensorflow.math.is_nan(x), 0.0, 1.0)zIncorrect printed result z, expected ÚnanÚinfrü   z-inf)rü   rü   r:   )Úmodules)r²   z5tensorflow.where(tensorflow.math.is_inf(x), 0.0, 1.0))rm   r8   r   r   r*   r5   Úfloatr7   rå   Únumpyr|   r+   )r²   Ú
expressionÚprinted_codeÚexpected_printed_codeÚ_inputÚ	_expectedÚ_outputs          rH   Útest_tensorflow_isnan_isinfr  Õ  sj  € Ýð )ÝÐ'Ñ(Ô(Ð(õ 	�‰Œ€Aå˜C¥ q¡¤˜?¨KÑ8Ô8€JÝ" :Ñ.Ô.€LØSÐÝ˜:Ñ&Ô&Ð*?Ò?Ð?Ð?ð  BNÐ]ið  BNð  BNð  wLð  BNð  BNÑ?Ô?Ð?Ý$ U™|œ|¨SÐ1µE¸%±L´LÀ#Ð3FÍÈvÉÌÐX[ÐH\Ð^hÐið 4ð 4Ñˆ�	ØA•(˜A 
°LÐAÑAÔAÅBÇKÂKÐQWÐPXÑDYÔDYÐZÑZÔZˆØ˜9Ò$×+Ò+Ñ-Ô-×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3õ 	�‰Œ€Aå˜C¥ q¡¤˜?¨KÑ8Ô8€JÝ" :Ñ.Ô.€LØSÐÝ˜:Ñ&Ô&Ð*?Ò?Ð?Ð?ð  BNÐ]ið  BNð  BNð  wLð  BNð  BNÑ?Ô?Ð?Ý$ U™|œ|¨SÐ1µE¸&±M´MÀ3Ð3GÍ%ÐPUÉ,Ì,ÐX[ÐI\Ð^hÐið 4ð 4Ñˆ�	ØA•(˜A 
°LÐAÑAÔAÅBÇKÂKÐQWÐPXÑDYÔDYÐZÑZÔZˆØ˜9Ò$×+Ò+Ñ-Ô-×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3ð4ð 4rJ   )F)frœ   Úsympy.core.functionr   Úsympy.core.symbolr   Úsympyr   Ú0sympy.tensor.array.expressions.array_expressionsr   r   r   r	   Úsympy.core.relationalr
   r   r   r   r   r   Úsympy.externalr   Úsympy.functionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   Úsympy.codegen.cfunctionsr*   r+   Úsympy.matricesr,   r-   r.   r/   Úsympy.matrices.expressionsr0   r1   r2   r3   r4   Úsympy.printing.tensorflowr5   Ú3sympy.tensor.array.expressions.from_matrix_to_arrayr6   Úsympy.utilities.lambdifyr7   Úsympy.testing.pytestr8   r9   rm   r:   ÚosÚenvironr=   r?   r@   rA   r²   r³   r´   rµ   rD   Úllorå   Úm3x3Ú	m3x3sympyr‡   r‘   r˜   rª   r°   r·   rØ   rÚ   rÜ   rá   rë   rò   rø   rú   r  rN   rJ   rH   ú<module>r     sÈ  ðØ €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø (Ð (Ð (Ð (Ð (Ð (ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø WÐ WÐ WÐ WÐ WÐ WØ -Ð -Ð -Ð -Ð -Ð -Ø %Ð %Ð %Ð %Ð %Ð %Ø &Ð &Ð &Ð &Ð &Ð &ð  �- Ñ-Ô-Ð -€€Zàð -à€I€I€IØ),€B„JÐ%Ñ&ð €L��a˜ÑÔ€Ø€L��a˜ÑÔ€Ø€L��a˜ÑÔ€Ø€L��a˜ÑÔ€àˆW�YÑÔ�
€€1€aˆà€>Ø
7Ð
7¨¨¨a°°A©¬Ð
7Ñ
7Ô
7€CØ�;Š;�sÑÔ€DØ��s‘”€IðLð Lð Lð Lð@Lð Lð Lð Lð<ð ð ð$ 7Ð6ðð ð ð ð" 7Ð6ðð ð ð ð .ð .ð .ð ð]1ð ]1ñ „ð]1ð@Að Að Að1ð 1ð 1ð> ð2+ð 2+ñ „ð2+ðjð ð ð*Gð Gð GðT	Jð 	Jð 	Jð=ð =ð =ð
4ð 4ð 4ð 4ð 4rJ   