Ë
    7^(hë  ã                   ó¼  — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ dg d	¢iZed   d
d
 g d¢z   ed<   ed   d
d
 ed<   ed   j                  d«       dddœddiddddœdœZdD ]  Zej#                  «       ed   e<   Œ dD ]  Zej#                  «       ed   e<   Œ d„ Zd„ Z G d„ d«      Z G d„ d ee	«      Z G d!„ d"ee
«      Z G d#„ d$ee
«      Zeeed%œZy
)&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                 ó~   ‡— d|z  }t        | |«      rt        d«      ‚ˆfd„}dt        z  |_        t	        | ||«       y )Nz	_print_%sz1Edit method (or subclass) instead of overwriting.c           
      ó˜   •— dj                  | j                  ‰dj                  t        | j                  |j
                  «      «      «      S )Nz{}{}({})ú, )ÚformatÚ_nsÚjoinÚmapÚ_printÚargs)ÚselfÚexprÚ	func_names     €úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/cxx.pyÚ_print_methodz+_attach_print_method.<locals>._print_methodG   s7   ø€ Ø× Ñ  §¡¨9°d·i±iÄÀDÇKÁKÐQU×QZÑQZÓ@[Ó6\Ó]Ð]ó    zPrints code for %s)ÚhasattrÚ
