o
    gµ„iè  ã                   @   s|   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZmZ dd„ Zdd„ ZG d	d
„ d
eƒZedkr<e ¡  dS dS )é    N)Úcuda)Úfloat32Úfloat64Úint32Úvoid)ÚunittestÚCUDATestCasec                 C   s   t  |¡\| d< |d< d S ©Nr   )ÚmathÚfrexp)ÚaryxÚaryexpÚarg© r   ú[/home/kuhnn/.local/lib/python3.10/site-packages/numba/cuda/tests/cudapy/test_frexp_ldexp.pyÚsimple_frexp   s   r   c                 C   s   t  ||¡| d< d S r	   )r
   Úldexp)r   r   Úexpr   r   r   Úsimple_ldexp   s   r   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestCudaFrexpLdexpc                 C   sæ   t  t|d d … td d … |ƒ¡tƒ}d}tjd|d}tjdtjd}|d |||ƒ tj ||dƒ¡ |  	|d¡ tj
}|d |||ƒ tj ||tj
ƒ¡ |  	|d¡ tj}|d |||ƒ tj ||tjƒ¡ |  	|d¡ d S )NçoƒÀÊ!	@é   ©Údtype©r   r   çoƒÀÊ!é?é   r   )r   Újitr   r   r   ÚnpÚzerosÚtestingÚassert_array_equalÚassertEqualÚinfÚnan)ÚselfÚnptypeÚnbtypeÚcompiledr   r   r   r   r   r   Útemplate_test_frexp   s   &z&TestCudaFrexpLdexp.template_test_frexpc                 C   s®   t  t|d d … |tƒ¡tƒ}d}d}tjd|d}|d |||ƒ tj ||dƒ¡ tj	}|d |||ƒ tj ||tj	ƒ¡ tj
}|d |||ƒ tj ||tj
ƒ¡ d S )Nr   r   r   r   r   r   )r   r   r   r   r   r   r   r    r!   r#   r$   )r%   r&   r'   r(   r   r   r   r   r   r   Útemplate_test_ldexp$   s   z&TestCudaFrexpLdexp.template_test_ldexpc                 C   ó   |   tjt¡ d S ©N)r)   r   r   ©r%   r   r   r   Útest_frexp_f44   ó   z TestCudaFrexpLdexp.test_frexp_f4c                 C   r+   r,   )r*   r   r   r-   r   r   r   Útest_ldexp_f47   r/   z TestCudaFrexpLdexp.test_ldexp_f4c                 C   r+   r,   )r)   r   r   r-   r   r   r   Útest_frexp_f8:   r/   z TestCudaFrexpLdexp.test_frexp_f8c                 C   r+   r,   )r*   r   r   r-   r   r   r   Útest_ldexp_f8=   r/   z TestCudaFrexpLdexp.test_ldexp_f8N)	Ú__name__Ú
__module__Ú__qualname__r)   r*   r.   r0   r1   r2   r   r   r   r   r      s    r   Ú__main__)Únumpyr   r
   Únumbar   Únumba.typesr   r   r   r   Únumba.cuda.testingr   r   r   r   r   r3   Úmainr   r   r   r   Ú<module>   s    1ÿ