
    \h#                        S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJrJrJr  / SQr " S S\5      r " S S\5      r " S S\5      r " S S\5      r\" S5      r\" S5      r\" S5      r \" S5      r! " S S\5      r" " S S\5      r# " S S\5      r$ " S S \\$5      r% " S! S"\\$5      r& " S# S$\5      r' " S% S&\5      r(S' r)S( r*S) r+g*)+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                   X    \ rS rSrSr\S 5       r\S 5       rS rS r	S r
SS	.S
 jrSrg)r   ,   z1D cartesian position operator.c                     g)N)r    selfs    W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/quantum/cartesian.pydefault_argsXOp.default_args/           c                 d    [        [        [        R                  [        R                  5      5      $ Nr   r	   r   NegativeInfinityInfinityr%   argss     r&   _eval_hilbert_spaceXOp._eval_hilbert_space3       (1--qzz:;;r*   c                     [         [        -  $ r,   )r   r
   )r%   others     r&   _eval_commutator_PxOpXOp._eval_commutator_PxOp7   s    vr*   c                      UR                   U-  $ r,   )positionr%   ketoptionss      r&   _apply_operator_XKetXOp._apply_operator_XKet:       ||Cr*   c                      UR                   U-  $ r,   )
position_xr;   s      r&   _apply_operator_PositionKet3D!XOp._apply_operator_PositionKet3D=       ~~c!!r*      indexc                    UR                  SUS9nUS   R                  nUS   R                  n[        U5      n[        XV-
  5      n[        [
        -  Xx-  -  $ N   )start_indexr   rF   )_enumerate_statemomentumr   r   r   r
   	r%   basisrH   r=   statescoord1coord2ddeltas	            r&   _represent_PxKetXOp._represent_PxKet@   s\    ''u'=#### (6?+vqwr*   r#   N)__name__
__module____qualname____firstlineno____doc__classmethodr'   r2   r7   r>   rC   rV   __static_attributes__r#   r*   r&   r   r   ,   sI    )  < < " 01    r*   r   c                   >    \ rS rSrSr\S 5       r\S 5       rS rSr	g)r   J   z7Y cartesian coordinate operator (for 2D or 3D systems) c                     g)N)r   r#   r$   s    r&   r'   YOp.default_argsM   r)   r*   c                 d    [        [        [        R                  [        R                  5      5      $ r,   r-   r0   s     r&   r2   YOp._eval_hilbert_spaceQ   r4   r*   c                      UR                   U-  $ r,   )
position_yr;   s      r&   rC   !YOp._apply_operator_PositionKet3DU   rE   r*   r#   N
rX   rY   rZ   r[   r\   r]   r'   r2   rC   r^   r#   r*   r&   r   r   J   s0    B  < <"r*   r   c                   >    \ rS rSrSr\S 5       r\S 5       rS rSr	g)r   Y   z1Z cartesian coordinate operator (for 3D systems) c                     g)N)r   r#   r$   s    r&   r'   ZOp.default_args\   r)   r*   c                 d    [        [        [        R                  [        R                  5      5      $ r,   r-   r0   s     r&   r2   ZOp._eval_hilbert_space`   r4   r*   c                      UR                   U-  $ r,   )
position_zr;   s      r&   rC   !ZOp._apply_operator_PositionKet3Dd   rE   r*   r#   Nrh   r#   r*   r&   r   r   Y   s0    <  < <"r*   r   c                   L    \ rS rSrSr\S 5       r\S 5       rS rSS.S jr	S	r
g
)r   l   z1D cartesian momentum operator.c                     g)N)r   r#   r$   s    r&   r'   PxOp.default_argso       r*   c                 d    [        [        [        R                  [        R                  5      5      $ r,   r-   r0   s     r&   r2   PxOp._eval_hilbert_spaces   r4   r*   c                      UR                   U-  $ r,   )rN   r;   s      r&   _apply_operator_PxKetPxOp._apply_operator_PxKetw   r@   r*   rF   rG   c                    UR                  SUS9nUS   R                  nUS   R                  n[        U5      n[        XV-
  5      n[        * [
        -  Xx-  -  $ rJ   )rM   r:   r   r   r   r
   rO   s	            r&   _represent_XKetPxOp._represent_XKetz   s^    ''u'=#### (6?+r$w  r*   r#   N)rX   rY   rZ   r[   r\   r]   r'   r2   rz   r}   r^   r#   r*   r&   r   r   l   s?    )  < <  /0 ! !r*   r   r   r   r   r   c                   p    \ rS rSrSr\S 5       rS r\S 5       r\S 5       r	\
S 5       rS rS	 rS
 rSrg)r      z1D cartesian position eigenket.c                 @    U R                   " U /[        U5      Q70 UD6$ r,   __new___lowercase_labelsr%   opr=   s      r&   _operators_to_stateXKet._operators_to_state   !    ||DD#4R#8DGDDr*   c                 @    UR                   " U/[        U 5      Q70 UD6$ r,   r   _uppercase_labelsr%   op_classr=   s      r&   _state_to_operatorsXKet._state_to_operators   0     E!24!8E<CE 	Er*   c                     gN)xr#   r$   s    r&   r'   XKet.default_args   r)   r*   c                     [         $ r,   )r   r$   s    r&   
dual_classXKet.dual_class       r*   c                      U R                   S   $ zThe position of the state.r   labelr$   s    r&   r:   XKet.position        zz!}r*   c                     [        X40 UD6$ r,   _enumerate_continuous_1D)r%   
num_statesr=   s      r&   rM   XKet._enumerate_state   s    'DGDDr*   c                 F    [        U R                  UR                  -
  5      $ r,   )r   r:   r%   brahintss      r&   _eval_innerproduct_XBraXKet._eval_innerproduct_XBra       $--#,,677r*   c                     [        [        * U R                  -  UR                  -  [        -  5      [        S[        -  [        -  5      -  $ NrK   )r   r   r:   rN   r
   r   r   r   s      r&   _eval_innerproduct_PxBraXKet._eval_innerproduct_PxBra   s7    A2dmm#CLL056tAbDIFFr*   r#   N)rX   rY   rZ   r[   r\   r]   r   r   r'   r   propertyr:   rM   r   r   r^   r#   r*   r&   r   r      sl    )E EE      E8Gr*   r   c                   H    \ rS rSrSr\S 5       r\S 5       r\S 5       r	Sr
g)r      z1D cartesian position eigenbra.c                     gr   r#   r$   s    r&   r'   XBra.default_args   r)   r*   c                     [         $ r,   )r   r$   s    r&   r   XBra.dual_class   r   r*   c                      U R                   S   $ r   r   r$   s    r&   r:   XBra.position   r   r*   r#   N)rX   rY   rZ   r[   r\   r]   r'   r   r   r:   r^   r#   r*   r&   r   r      s?    )     r*   r   c                   n    \ rS rSrSr\S 5       rS r\S 5       r\	S 5       r
\	S 5       r\	S 5       rS	rg
)r      z1Base class for 3D cartesian position eigenstates c                 @    U R                   " U /[        U5      Q70 UD6$ r,   r   r   s      r&   r   #PositionState3D._operators_to_state   r   r*   c                 @    UR                   " U/[        U 5      Q70 UD6$ r,   r   r   s      r&   r   #PositionState3D._state_to_operators   r   r*   c                     g)N)r   yzr#   r$   s    r&   r'   PositionState3D.default_args   s    r*   c                      U R                   S   $ )zThe x coordinate of the state r   r   r$   s    r&   rB   PositionState3D.position_x   r   r*   c                      U R                   S   $ )zThe y coordinate of the state rF   r   r$   s    r&   rf   PositionState3D.position_y   r   r*   c                      U R                   S   $ )zThe z coordinate of the state rK   r   r$   s    r&   rp   PositionState3D.position_z   r   r*   r#   N)rX   rY   rZ   r[   r\   r]   r   r   r'   r   rB   rf   rp   r^   r#   r*   r&   r   r      so    <E EE        r*   r   c                   .    \ rS rSrSrS r\S 5       rSrg)r      z3D cartesian position eigenket c                     U R                   UR                   -
  nU R                  UR                  -
  nU R                  UR                  -
  n[        U5      [        U5      -  [        U5      -  $ r,   )rB   rf   rp   r   )r%   r   r=   x_diffy_diffz_diffs         r&    _eval_innerproduct_PositionBra3D.PositionKet3D._eval_innerproduct_PositionBra3D   sW    3>>13>>13>>1&!*V"44Z5GGGr*   c                     [         $ r,   )r   r$   s    r&   r   PositionKet3D.dual_class       r*   r#   N)	rX   rY   rZ   r[   r\   r   r]   r   r^   r#   r*   r&   r   r      s    *H  r*   r   c                   (    \ rS rSrSr\S 5       rSrg)r      z3D cartesian position eigenbra c                     [         $ r,   )r   r$   s    r&   r   PositionBra3D.dual_class   r   r*   r#   N)rX   rY   rZ   r[   r\   r]   r   r^   r#   r*   r&   r   r      s    * r*   r   c                   p    \ rS rSrSr\S 5       rS r\S 5       r\S 5       r	\
S 5       rS rS	 rS
 rSrg)r      z1D cartesian momentum eigenket.c                 @    U R                   " U /[        U5      Q70 UD6$ r,   r   r   s      r&   r   PxKet._operators_to_state   r   r*   c                 @    UR                   " U/[        U 5      Q70 UD6$ r,   r   r   s      r&   r   PxKet._state_to_operators  r   r*   c                     gN)pxr#   r$   s    r&   r'   PxKet.default_args  rv   r*   c                     [         $ r,   )r   r$   s    r&   r   PxKet.dual_class      r*   c                      U R                   S   $ zThe momentum of the state.r   r   r$   s    r&   rN   PxKet.momentum  r   r*   c                      [        U /UQ70 UD6$ r,   r   )r%   r1   r=   s      r&   rM   PxKet._enumerate_state  s    '?t?w??r*   c                     [        [        U R                  -  UR                  -  [        -  5      [        S[        -  [        -  5      -  $ r   )r   r   rN   r:   r
   r   r   r   s      r&   r   PxKet._eval_innerproduct_XBra  s4    1T]]?3<</45d1R49oEEr*   c                 F    [        U R                  UR                  -
  5      $ r,   )r   rN   r   s      r&   r   PxKet._eval_innerproduct_PxBra  r   r*   r#   N)rX   rY   rZ   r[   r\   r]   r   r   r'   r   r   rN   rM   r   r   r^   r#   r*   r&   r   r      sl    )E EE      @F8r*   r   c                   H    \ rS rSrSr\S 5       r\S 5       r\S 5       r	Sr
g)r   i  z1D cartesian momentum eigenbra.c                     gr   r#   r$   s    r&   r'   PxBra.default_args"  rv   r*   c                     [         $ r,   )r   r$   s    r&   r   PxBra.dual_class&  r   r*   c                      U R                   S   $ r   r   r$   s    r&   rN   PxBra.momentum*  r   r*   r#   N)rX   rY   rZ   r[   r\   r]   r'   r   r   rN   r^   r#   r*   r&   r   r     s?    )     r*   r   c                     U S   nU S   nUR                   nUR                  S/ 5      n[        U5      S:X  a)  UR                  SS5      n[        [	        XfU-   5      5      n[	        [        U5      5       Vs/ s H  nSPM     nn[        U5       H7  u  pyUR                  S   n
U" [        U
5      S-   [        U	5      -   40 UD6X'   M9     U$ s  snf )Nr   rF   
index_listrL   _)	__class__poplenlistrange	enumerater1   str)r1   r=   stater   state_classr   rL   ienum_statesindr   s              r&   r   r   4  s    GEaJ//K\2.J
:!kk-3%:-EFG
#C
O45414K5J'

1$SZ#%5C%@LGL (  6s   7Cc                     [        U [        5      (       d  U /n U  Vs/ s H)  n[        UR                  S   5      R	                  5       PM+     sn$ s  snf )Nr   )
isinstancesetr   r   lower)opsargs     r&   r   r   G  sD    c3e145#C		!##%555s   0Ac                     [        U [        5      (       d  U /n U  Vs/ s HH  n[        UR                  S   5      S   R	                  5       [        UR                  S   5      SS  -   PMJ     nnU$ s  snf )Nr   rF   )r  r  r   r   upper)r  r	  new_argss      r&   r   r   N  s{    c3e 25614# CIIaL!!$**,CIIaL!!"%&14  6 O6s   AA0N),r\   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   r   r   r#   r*   r&   <module>r     s    ' " 6 9 > $ 0 , R 7 7. 
  <"
 ""
 "&! !. HHH	$ZG3 GD3 "e >C $C 8C 8DC *&6r*   