Ë
    7^(h„#  ã                   óà  — d 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 ddlmZmZmZ g d¢Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z ed«      Z ed«      Z ed«      Z  ed«      Z! G d„ de«      Z" G d„ de«      Z# G d„ de«      Z$ G d„ d ee$«      Z% G d!„ d"ee$«      Z& G d#„ d$e«      Z' G d%„ d&e«      Z(d'„ Z)d(„ Z*d)„ Z+y*)+zuOperators and states for 1D cartesian position and momentum.

TODO:

* Add 3D classes to mappings in operatorset.py

é    )ÚIÚpi)ÚS)Úexp)Úsqrt)Ú
DiracDelta)ÚInterval)Úhbar)ÚL2)ÚDifferentialOperatorÚHermitianOperator)ÚKetÚBraÚState)ÚXOpÚYOpÚZOpÚPxOpÚXÚYÚZÚPxÚXKetÚXBraÚPxKetÚPxBraÚPositionState3DÚPositionKet3DÚPositionBra3Dc                   óN   — e Zd ZdZed„ «       Zed„ «       Zd„ Zd„ Zd„ Z	ddœd	„Z
y
)r   z1D cartesian position operator.c                  ó   — y)N)r   © ©Úselfs    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/quantum/cartesian.pyÚdefault_argszXOp.default_args/   ó   € àó    c                 ód   — t        t        t        j                  t        j                  «      «      S ©N©r   r	   r   ÚNegativeInfinityÚInfinity©r$   Úargss     r%   Ú_eval_hilbert_spacezXOp._eval_hilbert_space3   ó   € ä”(œ1×-Ñ-¬q¯z©zÓ:Ó;Ð;r(   c                 ó   — t         t        z  S r*   )r   r
   )r$   Úothers     r%   Ú_eval_commutator_PxOpzXOp._eval_commutator_PxOp7   s   € Ü”‰vˆr(   c                 ó    — |j                   |z  S r*   )Úposition©r$   ÚketÚoptionss      r%   Ú_apply_operator_XKetzXOp._apply_operator_XKet:   ó   € Ø�|‰|˜CÑÐr(   c                 ó    — |j                   |z  S r*   )Ú
position_xr7   s      r%   Ú_apply_operator_PositionKet3Dz!XOp._apply_operator_PositionKet3D=   ó   € Ø�~‰~˜cÑ!Ð!r(   é   ©Úindexc                ó¼   — |j                  d|¬«      }|d   j                  }|d   j                  }t        |«      }t        ||z
  «      }t        t
        z  ||z  z  S ©Né   )Ústart_indexr   r@   )Ú_enumerate_stateÚmomentumr   r   r   r
   ©	r$   ÚbasisrB   r9   ÚstatesÚcoord1Úcoord2ÚdÚdeltas	            r%   Ú_represent_PxKetzXOp._represent_PxKet@   s`   € Ø×'Ñ'¨°uÐ'Ó=ˆØ˜‘×#Ñ#ˆØ˜‘×#Ñ#ˆÜ  Ó(ˆÜ˜6 F™?Ó+ˆä”‰v�q˜‘wÑÐr(   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr&   r0   r4   r:   r>   rP   r"   r(   r%   r   r   ,   sD   „ Ù)àñó ðð ñ<ó ð<òò ò"ð 01õ  r(   r   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)r   z8 Y cartesian coordinate operator (for 2D or 3D systems) c                  ó   — y)N)r   r"   r#   s    r%   r&   zYOp.default_argsM   r'   r(   c                 ód   — t        t        t        j                  t        j                  «      «      S r*   r+   r.   s     r%   r0   zYOp._eval_hilbert_spaceQ   r1   r(   c                 ó    — |j                   |z  S r*   )Ú
position_yr7   s      r%   r>   z!YOp._apply_operator_PositionKet3DU   r?   r(   N©rQ   rR   rS   rT   rU   r&   r0   r>   r"   r(   r%   r   r   J   s0   „ ÙBàñó ðð ñ<ó ð<ó"r(   r   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)r   z2 Z cartesian coordinate operator (for 3D systems) c                  ó   — y)N)r   r"   r#   s    r%   r&   zZOp.default_args\   r'   r(   c                 ód   — t        t        t        j                  t        j                  «      «      S r*   r+   r.   s     r%   r0   zZOp._eval_hilbert_space`   r1   r(   c                 ó    — |j                   |z  S r*   )Ú
position_zr7   s      r%   r>   z!ZOp._apply_operator_PositionKet3Dd   r?   r(   Nr[   r"   r(   r%   r   r   Y   s0   „ Ù<àñó ðð ñ<ó ð<ó"r(   r   c                   óB   — e Zd ZdZed„ «       Zed„ «       Zd„ Zddœd„Zy)	r   z1D cartesian momentum operator.c                  ó   — y)N)r   r"   r#   s    r%   r&   zPxOp.default_argso   ó   € àr(   c                 ód   — t        t        t        j                  t        j                  «      «      S r*   r+   r.   s     r%   r0   zPxOp._eval_hilbert_spaces   r1   r(   c                 ó    — |j                   |z  S r*   )rH   r7   s      r%   Ú_apply_operator_PxKetzPxOp._apply_operator_PxKetw   r;   r(   r@   rA   c                ó¾   — |j                  d|¬«      }|d   j                  }|d   j                  }t        |«      }t        ||z
  «      }t         t
        z  ||z  z  S rD   )rG   r6   r   r   r   r
   rI   s	            r%   Ú_represent_XKetzPxOp._represent_XKetz   sb   € Ø×'Ñ'¨°uÐ'Ó=ˆØ˜‘×#Ñ#ˆØ˜‘×#Ñ#ˆÜ  Ó(ˆÜ˜6 F™?Ó+ˆäˆr”$‰w˜˜%™Ñ Ð r(   N)	rQ   rR   rS   rT   rU   r&   r0   rf   rh   r"   r(   r%   r   r   l   s:   „ Ù)àñó ðð ñ<ó ð<ò ð /0õ !r(   r   r   r   r   r   c                   óh   — e Zd ZdZed„ «       Zd„ Zed„ «       Zed„ «       Ze	d„ «       Z
