a
    _$a                     @   sD   d dl mZmZmZmZmZmZmZmZ ddgZ	dd Z
dd ZdS )    )halffloat32asarrayndarray
longdoublefloat64longcomplexcomplex___upcast_float16_array__downcast_float128_arrayc                 C   s   t | dr@| j}|tkr$t| tdS |tkr@|tks@td| t| t	st| }|j}|tkrlt|tdS |tkr|tkstd| |S | S )zb
    Used in _scipy_fft to upcast float16 to float32, 
    instead of float64, as mkl_fft would dodtyper   ztype %s is not supported)
hasattrr   r   r   r   r   r   
ValueError
isinstancer   xZxdtZ__x r   3lib/python3.9/site-packages/mkl_fft/_float_utils.pyr
       s    

c                 C   s   t | drH| j}|tkr,|tks,t| tdS |tkrH|tksHt| tdS t| tst| }|j}|tkr||tks|t| tdS |tkr|tkst| tdS |S | S )zp
    Used in _numpy_fft to unsafely downcast float128/complex256 to 
    complex128, instead of raising an errorr   r   )	r   r   r   r   r   r   r	   r   r   r   r   r   r   r   7   s    

N)Znumpyr   r   r   r   r   r   r   r	   __all__r
   r   r   r   r   r   <module>   s   (