
    h                      @    S SK Jr  S SKJr  S SKJr  S SKJr   SS jrg)    )chain)Module)Dummy)FCodePrinterNc                    U=(       d    SSS.n[        U5      n[        5       n[        U [        5      (       a  [	        S5      e[        U[        X%/5      U 5      nUR                  U5      nSSR                  UR                  R                  5        VV	s/ sH  u  pSU< SS	R                  U	5      < 3PM      sn	n5      -  n
U
S
-  n
U
S-  n
U
SS	R                  U  Vs/ sH,  n[        USS5      (       d  M  [        UR                  5      PM.     sn5      -  -  n
UR                  UR                  U5      U
5      $ s  sn	nf s  snf )a_  Creates a ``Module`` instance and renders it as a string.

This generates Fortran source code for a module with the correct ``use`` statements.

Parameters
==========

definitions : iterable
    Passed to :class:`sympy.codegen.fnodes.Module`.
name : str
    Passed to :class:`sympy.codegen.fnodes.Module`.
declarations : iterable
    Passed to :class:`sympy.codegen.fnodes.Module`. It will be extended with
    use statements, 'implicit none' and public list generated from ``definitions``.
printer_settings : dict
    Passed to ``FCodePrinter`` (default: ``{'standard': 2003, 'source_format': 'free'}``).

i  free)standardsource_formatz7This function expects to construct a module on its own.z   %s
z   
zuse z, only: z, z   implicit none
z   private
z   public %s
nameN)r   r   
isinstancer   
ValueErrorr   doprintjoinmodule_usesitemsgetattrstrr   replace)definitionsr   declarationsprinter_settingsprinterdummymodfstrkvmodule_use_strnodes               L/var/www/html/shao/venv/lib/python3.13/site-packages/sympy/codegen/futils.pyrender_as_moduler!   	   s5   & (Vv+V+,GGE+v&&RSS
u\73[
AC??3D8?8K8K8Q8Q8S/U8S1 FG		RS/U8S/U "V VN**Nn$N&{3z{t^efjlrtx^yNC		N{3z){{{N<<.??/U 4{s   $D<E7E) N)		itertoolsr   sympy.codegen.fnodesr   sympy.core.symbolr   sympy.printing.fortranr   r!   r"       r    <module>r(      s     ' # / B@r'   