
    e                     (    d dl Zg dZd Zd Zd ZdS )    N)__upcast_float16_array__downcast_float128_array$__supported_array_or_not_implementedc                 *   t          | d          ri| j        }|t          j        k    r t          j        | t          j                  S |t          j        k    r"|t          j        k    st          d|z            t          | t          j
                  st          j        |           }|j        }|t          j        k    r t          j        |t          j                  S |t          j        k    r"|t          j        k    st          d|z            |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   nphalfasarrayfloat32
longdoublefloat64
ValueError
isinstancendarrayxxdt__xs      4lib/python3.11/site-packages/mkl_fft/_float_utils.pyr   r      s     q' ?g"'>>:arz2222"-rz(9(97#=>>>a$$ jmmi"'>>:c4444"-rz(9(97#=>>>
H    c                    t          | d          r| j        }|t          j        k    r0|t          j        k    s t          j        | t          j                  S |t          j        k    r0|t          j        k    s t          j        | t          j                  S t          | t          j	                  st          j        |           }|j        }|t          j        k    r0|t          j        k    s t          j        | t          j                  S |t          j        k    r0|t          j        k    s t          j        | t          j                  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   longcomplexcomplex_r   r   r   s      r   r   r   6   s    q' 4g"-rz(9(9:arz2222BN""3"++=+=:ar{3333a$$ jmmi"-rz(9(9:arz2222BN""3"++=+=:ar{3333
Hr   c                 8   t          j        |           }t           j        g}t          t           d          r|                    t           j                   t          t           d          r|                    t           j                   |j        |v rt          S |S )z
    Used in _scipy_fft_backend to convert array to float32,
    float64, complex64, or complex128 type or return NotImplemented
    float128
complex256)	r
   r   r   r	   appendr   r   r   NotImplemented)r   r   
black_lists      r   r   r   K   s    
 *Q--C'Jr: '"+&&&r<   )"-(((
yJJr   )numpyr
   __all__r   r   r    r   r   <module>r%      sU   6    
i
i
i  .  *    r   