Ë
    7^(hú  ã                   óÈ  — d dl Z d dl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 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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 dl(m)Z) d dl*m+Z+ d dl,m-Z- d d	l.m/Z/m0Z0m1Z1 d d
l2m3Z3 d dl4m5Z5m6Z6  e+d«      Z7 e+d«      Z8d„ Z9e3d„ «       Z:e6e3d„ «       «       Z;e3d„ «       Z<e3d„ «       Z=e6e3d„ «       «       Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCe3d„ «       ZDy)é    N)ÚSymbolÚsymbols)
Ú
AssignmentÚPrintÚDeclarationÚFunctionDefinitionÚReturnÚrealÚFunctionCallÚVariableÚElementÚinteger)ÚallocatableÚArrayConstructorÚisignÚdsignÚcmplxÚkindÚ
literal_dpÚProgramÚModuleÚuseÚ
SubroutineÚ	dimensionÚassumed_extentÚImpliedDoLoopÚ
intent_outÚsizeÚDoÚSubroutineCallÚsum_ÚarrayÚbind_C)Úrender_as_module)Ú	unchanged)Úimport_module)Úfcode)Úhas_fortranÚcompile_run_stringsÚcompile_link_import_strings)Ú	may_xfail)ÚskipÚXFAILÚcythonÚnumpyc                  óX   — t        dd¬«      } t        | «      }t        |d¬«      dk(  sJ ‚y )NÚxT©r
   Úfree©Úsource_formatzsize(x))r   r   r'   )r1   Úsxs     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/codegen/tests/test_fnodes.pyÚ	test_sizer8      s,   € Üˆs˜Ô€AÜ	ˆa‹€BÜ� 6Ô*¨iÒ7Ð7Ñ7ó    c                  ó‚  — t        «       st        d«       t        dd¬«      } t        t	        | dz  «      t        | «      z  dz  «      g}t        | dgd¬	«      }t        t        d
|g|«      }t        |gd«       t        dt        |gd«      fdgd¬«      \  \  }}}d|v sJ ‚|dk(  sJ ‚|d   t        j                  k(  sJ ‚y )NúNo fortran compiler found.ÚaTr2   é   ç      à?ú:Úin©ÚdimÚintentÚrmsÚmod_rmsúrms.f90)úmain.f90zŠprogram myprog
use mod_rms, only: rms
real*8, dimension(4), parameter :: x = [4, 2, 2, 2]
print "(f7.5)", dsqrt(7d0) - rms(x)
end program
©Úcleanz0.00000Ú Úexit_status)r(   r,   r   r	   r!   r   r"   r   r
   r$   r)   ÚosÚEX_OK)r<   ÚbodyÚarrÚfdÚstdoutÚstderrÚinfos          r7   Útest_size_assumed_shaperT      sÕ   € äŒ=ÜÐ)Ô*Üˆs˜Ô€AÜ”D˜˜A™“Jœt A›wÑ&¨Ñ+Ó,Ð-€DÜ
�˜�u TÔ
*€CÜ	œD %¨#¨°Ó	5€BÜ�b�T˜9Ô%ä0Ø	Ô$ b T¨9Ó5Ð6ð	ð	2ð ô	ÑÑ€VˆV�dð ˜ÑÐÐØ�RŠ<Ðˆ<Ø�Ñ¤"§(¡(Ò*Ð*Ñ*r9   c                  óÔ  — t        «       st        d«       t        dd¬«      \  } }t        |dz  |ddd«      }t	        d|d	g«      }t        | d
gt        g¬«      } t        d| j                  «       t        | |«      t        | g«      g«      }t        |dd¬«      }t        d|fgd¬«      \  \  }}}dj                  «       D ]  }	|	|v rŒJ ‚ |dk(  sJ ‚|d   t        j                  k(  sJ ‚y )Nr;   za iT©r   é   éýÿÿÿr=   iäÿÿÿé   r?   )rB   ÚattrsÚidlprogiÓ  r3   ©Ústandardr5   rG   rH   z-28 -27 -1 1 27 28rJ   rK   )r(   r,   r   r   r   r"   r   r   Úas_Declarationr   r   r'   r)   ÚsplitrL   rM   )
r<   ÚiÚidlÚacÚprogÚfsrcrQ   rR   rS   Únumstrs
             r7   Útest_ImpliedDoLooprf   8   s  € ô Œ=ÜÐ)Ô*ä�5 $Ô'�D€A€qÜ
