
    Xh                         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 Zd Zd	 Zd
 Zd Zd Zd Zd Z d Z!d Z"dS )    )Rationalpi)S)Symbolsymbols)explog)expm1log1pexp2log2fmalog10SqrtCbrthypotisnanisinf)
expand_logc                     t          d          dk    sJ t          dd          } t          |                               d          t          |           z
  dk    sJ t          |                               d          t          |           z
  dk    sJ t          |                               d          t          |           z
  dk    sJ t          d	                                          d
z
  d	z
  dz
  dk     rJ t          t          d	                                          d	z
  dz
            dk     sJ t          |           j        sJ t          |           j        sJ t          d| z            	                    |           dt          d| z            z  z
  dk    sJ t          d| z            	                    |           t          d| z                                d          	                    |           z
  dk    sJ d S )Nr   xTrealfunc	tractabler   g|=   g#B;g^ 9^;*   )
r
   r   expandr   rewriteevalfabsis_real	is_finitediffr   s    u/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/codegen/tests/test_cfunctions.py
test_expm1r)      s   88q====sA 88???%%A."444488K((3q661R777788E""SVV+r1111 U!!##a'5058EAAAAuU||!!##e+e344u<<<< 8888 A;;AC1II-2222A;;Ar!t!3!3!3!>!>!C!CA!F!FF!KKKKKK    c                     t          d          dk    sJ t          d          } t          t          | dz            t          | dz  dz             z
  t          | dz            z             dk    sJ t	          dd          }t          |                              d	          t          |dz             z
  dk    sJ t          |                              d
          t          |dz             z
  dk    sJ t          |                              d          t          |dz             z
  dk    sJ t          t          d                                          dz
            dk     rJ t          t          t          d                                                    dz
            dk     sJ t          dt          dd          z             j
        sJ t          d          j        rJ t          t                    j        sJ t          |          j        rJ t          t	          dd                    j        sJ t          |          j        rJ t          t	          dd                    j        sJ t          |          j        rJ t          t	          dd                    j        sJ t          d|z                                |          dd|z  dz   z  z
  dk    sJ t          d|z                                |          t          d|z                                d	                              |          z
  dk    sJ 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   s     r(   
test_log1pr8   #   s   88q====	"AeAuHooAtGaK(8(883q$w<<GHHAMMMMsA 88???%%AE

2a777788K((3q1u::5::::88E""SQZZ/14444 3y>>''))E122V;;;;z%,,''--//%7886AAAA !Xb!__$$%%----Ryy""""99Qxx####d+++,,8888Qxx$'''((0000Qxx&&&&...//>>>> A;;ARTAX.!3333A;;Ar!t!3!3!3!>!>!C!CA!F!FF!KKKKKKr*   c                     t          d          dk    sJ t          dd          } t          |                               d          d| z  z
  dk    sJ t          d| z                                |           dt          d| z            z  t	          d          z  z
  dk    sJ t          d| z                                |           t          d| z                                |           z
  dk    sJ d S )	Nr-      r   Tr   r   r   r   )r   r   r    r&   r	   r'   s    r(   	test_exp2r;   H   s    77a<<<<sA 77>>t>$$q!t+q0000 1::??141::c!ff 4499991::??1RT

 2 22a777777r*   c                  8   t          d          dk    sJ t          t                    t          t                    t          d          z  k    sJ t          dd          } t          |           t          |           t          d          z  k    sJ t          d| z            | k    sJ t          |                               d          t          |           t          d          z  z
  dk    sJ t          d	| z                                            d
