o
    …º¥gš  ã                   @   s®  d dl Z e  dd¡Ze ¡ dv Zer›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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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z; d dlm<Z< dd	œd
d„Zej=ej= >dd¡ e_=n²d dl?m2Z2 d dl@m8Z8 d dlAm)Z)m/Z/m<Z<m.Z.m4Z4 d dlBm3Z3 d dlCm;Z; d dlDmZmZmZm7Z7mZ d dlEm	Z	 d dlFmZm1Z1m0Z0 d dlGm
Z
mZ d dlHmZmZ d dlIm"Z"mZm$Z$m&Z&m!Z!m#Z#m%Z%m Z  d dlJmZ d dlKm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lLmZ d dlMm+Z+m*Z*m,Z,mZm-Z-m(Z( d dlNm5Z5 d dlOm6Z6 d dlPm'Z' d d!„ ZQg d"¢ZRdS )#é    NÚUSE_SYMENGINEÚ0)Ú1ÚtÚtrue)3ÚSymbolÚIntegerÚsympifyÚSÚSympifyErrorÚexpÚlogÚgammaÚsqrtÚIÚEÚpiÚMatrixÚsinÚcosÚtanÚcotÚcscÚsecÚasinÚacosÚatanÚacotÚacscÚasecÚsinhÚcoshÚtanhÚcothÚasinhÚacoshÚatanhÚacothÚlambdifyÚsymarrayÚdiffÚzerosÚeyeÚdiagÚonesÚexpandÚFunctionÚsymbolsÚvarÚAddÚMulÚ
DerivativeÚImmutableMatrixÚ
MatrixBaseÚRationalÚBasic)Úgcd)ÚAppliedUndefF)Ústrictc                C   s   |rt | tƒrt| ƒ‚t| ƒS )a˜  
        Notes
        =====

        SymEngine's ``sympify`` does not accept keyword arguments and is
        therefore not compatible with SymPy's ``sympify`` with ``strict=True``
        (which ensures that only the types for which an explicit conversion has
        been defined are converted). This wrapper adds an addiotional parameter
        ``strict`` (with default ``False``) that will raise a ``SympifyError``
        if ``strict=True`` and the argument passed to the parameter ``a`` is a
        string.

        See Also
        ========

        sympify: Converts an arbitrary expression to a type that can be used
            inside SymPy.

        )Ú
isinstanceÚstrr   Úsympify_symengine)Úar<   © rA   úI/var/www/visachat/venv/lib/python3.10/site-packages/sympy/core/backend.pyr	      s   r	   z        z    )r3   )r9   )r*   r0   r;   r/   r5   )r4   )Úigcd)r   r   r   r8   r   )r
   )r   r2   r1   )r   r	   )r   r   )r#   r    r%   r'   r"   r$   r&   r!   )r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   )r,   r+   r-   r   r.   r)   )r6   )r7   )r(   c                 C   s<   t | ttfƒstdƒ‚|  ¡ }| ¡  t | tƒr| ¡ }|S )z(Return a simplified copy of the matrix Mz=The matrix M must be an instance of Matrix or ImmutableMatrix)r=   r   r6   Ú	TypeErrorÚ
as_mutableÚsimplifyÚas_immutable)ÚMÚMnewrA   rA   rB   Ú_simplify_matrixe   s   
rJ   )5r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   rC   r;   )SÚosÚgetenvr   ÚlowerÚ	symenginer   r   r	   r?   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Úsymengine.lib.symengine_wrapperr:   rC   r;   Ú__doc__ÚreplaceÚsympy.core.addÚsympy.core.basicÚsympy.core.functionÚsympy.core.mulÚsympy.core.intfuncÚsympy.core.numbersÚsympy.core.singletonÚsympy.core.symbolÚsympy.core.sympifyÚ&sympy.functions.elementary.exponentialÚ%sympy.functions.elementary.hyperbolicÚ(sympy.functions.elementary.miscellaneousÚ(sympy.functions.elementary.trigonometricÚ'sympy.functions.special.gamma_functionsÚsympy.matrices.denseÚsympy.matrices.immutableÚsympy.matrices.matrixbaseÚsympy.utilities.lambdifyrJ   Ú__all__rA   rA   rA   rB   Ú<module>   s@    Ôÿÿ(8 