
    sg                         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mZmZ d dlmZ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 d dlmZ d Zd Zd Z y)    )Ipi)Symbol)exp)sqrt)Matrix)QFTIQFTRkGate)ZGateSwapGateHadamardGateCGate	PhaseGateTGate)Qubit)qapply)	represent)signc                     t        d      } t        d|       j                  | k(  sJ t        d|       j                  dk(  sJ t        dd      t	        d      k(  sJ t        dd      t        d      k(  sJ t        dd      t        d      k(  sJ t        t        d|       d      t        ddgdt        t        |       dz  t        z  t        z  dt        |       z  z        gg      k(  sJ y )Nx   r         r   nqubits)r   r   ktargetsr   r   r   r   r   r   r   r   r   abs)r   s    W/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_qft.pytest_RkGater"      s    sA!Q<>>Q!Q<4'''!Q<58###!Q<9Q<'''!Q<58###q!a!$*QFQDGAIbLNAsSTvI<V8W4X+Y$Z[ [ [    c                     t        dd      j                         t        dd      t        d      z  t	        dt        d            z  t        d      z  t	        dt        d            z  t	        dt        d            z  t        d      z  k(  sJ t        dd      j                         t        d      t	        dt        dd            z  t	        dt        dd            z  t        d      z  t	        dt        dd            z  t        d      z  t        dd      z  k(  sJ t        t        dd      d	      t        t        d
      D  cg c]J  } t        d
      D cg c]3  }t        dt        z  t        z  d
z        || z  d
z  z  t        d
      z  5 c}L c}}       k(  sJ t        dd      j                         sJ t!        t        dd      j                         t#        ddd      z        j%                         t!        t        d      t        d      z  t        d      z  t#        ddd      z        j%                         k(  sJ y c c}w c c}} w )Nr   r   r   )r   r   r   r         )r	   	decomposer   r   r   r   r   r
   r   r   r   ranger   r   r   r   r   r   expand)jis     r!   test_quantum_fourierr.      s   q!9 A|A&uT9Q<'@@Q	dE!H-	..3D)A,.G	HQ	  
 1:!QdF1bM225va}3MMQ	dF1bM2	33??	CCKAq>	RR R R SAY*eTUhW58DaQrT!VAX1q)$q'1DWXY Y Y q!9   #a)%%'aA67>>@FQQ'Q7aAFEfh   EWs   I8IIIc                      t        dd      } t        | d      }t        | j                         d      }|j                  d      |j                  d      k(  sJ y )Nr   r   r   
   )n)r	   r   r)   evalf)cabs      r!   test_qft_representr6   0   sM    Aq	A!QA!++-+A77R7=AGGbGM)))r#   N)!sympy.core.numbersr   r   sympy.core.symbolr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   sympy.matrices.denser   sympy.physics.quantum.qftr	   r
   r   sympy.physics.quantum.gater   r   r   r   r   r   sympy.physics.quantum.qubitr   sympy.physics.quantum.qapplyr   sympy.physics.quantum.representr   $sympy.functions.elementary.complexesr   r"   r.   r6    r#   r!   <module>rC      s@    & $ 6 9 ' 7 7: : - / 5 5	[&*r#   