
    gU                        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 d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dl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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-  ed          \  Z.Z/Z0 G d de"          Z1 G d de"          Z2 G d de$          Z3 G d de$          Z4d Z5d Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d"S )#    )Add)diff)Mul)IIntegerRationaloopi)Pow)S)Symbolsymbols)sympify)	conjugate)sqrt)sin)raises)Dagger)QExpr)
KetBra
TimeDepKet
TimeDepBraKetBaseBraBase	StateBaseWavefunctionOrthogonalKetOrthogonalBra)HilbertSpacezx,y,tc                   $    e Zd Zed             ZdS )	CustomKetc                     dS )N)test selfs    b/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_state.pydefault_argszCustomKet.default_args   s    y    N__name__
__module____qualname__classmethodr)   r%   r*   r(   r"   r"      s-          [  r*   r"   c                   $    e Zd Zed             ZdS )CustomKetMultipleLabelsc                     dS )N)rthetaphir%   r&   s    r(   r)   z$CustomKetMultipleLabels.default_args!   s    $$r*   Nr+   r%   r*   r(   r1   r1       s-        % % [% % %r*   r1   c                   $    e Zd Zed             ZdS )CustomTimeDepKetc                     dS )N)r$   tr%   r&   s    r(   r)   zCustomTimeDepKet.default_args'   s    }r*   Nr+   r%   r*   r(   r7   r7   &   s-          [  r*   r7   c                   $    e Zd Zed             ZdS )CustomTimeDepKetMultipleLabelsc                     dS )N)r3   r4   r5   r9   r%   r&   s    r(   r)   z+CustomTimeDepKetMultipleLabels.default_args-   s    ))r*   Nr+   r%   r*   r(   r;   r;   ,   s-        * * [* * *r*   r;   c                  2   t          d          } t          | t                     sJ t          | t                    sJ t          | t                    sJ t          | t                    sJ | j        t          d          fk    sJ | j        t                      k    sJ | j	        du sJ t          d          } | j        t          d          fk    sJ t          t          t                    } | j        t          t          fk    sJ | j        t                      k    sJ | j	        du sJ |                                 t          k    sJ | j        t          t          t                    k    sJ |                     t          t                    t          t          t                    k    sJ t!                      } | t!          d          k    sJ t#                      } | t#          ddd          k    sJ t                      t          d          k    sJ d S )	N0Fr
   r$   r3   r4   r5   psi)r   
isinstancer   r   r   labelr   hilbert_spacer    is_commutativexy
dual_classr   dualsubsr"   r1   ks    r(   test_ketrK   2   s   CAaa!!!!!a#####a7vc{{n$$$$?lnn,,,,u$$$$ 	D		A7vd||o%%%%Aq		A7q!f?lnn,,,,u$$$$<<>>S    6SAYY66!Q<<3q!99$$$$A	&!!!!!!!!A'We<<<<<<55CJJr*   c                     t          d          } t          | t                     sJ t          | t                    sJ t          | t                    sJ t          | t                    sJ | j        t          d          fk    sJ | j        t                      k    sJ | j	        du sJ t          d          } | j        t          d          fk    sJ t          t          t                    } | j        t          t          fk    sJ | j        t                      k    sJ | j	        du sJ |                                 t          k    sJ | j        t          t          t                    k    sJ |                     t          t                    t          t          t                    k    sJ t                      t          d          k    sJ d S )Nr>   Fr
   r?   )r   r@   r   r   r   rA   r   rB   r    rC   rD   rE   rF   r   rG   rH   )bs    r(   test_brarN   T   s   CAaa!!!!!a#####a7vc{{n$$$$?lnn,,,,u$$$$ 	D		A7vd||o%%%%Aq		A7q!f?lnn,,,,u$$$$<<>>S    6SAYY66!Q<<3q!99$$$$55CJJr*   c                  \   t          d          } t          d          }dt          z  | z  t          t          d          z  |z  z
  }|t	          t          dt          |           t          t          dd          t          t          dt          j	                  |                    k    sJ d S )Nr         )
r   r   rD   r   r   r   r   r   r   Half)k0k1rJ   s      r(   test_opsrV   p   s    	QB	QB	!B!DGG)RAC1bMMHROOQAqv335 5 5 5 5 5 5 5r*   c                     t          dt                    } t          | t                     sJ t          | t                    sJ t          | t                    sJ t          | t
                    sJ | j        t          d          fk    sJ | j        t          d          t          fk    sJ | j	        t          k    sJ | 
                                t          k    sJ | j        t          dt                    k    sJ |                     t          d          t          dd          k    sJ t          t          d          } | j        t          fk    sJ | j        t          t          d          fk    sJ t!                      } | j        t#          d          fk    sJ | j	        t#          d          k    sJ | t!          dd          k    sJ t%                      } | j        t#          d          t#          d          t#          d          fk    sJ | j	        t#          d          k    sJ | t%          dddd          k    sJ t                      t          d	d          k    sJ d S )
