§
    OŠtj  ã                   óD  — d Z ddlmZmZm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  G d„ d¦  «        Z ed	 ed
d	¦  «        d¬¦  «        Z e¦   «         Ze                     d e
ddgddgg¦  «        ¦  «         e                     d e
ddgddgg¦  «        ¦  «         e                     d e
ddgddgg¦  «        ¦  «         e                     d e
ddgddgg¦  «        ¦  «         e                     d e
ddgddgg¦  «        ¦  «         e                     d e
ddgddgg¦  «        ¦  «         e                     d e
de gedgg¦  «        ¦  «         e                     d e
ddgdd
gg¦  «        ¦  «         e                     d e
ddgdegg¦  «        ¦  «         e                     d e
ddgd eeez  dz  ¦  «        gg¦  «        ¦  «         e                     de e
ddgdd
gg¦  «        z  ¦  «         e                     d e
ddgdd
gg¦  «        ¦  «         e                     d e
g d¢g d¢g d¢g d¢g¦  «        ¦  «         e                     d e e
ddgdd
gg¦  «        z  ¦  «         e                     d! e
edgde gg¦  «        ¦  «         d"S )#z7A cache for storing small matrices in multiple formats.é    )ÚIÚRationalÚpi)ÚPow)Úexp)ÚMatrix)Úto_sympyÚto_numpyÚto_scipy_sparsec                   ó>   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
S )ÚMatrixCachea  A cache for small matrices in different formats.

    This class takes small matrices in the standard ``sympy.Matrix`` format,
    and then converts these to both ``numpy.matrix`` and
    ``scipy.sparse.csr_matrix`` matrices. These matrices are then stored for
    future recovery.
    Úcomplexc                 ó"   — i | _         || _        d S ©N)Ú_cacheÚdtype)Úselfr   s     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/physics/quantum/matrixcache.pyÚ__init__zMatrixCache.__init__   s   € ØˆŒØˆŒ
ˆ
ˆ
ó    c                 óö   — 	 |                       ||¦  «         n# t          $ r Y nw xY w	 |                      ||¦  «         n# t          $ r Y nw xY w	 |                      ||¦  «         dS # t          $ r Y dS w xY w)zìCache a matrix by its name.

        Parameters
        ----------
        name : str
            A descriptive name for the matrix, like "identity2".
        m : list of lists
            The raw matrix data as a SymPy Matrix.
        N)Ú_sympy_matrixÚImportErrorÚ_numpy_matrixÚ_scipy_sparse_matrix©r   ÚnameÚms      r   Úcache_matrixzMatrixCache.cache_matrix   sÁ   € ð	Ø×Ò˜t QÑ'Ô'Ð'Ð'øÝð 	ð 	ð 	ØˆDð	øøøð	Ø×Ò˜t QÑ'Ô'Ð'Ð'øÝð 	ð 	ð 	ØˆDð	øøøð	Ø×%Ò% d¨AÑ.Ô.Ð.Ð.Ð.øÝð 	ð 	ð 	ØˆDˆDð	øøøs/   ‚ ™
&¥&ªA Á
AÁAÁA* Á*
A8Á7A8c                 ón   — | j                              ||f¦  «        }|�|S t          d|›d|›d�¦  «        ‚)a  Get a cached matrix by name and format.

        Parameters
        ----------
        name : str
            A descriptive name for the matrix, like "identity2".
        format : str
            The format desired ('sympy', 'numpy', 'scipy.sparse')
        NzMatrix with name z and format z is not available.)r   ÚgetÚNotImplementedError©r   r   Úformatr   s       r   Ú
