o
    io                     @   s   d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlmZmZmZmZ d dlmZ ed\ZZZ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 )    )FloatIntegerRational)symbols)betaEizetaMaxMinsqrt
riemann_xifrac)CXX98CodePrinterCXX11CodePrinterCXX17CodePrintercxxcode)log1pzx y u vc                  C   s|   t  ttddv sJ t  ttdttdksJ t  } | jdks'J | jdks.J d| jv s5J d| jvs<J d S )N   )zstd::max(x, 3)zstd::max(3, x)z&std::min(3, std::min(x, std::sqrt(x)))C++zC++98templateZalignas)	r   doprintr	   xr
   r   languagestandardreserved_words)Zcxx98printer r   l/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sympy/printing/tests/test_cxx.pytest_CXX98CodePrinter   s    r   c                  C   sh   t  ttdksJ t  } | jdksJ | jdksJ d| jv s$J d| jv s+J d| jvs2J d S )Nstd::log1p(x)r   zC++11operatorZnoexceptZconcept)r   r   r   r   r   r   r   )Zcxx11printerr   r   r   test_CXX11CodePrinter   s   r    c                  C   s,   G dd dt } |  ttdksJ d S )Nc                   @   s   e Zd Zdd ZdS )z-test_subclass_print_method.<locals>.MyPrinterc                 S   s   dd t| j|j S )Nzmy_library::log1p(%s)z, )joinmap_printargs)selfexprr   r   r   _print_log1p"   s   z:test_subclass_print_method.<locals>.MyPrinter._print_log1pN)__name__
__module____qualname__r'   r   r   r   r   	MyPrinter!   s    r+   my_library::log1p(x)r   r   r   r   )r+   r   r   r   test_subclass_print_method    s   r.   c                  C   sL   G dd dt } t  }|  }|ttdksJ |ttdks$J d S )Nc                   @   s   e Zd ZdZdS )z1test_subclass_print_method__ns.<locals>.MyPrinterzmy_library::N)r(   r)   r*   Z_nsr   r   r   r   r+   )   s    r+   r   r,   r-   )r+   pZmypr   r   r   test_subclass_print_method__ns(   s
   r0   c                   C   s~   t  tttdksJ t  ttdksJ t  ttdks%J t  ttdks1J t  ttdks=J d S )Nzstd::beta(x, y)zstd::expint(x)zstd::riemann_zeta(x)z(x - std::floor(x))z^((1.0/2.0)*std::pow(M_PI, -1.0/2.0*x)*x*(x - 1)*std::tgamma((1.0/2.0)*x)*std::riemann_zeta(x)))	r   r   r   r   yr   r   r   r   r   r   r   r   test_CXX17CodePrinter3   s
   r2   c                   C   s.   t tttd dt ddgksJ d S )N      ?*z0.5zstd::sqrt(x))sortedr   r   r   splitr   r   r   r   test_cxxcode=   s   .r7   c                   C   sH   t tttttttdksJ t tttttttdks"J d S )Nz(std::max(std::min(u, v), std::min(x, y))z(std::min(std::max(u, v), std::max(x, y)))r   r	   r
   r   r1   uvr   r   r   r   test_cxxcode_nested_minmax@   s   r:   c                  C   sj   G dd dt } |  }tdD ]}||d| ksJ q|tddks(J |td dks3J d S )	Nc                       s$   e Zd Z fddZdd Z  ZS )z.test_subclass_Integer_Float.<locals>.MyPrinterc                    s   dt  | S )NzbigInt("%s"))super_print_Integer)r%   arg	__class__r   r   r<   H   s   z=test_subclass_Integer_Float.<locals>.MyPrinter._print_Integerc                 S   s,   t |}d| t|j| t|jf S )NzbigFloat(%s, %s))r   r#   r   r/   q)r%   r=   ratr   r   r   _print_FloatK   s
   z;test_subclass_Integer_Float.<locals>.MyPrinter._print_Float)r(   r)   r*   r<   rB   __classcell__r   r   r>   r   r+   G   s    r+      zbigInt("%d")r3   z"bigFloat(bigInt("1"), bigInt("2"))g      z$bigFloat(bigInt("1"), bigInt("1"))/x)r   ranger   r   r   )r+   r/   ir   r   r   test_subclass_Integer_FloatF   s   rG   N)"Zsympy.core.numbersr   r   r   Zsympy.core.symbolr   Zsympy.functionsr   r   r   r	   r
   r   r   r   Zsympy.printing.cxxr   r   r   r   Zsympy.codegen.cfunctionsr   r   r1   r8   r9   r   r    r.   r0   r2   r7   r:   rG   r   r   r   r   <module>   s    (

