
    MZd	                         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 Zd Zd Zd	 Zd
 Zd Zd Zy)    )symbols)betaEizetaMaxMinsqrt
riemann_xifrac)CXX98CodePrinterCXX11CodePrinterCXX17CodePrintercxxcode)log1pzx y u vc            	      f   t               j                  t        t        d            dv sJ t               j                  t	        t        d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 y )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templatealignas)	r   doprintr   xr   r	   languagestandardreserved_words)cxx98printers    ?/usr/lib/python3/dist-packages/sympy/printing/tests/test_cxx.pytest_CXX98CodePrinterr   
   s    %%c!Qi04XXXX%%c!QQ&89=eeee#%L  E)))  G+++44444L77777    c                     t               j                  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sJ y )Nstd::log1p(x)r   zC++11operatornoexceptconcept)r   r   r   r   r   r   r   )cxx11printers    r   test_CXX11CodePrinterr%      s    %%eAh/?BBB#%L  E)))  G+++4444444444L77777r   c                  r     G d dt               }  |        j                  t        t                    dk(  sJ y )Nc                       e Zd Zd Zy)-test_subclass_print_method.<locals>.MyPrinterc                 f    ddj                  t        | j                  |j                              z  S )Nzmy_library::log1p(%s)z, )joinmap_printargs)selfexprs     r   _print_log1pz:test_subclass_print_method.<locals>.MyPrinter._print_log1p!   s%    *TYYs4;;		7R-SSSr   N)__name__
__module____qualname__r0    r   r   	MyPrinterr(       s    	Tr   r5   my_library::log1p(x)r   r   r   r   )r5   s    r   test_subclass_print_methodr8      s3    T$ T ;uQx(,BBBBr   c                       G d dt               } t               } |        }|j                  t        t                    dk(  sJ |j                  t        t                    dk(  sJ y )Nc                       e Zd ZdZy)1test_subclass_print_method__ns.<locals>.MyPrinterzmy_library::N)r1   r2   r3   _nsr4   r   r   r5   r;   (   s    r   r5   r    r6   r7   )r5   pmyps      r   test_subclass_print_method__nsr?   '   sW    $  	A
+C99U1X/111;;uQx $::::r   c                     t               j                  t        t        t                    dk(  sJ t               j                  t        t                    dk(  sJ t               j                  t        t                    dk(  sJ t               j                  t        t                    dk(  sJ t               j                  t        t                    dk(  sJ y )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
   r4   r   r   test_CXX17CodePrinterrB   2   s    %%d1aj15FFFF%%be,0@@@@%%d1g.2HHHH %%d1g.2EEEE%%jm4  9W  W  W  Wr   c                      t        t        t        t              dz        j	                  d            t        ddg      k(  sJ y )Ng      ?*z0.5zstd::sqrt(x))sortedr   r	   r   splitr4   r   r   test_cxxcoderG   <   s7    '$q'"*%++C01VUN<S5TTTTr   c            	          t        t        t        t        t              t        t
        t                          dk(  sJ t        t        t        t        t              t        t
        t                          dk(  sJ y )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   rA   uvr4   r   r   test_cxxcode_nested_minmaxrK   ?   s\    3s1ay#a),-56 6 63s1ay#a),-56 6 6r   N)sympy.core.symbolr   sympy.functionsr   r   r   r   r   r	   r
   r   sympy.printing.cxxr   r   r   r   sympy.codegen.cfunctionsr   r   rA   rI   rJ   r   r%   r8   r?   rB   rG   rK   r4   r   r   <module>rP      sT    % L L L \ \ * Y
1a88C;WU6r   