d„ Zd„ Zd	„ Zy
)r   z1D cartesian position eigenket.c                 ó@   —  | j                   | gt        |«      ¢­i |¤ŽS r*   ©Ú__new__Ú_lowercase_labels©r$   Úopr9   s      r%   Ú_operators_to_statezXKet._operators_to_state�   ó#   € àˆt�|‰|˜DÐDÔ#4°RÓ#8ÒD¸GÑDÐDr(   c                 ó@   —  |j                   |gt        | «      ¢­i |¤ŽS r*   ©rl   Ú_uppercase_labels©r$   Úop_classr9   s      r%   Ú_state_to_operatorszXKet._state_to_operators”   ó2   € Øˆx×Ñ ð EÜ!2°4Ó!8òEØ<CñEð 	Er(   c                  ó   — y©N)Úxr"   r#   s    r%   r&   zXKet.default_args˜   r'   r(   c                 ó   — t         S r*   )r   r#   s    r%   Ú
dual_classzXKet.dual_classœ   ó   € äˆr(   c                 ó    — | j                   d   S ©zThe position of the state.r   ©Úlabelr#   s    r%   r6   zXKet.position    ó   € ð �z‰z˜!‰}Ðr(   c                 ó   — t        | |fi |¤ŽS r*   ©Ú_enumerate_continuous_1D)r$   Ú
num_statesr9   s      r%   rG   zXKet._enumerate_state¥   s   € Ü'¨¨jÑD¸GÑDÐDr(   c                 óF   — t        | j                  |j                  z
  «      S r*   )r   r6   ©r$   ÚbraÚhintss      r%   Ú_eval_innerproduct_XBrazXKet._eval_innerproduct_XBra¨   ó   € Ü˜$Ÿ-™-¨#¯,©,Ñ6Ó7Ð7r(   c                 ó˜   — t        t         | j                  z  |j                  z  t        z  «      t        dt        z  t        z  «      z  S ©NrE   )r   r   r6   rH   r
   r   r   r‰   s      r%   Ú_eval_innerproduct_PxBrazXKet._eval_innerproduct_PxBra«   s7   € Ü”A�2�d—m‘mÑ# C§L¡LÑ0´Ñ5Ó6´t¸A¼b¹DÄ¹I³ÑFÐFr(   N)rQ   rR   rS   rT   rU   rp   rw   r&   r}   Úpropertyr6   rG   rŒ   r�   r"   r(   r%   r   r   �   sl   „ Ù)àñEó ðEòEð ñó ðð ñó ðð ñó ðòEò8óGr(   r   c                   ó@   — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zy)r   z1D cartesian position eigenbra.c                  ó   — yrz   r"   r#   s    r%   r&   zXBra.default_args²   r'   r(   c                 ó   — t         S r*   )r   r#   s    r%   r}   zXBra.dual_class¶   r~   r(   c                 ó    — | j                   d   S r€   r�   r#   s    r%   r6   zXBra.positionº   rƒ   r(   N)	rQ   rR   rS   rT   rU   r&   r}   r‘   r6   r"   r(   r%   r   r   ¯   s?   „ Ù)àñó ðð ñó ðð ñó ñr(   r   c                   óf   — e Zd ZdZed„ «       Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zy)	r   z2 Base class for 3D cartesian position eigenstates c                 ó@   —  | j                   | gt        |«      ¢­i |¤ŽS r*   rk   rn   s      r%   rp   z#PositionState3D._operators_to_stateÃ   rq   r(   c                 ó@   —  |j                   |gt        | «      ¢­i |¤ŽS r*   rs   ru   s      r%   rw   z#PositionState3D._state_to_operatorsÇ   rx   r(   c                  ó   — y)N)r{   ÚyÚzr"   r#   s    r%   r&   zPositionState3D.default_argsË   s   € àr(   c                 ó    — | j                   d   S )z The x coordinate of the state r   r�   r#   s    r%   r=   zPositionState3D.position_xÏ   rƒ   r(   c                 ó    — | j                   d   S )z The y coordinate of the state r@   r�   r#   s    r%   rZ   zPositionState3D.position_yÔ   rƒ   r(   c                 ó    — | j                   d   S )z The z coordinate of the state rE   r�   r#   s    r%   r`   zPositionState3D.position_zÙ   rƒ   r(   N)rQ   rR   rS   rT   rU   rp   rw   r&   r‘   r=   rZ   r`   r"   r(   r%   r   r   À   so   „ Ù<àñEó ðEòEð ñó ðð ñó ðð ñó ðð ñó ñr(   r   c                   ó&   — e Zd ZdZd„ Zed„ «       Zy)r   z  3D cartesian position eigenket c                 óÞ   — | j                   |j                   z
  }| j                  |j                  z
  }| j                  |j                  z
  }t        |«      t        |«      z  t        |«      z  S r*   )r=   rZ   r`   r   )r$   rŠ   r9   Úx_diffÚy_diffÚz_diffs         r%   Ú _eval_innerproduct_PositionBra3Dz.PositionKet3D._eval_innerproduct_PositionBra3Dâ   sW   € Ø—‘ 3§>¡>Ñ1ˆØ—‘ 3§>¡>Ñ1ˆØ—‘ 3§>¡>Ñ1ˆä˜&Ó!¤*¨VÓ"4Ñ4´ZÀÓ5GÑGÐGr(   c                 ó   — t         S r*   )r   r#   s    r%   r}   zPositionKet3D.dual_classé   ó   € äÐr(   N)rQ   rR   rS   rT   r¤   rU   r}   r"   r(   r%   r   r   ß   s   „ Ù*òHð ñó ñr(   r   c                   ó    — e Zd ZdZed„ «       Zy)r   z  3D cartesian position eigenbra c                 ó   — t         S r*   )r   r#   s    r%   r}   zPositionBra3D.dual_classô   r¦   r(   N)rQ   rR   rS   rT   rU   r}   r"   r(   r%   r   r   ñ   s   „ Ù*àñó ñr(   r   c                   óh   — e Zd ZdZed„ «       Zd„ Zed„ «       Zed„ «       Ze	d„ «       Z
d„ Zd„ Zd	„ Zy
)r   z1D cartesian momentum eigenket.c                 ó@   —  | j                   | gt        |«      ¢­i |¤ŽS r*   rk   rn   s      r%   rp   zPxKet._operators_to_state   rq   r(   c                 ó@   —  |j                   |gt        | «      ¢­i |¤ŽS r*   rs   ru   s      r%   rw   zPxKet._state_to_operators  rx   r(   c                  ó   — y©N)Úpxr"   r#   s    r%   r&   zPxKet.default_args  rc   r(   c                 ó   — t         S r*   )r   r#   s    r%   r}   zPxKet.dual_class  ó   € äˆr(   c                 ó    — | j                   d   S ©zThe momentum of the state.r   r�   r#   s    r%   rH   zPxKet.momentum  rƒ   r(   c                 ó    — t        | g|¢­i |¤ŽS r*   r…   )r$   r/   r9   s      r%   rG   zPxKet._enumerate_state  s   € Ü'¨Ð?¨tÒ?°wÑ?Ð?r(   c                 ó–   — t        t        | j                  z  |j                  z  t        z  «      t        dt        z  t        z  «      z  S r�   )r   r   rH   r6   r
   r   r   r‰   s      r%   rŒ   zPxKet._eval_innerproduct_XBra  s4   € Ü”1�T—]‘]‘? 3§<¡<Ñ/´Ñ4Ó5´d¸1¼R¹4Ä¹9³oÑEÐEr(   c                 óF   — t        | j                  |j                  z
  «      S r*   )r   rH   r‰   s      r%   r�   zPxKet._eval_innerproduct_PxBra  r�   r(   N)rQ   rR   rS   rT   rU   rp   rw   r&   r}   r‘   rH   rG   rŒ   r�   r"   r(   r%   r   r   ý   sl   „ Ù)àñEó ðEòEð ñó ðð ñó ðð ñó ðò@òFó8r(   r   c                   ó@   — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zy)r   z1D cartesian momentum eigenbra.c                  ó   — yr­   r"   r#   s    r%   r&   zPxBra.default_args"  rc   r(   c                 ó   — t         S r*   )r   r#   s    r%   r}   zPxBra.dual_class&  r°   r(   c                 ó    — | j                   d   S r²   r�   r#   s    r%   rH   zPxBra.momentum*  rƒ   r(   N)	rQ   rR   rS   rT   rU   r&   r}   r‘   rH   r"   r(   r%   r   r     s?   „ Ù)àñó ðð ñó ðð ñó ñr(   r   c                  óž  — | d   }| d   }|j                   }|j                  dg «      }t        |«      dk(  r*|j                  dd«      }t        t	        |||z   «      «      }t	        t        |«      «      D �cg c]  }d‘Œ }}t        |«      D ]8  \  }}	|j                  d   }
 |t        |
«      dz   t        |	«      z   fi |¤Ž||<   Œ: |S c c}w )Nr   r@   Ú
index_listrF   Ú_)Ú	__class__ÚpopÚlenÚlistÚrangeÚ	enumerater/   Ústr)r/   r9   Ústater‡   Ústate_classr»   rF   ÚiÚenum_statesÚindr‚   s              r%   r†   r†   4  sÔ   € Ø�‰G€EØ�a‘€JØ—/‘/€KØ—‘˜\¨2Ó.€Jä
ˆ:ƒ˜!ÒØ—k‘k -°Ó3ˆÜœ% ¨[¸:Ñ-EÓFÓGˆ
ä#¤C¨
£OÓ4Ö5˜’1Ð5€KÐ5ä˜JÓ'ò M‰ˆˆ3Ø—
‘
˜1‘ˆÙ$¤S¨£Z°#Ñ%5¼¸C»Ñ%@ÑLÀGÑLˆ�AŠðMð Ðùò 6s   Á7	C
c                 óš   — t        | t        «      s| g} | D �cg c](  }t        |j                  d   «      j	                  «       ‘Œ* c}S c c}w )Nr   )Ú
isinstanceÚsetrÃ   r‚   Úlower)ÚopsÚargs     r%   rm   rm   G  s=   € Ü�cœ3ÔØˆeˆà14Ö5¨#ŒC�—	‘	˜!‘Ó×#Ñ#Õ%Ò5Ð5ùÒ5s   ˜-Ac                 óÚ   — t        | t        «      s| g} | D �cg c]G  }t        |j                  d   «      d   j	                  «       t        |j                  d   «      dd  z   ‘ŒI }}|S c c}w )Nr   r@   )rÊ   rË   rÃ   r‚   Úupper)rÍ   rÎ   Únew_argss      r%   rt   rt   N  su   € Ü�cœ3ÔØˆeˆð 25ö6Ø*-ô �C—I‘I˜a‘LÓ! !Ñ$×*Ñ*Ó,Ü�C—I‘I˜a‘LÓ! ! "Ð%ó&ð 6€Hð 6ð €Oùò6s   ˜AA(N),rT   Úsympy.core.numbersr   r   Úsympy.core.singletonr   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Ú'sympy.functions.special.delta_functionsr   Úsympy.sets.setsr	   Úsympy.physics.quantum.constantsr
   Úsympy.physics.quantum.hilbertr   Úsympy.physics.quantum.operatorr   r   Úsympy.physics.quantum.stater   r   r   Ú__all__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r†   rm   rt   r"   r(   r%   ú<module>rÝ      sù   ðñ÷ 'Ý "Ý 6Ý 9Ý >Ý $å 0Ý ,ß Rß 7Ñ 7ò€ô. Ð
ô  ô<"Ð
ô "ô"Ð
ô "ô&!Ðô !ñ. ˆƒH€ÙˆƒH€ÙˆƒH€Ù	ˆ$ƒZ€ôGˆ3ô GôDˆ3ô ô"�eô ô>�C˜ô ô$�C˜ô ô8ˆCô 8ôDˆCô ò*ò&6ór(   