Nr   rQ         ?r$   r9   r3   r4   r5   r?   )r   r9   r@   r   r   r   rA   r   argstimerF   r   rG   rH   rD   r   r7   r   r;   rI   s    r(   test_time_dep_ketr[   x   s<   1aAa$$$$$a!!!!!a#####a7wqzzm####6gajj!_$$$$6Q;;;;<<>>Z''''6Z1%%%%%%66!Q<<:a++++++1cA7qd????6a&&&&&A7vf~~'''''6VC[[     ------&((A7vc{{F7OOVE]]CCCCC6VC[[    .sGUCHHHHHH<<:eS11111111r*   c                     t          dt                    } t          | t                     sJ t          | t                    sJ t          | t                    sJ t          | t
                    sJ | j        t          d          fk    sJ | j        t          d          t          fk    sJ | j	        t          k    sJ | 
                                t          k    sJ | j        t          dt                    k    sJ t          t          d          }|j        t          fk    sJ |j        t          t          d          fk    sJ t                      t          dd          k    sJ d S )Nr   rX   r?   r9   )r   r9   r@   r   r   r   rA   r   rY   rZ   rF   r   rG   rD   r   )rM   rJ   s     r(   test_time_dep_brar]      sI   1aAa$$$$$a!!!!!a#####a7wqzzm####6gajj!_$$$$6Q;;;;<<>>Z''''6Z1%%%%%%1cA7qd????6a&&&&&<<:eS11111111r*   c                     t          dd          } t          d          }t          d          }t          |          t          d          k    sJ t          |          t          d          k    sJ t          |          j        du sJ t          d          }dt
          z  |z  | |z  z   }t          |          t          |           t          |          z  dt
          z  t          |          z  z
  k    sJ d S )	NrD   T)complexrJ   rM   Fk2rQ   )r   r   r   r   rC   r   r   )rD   rJ   rM   r`   es        r(   test_bra_ket_daggerrb      s    T"""ACACA!99C    !99C    !99#u,,,,	TB	!A"A!99	!VBZZ/!A#fQii-???????r*   c                  	   t          dd          \  } }t          dd          }t          ddd          }t          | dz  |                                           }j        }j        d	u sJ j        t          u sJ  d
          dk    sJ  |d
          dk    sJ ||          t           t          fk    sJ t          |           t          d| z  |           k    sJ t          t          fd           t                    t          t          j                  |           k    sJ t                    t                    k    sJ t          | dz  |z  |dz  | z  z   | ddf|ddf          }|j        }||          dk    sJ ||         dk    sJ |j        d	u sJ |j        t          d          dz  k    sJ  |dd          dk    sJ  |dd          dk    sJ t          t          ||           |          t          d| z  d|z  z   | ddf|ddf          k    sJ t          |          t          t          |j                  g|j        dd          R  k    sJ t          |          t          |          k    sJ t          t          d          | dz  z  | ddf          }|j        du sJ |                                |k    sJ t          |          t          t          |j                  | ddf          k    sJ t          |          t          |          k    sJ t          t!          |t"          z  | z  |z            | d|f          }	|	j        t          |dz            k    sJ  |	|dz             dk    sJ  |	d          t!          d|z  t"          z  |z            k    sJ  |	ddd          t!          dt"          z            k    sJ |	                                t          t          d          t          |          z  t!          |t"          z  | z  |z            z  | d|f          k    sJ t          |	          t          t          |	j                  | d|f          k    sJ t          |	          t          |	          k    sJ t          | dz  d          }
t%          |
j        d                   t(          k    sJ d S )Nzx yT)realL)positiven)integerrf   rQ   F
   d   i'  c                  ,                                      S )N)	normalize)fs   r(   <lambda>z#test_wavefunction.<locals>.<lambda>   s     r*   r   rP   )r   rP   )r   rQ   *            rX   )rg   re   rD   )r   r   problimitsis_normalizednormr	   r   r   NotImplementedErrorr   exprr   r   rY   rl   r   r
   type	variablesr   )rD   rE   re   rg   plimsglims_ghpiabrJ   rm   s              @r(   test_wavefunctionr      s   5t$$$DAqd###ATD111AQT1A	A8D?e####6R<<<<1R55C<<<<1R55E>>>>7sBi1::ac1------
 5 5 5 5666Q<<<	!&(9(91======Q<<6!99$$$$QT!Vad1f_q!Qi!Q;;AXF!9!9?e####6T"XXaZ1Q77a<<<<1Q77a<<<<Q

A,qsQqSy1a)aAY"O"OOOOOQ<<<	!&(9(9GAF122JGGGGGGGQ<<6!99$$$$T!WWQT\Aq!9--A?d"""";;==AQ<<<	!&(9(9Aq!9EEEEEEQ<<6!99$$$$AbDF1H1ay11D9QqS		!!!!4A;;!499CE"HQJ''''4qA#c"f++---->>T!WWT!WW_S2a]]2Q1I>>? ? ? ?T??l9TY+?+?!QKKKKKKT??fTll****QT3AA6))))))r*   c                     t          t                    t          t                    z  } |                                 dk    sJ t          t                    t          t          dz             z  } |                                 dk    sJ t          t                    t          t                    z  } |                                 | k    sJ d S )NrP   r   )r   rD   r   doitrE   )brakets    r(   test_orthogonal_statesr      s    1a 0 00F;;==A1ac 2 22F;;==A1a 0 00F;;==F""""""r*   N)=sympy.core.addr   sympy.core.functionr   sympy.core.mulr   sympy.core.numbersr   r   r   r	   r
   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.testing.pytestr   sympy.physics.quantum.daggerr   sympy.physics.quantum.qexprr   sympy.physics.quantum.stater   r   r   r   r   r   r   r   r   r   sympy.physics.quantum.hilbertr    rD   rE   r9   r"   r1   r7   r;   rK   rN   rV   r[   r]   rb   r   r   r%   r*   r(   <module>r      s         $ $ $ $ $ $       = = = = = = = = = = = = = =             " " " " " " / / / / / / / / & & & & & & : : : : : : 9 9 9 9 9 9 8 8 8 8 8 8 ' ' ' ' ' ' / / / / / / - - - - - -                       
 7 6 6 6 6 6
''

1a       % % % % %c % % %    z   * * * * *Z * * *  D  85 5 52 2 2D2 2 2,
@ 
@ 
@1* 1* 1*f# # # # #r*   