§
    «³Ùg�  ã                   óä   — d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dl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 d d	lmZ  ed
¦  «        Z ed¦  «        Zd„ Zd„ Ze	d„ ¦   «         ZdS )é    N)Úimport_module)Úccode)Úcompile_link_import_stringsÚhas_c)Ú	may_xfail)Úskip)	ÚFunctionDefinitionÚFunctionPrototypeÚVariableÚPointerÚrealÚ
AssignmentÚintegerÚ	CodeBlockÚWhile)ÚvoidÚPreIncrement)Úrender_as_source_fileÚcythonÚnumpyc                  ó¤  — t          dt          ¦  «        t          dt          ¦  «        t          dt          ¦  «        fx} \  }}}t          dt          ¦  «        }t	          ||k     t          ||         ||         ¦  «        t          |¦  «        g¦  «        }t          |                     d¬¦  «        |¦  «        }t          t          d| |¦  «        S )NÚnÚinpÚoutÚir   )ÚvalueÚour_test_function)r   r   r   r   r   r   r   r   Úas_Declarationr	   r   )Údeclarsr   r   r   r   ÚwhlÚbodys          ú[/granary/edev/quantum/lib/python3.11/site-packages/sympy/codegen/tests/test_applications.pyÚ	_mk_func1r#      s­   € Ý$ S­'Ñ2Ô2µG¸EÅ4Ñ4HÔ4HÍ'ÐRWÕY]ÑJ^ÔJ^Ð^Ð^€G‰kˆa��cÝ�•gÑÔ€AÝ
��!’•j  Q¤¨¨Q¬Ñ0Ô0µ,¸q±/´/ÐBÑ
CÔ
C€CÝ�Q×%Ò%¨AÐ%Ñ.Ô.°Ñ4Ô4€DÝ�dÐ$7¸À$ÑGÔGÐGó    c           	      óú   — t          | ddi¬¦  «        }t          t          j        | ¦  «        ¦  «        }t	          d|fdd                     d¦  «        dz                        || j        d	¬
¦  «        fg|¬¦  «        S )NÚcontractF)Úsettingszour_test_func.cz_our_test_func.pyxz#cython: language_level={}
Ú3zfcdef extern {declar}
def _{fname}({typ}[:] inp, {typ}[:] out):
    {fname}(inp.size, &inp[0], &out[0])Údouble)ÚdeclarÚfnameÚtyp©Ú	build_dir)r   r   r
   Úfrom_FunctionDefinitionr   ÚformatÚname)Úfuncdefr.   Úcode_strr*   s       r"   Ú_render_compile_importr4      s¥   € Ý$ W¸
ÀEÐ7JÐKÑKÔK€HÝÕ$Ô<¸WÑEÔEÑFÔF€FÝ&Ø	˜HÐ%Ø	Ð >× EÒ EÀcÑ JÔ Jð!Jñ!J÷ LRÊ6Ø+1¸¼È8ð LRñ L"ô L"ð	#ð(ð ðñ ô ð r$   c                  ó  — t           st          d¦  «         t          ¦   «         st          d¦  «         t          st          d¦  «         d } t	          j        ¦   «         5 }t          t          ¦   «         |¬¦  «        \  }} t                                d¦  «        }t            	                    |¦  «        }| 
                    ||¦  «         t                                ||¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nznumpy not installed.zNo C compiler found.zCython not found.r-   g      $@)Únpr   r   r   ÚtempfileÚTemporaryDirectoryr4   r#   ÚarangeÚ
empty_likeÚ_our_test_functionÚallclose)ÚinfoÚfolderÚmodr   r   s        r"   Útest_copying_functionr@   *   s-  € åð %ÝÐ#Ñ$Ô$Ð$Ý‰7Œ7ð %ÝÐ#Ñ$Ô$Ð$Ýð "ÝÐ Ñ!Ô!Ð!à€DÝ	Ô	$Ñ	&Ô	&ð %¨&Ý*­9©;¬;À&ÐIÑIÔI‰	ˆˆTÝ�iŠi˜‰oŒoˆÝ�mŠm˜CÑ Ô ˆØ×Ò˜s CÑ(Ô(Ð(Ý�{Š{˜3 Ñ$Ô$Ð$Ð$Ð$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   ÁBC5Ã5C9Ã<C9) r7   Úsympy.externalr   Úsympy.printing.codeprinterr   Úsympy.utilities._compilationr   r   Ú!sympy.utilities._compilation.utilr   Úsympy.testing.pytestr   Úsympy.codegen.astr	   r
   r   r   r   r   r   r   r   Úsympy.codegen.cnodesr   r   Úsympy.codegen.cutilsr   r   r6   r#   r4   r@   © r$   r"   ú<module>rJ      sn  ðð €€€à (Ð (Ð (Ð (Ð (Ð (Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6à	ˆ�xÑ	 Ô	 €Ø€]�7ÑÔ€ðHð Hð Hðð ð ð ð%ð %ñ „ð%ð %ð %r$   