˜˜1™˜a  Q¨Ó
*€CÜ	˜3  R˜.Ó	)€BÜˆa�c�U¤; -Ô0€AÜ�9Ø	×ÑÓÜ�1�bÓÜˆqˆc‹
ðó €Dô
 � °FÔ;€DÜ0°:¸tÐ2DÐ1EÈTÔRÑÑ€VˆV�dØ&×,Ñ,Ó.ò  ˆØ˜ÒÐÐð à�RŠ<Ðˆ<Ø�Ñ¤"§(¡(Ò*Ð*Ñ*r9   c                  ó^  — t        dd¬«      } t        j                  | d«      }t        |«      }t	        | | dz   g«      }t        d||g«      }t        «       st        d«       t        dt        |d	¬
«      fgd¬«      \  \  }}}d|v sJ ‚d|v sJ ‚|dk(  sJ ‚|d   t        j                  k(  sJ ‚y )Nr1   Tr2   é*   é   Úfoor;   rG   éZ   ©r]   rH   Ú42Ú43rJ   rK   )r   r   Údeducedr   r   r   r(   r,   r)   r'   rL   rM   )r1   ÚvxÚdeclÚprntrc   rQ   rR   rS   s           r7   Útest_Programrs   O   sº   € äˆs˜Ô€AÜ	×	Ñ	˜!˜RÓ	 €BÜ�r‹?€DÜ�!�Q�q‘S�‹?€DÜ�5˜4 ˜,Ó'€DÜŒ=ÜÐ)Ô*ä0°:¼uÀTÐTVÔ?WÐ2XÐ1YÐaeÔfÑÑ€VˆV�dØ�6‰>Ðˆ>Ø�6‰>Ðˆ>Ø�RŠ<Ðˆ<Ø�Ñ¤"§(¡(Ò*Ð*Ñ*r9   c            	      óÈ  — t        dd¬«      } t        j                  | «      }t        t        d|gt        | dz  «      g«      }t        dg |g«      }t        ddg«      }t        dt        ddg¬	«      t        d
|g«      g«      }t        «       st        d«       t        dt        |d¬«      fdt        |d¬«      fgd¬«      \  \  }}}d|v sJ ‚t        d«      |v sJ ‚|dk(  sJ ‚y )Nr1   Tr2   Úsqrr=   Úmod_sqg      E@Úfoobar©Úonlyz"Square of 42 = "r;   z
mod_sq.f90rk   rl   rG   rH   rm   iä  rJ   )r   r   ro   r   r
   r	   r   r   r   r   r   r(   r,   r)   r'   Ústr)	r1   Úv_xÚsqrv   Úsq_callÚprg_sqrQ   rR   rS   s	            r7   Útest_Moduler   `   sû   € äˆs˜Ô€AÜ
×
Ñ
˜1Ó
€CÜ	œD %¨#¨´¸¸1¹³°Ó	?€BÜ�H˜b 2 $Ó'€FÜ˜5 3 %Ó(€GÜ�XÜˆH˜E˜7Ô#ÜÐ" GÐ,Ó-ð ó €Fô Œ=ÜÐ)Ô*Ü0Ø	”u˜V¨bÔ1Ð2Ø	”U˜6¨BÔ/Ð0ð2ð ôÑÑ€VˆV�dð �6‰>Ðˆ>Üˆu‹:˜ÑÐÐØ�RŠ<Ð‰<r9   c                  óð  — t        dd¬«      } t        dd¬«      }t        j                  | t        t        «      t
        f¬«      }t        j                  |«      }t        dt        «      }t        t        t        | |g«      t        d«      |d	z  z  «      g|d|«      }t        d