get_matrixzMatrixCache.get_matrix1   sL   € ð ŒK�OŠO˜T 6˜NÑ+Ô+ˆØˆ=ØˆHÝ!Ð!àˆTˆT�6�6�6ðñ
ô 
ð 	
r   c                 ó   — || j         ||f<   d S r   )r   r#   s       r   Ú_store_matrixzMatrixCache._store_matrixC   s   € Ø&'ˆŒ�T˜6�NÑ#Ð#Ð#r   c                 óN   — |                       |dt          |¦  «        ¦  «         d S )NÚsympy)r'   r	   r   s      r   r   zMatrixCache._sympy_matrixF   s&   € Ø×Ò˜4 ­(°1©+¬+Ñ6Ô6Ð6Ð6Ð6r   c                 ó`   — t          || j        ¬¦  «        }|                      |d|¦  «         d S )N©r   Únumpy)r
   r   r'   r   s      r   r   zMatrixCache._numpy_matrixI   s4   € Ý�Q˜dœjÐ)Ñ)Ô)ˆØ×Ò˜4 ¨!Ñ,Ô,Ð,Ð,Ð,r   c                 ó`   — t          || j        ¬¦  «        }|                      |d|¦  «         d S )Nr+   zscipy.sparse)r   r   r'   r   s      r   r   z MatrixCache._scipy_sparse_matrixM   s6   € õ ˜A T¤ZÐ0Ñ0Ô0ˆØ×Ò˜4 °Ñ3Ô3Ð3Ð3Ð3r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r%   r'   r   r   r   © r   r   r   r      sŒ   € € € € € ðð ðð ð ð ðð ð ð.
ð 
ð 
ð$(ð (ð (ð7ð 7ð 7ð-ð -ð -ð4ð 4ð 4ð 4ð 4r   r   é   éÿÿÿÿF)ÚevaluateÚeye2é   Úop11Úop00Úop10Úop01ÚXÚYÚZÚSÚTé   ÚHÚHsqrt2ÚSWAP)r7   r   r   r   )r   r   r7   r   )r   r7   r   r   )r   r   r   r7   ÚZXÚZYN)r1   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Ú&sympy.functions.elementary.exponentialr   Úsympy.matrices.denser   Ú!sympy.physics.quantum.matrixutilsr	   r
   r   r   Ú	sqrt2_invÚmatrix_cacher   r2   r   r   ú<module>rN      sÏ  ðØ =Ð =à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø  Ð  Ð  Ð  Ð  Ð  Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð
D4ð D4ð D4ð D4ð D4ñ D4ô D4ð D4ðN ˆC��8�8˜B ‘?”?¨UÐ3Ñ3Ô3€	ð ˆ{‰}Œ}€Ø × Ò ˜& & &¨1¨a¨&°1°a°&Ð)9Ñ":Ô":Ñ ;Ô ;Ð ;Ø × Ò ˜& & &¨1¨a¨&°1°a°&Ð)9Ñ":Ô":Ñ ;Ô ;Ð ;Ø × Ò ˜& & &¨1¨a¨&°1°a°&Ð)9Ñ":Ô":Ñ ;Ô ;Ð ;Ø × Ò ˜& & &¨1¨a¨&°1°a°&Ð)9Ñ":Ô":Ñ ;Ô ;Ð ;Ø × Ò ˜& & &¨1¨a¨&°1°a°&Ð)9Ñ":Ô":Ñ ;Ô ;Ð ;Ø × Ò ˜#˜v˜v¨¨1 v°°1¨vÐ&6Ñ7Ô7Ñ 8Ô 8Ð 8Ø × Ò ˜#˜v˜v¨¨A¨2 w°°A°Ð&7Ñ8Ô8Ñ 9Ô 9Ð 9Ø × Ò ˜#˜v˜v¨¨1 v°°2¨wÐ&7Ñ8Ô8Ñ 9Ô 9Ð 9Ø × Ò ˜#˜v˜v¨¨1 v°°1¨vÐ&6Ñ7Ô7Ñ 8Ô 8Ð 8Ø × Ò ˜#˜v˜v¨¨1 v°°3°3°q¸±t¸A±v±;´;Ð/?Ð&@ÑAÔAÑ BÔ BÐ BØ × Ò ˜#˜y¨¨°!°Q°¸!¸R¸Ð0AÑ)BÔ)BÑBÑ CÔ CÐ CØ × Ò ˜( F F¨Q°¨F°Q¸°GÐ+<Ñ$=Ô$=Ñ >Ô >Ð >Ø × Ò Ø
ˆFˆF�L�L�L , , ,°°°¸l¸l¸lÐKÑLÔLñNô Nð Nà × Ò ˜$ 	¨&¨&°1°a°&¸1¸b¸'Ð1BÑ*CÔ*CÑ CÑ DÔ DÐ DØ × Ò ˜$  ¨¨A¨°°Q°B°Ð'8Ñ 9Ô 9Ñ :Ô :Ð :Ð :Ð :r   