t          d          | z  z  z
  dk    sJ t          d	| z                                            t          d	| z                                d                              |           z
  dk    sJ d S )N      r-   r   Tr   r   r   r   r   )r   r   r	   r   r    r&   r'   s    r(   	test_log2r?   V   s[   77a<<<<88s2wws1vv~%%%%sA77c!ffSVVm####1::???? 77>>t>$$s1vvc!ff}49999 1::??q#a&&(|+q00001::??tBqDzz00d0;;@@CCCqHHHHHHr*   c                  &   t          d          \  } }}t          | ||                              d          | |z  z
  |z
  dk    sJ t          d| z  d|z  d|z            }|                    |           |                    d                              |           z
  dk    sJ |                    |          |                    d                              |          z
  dk    sJ |                    |          |                    d                              |          z
  dk    sJ |                    |           d|z  z
  dk    sJ |                    |          d| z  z
  dk    sJ |                    |          dz
  dk    sJ d S )	Nzx y zTr   r      r   e   i  )r   r   r    r&   )r   r.   r0   exprs       r(   test_fmarD   g   s   gGAq! q!Q<<D))AaC/!3q8888r!tRT3q5!!D 99Q<<$++4+0055a888A====99Q<<$++4+0055a888A====99Q<<$++4+0055a888A====99Q<<%'!Q&&&&99Q<<%'!Q&&&&99Q<<#""""""r*   c                     t          d          } t          |                               d          t          |           t          d          z  z
  dk    sJ t          d| z                                |           dt          d          | z  z  z
  dk    sJ t          d| z                                |           t          d| z                                d                              |           z
  dk    sJ d S )Nr   Tr   r,   r   r   r   )r   r   r    r	   r&   r'   s    r(   
test_log10rF   y   s    sA 88???%%As2ww6!;;;; A;;ACGGAI.!3333A;;Ar!t!3!3!3!>!>!C!CA!F!FF!KKKKKKr*   c                     t          d          } t          |                               d          | t          dd          z  z
  dk    sJ t          d| z                                |           dd| z  t          dd          dz
  z  z  dz  z
  dk    sJ t          d| z                                |           t          d| z                                d                              |           z
  dk    sJ d S )Nr   Tr   r   r>   r   r   )r   r   r    r   r&   r'   s    r(   	test_CbrtrH      s    sA 77>>t>$$q(1a..'88A==== 1::??1BqDHQNNQ,>#? ? AAQFFFF1::??1RT

 1 1t 1 < < A A! D DDIIIIIIr*   c                     t          d          } t          |                               d          | t          j        z  z
  dk    sJ t          d| z                                |           dd| z  t          j        dz
  z  z  dz  z
  dk    sJ t          d| z                                |           t          d| z                                d                              |           z
  dk    sJ d S )Nr   Tr   r   r   r   r-   )r   r   r    r   Halfr&   r'   s    r(   	test_SqrtrK      s    sA 77>>t>$$q!&y0A5555 1::??1BqDAFQJ#7 7 99Q>>>>1::??1RT

 1 1t 1 < < A A! D DDIIIIIIr*   c                  p   t          d          \  } }t          | |                              d          | dz  |dz  z   t          j        z  z
  dk    sJ t          d| z  d|z                                |                               d          t          d| z  d|z                                d                              |           z
  dk    sJ t          d| z  d|z                                |                              d          t          d| z  d|z                                d                              |          z
  dk    sJ t          d| z  d|z                                |                               d          d| z  d| z  dz  d|z  dz  z   t          d	d          z  z  dz  z
  dk    sJ t          d| z  d|z                                |                              d          d
|z  d| z  dz  d|z  dz  z   t          d	d          z  z  dz  z
  dk    sJ d S )Nzx yTr   r-   r   rA   r   iB  r   i  )r   r   r    r   rJ   r&   r   )r   r.   s     r(   
test_hypotrM      sY   5>>DAq A;;4((AqD1a4K!&+@@AEEEE Ar!t!!!$$+++66r!tRT9J9J9Q9QW[9Q9\9\9a9abc9d9ddhiiiiiAr!t!!!$$+++66r!tRT9J9J9Q9QW[9Q9\9\9a9abc9d9ddhiiiiiAr!t!!!$$+++66RTAIQSTUQUXYPYDY\degij\k\kCk9klm9mmqrrrrrAr!t!!!$$+++66RTAIQSTUQUXYPYDY\degij\k\kCk9klm9mmqrrrrrrrr*   c                  *   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 sJ |j        | f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 sJ |j        | fk    sJ d S )Nr   TF)FT)	r   r   r   InfinityPir   argsr   NaN)r   isinfxisnanxs      r(   test_isnan_isinfrU      s$   sA !*%%%%!*%%%%;;%1XXF&&&&;%;1$ <<4;;%1XXF&&&&;%;1$r*   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)   r8   r;   r?   rD   rF   rH   rK   rM   rU    r*   r(   <module>r]      s   - - - - - - - - " " " " " " / / / / / / / / = = = = = = = =                          + * * * * *L L L0"L "L "LJ8 8 8I I I"# # #$L L LJ J JJ J Js s s    r*   