|gt        |«      t        |«      t        |t        | «      «      |g«      }t        dd¬«      }t        j                  |t        d«      g¬«      }t        d|g¬«      }	t        dt!        |	|g¬«      t        |«      t#        ||g«      t%        t'        |«      |g«      g«      }
t)        «       st+        d«       t-        dt/        |	d¬«      fdt/        |
d¬«      fgd¬«      \  \  }}}t1        dd«      D �cg c]
  }d|d	z  z  ‘Œ }}t3        t5        |«      «      d d |v sJ ‚|D ]  }t3        |«      d d |v rŒJ ‚ |dk(  sJ ‚y c c}w )NÚrTr2   r`   rV   ©rZ   Únri   r=   Úfr1   rW   Úmymod)Údefinitionsrj   rx   r;   za.f90rk   rl   zb.f90rH   é   g      ð?rX   rJ   )r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r(   r,   r)   r'   Úrangerz   Úsum)r�   r`   Úv_rÚv_iÚv_nÚdo_loopÚsubr1   Úv_x3Úmodrc   rQ   rR   rS   ÚrefÚ_s                   r7   Útest_Subroutiner“   v   sû  € ô
 	ˆs˜Ô€AÜˆs˜DÔ!€AÜ
×
Ñ
˜1¤Y¬~Ó%>Ä
Ð$KÔ
L€CÜ
×
Ñ
˜1Ó
€CÜ
�3œÓ
 €CÜÜ”7˜1˜q˜c“?¤J¨q£M°!°Q±$Ñ$6Ó7ðàˆ!ˆSó€Gô �S˜3˜%Ü�CÓÜ�CÓÜ�3œ˜Q›Ó Øð	"ó €Cô 	ˆs˜Ô€AÜ×Ñ˜A¤i°£l ^Ô4€DÜ
� s eÔ
,€CÜ�5ÜˆC�s�eÔÜ�DÓÜ�s˜T˜FÓ#ÜŒt�D‹z˜4Ð Ó!ð	ó €Dô Œ=ÜÐ)Ô*ä0Ø	”%˜ bÔ)Ð*Ø	”%˜ rÔ*Ð+ð2ð ôÑÑ€VˆV�dô # 1 a›[Ö
)˜ˆ3ˆq�!‰t‹8Ð
)€CÐ
)ÜŒs�3‹x‹=˜˜"Ð Ñ'Ð'Ð'Øò %ˆÜ�1‹v�c�rˆ{˜fÒ$Ð$Ð$ð%à�RŠ<Ð‰<ùò	 *s   Æ&G3c                  ó~   — t        dd¬«      } t        t        d| «      sJ ‚t        t        d| «      dd¬«      dk(  sJ ‚y )	Nr1   TrV   ri   é_   r3   r\   zisign(1, x))r   r%   r   r'   ©r1   s    r7   Ú
test_isignr—   ¡   s=   € Üˆs˜DÔ!€AÜ”U˜A˜qÔ!Ð!Ð!Ü”�q˜!“ r¸Ô@ÀMÒQÐQÑQr9   c                  óŒ   — t        d«      } t        t        d| «      sJ ‚t        t        t	        d«      | «      dd¬«      dk(  sJ ‚y )Nr1   ri   r•   r3   r\   zdsign(1d0, x))r   r%   r   r'   r   r–   s    r7   Ú
test_dsignr™   §   s@   € Üˆs‹€AÜ”U˜A˜qÔ!Ð!Ð!Ü””z !“} aÓ(°2ÀVÔLÐP_Ò_Ð_Ñ_r9   c                  ó@   — t        d«      } t        t        d| «      sJ ‚y )Nr1   ri   )r   r%   r   r–   s    r7   Ú
test_cmplxr›   ­   s   € Üˆs‹€AÜ”U˜A˜qÔ!Ð!Ñ!r9   c                  ó>   — t        d«      } t        t        | «      sJ ‚y )Nr1   )r   r%   r   r–   s    r7   Ú	test_kindr�   ²   s   € Üˆs‹€AÜ”T˜1ÔÐÑr9   c                  ó:   — t        t        d«      d¬«      dk(  sJ ‚y )Nr   r3   r4   Ú0d0)r'   r   © r9   r7   Útest_literal_dpr¡   ·   s   € Ü”˜A“¨fÔ5¸Ò>Ð>Ñ>r9   c            	      ól  — t        «       st        d«       t        st        d«       t        st        d«       t	        dd¬«      } t	        dd¬«      }t        t        | d	z  «      |z  d
z  «      g}t        | |gd¬«      }t        t        d||g|t        d«      g¬«      }t        |gd«      }t        j                  «       5 }t        d|fddj                  d«      dz   fg|¬«      \  }}t!        |j#                  t        j                  g d¢«      «      dz
  «      dk  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr;   zCython not found.zNumPy not found.r<   Tr2   ÚsrV   r=   r>   r@   rA   rD   r‚   rE   rF   z_rms.pyxz#cython: language_level={}
