o
    GZh                     @   s   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d Zdd Zdd Z dS )    )Ipi)Symbol)exp)sqrt)Matrix)QFTIQFTRkGate)ZGateSwapGateHadamardGateCGate	PhaseGateTGate)Qubit)qapply)	represent)signc               	   C   s   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s9J ttd| ddtddgdt	t
| d t t dt|   ggks^J d S )Nx   r         r   Znqubits)r   r
   ktargetsr   r   r   r   r   r   r   r   r   abs)r    r   S/var/www/auris/lib/python3.10/site-packages/sympy/physics/quantum/tests/test_qft.pytest_RkGate   s   
2r    c                   C   sV  t dd tddtd tdtd td tdtd tdtd td ks/J tdd tdtdtdd tdtdd td tdtdd td tdd ksaJ t	t dddd	t
d
d tdD kswJ t dd sJ tt dd tddd  ttdtd td tddd  ksJ d S )Nr   r   r   )r   r   r   r   c                    s"   g | ]  fd dt dD qS )c                    s4   g | ]}t d t t d |  d  td qS )r      )r   r   r   r   ).0ijr   r   
<listcomp>(   s   4 z3test_quantum_fourier.<locals>.<listcomp>.<listcomp>r#   )range)r$   r   r&   r   r(   (   s   " z(test_quantum_fourier.<locals>.<listcomp>r#      )r   	decomposer   r   r   r   r   r	   r
   r   r   r)   r   r   expandr   r   r   r   test_quantum_fourier   s>   &""r-   c                  C   sF   t dd} t| dd}t|  dd}|jdd|jddks!J d S )Nr   r   r   
   )n)r   r   r+   Zevalf)cabr   r   r   test_qft_represent0   s   
 r3   N)!Zsympy.core.numbersr   r   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Zsympy.matrices.denser   Zsympy.physics.quantum.qftr   r	   r
   Zsympy.physics.quantum.gater   r   r   r   r   r   Zsympy.physics.quantum.qubitr   Zsympy.physics.quantum.qapplyr   Zsympy.physics.quantum.representr   Z$sympy.functions.elementary.complexesr   r    r-   r3   r   r   r   r   <module>   s     