
    \h                        S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	J
r
  SSKJr  S/ S	Q0r\S   S
S
 / SQ-   \S'   \S   S
S
 \S'   \S   R                  S5        SSS.SS0SSSS.S.rS H  r\R#                  5       \S   \'   M     S H  r\R#                  5       \S   \'   M     S rS r " S S5      r " S S \\	5      r " S! S"\\
5      r " S# S$\\
5      r\\\S%.rg
)&z
C++ code printer
    )chain)Typenone   )requires)C89CodePrinterC99CodePrinter)cxxcodeC++98)Jandand_eqasmautobitandbitorboolbreakcasezcatch,charclasscomplconst
const_castcontinuedefaultdeletedodoubledynamic_castelseenumexplicitexportexternfalsefloatforfriendgotoifinlineintlongmutable	namespacenewnotnot_eqoperatororor_eqprivate	protectedpublicregisterreinterpret_castreturnshortsignedsizeofstaticstatic_caststructswitchtemplatethisthrowtruetrytypedeftypeidtypenameunionunsignedusingvirtualvoidvolatilewchar_twhilexorxor_eqN)
alignasalignofchar16_tchar32_t	constexprdecltypenoexceptnullptrstatic_assertthread_localC++11C++17r9   fmodceil)Modceilinggammatgammabetaexpintriemann_zeta)rg   Eizeta)r   r_   r`   )Absexploglog10sqrtsincostanasinacosatanatan2sinhcoshtanhfloor)asinhacoshatanherferfcc                    ^ SU-  n[        X5      (       a  [        S5      eU4S jnS[        -  Ul        [	        XU5        g )Nz	_print_%sz1Edit method (or subclass) instead of overwriting.c           
         > SR                  U R                  TSR                  [        U R                  UR
                  5      5      5      $ )Nz{}{}({}), )format_nsjoinmap_printargs)selfexpr	func_names     J/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/cxx.py_print_method+_attach_print_method.<locals>._print_methodG   s7      9diiDKKQUQZQZ@[6\]]    zPrints code for %s)hasattr
ValueErrork__doc__setattr)cls
sympy_namer   	meth_namer   s     `  r   _attach_print_methodr   C   sA    j(IsLMM^014MCM*r   c                 f    XR                      R                  5        H  u  p#[        XU5        M     g N)standarditemsr   )r   contr   cxx_names       r   _attach_print_methodsr   M   s)     $\\ 2 8 8 :
Sh7 !;r   c                      ^  \ rS rSrSrSrSrSU 4S jjr\" S1S9S 5       r	\" S1S9S	 5       r
S
 rS r\" S1S9S 5       rSrU =r$ )_CXXCodePrinterBaseR   _cxxcodezC++zstd::c                 6   > [         TU ]  U=(       d    0 5        g r   )super__init__)r   settings	__class__s     r   r   _CXXCodePrinterBase.__init__W   s    R(r   	algorithm)headersc                 "   SSK Jn  [        UR                  5      S:X  a  U R	                  UR                  S   5      $ U R
                  < SU R	                  UR                  S   5      < SU R	                  U" UR                  SS  6 5      < S3$ )Nr   )Maxr   zmax(r   ))(sympy.functions.elementary.miscellaneousr   lenr   r   r   )r   r   r   s      r   
_print_Max_CXXCodePrinterBase._print_MaxZ   m    @tyy>Q;;tyy|,,"&((DKK		!,E"&++c499QR=.A"BD 	Dr   c                 "   SSK Jn  [        UR                  5      S:X  a  U R	                  UR                  S   5      $ U R
                  < SU R	                  UR                  S   5      < SU R	                  U" UR                  SS  6 5      < S3$ )Nr   )Minr   zmin(r   r   )r   r   r   r   r   r   )r   r   r   s      r   
_print_Min_CXXCodePrinterBase._print_Minb   r   r   c                 ^    UR                   [        :X  a  SUR                  -  $ [        S5      e)Nzusing %sz#C++98 does not support type aliases)aliasr   typer   r   r   s     r   _print_using _CXXCodePrinterBase._print_usingj   s)    ::		))BCCr   c                 F    UR                   u  nSU R                  U5      -  $ )Nzthrow %s)r   r   )r   rsargs      r   _print_Raise _CXXCodePrinterBase._print_Raisep   s!    wwDKK,,,r   	stdexceptc                 d    UR                   u  nU R                  < SU R                  U5      < S3$ )Nzruntime_error(r   )r   r   r   )r   remessages      r   _print_RuntimeError_(_CXXCodePrinterBase._print_RuntimeError_t   s%    77(,$++g2FGGr    r   )__name__
__module____qualname____firstlineno__printmethodlanguager   r   r   r   r   r   r   r   __static_attributes____classcell__r   s   @r   r   r   R   sy    KH
C) {m$D %D {m$D %DD- {m$H %Hr   r   c                   .    \ rS rSrSr\" \S   5      rSrg)CXX98CodePrinterz   r   r   N)	r   r   r   r   r   setreservedreserved_wordsr   r   r   r   r   r   z   s    H'*+Nr   r   c                     ^  \ rS rSrSr\" \S   5      r\" \	" \
R                  R                  5       \" S5      SS14\" S5      SS14\" S5      S	S14\" S
5      SS14\" S5      SS14\" S5      SS14\" S5      SS14\" S5      SS14\" S5      SS14\" S5      SS14\" S5      S0R                  5       5      5      rU 4S jrSrU =r$ )CXX11CodePrinter   r_   int8int8_tcstdintint16int16_tint32int32_tint64int64_tuint8uint8_tuint16uint16_tuint32uint32_tuint64uint64_t	complex64zstd::complex<float>complex
complex128zstd::complex<double>r   )r   Nc                    > UR                   [        :X  a  [        TU ]  U5      $ SUR	                  U R
                  S9-  $ )Nzusing %(alias)s = %(type)s)apply)r   r   r   r   kwargsr   )r   r   r   s     r   r   CXX11CodePrinter._print_using   s9    ::7'--/$++DKK+2PPPr   r   )r   r   r   r   r   r   r   r   dictr   r   type_mappingsr   r   r   r   r   r   s   @r   r   r      s   H'*+N&&,,.L8i[1MI	{3MI	{3MI	{3MI	{3NZ)5NZ)5NZ)5 5	{C!7) EL.	
 %' M"Q Qr   r   c                   l    \ rS rSrSr\" \S   5      r\" \	R                  40 \S   D6r
S rS rS rSrg)CXX17CodePrinter   r`   c                 $    U R                  U5      $ r   _print_math_funcr   s     r   _print_betaCXX17CodePrinter._print_beta       $$T**r   c                 $    U R                  U5      $ r   r   r   s     r   	_print_EiCXX17CodePrinter._print_Ei   r   r   c                 $    U R                  U5      $ r   r   r   s     r   _print_zetaCXX17CodePrinter._print_zeta   r   r   r   N)r   r   r   r   r   r   r   r   r   r	   _kf_math_functionsr   r  r  r   r   r   r   r   r      s?    H'*+N
~!!
>_W%=
>C+++r   r   )zc++98zc++11zc++17)r   	itertoolsr   sympy.codegen.astr   r   codeprinterr   cr   r	   sympy.printing.codeprinterr
   r   remover  r   lowerr   r   r   r   r   r   cxx_code_printersr   r   r   <module>r     sD    ( ! - /    W%a( ,   W%a(      $ 
 	  
LA"#'')OGQ
L
 
4A"#'')OGQ 
4+8
%H %HP,*N ,Q*N Q:+*N +&  r   