
    e                     "   d dl mZ d dlZd dlZd Zd Zej        	                    dg d          ej        	                    dej
        ej        ej        ej        g          d                         Zej        	                    dg d          ej        	                    dej
        ej        ej        ej        g          d                         Zej        	                    dg d          ej        	                    dej
        ej        g          d	                         Zej        	                    dg d          ej        	                    dej
        ej        g          d
                         Zej        	                    dg d          ej        	                    dej
        ej        ej        ej        g          d                         Zej        	                    dg d          ej        	                    dej
        ej        ej        ej        g          d                         Zej        	                    dg d          ej        	                    dej
        ej        g          d                         Zej        	                    dg d          ej        	                    dej
        ej        g          d                         Zd Zej        	                    d e                      d             Zd ZdS )    Nc                  4    t          t          d          sJ d S )N	numpy_ffthasattrmfi     =lib/python3.11/site-packages/mkl_fft/tests/test_interfaces.pytest_interfaces_has_numpyr           3$$$$$$$r	   c                  4    t          t          d          sJ d S )N	scipy_fftr   r   r	   r
   test_interfaces_has_scipyr   $   r   r	   norm)Nforwardbackwardorthodtypec                 N   t          j        d|          }t          j                            || d d           }t          j                            || d d           }dt          j        t          j        |                    j        z  }t          j	        ||||          sJ d S )N  r   r   workersplan@   atolrtol)
nponesr   r   fftifftfinfor   epsallcloser   r   xwxxtols         r
   test_scipy_fftr+   (   s     	5!!!A!$4@@A			AD$T		B	BB
rx((,
,C;q"3S11111111r	   c                 F   t          j        d|          }t          j                            ||           }t          j                            ||           }dt          j        t          j        |                    j        z  }t          j	        ||||          sJ d S )Nr   r   r   r   r   )
r   r    r   r   r!   r"   r#   r   r$   r%   r&   s         r
   test_numpy_fftr.   2   s     	5!!!A!$''A			AD		)	)B
rx((,
,C;q"3S11111111r	   c                    t          j        d|          }t          j                            || d d           }t          j                            ||j        d         | d d           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ t          j        d|          }t          j                            || d d           }t          j                            || d d           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ d S )	Nr   r   r   r   )nr   r   r   r   r   i  )r   r    r   r   rfftirfftshaper#   r   r$   r%   r&   s         r
   test_scipy_rfftr4   <   s.    	5!!!A14DAAA			Q!'!*4D		Q	QB
rx((,
,C;q"3S111111
5!!!A14DAAA			QT4d		C	CB
rx((,
,C;q"3S11111111r	   c                 ^   t          j        d|          }t          j                            ||           }t          j                            ||j        d         |           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ d S )Nr   r   r-   r   )r0   r   r   r   )r   r    r   r   r1   r2   r3   r#   r   r$   r%   r&   s         r
   test_numpy_rfftr6   L   s     	5!!!A14((A			Q!'!*4		8	8B
rx((,
,C;q"3S11111111r	   c                 N   t          j        d|          }t          j                            || d d           }t          j                            || d d           }dt          j        t          j        |                    j        z  }t          j	        ||||          sJ d S )N%   S   r   r   r   r   )
r   r    r   r   fftnifftnr#   r   r$   r%   r&   s         r
   test_scipy_fftnr=   V   s     	&&&A14DAAA			QT4d		C	CB
rx((,
,C;q"3S11111111r	   c                 F   t          j        d|          }t          j                            ||           }t          j                            ||           }dt          j        t          j        |                    j        z  }t          j	        ||||          sJ d S )Nr8   r   r-   r   r   )
r   r    r   r   r;   r<   r#   r   r$   r%   r&   s         r
   test_numpy_fftnr?   `   s     	&&&A14((A			QT		*	*B
rx((,
,C;q"3S11111111r	   c                    t          j        d|          }t          j                            || d d           }t          j                            ||j        | d d           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ t          j        d|          }t          j                            || d d           }t          j                            || d d           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ d S )Nr8   r   r   )sr   r   r   r   r   )$   R   )r   r    r   r   rfftnirfftnr3   r#   r   r$   r%   r&   s         r
   test_scipy_rfftnrF   j   s*    	&&&AAD$TBBA			a17t$		O	OB
rx((,
,C;q"3S111111
&&&AAD$TBBA			adDt		D	DB
rx((,
,C;q"3S11111111r	   c                 R   t          j        d|          }t          j                            ||           }t          j                            ||j        |           }dt          j        t          j        |                    j	        z  }t          j
        ||||          sJ d S )Nr8   r   r-   )rA   r   r   r   )r   r    r   r   rD   rE   r3   r#   r   r$   r%   r&   s         r
   test_numpy_rfftnrH   z   s     	&&&AAD))A			a17		6	6B
rx((,
,C;q"3S11111111r	   c                      g } dD ]?}t          t          |          r(|                     t          t          |                     @| S )N)float16float128
complex256)r   r   appendgetattr)bl_listdts     r
   _get_blacklisted_dtypesrQ      sF    G3 , ,2r?? 	,NN72r??+++Nr	   c                     t          j        d|           }t          j                            |          }|t
          u sJ d S )N   r   )r   r    r   r   r!   NotImplemented)r   r'   r(   s      r
   test_scipy_no_support_forrU      sB    
%   A!Ar	   c                  X   t          j        t                    5  t          j                            g dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S )N)            s   invalidr-   magic)r   )pytestraises
ValueErrorr   r   r!   NotImplementedErrorr   r	   r
   test_scipy_fft_arg_validater`      s   	z	"	" 6 6)))*5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
*	+	+ 3 3)))'2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s#   $A

AA.$BB#&B#)mkl_fft.interfaces
interfacesr   r\   numpyr   r   r   markparametrizefloat32float64	complex64
complex128r+   r.   r4   r6   r=   r?   rF   rH   rQ   rU   r`   r   r	   r
   <module>rj      s  6 !               % % %% % % !G!G!GHH2:rz2<"WXX2 2 YX IH2 !G!G!GHH2:rz2<"WXX2 2 YX IH2 !G!G!GHH2:rz":;;2 2 <; IH2 !G!G!GHH2:rz":;;2 2 <; IH2 !G!G!GHH2:rz2<"WXX2 2 YX IH2 !G!G!GHH2:rz2<"WXX2 2 YX IH2 !G!G!GHH2:rz":;;2 2 <; IH2 !G!G!GHH2:rz":;;2 2 <; IH2   "9"9";";<<  =<3 3 3 3 3r	   