ValueErrorÚkÚ__doc__Úsetattr)ÚclsÚ
sympy_namerŒ   Ú	meth_namerŽ   s     `  r�   Ú_attach_print_methodr˜   C   sB   ø€ Ø˜jÑ(€IÜˆs�IÔÜÐLÓMÐMô^à0´1Ñ4€MÔÜˆC�˜MÕ*r�   c                 óh   — || j                      j                  «       D ]  \  }}t        | ||«       Œ y ©N)ÚstandardÚitemsr˜   )r•   Úcontr–   Úcxx_names       r�   Ú_attach_print_methodsrŸ   M   s4   € Ø $ S§\¡\Ñ 2× 8Ñ 8Ó :ò 8Ñˆ
�HÜ˜S *¨hÕ7ñ8r�   c                   ó˜   ‡ — e Zd ZdZdZdZdˆ fd„	Z edh¬«      d„ «       Z edh¬«      d„ «       Z	d	„ Z
d
„ Z edh¬«      d„ «       Zˆ xZS )Ú_CXXCodePrinterBaseÚ_cxxcodezC++zstd::c                 ó,   •— t         ‰| �  |xs i «       y rš   )ÚsuperÚ__init__)rŠ   ÚsettingsÚ	__class__s     €r�   r¥   z_CXXCodePrinterBase.__init__W   s   ø€ Ü‰Ñ˜š RÕ(r�   Ú	algorithm)Úheadersc                 ó  — ddl m} t        |j                  «      dk(  r| j	                  |j                  d   «      S | j
                  ›d| j	                  |j                  d   «      ›d| j	                   ||j                  dd  Ž «      ›d�S )Nr   )ÚMaxr   zmax(rƒ   ú))Ú(sympy.functions.elementary.miscellaneousr«   Úlenr‰   rˆ   r…   )rŠ   r‹   r«   s      r�   Ú
_print_Maxz_CXXCodePrinterBase._print_MaxZ   óm   € å@Üˆt�y‰y‹>˜QÒØ—;‘;˜tŸy™y¨™|Ó,Ð,Ø"&§(£(¨D¯K©K¸¿	¹	À!¹Õ,EØ"&§+¡+©c°4·9±9¸Q¸R°=Ð.AÕ"BðDð 	Dr�   c                 ó  — ddl m} t        |j                  «      dk(  r| j	                  |j                  d   «      S | j
                  ›d| j	                  |j                  d   «      ›d| j	                   ||j                  dd  Ž «      ›d�S )Nr   )ÚMinr   zmin(rƒ   r¬   )r­   r²   r®   r‰   rˆ   r…   )rŠ   r‹   r²   s      r�   Ú
_print_Minz_CXXCodePrinterBase._print_Minb   r°   r�   c                 ó\   — |j                   t        k(  rd|j                  z  S t        d«      ‚)Nzusing %sz#C++98 does not support type aliases)Úaliasr   Útyper‘   ©rŠ   r‹   s     r�   Ú_print_usingz _CXXCodePrinterBase._print_usingj   s)   € Ø�:‰:œÒØ §	¡	Ñ)Ð)äÐBÓCÐCr�   c                 óF   — |j                   \  }d| j                  |«      z  S )Nzthrow %s)r‰   rˆ   )rŠ   ÚrsÚargs      r�   Ú_print_Raisez _CXXCodePrinterBase._print_Raisep   s!   € Ø�w‰w‰ˆØ˜DŸK™K¨Ó,Ñ,Ð,r�   Ú	stdexceptc                 ó`   — |j                   \  }| j                  ›d| j                  |«      ›d�S )Nzruntime_error(r¬   )r‰   r…   rˆ   )rŠ   ÚreÚmessages      r�   Ú_print_RuntimeError_z(_CXXCodePrinterBase._print_RuntimeError_t   s%   € à—7‘7‰ˆØ(,¯«°$·+±+¸gÕ2FÐGÐGr�   rš   )Ú__name__Ú
__module__Ú__qualname__ÚprintmethodÚlanguager…   r¥   r   r¯   r³   r¸   r¼   rÁ   Ú__classcell__©r§   s   @r�   r¡   r¡   R   sy   ø„ Ø€KØ€HØ
€Cõ)ñ �{�mÔ$ñDó %ðDñ �{�mÔ$ñDó %ðDòDò-ñ �{�mÔ$ñHó %ôHr�   r¡   c                   ó&   — e Zd ZdZ eed   «      Zy)ÚCXX98CodePrinterr   N)rÂ   rÃ   rÄ   r›   ÚsetÚreservedÚreserved_words© r�   r�   rÊ   rÊ   z   s   „ Ø€HÙ˜ 'Ñ*Ó+�Nr�   rÊ   c                   óŽ  ‡ — e Zd ZdZ eed   «      Z e ee	j                  j                  «        ed«      ddhf ed«      ddhf ed«      ddhf ed	«      d
dhf ed«      ddhf ed«      ddhf ed«      ddhf ed«      ddhf ed«      ddhf ed«      ddhf ed«      dij                  «       «      «      Z
ˆ fd„Zˆ xZS )ÚCXX11CodePrinterr_   Ú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                 ó†   •— |j                   t        k(  rt        ‰| �  |«      S d|j	                  | j
                  ¬«      z  S )Nzusing %(alias)s = %(type)s)Úapply)rµ   r   r¤   r¸   Úkwargsrˆ   )rŠ   r‹   r§   s     €r�   r¸   zCXX11CodePrinter._print_using–   s9   ø€ Ø�:‰:œÒÜ‘7Ñ'¨Ó-Ð-à/°$·+±+ÀDÇKÁK°+Ó2PÑPÐPr�   )rÂ   rÃ   rÄ   r›   rË   rÌ   rÍ   Údictr   rÊ   Útype_mappingsrœ   r   r¸   rÇ   rÈ   s   @r�   rÐ   rÐ   ‚   s  ø„ Ø€HÙ˜ 'Ñ*Ó+€NÙ™Ø×&Ñ&×,Ñ,Ó.á�‹L˜8 i [Ð1Ù�‹M˜I¨	 {Ð3Ù�‹M˜I¨	 {Ð3Ù�‹M˜I¨	 {Ð3Ù�‹M˜I¨	 {Ð3Ù�‹N˜Z¨)¨Ð5Ù�‹N˜Z¨)¨Ð5Ù�‹N˜Z¨)¨Ð5Ù�ÓÐ 5¸	°{ÐCÙ�ÓÐ!7¸)¸Ð EÙ�‹L˜.ð	
÷ ‰%‹'óó €M÷"Qð Qr�   rÐ   c                   ód   — e Zd ZdZ eed   «      Z eej                  fi e
d   ¤ŽZ	d„ Zd„ Zd„ Zy)ÚCXX17CodePrinterr`   c                 ó$   — | j                  |«      S rš   ©Ú_print_math_funcr·   s     r�   Ú_print_betazCXX17CodePrinter._print_beta¥   ó   € Ø×$Ñ$ TÓ*Ð*r�   c                 ó$   — | j                  |«      S rš   rí   r·   s     r�   Ú	_print_EizCXX17CodePrinter._print_Ei¨   rð   r�   c                 ó$   — | j                  |«      S rš   rí   r·   s     r�   Ú_print_zetazCXX17CodePrinter._print_zeta«   rð   r�   N)rÂ   rÃ   rÄ   r›   rË   rÌ   rÍ   rè   r	   Ú_kfÚ_math_functionsrï   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ÿ      sM  ðñõ ß (Ý !ß -õ /ð ò ð€ð  ˜WÑ%¡aÐ(ò ,ñ €ˆÑ ð ˜WÑ%¡aÐ(€ˆÑ Ø ˆÑ × Ñ ˜Ô $ð Øñð
 	�ðð ØØññ€ð 
Lò ,€Aà"#§'¡'£)€O�GÑ˜QÒð,ð
 
4ò ,€AØ"#§'¡'£)€O�GÑ˜QÒð,ò+ò8÷
%Hñ %HôP,Ð*¨Nô ,ôQÐ*¨Nô Qô:+Ð*¨Nô +ð& ØØñÑ r�   