
    RieE                         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dS )    )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 d S )Nx   r         r   nqubits)r   r   ktargetsr   r   r   r   r   r   r   r   )r   s    Dlib/python3.11/site-packages/sympy/physics/quantum/tests/test_qft.pytest_RkGater       s   sA!Q<<>Q!Q<<4''''!Q<<588####!Q<<9Q<<''''!Q<<588####q!a! ! !$*QFQAaCF1a4K8H8H4I+J$K$KL L L L L L    c            	      T   t          dd                                          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                                          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          d
 t          d          D                       k    sJ t          dd                                          sJ t          t          dd                                          t          ddd          z                                            t          t          d          t          d          z  t          d          z  t          ddd          z                                            k    sJ d S )Nr   r   r   )r   r   r   r   c                 F    g | ]fd t          d          D             S )c                     g | ]=}t          d t          z  t          z  dz            |z  dz  z  t          d          z  >S )r      )r   r   r   r   ).0ijs     r   
<listcomp>z3test_quantum_fourier.<locals>.<listcomp>.<listcomp>&   sC    DDDaQrT!VAX1q)$q''1DDDr!   r'   )range)r(   r*   s    @r   r+   z(test_quantum_fourier.<locals>.<listcomp>&   s4    WWWDDDD588DDDWWWr!   r'      )r	   	decomposer   r   r   r   r   r
   r   r   r   r,   r   r   expand r!   r   test_quantum_fourierr1      sg   q!99  A|A&uT9Q<<'@'@@Q	dE!HH--	..3D)A,,.G.G	HQ	   
 1::!!QdF1bMM2225va}}3M3MMQ	dF1bMM22	33???	CCKAq>>	RR R R R SAYY***WWeTUhhWWWXXY Y Y Y q!99     #a))%%''aA677>>@@FQQ'Q7aAFE Efhh     r!   c                      t          dd          } t          | d          }t          |                                 d          }|                    d          |                    d          k    sJ d S )Nr   r   r   
   )n)r	   r   r.   evalf)cabs      r   test_qft_representr9   .   sj    Aq		A!QA!++--+++A77R7==AGGbGMM))))))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    r1   r9   r0   r!   r   <module>rD      sC   & & & & & & & & $ $ $ $ $ $ 6 6 6 6 6 6 9 9 9 9 9 9 ' ' ' ' ' ' 7 7 7 7 7 7 7 7 7 7: : : : : : : : : : : : : : : : - - - - - - / / / / / / 5 5 5 5 5 5	L 	L 	L  &* * * * *r!   