§
    OŠtjE  ã                   ó¦   — d dl mZ d dlmZ d dlmZ  G d„ de¦  «        Z e¦   «         Zed„ ¦   «         Zdd„Z	d	„ d
„ e	dfd„Z
dd„Zd„ Zd„ Zd„ ZdS )é    )Úcontextmanager)Úlocal©Ú
expand_mulc                   ó   — e Zd Zd„ ZdS )ÚDotProdSimpStatec                 ó   — d | _         d S ©N)Ústate)Úselfs    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/utilities.pyÚ__init__zDotProdSimpState.__init__   s   € ØˆŒ
ˆ
ˆ
ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s#   € € € € € ðð ð ð ð r   r   c              #   ó~   K  — t           j        }	 | t           _        d V — |t           _        d S # |t           _        w xY wr
   ©Ú_dotprodsimp_stater   )ÚxÚolds     r   Údotprodsimpr      sI   è è € å
Ô
"€Cð'Ø#$ÕÔ Øˆˆˆà#&ÕÔ Ð Ð ø 3ÕÔ Ð&Ð&Ð&Ð&s   �. ®<Fc                 ó(   — ddl m}  || |¬¦  «        S )z;Wrapper for simplify.dotprodsimp to avoid circular imports.r   )r   )Úwithsimp)Úsympy.simplify.simplifyr   )Úexprr   Údpss      r   Ú_dotprodsimpr      s)   € à:Ð:Ð:Ð:Ð:Ð:Øˆ3ˆt˜hÐ'Ñ'Ô'Ð'r   c                 ó   — | S r
   r   ©r   s    r   ú<lambda>r"      s   € ¨Q€ r   c                 ó   — | S r
   r   r!   s    r   r"   r"      s   € À!€ r   Nc                 óV   — |du st           j        du r|S |du st           j        du r|S | S )a  Support function for controlling intermediate simplification. Returns a
    simplification function according to the global setting of dotprodsimp
    operation.

    ``deffunc``     - Function to be used by default.
    ``offfunc``     - Function to be used if dotprodsimp has been turned off.
    ``onfunc``      - Function to be used if dotprodsimp has been turned on.
    ``dotprodsimp`` - True, False or None. Will be overridden by global
                      _dotprodsimp_state.state if that is not None.
    FTr   )ÚdeffuncÚofffuncÚonfuncr   s       r   Ú_get_intermediate_simpr(      sE   € ð �eÐÐÕ1Ô7¸5Ð@Ð@ØˆØ�dÐÐÕ0Ô6¸$Ð>Ð>Øˆà€Nr   c                 ó&   — t          | dd|¦  «        S )zYSame as ``_get_intermediate_simp`` but returns bools instead of functions
    by default.FT)r(   )Údefaultr   s     r   Ú_get_intermediate_simp_boolr+   3   s   € õ " '¨5°$¸ÑDÔDÐDr   c                 ó$   — t          | dd¦  «        S )zReturns True if x is zero.Úis_zeroN)Úgetattrr!   s    r   Ú_iszeror/   :   s   € å�1�i Ñ&Ô&Ð&r   c                 ó(   — t          | ¦  «        dk    S )zNTests by expand_mul only, suitable for polynomials and rational
    functions.r   r   r!   s    r   Ú_is_zero_after_expand_mulr1   ?   s   € õ �a‰=Œ=˜AÒÐr   c                 ó$   — ddl m}  || ¦  «        S )z$ Wrapper to avoid circular imports. r   )Úsimplify)r   r3   )r   r3   s     r   Ú	_simplifyr4   E   s"   € à0Ð0Ð0Ð0Ð0Ð0Øˆ8�D‰>Œ>Ðr   )F)FN)Ú
contextlibr   Ú	threadingr   Úsympy.core.functionr   r   r   r   r   r(   r+   r/   r1   r4   r   r   r   ú<module>r8      s  ðØ %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð �uñ ô ð ð &Ð%Ñ'Ô'Ð àð'ð 'ñ „ð'ð(ð (ð (ð (ð $/ ;¸¸Ø¨ðð ð ð ð*Eð Eð Eð Eð'ð 'ð 'ð
ð ð ðð ð ð ð r   