Ú3zscdef extern double rms(double*, int*)
def py_rms(double[::1] x):
    cdef int s = x.size
    return rms(&x[0], &s)
)Ú	build_dir)ç       @g      @r¦   r¦   gêøÒ©*@g›+¡†›„=)r(   r,   r.   Únpr   r	   r!   r"   r   r
   r#   r$   ÚtempfileÚTemporaryDirectoryr*   ÚformatÚabsÚpy_rms)	r<   r£   rN   rO   rP   Úf_modÚfolderr�   rS   s	            r7   Útest_bind_Cr¯   »   s,  € äŒ=ÜÐ)Ô*ÝÜÐ Ô!ÝÜÐÔ äˆs˜Ô€AÜˆs˜DÔ!€AÜ”D˜˜A™“J˜q‘L 2Ñ%Ó&Ð'€DÜ
�˜�s 4Ô
(€CÜ	œD %¨#¨q¨°4ÄÀuÃ¸Ô	O€BÜ˜b˜T 9Ó-€Eä	×	$Ñ	$Ó	&ð 
L¨&Ü/Ø˜ÐØØ.×5Ñ5°cÓ:ð.ñ.ð0ð1
ð ô‰	ˆˆTô �3—:‘:œbŸh™hÒ'7Ó8Ó9¸FÑBÓCÀeÒKÐKÑK÷
L÷ 
Lñ 
Lús   Ã A D*Ä*D3)ErL   r¨   Úsympy.core.symbolr   r   Úsympy.codegen.astr   r   r   r   r	   r
   r   r   r   r   Úsympy.codegen.fnodesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Úsympy.codegen.futilsr$   Úsympy.core.exprr%   Úsympy.externalr&   Úsympy.printing.codeprinterr'   Úsympy.utilities._compilationr(   r)   r*   Ú!sympy.utilities._compilation.utilr+   Úsympy.testing.pytestr,   r-   r.   r§   r8   rT   rf   rs   r   r“   r—   r™   r›   r�   r¡   r¯   r    r9   r7   ú<module>rº      s  ðÛ 	Û ß /÷÷ ÷ ÷÷ ÷ ÷ ÷ õ õ
 2Ý %Ý (Ý ,ß fÑ fÝ 7ß ,á	�xÓ	 €Ù�7Ó€ò8ð ñ+ó ð+ð0 Ø
ñ+ó ó ð+ð* ñ+ó ð+ð  ñó ðð* Ø
ñ&ó ó ð&òRRò`ò"ò
ò
?ð ñLó ñLr9   