+
    i                     b    R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 R.t ! R R]4      tR# )	zSymbolic inner product.)Expr)
NumberKind)	conjugate)
prettyForm)DaggerInnerProductc                   v   a  ] tR t^t o Rt]tRtR t]	R 4       t
]	R 4       tR tR tR tR	 tR
 tR tRtV tR# )r   a  An unevaluated inner product between a Bra and a Ket [1].

Parameters
==========

bra : BraBase or subclass
    The bra on the left side of the inner product.
ket : KetBase or subclass
    The ket on the right side of the inner product.

Examples
========

Create an InnerProduct and check its properties:

    >>> from sympy.physics.quantum import Bra, Ket
    >>> b = Bra('b')
    >>> k = Ket('k')
    >>> ip = b*k
    >>> ip
    <b|k>
    >>> ip.bra
    <b|
    >>> ip.ket
    |k>

In quantum expressions, inner products will be automatically
identified and created::

    >>> b*k
    <b|k>

In more complex expressions, where there is ambiguity in whether inner or
outer products should be created, inner products have high priority::

    >>> k*b*k*b
    <b|k>*|k><b|

Notice how the inner product <b|k> moved to the left of the expression
because inner products are commutative complex numbers.

References
==========

.. [1] https://en.wikipedia.org/wiki/Inner_product
Tc                    ^ RI HpHp \        W#4      '       g   \	        RV,          4      h\        W4      '       g   \	        RV,          4      h\
        P                  ! WV4      pV# )    )KetBaseBraBasez"KetBase subclass expected, got: %rz"BraBase subclass expected, got: %r)sympy.physics.quantum.stater   r   
isinstance	TypeErrorr   __new__)clsbraketr   r   objs   &&&   `/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/quantum/innerproduct.pyr   InnerProduct.__new__J   sU     	A#''@3FGG#''@3FGGll3S)
    c                (    V P                   ^ ,          # )r
   argsselfs   &r   r   InnerProduct.braU       yy|r   c                (    V P                   ^,          # )   r   r   s   &r   r   InnerProduct.ketY   r   r   c                f    \        \        V P                  4      \        V P                  4      4      # N)r   r   r   r   r   s   &r   _eval_conjugateInnerProduct._eval_conjugate]   s!    F488,fTXX.>??r   c                    V P                   P                  : R VP                  ! V P                  .VO5!  : RVP                  ! V P                  .VO5!  : R2# )(,))	__class____name___printr   r   )r   printerr   s   &&*r   
_sympyreprInnerProduct._sympyrepr`   sD    "nn55NN488+d+W^^DHH-Lt-LN 	Nr   c                    VP                  V P                  4      pVP                  V P                  4      pVR R : RVR,          : 2# )N|:r    NN)r,   r   r   )r   r-   r   sbraskets   &&*  r   	_sympystrInnerProduct._sympystrd   s;    ~~dhh'~~dhh's)T"X..r   c                   V P                   P                  ! V.VO5!  pV P                  P                  ! V.VO5!  p\        VP	                  4       VP	                  4       4      pVP
                  pV P                   P                  WV4      w  rxV P                  P                  WV4      w  r\        VP                  V4      !  p\        VP                  V	4      !  p\        VP                  V4      !  p\        VP                  V
4      !  pV# r#   )
r   _print_contents_prettyr   maxheight_use_unicode_pretty_bracketsr   leftright)r   r-   r   r   r   r:   use_unicodelbracket_cbracketrbracketpforms   &&*         r   _prettyInnerProduct._prettyi   s    hh--g==hh--g==SZZ\3::<0**hh//D!XX66vKCHHX./EKK12EKK,-EKK12r   c                    V P                   P                  ! V.VO5!  pVP                  ! V P                  .VO5!  pR V: RV: 2# )z\left\langle z	 \right. )r   _print_contents_latexr,   r   )r   r-   r   	bra_labelr   s   &&*  r   _latexInnerProduct._latexy   s=    HH227BTB	nnTXX--093??r   c                6    V P                   P                  ! V P                  3/ VB pTe   T# T #   \         d]     \	        T P                  P
                  P                  ! T P                   P
                  3/ TB 4      p LZ  \         d    R p  Lji ; ii ; ir#   )r   _eval_innerproductr   NotImplementedErrorr   dual)r   hintsrs   &, r   doitInnerProduct.doit~   s    	++DHH>>A =H # 	HHMM44TXX]]LeL ' 	s'   '1 BABBBBB N)r+   
__module____qualname____firstlineno____doc__r   kind
is_complexr   propertyr   r   r$   r.   r5   rE   rJ   rR   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sj     -^ DJ	    @N/
 @
 r   N)rX   sympy.core.exprr   sympy.core.kindr   $sympy.functions.elementary.complexesr    sympy.printing.pretty.stringpictr   sympy.physics.quantum.daggerr   __all__r   rT   r   r   <module>re      s1       & : 7 / t4 tr   