
    g                         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 dS )    )Ipi)Symbol)exp)sqrt)Matrix)QFTIQFTRkGate)ZGateSwapGateHadamardGateCGate	PhaseGateTGate)Qubit)qapply)	represent)signc                  R   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 d S )Nx   r         r   nqubits)r   r   ktargetsr   r   r   r   r   r   r   r   r   abs)r   s    `/var/www/html/ai-engine/env/lib/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DGGAIbLNAsSTvvI<V8W8W4X+Y$Z$Z[ [ [ [ [ [    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_fourierr3      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   r0   evalf)cabs      r!   test_qft_representr;   0   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   $sympy.functions.elementary.complexesr   r"   r3   r;   r2   r#   r!   <module>rG      sU   & & & & & & & & $ $ $ $ $ $ 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 5 5 5 5 5 5	[ 	[ 	[  &* * * * *r#   