
    MZdE                         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 Zd Zd Zy)    )Ipi)Symbol)exp)sqrt)Matrix)QFTIQFTRkGate)ZGateSwapGateHadamardGateCGate	PhaseGateTGate)Qubit)qapply)	representc            
         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        dt        z  t        z  d| 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   s    F/usr/lib/python3/dist-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AaCF1a4K8H4I+J$KL L L    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_representr4   .   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   r    r,   r4    r!   r   <module>r@      s=    & $ 6 9 ' 7 7: : - / 5	L&*r!   