o
    3Ih                     @   s   d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"dS )    )Rationalpi)S)Symbolsymbols)explog)expm1log1pexp2log2fmalog10SqrtCbrthypotisnanisinf)
expand_logc                  C   s6  t ddksJ tddd} t | jddt|  dksJ t | dt|  dks-J t | dt|  dks<J td	 d
 d	 d dk rLJ tt d	 d	 d dk s\J t | jscJ t | jsjJ t d|  	| dtd|    dksJ t d|  	| t d|  jdd	|  dksJ d S )Nr   xTrealfunc	tractabler   g|=   g#B;g^ 9^;*   )
r	   r   expandr   rewriteevalfabsis_real	is_finitediffr    r&   c/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sympy/codegen/tests/test_cfunctions.py
test_expm1   s      *8r(   c                  C   s   t ddksJ td} tt | d t| d d  t| d  dks&J tddd}t |jdd	t|d  dks>J t |d
t|d  dksOJ t |dt|d  dks`J ttd d dk rnJ ttt d d dk s~J t dt	dd  j
sJ t djrJ t tjsJ t |jrJ t tdddjsJ t |jrJ t tdddjsJ t |jrJ t tdddjsJ t d| |dd| d   dksJ t d| |t d| jdd	| dksJ d S )Nr   
   ii  r   r   Tr   r   r   r   g      ?g>N}a+g0.++   r   y)positivez)zeroo)nonnegativer   )r
   r   r   r   r   r   r   r!   r    r   r"   r#   r   is_positiveis_zerois_nonnegativer$   )dr   r&   r&   r'   
test_log1p#   s(   4$"" *8r5   c                  C   s   t ddksJ tddd} t | jddd|   dksJ t d|  | dt d|   td  dks7J t d|  | t d|  |  dksMJ d S )	Nr*      r   Tr   r   r   r   )r   r   r   r$   r   r%   r&   r&   r'   	test_exp2H   s
    20r7   c                  C   s   t ddksJ t ttttd ksJ tddd} t | t| td ks*J t d|  | ks4J t | jddt| td  dksHJ t d	|   d
td|    dks\J t d	|   t d	|  jdd|  dksuJ d S )N      r*   r   Tr   r   r   r   r   )r   r   r   r   r   r$   r%   r&   r&   r'   	test_log2V   s   ((6r:   c                  C   s  t d\} }}t| ||jdd| |  | dksJ td|  d| d| }|| |jdd|  dks9J |||jdd| dksKJ |||jdd| dks]J || d|  dksjJ ||d|   dkswJ ||d dksJ d S )	Nzx y zTr   r      r   e   i  )r   r   r   r$   )r   r+   r-   exprr&   r&   r'   test_fmag   s   ($$$r>   c                  C   s   t d} t| jddt| td  dksJ td|  | dtd|    dks-J td|  | td|  jdd|  dksGJ d S )Nr   Tr   r)   r   r   r   )r   r   r   r   r$   r%   r&   r&   r'   
test_log10y   s   (*8r?   c                  C   s   t d} t| jdd| tdd  dksJ td|  | dd|  tddd   d  dks3J td|  | td|  jdd|  dksMJ d S )Nr   Tr   r   r9   r   r   )r   r   r   r   r$   r%   r&   r&   r'   	test_Cbrt   s   &88r@   c                  C   s   t d} t| jdd| tj  dksJ td|  | dd|  tjd   d  dks/J td|  | td|  jdd|  dksIJ d S )Nr   Tr   r   r   r   r*   )r   r   r   r   Halfr$   r%   r&   r&   r'   	test_Sqrt   s   "48rB   c                  C   s|  t d\} }t| |jdd| d |d  tj  dksJ td|  d| | jddtd|  d| jdd|  dksBJ td|  d| |jddtd|  d| jdd| dksfJ td|  d| | jddd|  d|  d d| d  td	d  d  dksJ td|  d| |jddd
| d|  d d| d  td	d  d  dksJ d S )Nzx yTr   r*   r   r;   r   iB  r   i  )r   r   r   r   rA   r$   r   )r   r+   r&   r&   r'   
test_hypot   s   0HHVZrC   c                  C   s   t d} ttj
 dksJ ttj dksJ ttjdks!J t| }|dvs+J |jtu s2J |j| fks:J ttjdksCJ ttjdksLJ t| }|dvsVJ |jtu s]J |j| fkseJ d S )Nr   TF)FT)	r   r   r   InfinityPir   argsr   NaN)r   isinfxisnanxr&   r&   r'   test_isnan_isinf   s   rJ   N)#sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   &sympy.functions.elementary.exponentialr   r   sympy.codegen.cfunctionsr	   r
   r   r   r   r   r   r   r   r   r   sympy.core.functionr   r(   r5   r7   r:   r>   r?   r@   rB   rC   rJ   r&   r&   r&   r'   <module>   s     4%