§
    °³Ùg†r  ã                   óð
  — d dl Z d dlZd dlmZ d dlZd dlmZ d dlZd dlZ	d dl
mZ d dlmZ d dlZd dlmZ 	 d dlZd dlmZ d dlZ ej        e¦  «         dZn# e$ r d	ZY nw xY w	 d dlZd d
lmZ dZn# e$ r d	ZY nw xY werd dlZd„ ZdMd„ZdMd„Z ej        ed¦  «        d„ ¦   «         Z  ej        ed¦  «        d„ ¦   «         Z! ej        ed¦  «        d„ ¦   «         Z"d„ Z# ej        ed¦  «        d„ ¦   «         Z$ ej        ed¦  «        d„ ¦   «         Z% ej        ed¦  «        d„ ¦   «         Z&d„ Z' ej        ed¦  «        d„ ¦   «         Z(d„ Z) ej        ed¦  «        d„ ¦   «         Z* ej        ed¦  «        d„ ¦   «         Z+ ej        ed¦  «        d„ ¦   «         Z, ej        ed¦  «        d„ ¦   «         Z-d„ Z. ej        ed¦  «        d„ ¦   «         Z/ ej        ed¦  «        d „ ¦   «         Z0d!„ Z1 ej        ed¦  «        d"„ ¦   «         Z2 ej        ed¦  «        d#„ ¦   «         Z3 ej        ed¦  «        d$„ ¦   «         Z4e	j5        fd%„Z6 ej        ed¦  «        d&„ ¦   «         Z7 ej        ed¦  «         ej        ed'¦  «        d(„ ¦   «         ¦   «         Z8d)„ Z9 ej        ed¦  «        d*„ ¦   «         Z: ej        ed¦  «        d+„ ¦   «         Z; ej        ed¦  «        d,„ ¦   «         Z< ej        ed¦  «        d-„ ¦   «         Z= ej        ed¦  «        d.„ ¦   «         Z> ej        ed¦  «        d/„ ¦   «         Z?d0„ Z@d1„ ZAdNd2„ZB ej        ed¦  «        d3„ ¦   «         ZC ej        ed¦  «        d4„ ¦   «         ZD ej        ed¦  «        d5„ ¦   «         ZE ej        ed¦  «        d6„ ¦   «         ZF ej        ed¦  «        d7„ ¦   «         ZG ej        ed¦  «        d8„ ¦   «         ZH ej        ed¦  «        d9„ ¦   «         ZId:„ ZJ ej        ed¦  «        d;„ ¦   «         ZKd<„ ZL ej        ed¦  «         ej        ed'¦  «        d=„ ¦   «         ¦   «         ZMd>„ ZNd?„ ZOd@„ ZP ej        ed¦  «        dA„ ¦   «         ZQdB„ ZR ej        ed¦  «        dC„ ¦   «         ZS ej        ed¦  «        dD„ ¦   «         ZT ej        ed¦  «        dE„ ¦   «         ZU ej        edF¦  «        dG„ ¦   «         ZV ej        ed¦  «        dH„ ¦   «         ZW ej        ed¦  «         ej        e	jX        dI¦  «        dJ„ ¦   «         ¦   «         ZY ej        ed¦  «         ej        e	jX        dI¦  «         ej        e	jZ        dK¦  «        dL„ ¦   «         ¦   «         ¦   «         Z[dS )Oé    N)Úreduce)Úmul)Úraises)Ú
have_numpy)ÚSkipTest)Úclear_cacheTF)ÚLowLevelCallablec                 óZ   — 	 | j         j        S # t          $ r t          | ¦  «        cY S w xY w©N)ÚmemviewÚsizeÚAttributeErrorÚlen)Úarrs    úS/granary/edev/quantum/lib/python3.11/site-packages/symengine/tests/test_lambdify.pyÚ_sizer   !   s<   € ðØŒ{ÔÐøÝð ð ð Ý�3‰xŒxˆˆˆðøøøs   ‚ Ž*©*ç‚vIhÂ%<=c                 ó\   — | |z
  }||t          | ¦  «        z  z   }t          |¦  «        |k     S r   ©Úabs)ÚaÚbÚrtolÚatolÚdiscrÚtolers         r   Úiscloser   (   s0   € Ø�‰E€EØ�D�˜Q™œ‘KÑ€EÝˆu‰:Œ:˜ÒÐó    c                 ó¸   — t          | ¦  «        t          |¦  «        }}||k    rdS t          |¦  «        D ]#}t          | |         ||         ||¦  «        s dS Œ$dS )NFT)r   Úranger   )Úvec1Úvec2r   r   Ún1Ún2Úidxs          r   Úallcloser&   .   si   € Ý�4‰[Œ[�% ™+œ+ˆ€BØ	ˆR‚x€xØˆuå�R‰yŒyð ð ˆÝ�t˜C”y $ s¤)¨T°4Ñ8Ô8ð 	Ø�5�5ð	àˆ4r   zNumpy not installedc                  óö   — t          j        d¦  «        } | dz   | dz   | dz   d| z  d| | z  z  d| dz  z  g}t          j        dd|¦  «        }t          j        t          j        |d¬¦  «        |k    ¦  «        sJ ‚d S )NÚxé   é   é   ç      @ÚC©Úorder)ÚseÚsymbolsÚDenseMatrixÚnpÚallÚravel)r(   ÚexprsÚAs      r   Ú
test_ravelr8   9   s„   € å
Œ
�3‰Œ€AØˆq‰S�!�A‘#�q˜‘s˜A˜a™C  A a¡C¡¨!¨Q°©V©*Ð5€EÝ
Œ�q˜!˜UÑ#Ô#€AÝŒ6•"”(˜1 CÐ(Ñ(Ô(¨EÒ1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2r   c                  óN  — d} t          j        d¦  «        x}\  }}}t          j        |||z   |z   |dz  ||z
  |z  ||z  |z  gd¬¦  «        }t           |t	          | | t          |¦  «        z   ¦  «        ¦  «        d| z  dz   | dz  d| dz   z  | | dz   z  | dz   z  g¦  «        sJ ‚d S )	Né   úx y zr*   Úlambda©Úbackendr+   éÿÿÿÿr)   )r0   r1   ÚLambdifyr&   r    r   )ÚnÚargsr(   ÚyÚzÚLs         r   Útest_LambdifyrF   A   sÒ   € à	€AÝ”Z Ñ(Ô(Ð(€D‰7ˆ1ˆa�Ý
Œ�D˜1˜Q™3˜q™5 ! Q¡$¨¨1©¨a©°°1±°Q±Ð7ÀÐJÑJÔJ€AÝ�A�A•e˜A˜q¥ T¡¤™{Ñ+Ô+Ñ,Ô,Ø�q‘S˜‘U˜A˜q™D " a¨¡c¡(¨A¨q°©s©G°Q°q±S©MÐ:ñ<ô <ð <ð <ð <ð <ð <r   c                  óx   ‡ ‡‡‡— t          j        d¦  «        xŠ \  ŠŠŠt          t          ˆ ˆˆˆfd„¦  «         d S )Nr;   c                  óf   •— t          j        ‰ ‰‰z   ‰z   ‰dz  ‰‰z
  ‰z  ‰‰z  ‰z  gdd¬¦  «        S )Nr*   r<   r   ©r>   Ú	opt_level©r0   r@   ©rB   r(   rC   rD   s   €€€€r   ú<lambda>z.test_Lambdify_with_opt_level.<locals>.<lambda>L   sA   ø€ �bœk¨$°°1±°Q±¸¸1¹¸qÀ¹sÀA¹gÀqÈÁsÈ1ÁuÐ0MÐW_ÐklÐmÑmÔm€ r   )r0   r1   r   Ú	TypeErrorrL   s   @@@@r   Útest_Lambdify_with_opt_levelrO   I   sI   øøøø€ å”Z Ñ(Ô(Ð(€D‰7ˆ1ˆa�Ý
�9ÐmÐmÐmÐmÐmÐmÐmÑnÔnÐnÐnÐnr   c                 ód  — t          j        d¦  «        }t          j        | |dk     f||z  |z  df¦  «        } | |g|g¦  «        }t          j        dd¦  «        }t          j         || ¦  «        j        |dd¬¦  «        sJ ‚t          j         ||¦  «        j        |dz  dd¬¦  «        sJ ‚d S )	Nr(   r   Tr+   r:   ç›+¡†›„=çVçž¯Ò<)r   r   )r0   r1   Ú	Piecewiser3   Úlinspacer&   Úflat)r@   r(   ÚpÚfr   s        r   Ú_test_Lambdify_PiecewiserX   N   sº   € Ý
Œ
�3‰Œ€AÝ
Œ�q�b˜!˜Aš#�Y  1¡ Q¡¨ Ñ.Ô.€AØˆ�!��q�cÑÔ€AÝ
Œ+�a˜Ñ
Ô
€CÝŒ;�q�q˜#˜‘w”w”| S¨u¸5ÐAÑAÔAÐAÐAÐAÝŒ;�q�q˜‘v”v”{ C¨¡F°¸UÐCÑCÔCÐCÐCÐCÐCÐCr   c                  ób   — t          d„ ¦  «         t          j        rt          d„ ¦  «         d S d S )Nc                  ó$   — t          j        | ddiŽS ©Nr>   r<   rK   ©rB   s    r   rM   z)test_Lambdify_Piecewise.<locals>.<lambda>Y   s   € ­2¬;¸Ð+OÀhÐ+OÐ+O€ r   c                  ó$   — t          j        | ddiŽS ©Nr>   ÚllvmrK   r\   s    r   rM   z)test_Lambdify_Piecewise.<locals>.<lambda>[   s   € ­r¬{¸DÐ/QÈ&Ð/QÐ/Q€ r   )rX   r0   Ú	have_llvm© r   r   Útest_Lambdify_Piecewiserb   W   sC   € åÐOÐOÑPÔPÐPÝ	„|ð SÝ Ð!QÐ!QÑRÔRÐRÐRÐRðSð Sr   c                  óÂ  ‡‡‡‡— d} t          j        d¦  «        xŠ\  ŠŠŠt           j        s*t          t          ˆˆˆˆfd„¦  «         t          d¦  «        ‚t          j        ‰‰‰z   ‰z   ‰dz  ‰‰z
  ‰z  ‰‰z  ‰z  gd¬¦  «        }t           |t          | | t          ‰¦  «        z   ¦  «        ¦  «        d| z  dz   | dz  d	| dz   z  | | d
z   z  | dz   z  g¦  «        sJ ‚d S )Nr:   r;   c                  ód   •— t          j        ‰ ‰‰z   ‰z   ‰dz  ‰‰z
  ‰z  ‰‰z  ‰z  gd¬¦  «        S )Nr*   r_   r=   rK   rL   s   €€€€r   rM   z$test_Lambdify_LLVM.<locals>.<lambda>b   sH   ø€ ¥2¤;¨t°a¸±c¸!±e¸QÀ¹TØ78¸±s¸A±g¸qÀ¹sÀ1¹uð6Fà7=ð$?ñ $?ô $?€ r   úNo LLVM supportr*   r_   r=   r+   r?   r)   )
r0   r1   r`   r   Ú
ValueErrorr   r@   r&   r    r   )rA   rE   rB   r(   rC   rD   s     @@@@r   Útest_Lambdify_LLVMrg   ]   s+  øøøø€ à	€AÝ”Z Ñ(Ô(Ð(€D‰7ˆ1ˆa�ÝŒ<ð *Ý�zð ?ð ?ð ?ð ?ð ?ð ?ð ?ñ 	@ô 	@ð 	@õ Ð(Ñ)Ô)Ð)Ý
Œ�D˜1˜Q™3˜q™5 ! Q¡$¨¨1©¨a©°°1±°Q±Ð7ÀÐHÑHÔH€AÝ�A�A•e˜A˜q¥ T¡¤™{Ñ+Ô+Ñ,Ô,Ø�q‘S˜‘U˜A˜q™D " a¨¡c¡(¨A¨q°©s©G°Q°q±S©MÐ:ñ<ô <ð <ð <ð <ð <ð <r   c                  óì  ‡‡‡‡‡— t          d¦  «        D ]ÞŠd} t          j        d¦  «        xŠ\  ŠŠŠt          j        s+t	          t
          ˆˆˆˆˆfd„¦  «         t          d¦  «        ‚t          j        ‰‰‰z   ‰z   ‰dz  ‰‰z
  ‰z  ‰‰z  ‰z  gd‰¬¦  «        }t           |t          | | t          ‰¦  «        z   ¦  «        ¦  «        d	| z  d	z   | dz  d
| dz   z  | | dz   z  | dz   z  g¦  «        sJ ‚Œßd S )Né   r:   r;   c                  óf   •— t          j        ‰ ‰‰z   ‰z   ‰dz  ‰‰z
  ‰z  ‰‰z  ‰z  gd‰¬¦  «        S )Nr*   r_   rI   rK   )rB   rJ   r(   rC   rD   s   €€€€€r   rM   z3test_Lambdify_LLVM_with_opt_level.<locals>.<lambda>p   sM   ø€ ¥r¤{°4¸!¸A¹#¸a¹%ÀÀAÁØ;<¸Q¹3À¹'À1ÀQÁ3ÀqÁ5ð:Jà;AÈYð(Xñ (Xô (X€ r   re   r*   r_   rI   r+   r?   r)   )
r    r0   r1   r`   r   rf   r   r@   r&   r   )rA   rE   rB   rJ   r(   rC   rD   s     @@@@@r   Ú!test_Lambdify_LLVM_with_opt_levelrk   j   s`  øøøøø€ å˜1‘X”Xð 
@ð 
@ˆ	ØˆÝœ GÑ,Ô,Ð,ˆ‰wˆq�!�QÝŒ|ð 	.Ý•:ð  Xð  Xð  Xð  Xð  Xð  Xð  Xð  Xñ Yô Yð Yõ Ð,Ñ-Ô-Ð-ÝŒK˜˜q ™s 1™u a¨¡d¨Q¨q©S°!©G°Q°q±S¸±UÐ;ÀVÐW`ÐaÑaÔaˆÝ˜˜�%  1¥S¨¡Y¤Y¡;Ñ/Ô/Ñ0Ô0Ø˜1™˜Q™  1¡ b¨!¨A©#¡h°°1°Q±3±¸¸1¹±Ð>ñ@ô @ð 	@ð 	@ð 	@ð 	@ð
@ð 
@r   c                  ó¾   — t          j        d¦  «        x} \  }}t          j        ||z   dz   ||z  g||z  ||z  gg¦  «        }t          j        | |¦  «        }d„ }||fS )Núx yç      ð?c                 ó  — |\  }}t          | d         ||z   dz   z
  ¦  «        dk     sJ ‚t          | d         ||z  z
  ¦  «        dk     sJ ‚t          | d         ||z  z
  ¦  «        dk     sJ ‚t          | d         ||z  z
  ¦  «        dk     sJ ‚d S )N©r   r   rn   rR   ©r   r)   ©r)   r   ©r)   r)   r   r   )r7   ÚinpÚXÚYs       r   Úcheckz_get_2_to_2by2.<locals>.check~   s«   € Ø‰ˆˆ1Ý�1�T”7˜a ™c #™gÑ&Ñ'Ô'¨%Ò/Ð/Ð/Ð/Ý�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a ™dÑ#Ñ$Ô$ uÒ,Ð,Ð,Ð,Ð,Ð,r   )r0   r1   r3   Úarrayr@   )rB   r(   rC   r6   rE   rw   s         r   Ú_get_2_to_2by2ry   x   s|   € Ý”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaÝŒH�q˜‘s˜3‘w  !¡�nØ˜‘s˜A˜q™D�kð#ñ $ô $€Eå
Œ�D˜%Ñ Ô €Að-ð -ð -ð ˆeˆ8€Or   c                  ó¬   — t          ¦   «         \  } }dt          j        ddg¦  «        ddgfD ]&} | |¦  «        }|j        dk    sJ ‚ |||¦  «         Œ'd S )N)é   r:   r{   r:   g      @g      @©r*   r*   )ry   r3   rx   Úshape)Úlmbrw   rt   r7   s       r   Útest_Lambdify_2dimr   ‡   st   € åÑ!Ô!�J€CˆØ�œ ! Q Ñ(Ô(¨3°¨*Ð5ð ð ˆØˆC�‰HŒHˆØŒw˜&Ò Ð Ð Ð Øˆˆa�‰Œˆˆðð r   c                  ó   ‡
— t          j         dg d¢¦  «        x\  } }}}t          j        d¦  «        x}\  }}}||z   |z   t          j        |¦  «        t          j        |¦  «        z  t          j        |¦  «        z  g}| |z   |z   t          j        | ¦  «        t          j        |¦  «        z  t          j        |¦  «        z  gŠ
ˆ
fd„}	||||	fS )NÚd©r)   r*   r+   r;   c                 óZ   •— t          d„ t          ‰| ¦  «        D ¦   «         ¦  «        sJ ‚d S )Nc                 ó@   — g | ]\  }}t          ||z
  ¦  «        d k     ‘ŒS )r   r   )Ú.0Úx1Úx2s      r   ú
<listcomp>z-_get_array.<locals>.check.<locals>.<listcomp>—   s+   € ÐCÐCÐC©6¨2¨r•C˜˜2™‘J”J Ò&ÐCÐCÐCr   )r4   Úzip)r   Úrefs    €r   rw   z_get_array.<locals>.check–   s4   ø€ ÝÐCÐCµS¸¸c±]´]ÐCÑCÔCÑDÔDÐDÐDÐDÐDÐDr   )rx   r0   r1   ÚsinÚlogÚexpÚmath)ru   rv   ÚZrt   rB   r(   rC   rD   r6   rw   rŠ   s             @r   Ú
_get_arrayr�   �   sÒ   ø€ Ý”K  Y Y YÑ/Ô/Ð/�G€A€qˆ!ˆcÝ”Z Ñ(Ô(Ð(€D‰7ˆ1ˆa�Øˆq‰S�‰U•B”F˜1‘I”I�bœf Q™iœiÑ'­¬¨q©	¬	Ñ1Ð2€EØˆQ‰3ˆq‰5•$”(˜1‘+”+�dœh q™kœkÑ)­$¬(°1©+¬+Ñ5Ð
6€CðEð Eð Eð Eð Eà�˜˜UÐ"Ð"r   c                  ó‚   — t          ¦   «         \  } }}}t          j        | |¦  «        } ||¦  «        } ||¦  «         d S r   )r�   r0   r@   )rB   r6   rt   rw   r~   Úouts         r   Ú
test_arrayr“   ›   sC   € å(™lœlÑ€Dˆ%��eÝ
Œ+�d˜EÑ
"Ô
"€CØ
ˆ#ˆc‰(Œ(€CØ	€Eˆ#�J„J€J€J€Jr   c                  ó¤  ‡‡‡‡	‡
‡‡— t          ¦   «         \  } }Š}t          | ¦  «        dk    rt          |¦  «        dk    sJ ‚t          j        | |¦  «        Št	          j        t          |¦  «        ¦  «        } ‰‰|¬¦  «         t	          j        t          |¦  «        dz
  ¦  «        Št          t          ˆˆˆfd„¦  «         t	          j        t          |¦  «        t          ¬¦  «        Št          t          ˆˆˆfd„¦  «         t	          j        t          |¦  «        ¦  «        Š
d‰
j	        d	<   t          t          ˆˆˆ
fd
„¦  «         t	          j        dt          |¦  «        fd¬¦  «        }g d¢g d¢g d¢g d¢gŠ ‰t	          j
        ‰¦  «        |¬¦  «         t	          j        dt          |¦  «        df¦  «                             d¦  «        Š	t          t          ˆˆˆ	fd„¦  «         t	          j        t          |¦  «        dfd¬¦  «        }d‰_         ‰t	          j
        t	          j
        ‰¦  «        j        ¦  «        |¬¦  «         d S )Nr+   r*   ©r’   r)   c                  ó   •—  ‰‰ ‰¬¦  «        S ©Nr•   ra   )rt   r~   Ú	too_shorts   €€€r   rM   z1test_numpy_array_out_exceptions.<locals>.<lambda>­   ó   ø€    C¨YÐ 7Ñ 7Ô 7€ r   ©Údtypec                  ó   •—  ‰‰ ‰¬¦  «        S r—   ra   )rt   r~   Úwrong_dtypes   €€€r   rM   z1test_numpy_array_out_exceptions.<locals>.<lambda>°   s   ø€    C¨[Ð 9Ñ 9Ô 9€ r   FÚ	WRITEABLEc                  ó   •—  ‰‰ ‰¬¦  «        S r—   ra   )rt   r~   Ú	read_onlys   €€€r   rM   z1test_numpy_array_out_exceptions.<locals>.<lambda>´   r™   r   ri   r-   r.   r‚   ©ri   r{   é   )r:   é   é	   )é
   é   é   )r)   r*   r   c                  ó   •—  ‰‰ ‰¬¦  «        S r—   ra   )Ú	inp_bcastr~   Únoncontig_broadcasts   €€€r   rM   z1test_numpy_array_out_exceptions.<locals>.<lambda>»   s   ø€    IÐ3FÐ GÑ GÔ G€ r   ÚF)r�   r   r0   r@   r3   Úemptyr   rf   ÚintÚflagsrx   Ú	transposer/   ÚT)rB   r6   rw   Ú	all_rightÚall_right_broadcast_CÚall_right_broadcast_Frt   r©   r~   rª   r    r˜   r�   s         @@@@@@@r   Útest_numpy_array_out_exceptionsr´   £   s,  øøøøøøø€ å(™lœlÑ€Dˆ%��eÝˆt‰9Œ9˜Š>ˆ>�c %™jœj¨Ašo˜o˜o˜oÝ
Œ+�d˜EÑ
"Ô
"€Cå”�˜U™œÑ$Ô$€IØ€Cˆ�ÐÑÔÐå”�˜U™œ a™Ñ(Ô(€IÝ
�:Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9å”(�3˜u™:œ:­SÐ1Ñ1Ô1€KÝ
�:Ð:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;å”�˜U™œÑ$Ô$€IØ#(€I„O�KÑ Ý
�:Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9åœH a­¨U©¬ _¸CÐ@Ñ@Ô@ÐØ��˜I˜I˜I y y y°,°,°,Ð?€IØ€C�Œ�ÑÔÐ!6Ð7Ñ7Ô7Ð7åœ( A¥s¨5¡z¤z°1Ð#5Ñ6Ô6×@Ò@ÀÑKÔKÐÝ
�:ÐHÐHÐHÐHÐHÐHÑIÔIÐIåœH¥c¨%¡j¤j°! _¸CÐ@Ñ@Ô@ÐØ€C„IØ€C�Œ•”˜)Ñ$Ô$Ô&Ñ'Ô'Ð-BÐCÑCÔCÐCÐCÐCr   c                  ój  — t          j        t           j         t           j        ¦  «        } t          j        t          j        t          j        | ¦  «        t          j        | ¦  «        f¦  «        j        ¦  «        }|j        d         sJ ‚t          j
        d¦  «        \  }}t          j        ||gt          j        |dz  |dz  z   ¦  «        g¦  «        }t          j         ||d         |d         g¦  «        dg¦  «        sJ ‚ ||¦  «        }|j        dk    sJ ‚t          j        |d¦  «        sJ ‚d S )NÚC_CONTIGUOUSrm   r*   rp   rq   r)   )é2   r)   )r3   rT   ÚpiÚascontiguousarrayÚvstackÚcosr‹   r°   r®   r0   r1   r@   Úsqrtr&   r}   )r   rt   r(   rC   ÚdistanceÚdistss         r   Útest_broadcastr¿   Ã   s  € å
Œ•R”U�F�BœEÑ"Ô"€AÝ
Ô
�rœy­"¬&°©)¬)µR´V¸A±Y´YÐ)?Ñ@Ô@ÔBÑ
CÔ
C€CØŒ9�^Ô$Ð$Ð$Ð$ÝŒ:�eÑÔ�D€A€qÝŒ{˜A˜q˜6¥B¤G¨A¨q©D°1°a±4©KÑ$8Ô$8Ð#9Ñ:Ô:€HÝŒ;�x�x  T¤¨C°¬IÐ 6Ñ7Ô7¸!¸Ñ=Ô=Ð=Ð=Ð=ØˆH�S‰MŒM€EØŒ;˜'Ò!Ð!Ð!Ð!ÝŒ;�u˜aÑ Ô Ð Ð Ð Ð Ð r   c                  óR  — t          j        d¦  «                             d¦  «        } t          j        d¦  «        }t          j        |g|dz  |dz  g¦  «        }t          j         || d         g¦  «        ddg¦  «        sJ ‚ || ¦  «        }|j        d	k    sJ ‚|                     ¦   «         }t          |d
         dz
  ¦  «        dk     sJ ‚t          |d         dz
  ¦  «        dk     sJ ‚t          |d         dz
  ¦  «        dk     sJ ‚t          |d         dz
  ¦  «        dk     sJ ‚d S )Ng      (@)ri   r+   r)   r(   r*   r+   ©r   r*   ri   r£   )ri   r+   r)   r*   )r*   r)   r   é1   rQ   )r*   r)   r)   iW  )r?   r?   r   éy   )r?   r?   r)   i3  )
r3   ÚarangeÚreshaper0   r1   r@   r&   r}   Úsqueezer   )rt   r(   Úcbr’   s       r   Ú(test_broadcast_multiple_extra_dimensionsrÈ   Ð   s.  € å
Œ)�C‰.Œ.×
 Ò
  Ñ
+Ô
+€CÝ
Œ
�3‰Œ€AÝ	Œ�a�S˜1˜a™4  A¡˜,Ñ	'Ô	'€BÝŒ;�r�r˜3˜tœ9˜+‘”¨¨A¨Ñ/Ô/Ð/Ð/Ð/Ø
ˆ"ˆS‰'Œ'€CØŒ9˜Ò$Ð$Ð$Ð$Ø
�+Š+‰-Œ-€CÝˆs�7Œ|˜dÑ"Ñ#Ô# eÒ+Ð+Ð+Ð+Ýˆs�7Œ|˜dÑ"Ñ#Ô# eÒ+Ð+Ð+Ð+Ýˆs�9Œ~ Ñ%Ñ&Ô&¨Ò.Ð.Ð.Ð.Ýˆs�9Œ~ Ñ%Ñ&Ô&¨Ò.Ð.Ð.Ð.Ð.Ð.r   c                  ó„   — t          j        d¦  «        x} \  }}||z  |z   |||z  z  ||z  |z  |z   g}ddg}g d¢}| |||fS )Nrm   r¦   é   )é†   gj¾VÏ�»?i0  )r0   r1   )rB   r(   rC   r6   rt   rŠ   s         r   Ú_get_cse_exprsrÌ   ß   se   € Ý”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaØˆq‰S�1‰W�a˜˜1™‘g˜q ™s 1™u Q™wÐ'€EØˆrˆ(€CØ
'Ð
'Ð
'€CØ�˜˜SÐ Ð r   c                  ó”   — t          ¦   «         \  } }}}t          j        | |d¬¦  «        } ||¦  «        }t          ||¦  «        sJ ‚d S )NT©Úcse)rÌ   r0   r@   r&   )rB   r6   rt   rŠ   r~   r’   s         r   Útest_cserÐ   ç   sU   € å*Ñ,Ô,Ñ€Dˆ%��cÝ
Œ+�d˜E tÐ
,Ñ
,Ô
,€CØ
ˆ#ˆc‰(Œ(€CÝ�C˜ÑÔÐÐÐÐÐr   c                  ó@  ‡— t          j        d¦  «        Šˆfd„t          d¦  «        D ¦   «         } t          j        ‰g| ¦  «        }t          j        ‰g| d¬¦  «        }t	          j        g d¢¦  «        }t	          j         ||¦  «         ||¦  «        ¦  «        sJ ‚d S )Nr(   c                 ó>   •— g | ]}t          j        ‰¦  «        |z  ‘ŒS ra   )r0   r»   )r…   Úir(   s     €r   rˆ   z"test_cse_gh174.<locals>.<listcomp>ò   s%   ø€ Ð,Ð,Ð,˜a�RŒV�A‰YŒY˜‰\Ð,Ð,Ð,r   r{   TrÎ   r‚   )r0   r1   r    r@   r3   rx   r&   )ÚfuncsÚf_lmbÚf_cser   r(   s       @r   Útest_cse_gh174r×   ï   s›   ø€ å
Œ
�3‰Œ€AØ,Ð,Ð,Ð,¥5¨¡8¤8Ð,Ñ,Ô,€EÝŒK˜˜˜UÑ#Ô#€EÝŒK˜˜˜U¨Ð-Ñ-Ô-€EÝ
Œ���ÑÔ€AÝŒ;�u�u˜Q‘x”x   q¡¤Ñ*Ô*Ð*Ð*Ð*Ð*Ð*r   c                  óx  — t          j        dd¦  «        t          j        dd¦  «        }} t           j        }| d         | d         z   | d         z
  dz   | d         | d         z
  | d	         z   d
z   | d	         | d         z   | d         z
  dz   d| d	         z  | d         z   | d         z
  dz   d	| d	         z  | d         z   | d         z
  dz   d| d	         z  | d         z   | d         z
  dz   | d          d| d	         z  z   | d         z   dz   d| d         z  | d         z   d| d         z  z
  d| d         z  z
  dz   d	| d         z  | d         z
  | d         z   dz   d| d         z  | d         z
  | d         z   dz   |d         |d         z
  d|d         z  z   d|d         z  z   |d         z
  d|d         z  z
  |d         z   d|d         z  z   d|d         z  z   d|d         z  z   d|d         z  z   d|d         z  z    || d         ¦  «        z
   || d         ¦  «        z   d || d         ¦  «        z  z
  d || d         ¦  «        z  z
   || d         ¦  «        z   d || d         ¦  «        z  z    || d         ¦  «        z
  d || d         ¦  «        z  z
  d || d         ¦  «        z  z
  d || d         ¦  «        z  z
  d || d         ¦  «        z  z
  d || d         ¦  «        z  z
  |d          |d         z
  d|d         z  z
  d|d         z  z
  d	|d         z  z
  d|d         z  z
  d|d         z  z
  d	|d	         z  z
  d|d         z  z
  d	|d         z  z
  d|d         z  z
  d|d         z  z
  d|d         z  z
   || d         ¦  «        z    || d         ¦  «        z   d || d         ¦  «        z  z   d || d         ¦  «        z  z   d	 || d         ¦  «        z  z   d || d         ¦  «        z  z   d || d         ¦  «        z  z   d	 || d	         ¦  «        z  z   d || d         ¦  «        z  z   d	 || d         ¦  «        z  z   d || d         ¦  «        z  z   d || d         ¦  «        z  z   d || d         ¦  «        z  z   d|d         z  |d         z
  |d	         z
  |d         z
  d|d         z  z
  d	|d         z  z
  d|d         z  z
  d || d         ¦  «        z  z    || d         ¦  «        z    || d	         ¦  «        z    || d         ¦  «        z   d || d         ¦  «        z  z   d	 || d         ¦  «        z  z   d || d         ¦  «        z  z   |d          d|d         z  z
  d	|d         z  z
  d|d         z  z
  |d         z
   || d         ¦  «        z   d || d         ¦  «        z  z   d	 || d         ¦  «        z  z   d || d         ¦  «        z  z    || d         ¦  «        z   |d          d|d         z  z
  |d         z
  |d         z
  |d         z
  |d         z
  |d         z
  |d         z
  |d         z
   || d         ¦  «        z   d || d         ¦  «        z  z    || d         ¦  «        z    || d         ¦  «        z    || d         ¦  «        z    || d         ¦  «        z    || d         ¦  «        z    || d         ¦  «        z    || d         ¦  «        z   g}t          | ¦  «        t          |¦  «        z   |t	          j        t          | ¦  «        t          |¦  «        z   ¦  «        fS )Nr(   é   rV   r   r)   ri   gÖûZT B@r*   r+   gS_¶†jR5@r{   r¢   gy»/_Í#@r:   gDö‚¿02@r£   gß2›ð/Þ8@r¤   gEªÑ ï=@r¥   gëCŒ|S�<@r¦   g¼ßmW8@@r§   gÕ¹ØèA@rÊ   g™ÝØ*‰B@é   éûÿÿÿ)r0   Úsymarrayr�   Útupler3   Úonesr   )r(   rV   r�   r6   s       r   Ú_get_cse_exprs_bigrß   ù   s9  € åŒ;�s˜BÑÔ¥¤¨S°"Ñ!5Ô!5€q€AÝ
Œ&€Cà	ˆ!Œˆq�Œt‰�a˜”dÑ˜_Ñ,¨a°¬d°Q°q´T©k¸A¸a¼DÑ.@ÐCSÑ.SØ	ˆ!Œˆq�Œt‰�a˜”dÑ˜_Ñ,¨a°°!´©f°q¸´t©m¸aÀ¼dÑ.BÀ_Ñ.TØ	ˆ!ˆAŒ$‰��1”‰˜˜!œÑÐ/Ñ/°°1°Q´4±¸!¸A¼$±ÀÀ1ÄÑ1EÐHXÑ1XØ	
ˆ2Œˆ��1�Q”4‘‰˜!˜Aœ$ÑÐ!1Ñ1°1°Q°q´T±6¸A¸b¼E±>ÀAÀaÈÄdÁFÑ3JÈQÈqÐQRÌtÉVÑ3SÐVfÑ3fØ	ˆ!ˆAŒ$‰��2”‰˜˜1œÑÐ 0Ñ0°!°A°a´D±&¸1¸R¼5±.À1ÀQÄ4Ñ2GÐJZÑ2ZØ	
ˆ1Œ��!”‰�q˜˜2œ‘wÑ	  1 R¤5¡Ñ	(¨1¨R¬5Ñ	0°1°Q°r´U±7Ñ	:¸Q¸q¼TÑ	AÀAÀaÈÄdÁFÑ	JÈQÈqÐQRÌtÉVÑ	SÐVWÐXYÐZ[ÔX\ÑV\Ñ	\Ø	
ˆ1ˆQŒ4‰ñ
Ø�A�a”D‘&ñ
Ø˜3˜q œt™9œ9ñ
%Ø'* s¨1¨Q¬4¡y¤yñ
1Ø34°S°S¸¸2¼±Z´Z±<ñ
@ØBCÀCÀCÈÈ"ÌÁJÄJÁ,ñ
OØQTÐQTÐUVÐWYÔUZÑQ[ÔQ[ñ
\à	
ˆ3ˆ3ˆq�Œu‰:Œ:‰ñ
à˜˜A˜aœD™	œ	ñ
"à$% c c¨!¨A¬$¡i¤i¡Kñ
0à23°C°C¸¸!¼±I´I±+ñ
>à@AÀ#À#ÀaÈÄdÁ)Ä)Áñ
LàNOÐPSÐPSÐTUÐVWÔTXÑPYÔPYÉkñ
Zà\]Ð^aÐ^aÐbcÐdeÔbfÑ^gÔ^gÑ\gñ
hð ˆAŒ$ˆ��1”‰˜˜1˜Rœ5™Ñ	  1 Q r¤U¡7Ñ	*¨Q¨q°¬u©WÑ	4°q¸¸2¼±wÑ	>ÀÀ1ÀQÄ4ÁÑ	GÈ!ÈAÈaÌDÉ&Ñ	PÐSTÐUVÐWXÔUYÑSYÑ	YÐ\]Ð^_Ð`aÔ^bÑ\bÑ	bØ	
ˆ1ˆQŒ4‰ñ
Ø�A�a”D‘&ñ
Ø˜a œd™7ñ
#Ø%( S¨¨1¬¡Y¤Yñ
/Ø14°°Q°q´T±´ñ
;Ø=?ÀÀÀAÀbÄEÁ
Ä
¹]ñ
KØMNÈsÈsÐSTÐUWÔSXÉzÌzÉ\ñ
Zà	
ˆ3ˆ3ˆq�Œu‰:Œ:‰ñ
à˜#˜#˜a œe™*œ*™ñ
%à'(¨¨¨Q¨q¬T©¬¡{ñ
3à56°s°s¸1¸Q¼4±y´y±[ñ
AàCDÀSÀSÈÈ1ÌÁYÄYÁ;ñ
OàQRÐSVÐSVÐWXÐYZÔW[ÑS\ÔS\ÑQ\ñ
]ð 
ˆ3ˆ3ˆq�Œt‰9Œ9‰ñ
ð ˜˜˜Q˜qœT™œ‘{ñ
#ð &(¨¨¨A¨a¬D©	¬	¡\ñ
2ð 
ˆAˆbŒE‰�A�a”D‰˜1˜Qœ4Ñ	 ! A¤$Ñ	&¨¨1¨Q¬4©Ñ	/°!°A°a´D±&Ñ	8¸1¸Q¸q¼T¹6Ñ	AÀAÀcÀcÈ!ÈBÌ%ÁjÄjÁLÑ	PÐSVÐSVÐWXÐYZÔW[ÑS\ÔS\Ñ	\Ð_bÐ_bÐcdÐefÔcgÑ_hÔ_hÑ	hØ	ˆˆQˆqŒT‰Œñ
Ø�s�s˜1˜Qœ4‘y”y‘[ñ
!Ø#$ S S¨¨1¬¡Y¤Y¡;ñ
/Ø12°3°3°q¸´t±9´9±ñ
=à	
ˆ1Œˆ��!�B”%‘‰˜!˜A˜bœE™'Ñ! A a¨¤e¡GÑ+¨a°¬dÑ2°S°S¸¸1¼±Y´YÑ>ÀÀ3À3ÀqÈÄuÁ:Ä:ÁÑMÐPQÐRUÐRUÐVWÐXZÔV[ÑR\ÔR\ÑP\Ñ\Ð_`ÐadÐadÐefÐgiÔejÑakÔakÑ_kÑkÐnqÐnqÐrsÐtuÔrvÑnwÔnwÑwØ
ˆBŒ%ˆ�!�A�b”E‘'Ñ	˜A˜bœEÑ	! A b¤EÑ	)¨A¨a¬DÑ	0°1°Q´4Ñ	7¸!¸A¼$Ñ	>ÀÀ1ÄÑ	EÈÈ!ÌÑ	LÈsÈsÐSTÐUWÔSXÉzÌzÑ	YØ	
ˆ3ˆ3ˆq�Œu‰:Œ:‰ñ
Ø˜˜A˜bœE™
œ
ñ
#Ø%( S¨¨2¬¡Z¤Zñ
0Ø25°#°a¸´d±)´)ñ
<Ø>A¸cÀ!ÀAÄ$¹i¼iñ
HØJMÈ#ÈaÐPQÌdÉ)Ì)ñ
TØVYÐVYÐZ[Ð\]ÔZ^ÑV_ÔV_ñ
`ØbeÐbeÐfgÐhiÔfjÑbkÔbkñ
lð!€Eõ& �‰8Œ8•e˜A‘h”hÑ ¥r¤w­s°1©v¬v½¸A¹¼©Ñ'?Ô'?Ð?Ð?r   c                  ó´   ‡‡— t          ¦   «         \  Š} Št          j        ‰| d¬¦  «        } |‰¦  «        }ˆˆfd„| D ¦   «         }t          ||¦  «        sJ ‚d S )NTrÎ   c           
      óp   •— g | ]2}|                      t          t          ‰‰¦  «        ¦  «        ¦  «        ‘Œ3S ra   )ÚxreplaceÚdictr‰   )r…   ÚexprrB   rt   s     €€r   rˆ   z test_cse_big.<locals>.<listcomp>  s5   ø€ Ð
AÐ
AÐ
A°4ˆ4�=Š=��c $¨™nœnÑ-Ô-Ñ.Ô.Ð
AÐ
AÐ
Ar   )rß   r0   r@   r&   )r6   r~   r’   rŠ   rB   rt   s       @@r   Útest_cse_bigrå     sq   øø€ å)Ñ+Ô+Ñ€Dˆ%�Ý
Œ+�d˜E tÐ
,Ñ
,Ô
,€CØ
ˆ#ˆc‰(Œ(€CØ
AÐ
AÐ
AÐ
AÐ
A¸5Ð
AÑ
AÔ
A€CÝ�C˜ÑÔÐÐÐÐÐr   c                  ó2  — d} t          j        d| z  ¦  «                             | df¦  «        }|j        d         sJ ‚t	          ¦   «         \  }} ||¦  «        }|j        dk    sJ ‚t          | ¦  «        D ] } |||df         ||d d …f         ¦  «         Œ!d S )Nr+   r*   r¶   ©r+   r*   r*   .)r3   rÄ   rÅ   r®   ry   r}   r    ©rA   rt   r~   rw   r7   rÓ   s         r   Útest_broadcast_cré     s´   € à	€AÝ
Œ)�A�a‘C‰.Œ.×
 Ò
  ! Q Ñ
(Ô
(€CØŒ9�^Ô$Ð$Ð$Ð$ÝÑ!Ô!�J€CˆØˆˆC‰Œ€AØŒ7�iÒÐÐÐÝ�1‰XŒXð $ð $ˆØˆˆa��3�Œi˜˜Q   ˜TœÑ#Ô#Ð#Ð#ð$ð $r   c                  ó  — d} t          j        d| z  ¦  «                             | dfd¬¦  «        }t          ¦   «         \  }} ||¦  «        }|j        dk    sJ ‚t          | ¦  «        D ] } |||df         ||d d …f         ¦  «         Œ!d S )Nr+   r*   r«   r.   rç   .)r3   rÄ   rÅ   ry   r}   r    rè   s         r   Útest_broadcast_fortranrë   (  s¦   € à	€AÝ
Œ)�A�a‘C‰.Œ.×
 Ò
  ! Q ¨sÐ
 Ñ
3Ô
3€CÝÑ!Ô!�J€CˆØˆˆC‰Œ€AØŒ7�iÒÐÐÐÝ�1‰XŒXð $ð $ˆØˆˆa��3�Œi˜˜Q   ˜TœÑ#Ô#Ð#Ð#ð$ð $r   c                 ó¾   — t          j        d¦  «        }|f} | dd|dz   |dz   |dz   d|z  d||z  z  d|dz  z  g¦  «        }t          j        ||¦  «        }d„ }||fS )Nr(   r*   r+   r)   r,   c                 ó¦  — |\  }t          | d         |dz   z
  ¦  «        dk     sJ ‚t          | d         |dz   z
  ¦  «        dk     sJ ‚t          | d         |dz   z
  ¦  «        dk     sJ ‚t          | d         d|z  z
  ¦  «        dk     sJ ‚t          | d	         d||z  z  z
  ¦  «        dk     sJ ‚t          | d
         d|dz  z  z
  ¦  «        dk     sJ ‚d S )Nrp   r)   rR   rq   r*   rÁ   r+   rr   rs   )r)   r*   r,   r   )r7   rt   ru   s      r   rw   z$_get_1_to_2by3_matrix.<locals>.check:  s÷   € Ø‰ˆÝ�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a ™c‘?Ñ#Ô# eÒ+Ð+Ð+Ð+Ý�1�T”7˜a  1¡™gÑ&Ñ'Ô'¨%Ò/Ð/Ð/Ð/Ý�1�T”7˜a  C¡™jÑ)Ñ*Ô*¨UÒ2Ð2Ð2Ð2Ð2Ð2r   )r0   r1   r@   )ÚMtxr(   rB   r6   rE   rw   s         r   Ú_get_1_to_2by3_matrixrï   3  sˆ   € Ý
Œ
�3‰Œ€AØˆ2€DØˆC��1�q˜‘s˜A˜a™C  1¡Ø˜‘s˜A˜q ™s™G Q¨¨3©¡Zð1ñ 2ô 2€Eå
Œ�D˜%Ñ Ô €Að3ð 3ð 3ð ˆeˆ8€Or   c                  óX   — t          ¦   «         \  } }dg} | | |¦  «        |¦  «         d S )Nr:   )rï   )rE   rw   rt   s      r   Útest_2dim_Matrixrñ   E  s8   € å$Ñ&Ô&�H€A€uØˆ#€CØ	€Eˆ!ˆ!ˆC‰&Œ&�#ÑÔÐÐÐr   zSymPy not installedc                  ól   — dd l } t          | j        ¦  «        \  }}dg} | ||¦  «        |¦  «         d S )Nr   r:   )Úsympyrï   ÚMatrix)ÚsprE   rw   rt   s       r   Útest_2dim_Matrix__sympyrö   L  sJ   € ð ÐÐÐÝ$ R¤YÑ/Ô/�H€A€uØˆ#€CØ	€Eˆ!ˆ!ˆC‰&Œ&�#ÑÔÐÐÐr   c                  óÒ   — t          ¦   «         \  } }t          dd¦  «        } | |¦  «        }t          t          |¦  «        ¦  «        D ]} |||df         ||         f¦  «         Œd S )Nr)   r{   .)rï   r    r   )rE   rw   rt   r’   rÓ   s        r   Ú_test_2dim_Matrix_broadcastrø   V  ss   € Ý$Ñ&Ô&�H€A€uÝ
��1‰+Œ+€CØ
ˆ!ˆC‰&Œ&€CÝ•3�s‘8”8‰_Œ_ð &ð &ˆØˆˆc�!�S�&Œk˜C œF˜9Ñ%Ô%Ð%Ð%ð&ð &r   c                  ó"   — t          ¦   «          d S r   )rø   ra   r   r   Útest_2dim_Matrix_broadcastrú   _  s   € åÑ!Ô!Ð!Ð!Ð!r   c                  óp  — t          ¦   «         \  } }t          j        dd¦  «                             d¦  «        } | |¦  «        }|j        dk    sJ ‚t          j        t          d¦  «        t          d¦  «        t          d¦  «        ¦  «        D ]&\  }}} |||||df         ||||f         f¦  «         Œ'd S )	Nr)   rÃ   r¡   )ri   r{   r¢   r*   r+   ri   r{   r¢   .)rï   r3   rÄ   rÅ   r}   Ú	itertoolsÚproductr    )rE   rw   rt   r’   rÓ   ÚjÚks          r   Ú-test_2dim_Matrix_broadcast_multiple_extra_dimr   d  s¾   € å$Ñ&Ô&�H€A€uÝ
Œ)�A�wÑ
Ô
×
'Ò
'¨	Ñ
2Ô
2€CØ
ˆ!ˆC‰&Œ&€CØŒ9˜Ò'Ð'Ð'Ð'ÝÔ$¥U¨1¡X¤X­u°Q©x¬x½¸q¹¼ÑBÔBð 2ð 2‰ˆˆ1ˆaØˆˆc�!�Q˜˜3�,Ô # a¨¨A g¤, Ñ1Ô1Ð1Ð1ð2ð 2r   c                  ó´  — t          j        d¦  «        \  } }t          j        dd| |g¦  «        }t          j        dd| dz  |z  | dz   |dz   z  g¦  «        }|                     |¦  «        }t          j        ||¦  «        }t          j        d¦  «        }dx}\  }}	 |||¬¦  «         t          j        |d|dz  z  |	z  |dz  g|	dz   |dz   gg¦  «        sJ ‚d S )Núx, yr*   r)   r+   r|   ©r:   r¦   r•   )r0   r1   r2   Újacobianr@   r3   r¬   r&   )
r(   rC   rB   ÚvÚjacr~   r’   rt   ru   rv   s
             r   Útest_jacobianr  n  s  € åŒ:�fÑÔ�D€A€qÝŒ>˜!˜Q  A Ñ'Ô'€DÝ
Œ�q˜!˜a ™d Q™h¨¨1©¨q°©s©Ð4Ñ5Ô5€AØ
�*Š*�TÑ
Ô
€CÝ
Œ+�d˜CÑ
 Ô
 €CÝ
Œ(�6Ñ
Ô
€CØÐ€C‰$ˆ!ˆQØ€Cˆ�ÐÑÔÐÝŒ;�s˜a ! Q¡$™h¨™l¨A¨q©DÐ1Ø !™e Q¨¡U˜^ð-ñ .ô .ð .ð .ð .ð .ð .r   c                  ó&  — t          j        d¦  «        \  } }t          j        dd| |g¦  «        }t          j        dd| dz  |z  | dz   |dz   z  g¦  «        }|                     |¦  «        }t          j        ||¦  «        }t          j        d¦  «        }d}d}d}	t          j        |||	g¦  «        }
 ||
|¬	¦  «         t          |||	g¦  «        D ]?\  }\  }}t          j	        ||d
f         d|dz  z  |z  |dz  g|dz   |dz   gg¦  «        sJ ‚Œ@d S )Nr  r*   r)   r+   rç   r  ©r£   rÊ   ©r{   r¤   r•   .)
r0   r1   r2   r  r@   r3   r¬   rx   Ú	enumerater&   )r(   rC   rB   r  r  r~   r’   Úinp0Úinp1Úinp2rt   r%   ru   rv   s                 r   Útest_jacobian__broadcastr  |  sK  € åŒ:�fÑÔ�D€A€qÝŒ>˜!˜Q  A Ñ'Ô'€DÝ
Œ�q˜!˜a ™d Q™h¨¨1©¨q°©s©Ð4Ñ5Ô5€AØ
�*Š*�TÑ
Ô
€CÝ
Œ+�d˜CÑ
 Ô
 €CÝ
Œ(�9Ñ
Ô
€CØ€DØ€DØ€DÝ
Œ(�D˜$ Ð%Ñ
&Ô
&€CØ€Cˆ�ÐÑÔÐÝ  $¨¨dÐ!3Ñ4Ô4ð <ð <‰ˆ‰Vˆa�ÝŒ{˜3˜s C˜xœ=¨A°°1±©H°q©L¸!¸Q¹$Ð+?Ø,-°©E°1°q±5¨>ð+;ñ <ô <ð 	<ð 	<ð 	<ð 	<ð<ð <r   c                  ó&  — t          j        d¦  «        } t          j        | g|  g¦  «        }t          j        d¦  «        } ||¦  «        }t          j        |ddg¦  «        sJ ‚t          |¦  «        dk    sJ ‚t          j        |d¦  «        sJ ‚d S )Nr(   r*   r)   r?   )r0   r1   r@   r3   rÞ   r&   r   )r(   r~   rt   r’   s       r   Útest_excessive_argsr  Ž  s�   € å
Œ
�3‰Œ€AÝ
Œ+�q�c˜Q˜B˜4Ñ
 Ô
 €CÝ
Œ'�!‰*Œ*€CØ
ˆ#ˆc‰(Œ(€CÝŒ;�s˜Q ˜FÑ#Ô#Ð#Ð#Ð#Ýˆs‰8Œ8�qŠ=ˆ=ˆ=ˆ=ÝŒ;�s˜BÑÔÐÐÐÐÐr   c                  óL  — t          j        d¦  «        } t          j        | g|  g¦  «        }t          j        d¦  «        }t          j        d¦  «        } |||d |j        …         ¬¦  «        }t          j        |ddg¦  «        sJ ‚|d         dk    sJ ‚|d         dk    sJ ‚d S )Nr(   r)   r*   r•   r   r?   )r0   r1   r@   r3   rÞ   r   r&   )r(   r~   rt   r’   Ú_s        r   Útest_excessive_outr  ™  s    € å
Œ
�3‰Œ€AÝ
Œ+�q�c˜Q˜B˜4Ñ
 Ô
 €CÝ
Œ'�!‰*Œ*€CÝ
Œ'�!‰*Œ*€CØˆˆC�S˜˜#œ(˜”^Ð$Ñ$Ô$€AÝŒ;�s˜Q ˜FÑ#Ô#Ð#Ð#Ð#ØˆqŒ6�RŠ<ˆ<ˆ<ˆ<ØˆqŒ6�QŠ;ˆ;ˆ;ˆ;ˆ;ˆ;r   c                 ó2   — t          j        d„ | D ¦   «         Ž S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   ©r    )r…   Údims     r   ú	<genexpr>zall_indices.<locals>.<genexpr>¦  s(   è è € Ð;Ð;¨c�u S™zœzÐ;Ð;Ð;Ð;Ð;Ð;r   )rü   rý   )r}   s    r   Úall_indicesr  ¥  s   € ÝÔÐ;Ð;°UÐ;Ñ;Ô;Ð<Ð<r   c                 óÂ   — 	 |                       ¦   «         S # t          $ r> g }t          | j        j        ¦  «        D ]}|                     | |         ¦  «         Œ|cY S w xY wr   )r5   r   r  r   r}   Úappend)r7   rE   r%   s      r   Úravelledr  ©  sr   € ðØ�wŠw‰yŒyÐøÝð ð ð ØˆÝ˜qœyœÑ/Ô/ð 	ð 	ˆCØ�HŠH�Q�s”VÑÔÐÐØˆˆˆð	øøøs   ‚ –AAÁAc                 óÎ   — t          j        d¦  «        x}\  }}|||z  z   ||z  g||z  |z  t          j        |¦  «        ||z  z   gg}t          j        ||| ¬¦  «        }d„ }||fS )Nrm   ©Úrealc                 óf  — |\  }}| j         dd …         dk    sJ ‚|||z  z   ||z  ||z  |z  t          j        |¦  «        ||z  z   g}t          | ¦  «        }t	          |¦  «        }t          |dz  ¦  «        D ]8}t          d¦  «        D ]&}t          ||dz  |z            ||         ¦  «        sJ ‚Œ'Œ9d S )Néþÿÿÿr|   ri   )r}   Úcmathr¼   r  r   r    r   )	r7   rt   ru   rv   rŠ   ÚravAr   rÓ   rþ   s	            r   rw   z"_get_2_to_2by2_list.<locals>.check¸  sÕ   € Ø‰ˆˆ1ØŒw�r�s�sŒ|˜vÒ%Ð%Ð%Ð%Ø�1�Q‘3‰w˜˜!™˜Q˜q™S ™U¥E¤J¨q¡M¤M°!°A±#Ñ$5Ð6ˆÝ˜‰{Œ{ˆÝ�T‰{Œ{ˆÝ�t˜Q‘w‘”ð 	6ð 	6ˆAÝ˜1‘X”Xð 6ð 6�Ý˜t A a¡C¨!¡Gœ}¨c°!¬fÑ5Ô5Ð5Ð5Ð5Ð5ð6ð	6ð 	6r   )r0   r1   r¼   r@   )r   rB   r(   rC   r6   rE   rw   s          r   Ú_get_2_to_2by2_listr%  ³  s�   € Ý”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaØ�!�A‘#‰g�q˜‘sˆ^˜a ™c !™e¥R¤W¨Q¡Z¤Z°°!±¡^Ð4Ð5€EÝ
Œ�D˜% dÐ+Ñ+Ô+€Að6ð 6ð 6ð ˆeˆ8€Or   c                  ó^   — t          ¦   «         \  } }ddg} | |¦  «        } |||¦  «         d S )NrÊ   é   )r%  )rE   rw   rt   r7   s       r   Útest_2_to_2by2r(  Ä  s:   € å"Ñ$Ô$�H€A€uØˆrˆ(€CØ	ˆˆ#‰Œ€AØ	€Eˆ!ˆS�M„M€M€M€Mr   c                  óæ   — t          ¦   «         \  } }t          j        ddg¦  «        }t          j        d¦  «        }|                      ||¦  «          ||                     d¦  «        |¦  «         d S )Ng      *@g      1@ri   r|   )r%  r3   rx   r¬   Úunsafe_realrÅ   ©rE   rw   rt   r’   s       r   Útest_unsafe_realr,  Ì  si   € å"Ñ$Ô$�H€A€uÝ
Œ(�C˜�:Ñ
Ô
€CÝ
Œ(�1‰+Œ+€CØ‡M‚M�#�sÑÔÐØ	€Eˆ#�+Š+�fÑ
Ô
˜sÑ#Ô#Ð#Ð#Ð#r   c                  ó,  — t          d¬¦  «        \  } }| j        rJ ‚t          j        ddgt          j        ¬¦  «        }t          j        dt          j        ¬¦  «        }|                      ||¦  «          ||                     d¦  «        |¦  «         d S )NFr  y      *@      &@y      @      @rš   ri   r|   )r%  r   r3   rx   Ú
complex128r¬   Úunsafe_complexrÅ   r+  s       r   Útest_unsafe_complexr0  Õ  sŽ   € å"¨Ð.Ñ.Ô.�H€A€uØŒvÐÐÐÝ
Œ(�F˜D�>­¬Ð
7Ñ
7Ô
7€CÝ
Œ(�1�BœMÐ
*Ñ
*Ô
*€CØ×Ò�S˜#ÑÔÐØ	€Eˆ#�+Š+�fÑ
Ô
˜sÑ#Ô#Ð#Ð#Ð#r   c                  óØ   — t          ¦   «         \  } }}}t          j        | |¦  «        }t          j        |d         g|d         f|d         g¦  «        } ||¦  «        } ||¦  «         d S )Nr   r)   r*   )r�   r0   r@   rü   Úchain)rB   r6   rt   rw   rE   r7   s         r   Útest_itertools_chainr3  ß  sh   € å(™lœlÑ€Dˆ%��eÝ
Œ�D˜%Ñ Ô €AÝ
Œ/˜3˜qœ6˜( S¨¤V I°°A´¨xÑ
8Ô
8€CØ	ˆˆ#‰Œ€AØ	€Eˆ!�H„H€H€H€Hr   c                  ó¶   — t          j        d¦  «        } t          j        | gd| z   gd¬¦  «        }t           |dg¦  «        d         dz
  ¦  «        dk     sJ ‚d S )	Nr(   ù              ð?Fr  ù      &@      *@r   y      &@      ,@rR   ©r0   ÚSymbolr@   r   ©r(   r~   s     r   Útest_complex_1r:  è  st   € å
Œ	�#‰Œ€AÝ
Œ+�q�c˜B ™F˜8¨%Ð
0Ñ
0Ô
0€CÝˆsˆs�F�8‰}Œ}˜QÔØññ ô Ø"ò#ð #ð #ð #ð #ð #r   c                  ó¼   — t          j        d¦  «        } t          j        | gd| z   dz
  gd¬¦  «        }t           |dg¦  «        d         dz
  ¦  «        d	k     sJ ‚d S )
Nr(   r+   r5  Fr  r6  r   y      ,@      (@rR   r7  r9  s     r   Útest_complex_2r<  ð  sx   € å
Œ	�#‰Œ€AÝ
Œ+�q�c˜A ™E B™J˜<¨eÐ
4Ñ
4Ô
4€CÝˆsˆs�F�8‰}Œ}˜QÔØññ ô Ø"ò#ð #ð #ð #ð #ð #r   c            
      óÐ  — d} t          j        d| ¦  «        }d\  }}}d„ t          ||¦  «        D ¦   «         }t          j        |Ž ||d         z   dg}t          j        ||¦  «        }t          j        ||| | z  z   ¦  «                             | | f¦  «        } ||¦  «        }	t          j        | df¦  «        }
t          j        ||| z   t
          j	        ¬¦  «        }t          | ¦  «        D ]Z}|                     t          j        || |z  z   || |d	z   z  z   t
          j	        ¬¦  «        ¦  «        |
|df<   || |z  z   |z   |
|d	f<   Œ[d|
d d …d
f<   t          j        |	|
¦  «        sJ ‚d S )Ni  r(   )r'  é*   rÊ   c                 ó   — g | ]
\  }}||z  ‘ŒS ra   ra   )r…   rÓ   Úss      r   rˆ   z+test_more_than_255_args.<locals>.<listcomp>   s    € Ð-Ð-Ð-‘T�Q˜ˆQˆq‰SÐ-Ð-Ð-r   r   i�ÿÿÿr+   rš   r)   r*   )r0   rÜ   r  Úaddr@   r3   rÄ   rÅ   r¬   Úint64r    Údotr&   )rA   r(   rV   ÚqÚrÚtermsr6   ÚcallbackÚ	input_arrr’   rŠ   ÚcoeffsrÓ   s                r   Útest_more_than_255_argsrJ  ø  ss  € ð
 	€AÝ
Œ�C˜ÑÔ€AØ�G€A€qˆ!Ø-Ð-�Y q¨!™_œ_Ð-Ñ-Ô-€EÝŒV�Uˆ^˜Q  1¤™X sÐ+€EÝŒ{˜1˜eÑ$Ô$€HÝ”	˜!˜Q  1¡™WÑ%Ô%×-Ò-¨q°!¨fÑ5Ô5€IØ
ˆ(�9Ñ
Ô
€CÝ
Œ(�A�q�6Ñ
Ô
€CÝŒY�q˜!˜a™%¥r¤xÐ0Ñ0Ô0€FÝ�1‰XŒXð  ð  ˆØ—J’J�rœy¨¨Q¨q©S©°!°a¸¸1¹±g±+ÅRÄXÐNÑNÔNÑOÔOˆˆAˆqˆD‰	Ø˜˜!™‘G˜a‘KˆˆAˆqˆD‰	ˆ	Ø€Cˆˆˆˆ1ˆ�IÝŒ;�s˜CÑ Ô Ð Ð Ð Ð Ð r   c                 ó  — t          j        d¦  «        \  }}t          j        dd||g¦  «        }t          j        dd|dz  |z  |dz   |dz   z  g¦  «        }|                     |¦  «        }|||z   ||dz   |dz   z  g} | |g|¢R Ž }d}d}	d}
t	          j        ||	|
g¦  «        } ||¦  «        \  }}}}t          ||	|
g¦  «        D ]½\  }\  }}t	          j        ||df         d|dz  z  |z  |dz  g|dz   |dz   gg¦  «        sJ ‚t	          j        ||df         ||z   g¦  «        sJ ‚t	          j        ||df         |dz  |z  g|dz   |dz   z  gg¦  «        sJ ‚t	          j        ||df         |dz   |dz   z  g¦  «        sJ ‚Œ¾d S )	Nr  r*   r)   r+   r  r	  r
  .)r0   r1   r2   r  r3   rx   r  r&   )r@   r(   rC   rB   r  r  r6   r~   r  r  r  rt   Úo_jÚo_xpyÚo_vÚo_xtyr%   ru   rv   s                      r   Ú_Lambdify_heterogeneous_outputrP    sð  € ÝŒ:�fÑÔ�D€A€qÝŒ>˜!˜Q  A Ñ'Ô'€DÝ
Œ�q˜!˜a ™d Q™h¨¨1©¨q°©s©Ð4Ñ5Ô5€AØ
�*Š*�TÑ
Ô
€CØ�!�A‘#�q˜1˜Q™3  1¡™+Ð&€EØ
ˆ(�4Ð
 ˜%Ð
 Ð
 Ð
 €CØ€DØ€DØ€DÝ
Œ(�D˜$ Ð%Ñ
&Ô
&€CØ ˜S ™XœXÑ€Cˆ��UÝ  $¨¨dÐ!3Ñ4Ô4ð ;ð ;‰ˆ‰Vˆa�ÝŒ{˜3˜s C˜xœ=¨A°°1±©H°q©L¸!¸Q¹$Ð+?Ø,-°©E°1°q±5¨>ð+;ñ <ô <ð 	<ð 	<ð 	<åŒ{˜5  c œ?¨Q¨q©S¨EÑ2Ô2Ð2Ð2Ð2ÝŒ{˜3˜s C˜xœ=¨A¨q©D°1©H¨:¸¸1¹¸qÀ¹s¹°}Ð*EÑFÔFÐFÐFÐFÝŒ{˜5  c œ?¨a°©c°A°a±C©[¨MÑ:Ô:Ð:Ð:Ð:Ð:ð;ð ;r   c                  ó8   — t          t          j        ¦  «         d S r   )rP  r0   r@   ra   r   r   Ú"test_Lambdify_heterogeneous_outputrR  "  s   € å"¥2¤;Ñ/Ô/Ð/Ð/Ð/r   c                 ó‚  — t          j        d¦  «        \  }} |dd||g¦  «        } |dd|dz  |z  |dz   |dz   z  g¦  «        }|                     |¦  «        }|||z   ||dz   |dz   z  g} | ||¦  «        }d}	d}
d}t          |	|
|g¦  «        D ]®\  }\  }} |||¦  «        \  }}}}t	          j        |d|dz  z  |z  |dz  g|dz   |dz   gg¦  «        sJ ‚t	          j        |||z   g¦  «        sJ ‚t	          j        ||dz  |z  g|dz   |dz   z  gg¦  «        sJ ‚t	          j        ||dz   |dz   z  g¦  «        sJ ‚Œ¯d S )Nr  r*   r)   r+   r  r	  r
  )r0   r1   r  r  r3   r&   )rÇ   rî   r(   rC   rB   r  r  r6   r~   r  r  r  r%   ru   rv   rL  rM  rN  rO  s                      r   Ú$_sympy_lambdify_heterogeneous_outputrT  '  s´  € ÝŒ:�fÑÔ�D€A€qØˆ3ˆq�!�a˜�VÑÔ€DØˆˆAˆq�1�a‘4˜!‘8˜a ™c A a¡C™[Ð)Ñ*Ô*€AØ
�*Š*�TÑ
Ô
€CØ�!�A‘#�q˜1˜Q™3  1¡™+Ð&€EØ
ˆ"ˆT�5‰/Œ/€CØ€DØ€DØ€DÝ  $¨¨dÐ!3Ñ4Ô4ð 1ð 1‰ˆ‰Vˆa�Ø!$  Q¨¡¤ÑˆˆU�C˜ÝŒ{˜3 ! a¨¡d¡(¨Q¡,°°1±Ð!5Ø"# a¡%¨¨Q© ð!1ñ 2ô 2ð 	2ð 	2ð 	2åŒ{˜5 1 Q¡3 %Ñ(Ô(Ð(Ð(Ð(ÝŒ{˜3 ! Q¡$¨¡( ¨q°©s°Q°q±S©k¨]Ð ;Ñ<Ô<Ð<Ð<Ð<ÝŒ{˜5 A a¡C¨!¨A©#¡; -Ñ0Ô0Ð0Ð0Ð0Ð0ð1ð 1r   c                  óŠ   — dd l } t          t          j        t          j        ¦  «         t          | j        | j        ¦  «         d S )Nr   )ró   rT  r0   Úlambdifyr2   rô   )rõ   s    r   Útest_lambdify__sympyrW  :  s>   € ð ÐÐÐÝ(­¬µb´nÑEÔEÐEÝ(¨¬°b´iÑ@Ô@Ð@Ð@Ð@r   c                 óÌ  — t           sd S t          j        d¦  «        x}\  }}t          j        ||z   ||z  g¦  «        }|                     t          j        |¦  «        ¦  «        } | |||z  ||¦  «        }|j        dk    sJ ‚ |ddg¦  «        \  }}}	|dk    sJ ‚t          j        |dgdgg¦  «        sJ ‚t          j        |	ddgddgg¦  «        sJ ‚g d¢t          j        ddgdd	gg¦  «        fD ]p}
 ||
¦  «        \  }}}t          j        |dd
g¦  «        sJ ‚t          j        |dgdggdgdggg¦  «        sJ ‚t          j        |ddgddggddgd	dggg¦  «        sJ ‚Œqd S )Nrm   r+   r*   r£   r{   r¢   r)   )r*   r+   r{   r:   r:   i-1 r§   é#   )	r   r0   r1   r2   r  Ún_exprsr3   r&   rx   )r@   rB   r(   rC   Úvecr  rW   r@  r  Úmrt   Ús2Úv2Úm2s                 r   Ú#_test_Lambdify_scalar_vector_matrixr`  B  sõ  € Ýð ØˆÝ”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaÝ
Œ.˜!˜A™#˜q ™s˜Ñ
$Ô
$€CØ
�,Š,•r”~ dÑ+Ô+Ñ
,Ô
,€CØˆ��q˜!‘t˜S #Ñ&Ô&€AØŒ9˜Š>ˆ>ˆ>ˆ>Øˆa��A�‰iŒi�G€A€qˆ!Ø�Š9ˆ9ˆ9ˆ9ÝŒ;�q˜C˜5 3 %˜.Ñ)Ô)Ð)Ð)Ð)ÝŒ;�qØ	
ˆAˆØ	
ˆAˆðñ ô ð ð ð ð
 ���bœh¨¨A¨°°A°Ð'7Ñ8Ô8Ð9ð ð ˆØ�Q�s‘V”V‰
ˆˆB�ÝŒ{˜2  d˜|Ñ,Ô,Ð,Ð,Ð,ÝŒ{˜2ØˆU�S�EˆNØˆU�S�EˆNð 
ñ ô ð 	ð 	ð 	õ Œ{˜2à�A�Ø�A�ðð
 �A�Ø�A�ðð	 
ñ 	ô 	ð 		ð 		ð 		ð 		ðð r   c                  ób   — t          d„ ¦  «         t          j        rt          d„ ¦  «         d S d S )Nc                  ó$   — t          j        | ddiŽS r[   rK   r\   s    r   rM   z4test_Lambdify_scalar_vector_matrix.<locals>.<lambda>f  s   € µb´kÀ4Ð6ZÐQYÐ6ZÐ6Z€ r   c                  ó$   — t          j        | ddiŽS r^   rK   r\   s    r   rM   z4test_Lambdify_scalar_vector_matrix.<locals>.<lambda>h  s   € ½"¼+ÀtÐ:\ÐU[Ð:\Ð:\€ r   ©r`  r0   r`   ra   r   r   Ú"test_Lambdify_scalar_vector_matrixre  e  sC   € Ý'Ð(ZÐ(ZÑ[Ô[Ð[Ý	„|ð ^Ý+Ð,\Ð,\Ñ]Ô]Ð]Ð]Ð]ð^ð ^r   c                  ób   — t          d„ ¦  «         t          j        rt          d„ ¦  «         d S d S )Nc                  ó&   — t          j        | dddœŽS )Nr<   T©r>   rÏ   rK   r\   s    r   rM   z8test_Lambdify_scalar_vector_matrix_cse.<locals>.<lambda>l  s   € µb´kÀ4ÐQYÐ_cÐ6dÐ6dÐ6d€ r   c                  ó&   — t          j        | dddœŽS )Nr_   Trh  rK   r\   s    r   rM   z8test_Lambdify_scalar_vector_matrix_cse.<locals>.<lambda>n  s   € ½"¼+ÀtÐU[ÐaeÐ:fÐ:fÐ:f€ r   rd  ra   r   r   Ú&test_Lambdify_scalar_vector_matrix_cserj  k  sC   € Ý'Ð(dÐ(dÑeÔeÐeÝ	„|ð hÝ+Ð,fÐ,fÑgÔgÐgÐgÐgðhð hr   c            	      ó�  ‡‡‡‡— t          j        d¦  «        x} \  }}t          | ¦  «        }t          j        ||dz  |dz  g¦  «        }|j        dk    sJ ‚t          j        |¦  «        j        dk    sJ ‚t          j        |g|¦  «        } |d¦  «        }|j        dk    sJ ‚t          j        |dgdgdggk    ¦  «        sJ ‚ |ddg¦  «        j        dk    sJ ‚d|_	         |ddg¦  «        }|j        d	k    sJ ‚ddgd
dgddgg}t          j        | 
                    ¦   «         |k    ¦  «        sJ ‚|j        d         sJ ‚|j        d         rJ ‚t          j        | |||z   d¬¦  «        Št          j        | |||z   d¬¦  «        }	 ‰ddg¦  «         |	ddg¦  «        fD ]\}
t          j        |
d         dgd
gdggk    ¦  «        sJ ‚|
d         j        dk    sJ ‚|
d         dk    sJ ‚|
d         j        dk    sJ ‚Œ]t          j        ddgddgddgg¦  «        Št          t          ˆˆfd„¦  «          ‰‰¦  «        } |	t          j        ‰j        ¦  «        ¦  «        }|d         j        dk    sJ ‚|d         j        dk    sJ ‚t%          ‰¦  «        D ]<\  }\  }}t          j        |d         |df         |g|dz  g|dz  ggk    ¦  «        sJ ‚Œ=t          j        |d         g d¢k    ¦  «        sJ ‚t          j        |d         g d¢k    ¦  «        sJ ‚|d         j        dk    sJ ‚|d         j        dk    sJ ‚d„ }t          j         |||¦  «        d¬¦  «        }t          j         |||¦  «        d¬¦  «        }t          j        ||g||z  ||d¬¦  «        Št          j        ||g||z  ||d¬¦  «        }t          j        ddgdd
gddgd dgddgg¦  «        Št          j        ‰j        ¦  «        }t          t          ˆˆfd!„¦  «          ‰‰¦  «        }|d         j        d"k    sJ ‚|d         j        d#k    sJ ‚|d         j        d$k    sJ ‚t'          | ‰t          j        ‰¦  «        ¦  «        ¦  «        D ]\  }}t          j        ||k    ¦  «        sJ ‚Œ  ||¦  «        }|d         j        d"k    sJ ‚|d         j        d%k    sJ ‚|d         j        d&k    sJ ‚t'          | |t          j        |d¬¦  «        ¦  «        ¦  «        D ]\  }}t          j        ||k    ¦  «        sJ ‚Œ t%          ‰¦  «        D �]\  }\  }}|d         |         ||z  k    sJ ‚|d         |         ||z  k    sJ ‚t          j        |d         |df          |||¦  «        k    ¦  «        sJ ‚t          j        |d         d|f          |||¦  «        k    ¦  «        sJ ‚t          j        |d         |df         |g|dz  g|dz  ggk    ¦  «        sJ ‚t          j        |d         d|f         |g|dz  g|dz  ggk    ¦  «        sJ ‚�Œd S )'Nrm   r*   r+   )r+   r)   r¤   é   )r*   r+   r)   r«   )r+   r)   r*   ri   r£   ÚF_CONTIGUOUSr¶   r-   r.   r   r)   r{   g       @r,   rn   g        g      @c                  ó$   •—  ‰‰ j         ¦  «        S r   ©r°   )Úinp2bÚlmb2cs   €€r   rM   z%test_Lambdify_gh174.<locals>.<lambda>—  ó   ø€    e¤g¡¤€ r   )r+   r+   r)   )r+   r)   r+   .)r{   r+   r¢   )r+   c                 ó>   ‡ ‡— ˆ ˆfd„t          d¦  «        D ¦   «         S )Nc                 óL   •‡— g | ]Šˆˆˆfd „t          d¦  «        D ¦   «         ‘Œ S )c                 ó&   •— g | ]}‰‰z  ‰|z  z   ‘ŒS ra   ra   )r…   Úcol_idxÚ_xÚ_yÚrow_idxs     €€€r   rˆ   zAtest_Lambdify_gh174.<locals>._mtx3.<locals>.<listcomp>.<listcomp>¥  s&   ø€ ÐCÐCÐC¨w��W‘˜r 7™{Ñ*ÐCÐCÐCr   r+   r  )r…   ry  rw  rx  s    @€€r   rˆ   z6test_Lambdify_gh174.<locals>._mtx3.<locals>.<listcomp>¥  sK   øø€ ð )ð )ð )Øð DÐCÐCÐCÐCÐC½%À¹(¼(ÐCÑCÔCð )ð )ð )r   ri   r  ©rw  rx  s   ``r   Ú_mtx3z"test_Lambdify_gh174.<locals>._mtx3¤  s:   øø€ ð)ð )ð )ð )ð )Ý$ Q™xœxð)ñ )ô )ð 	)r   r:   r¢   c                  ó$   •—  ‰‰ j         ¦  «        S r   ro  )Úinp3cÚlmb3cs   €€r   rM   z%test_Lambdify_gh174.<locals>.<lambda>­  rr  r   )r{   )r{   ri   r+   )r{   r+   r)   )ri   r+   r{   )r+   r)   r{   )r0   r1   r   r2   r}   r3   Úasarrayr@   r4   r/   rÆ   r®   Úndimrx   r   rf   Úasfortranarrayr°   r  r‰   r5   )rB   r(   rC   Únargsr!   Úlmb1Úout1Úout1aÚref1a_squeezeÚlmb2fÚout2aÚout2cÚout2fr%   rw  rx  r{  Úmtx3cÚmtx3fÚlmb3fÚinp3fÚout3cr   r   Úout3frp  r}  rq  r~  s                            @@@@r   Útest_Lambdify_gh174r‘  q  sB  øøøø€ õ ”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaÝ�‰IŒI€EÝŒ>˜1˜a ™d A q¡D˜/Ñ*Ô*€DØŒ:˜ÒÐÐÐÝŒ:�dÑÔÔ! VÒ+Ð+Ð+Ð+ÝŒ;˜�s˜DÑ!Ô!€DØˆ4�‰7Œ7€DØŒ:˜ÒÐÐÐÝŒ6�$˜A˜3   b TÐ*Ò*Ñ+Ô+Ð+Ð+Ð+Øˆ4��A�‰<Œ<Ô Ò*Ð*Ð*Ð*Ø€D„JØˆD�!�Q�‰LŒL€EØŒ;˜)Ò#Ð#Ð#Ð#Ø˜�VØ˜�VØ˜�Wð€Mõ Œ6�%—-’-‘/”/ ]Ò2Ñ3Ô3Ð3Ð3Ð3ØŒ;�~Ô&Ð&Ð&Ð&ØŒ{˜>Ô*Ð*Ð*Ð*åŒK˜˜d A a¡C¨sÐ3Ñ3Ô3€EÝŒK˜˜d A a¡C¨sÐ3Ñ3Ô3€EØ�%˜˜A˜‘-”-  ¨¨1 v¡¤Ð/ð "ð "ˆÝŒv�e˜A”h A 3¨¨¨a¨S /Ò1Ñ2Ô2Ð2Ð2Ð2Ø�QŒxŒ} Ò!Ð!Ð!Ð!Ø�QŒx˜1Š}ˆ}ˆ}ˆ}Ø�QŒxŒ} Ò!Ð!Ð!Ð!Ð!ÝŒHØ	ˆcˆ
Ø	ˆcˆ
Ø	ˆcˆ
ðñ ô €Eõ
 �:Ð/Ð/Ð/Ð/Ð/Ñ0Ô0Ð0ØˆE�%‰LŒL€EØˆE•"Ô# E¤GÑ,Ô,Ñ-Ô-€EØ�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ø�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ý" 5Ñ)Ô)ð Fð F‰ˆ‰Xˆb�"ÝŒv�e˜A”h˜s C˜xÔ(¨b¨T°B¸±E°7¸RÀ¹U¸GÐ,DÒDÑEÔEÐEÐEÐEÐEåŒ6�%˜”(˜i˜i˜iÒ'Ñ(Ô(Ð(Ð(Ð(ÝŒ6�%˜”(˜i˜i˜iÒ'Ñ(Ô(Ð(Ð(Ð(Ø�Œ8Œ>˜TÒ!Ð!Ð!Ð!Ø�Œ8Œ>˜TÒ!Ð!Ð!Ð!ð)ð )ð )õ ŒH�U�U˜1˜a‘[”[¨Ð,Ñ,Ô,€EÝŒH�U�U˜1˜a‘[”[¨Ð,Ñ,Ô,€EÝŒK˜˜A˜  !¡ U¨D¸Ð<Ñ<Ô<€EÝŒK˜˜A˜  !¡ U¨D¸Ð<Ñ<Ô<€EÝŒH�r˜1�g  1˜v¨¨1 v°°1¨v¸¸1°vÐ>Ñ?Ô?€EÝÔ˜eœgÑ&Ô&€EÝ
�:Ð/Ð/Ð/Ð/Ð/Ñ0Ô0Ð0ØˆE�%‰LŒL€EØ�Œ8Œ>˜TÒ!Ð!Ð!Ð!Ø�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ø�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ý�E˜5˜5¥¤¨%¡¤Ñ1Ô1Ñ2Ô2ð ð ‰ˆˆ1ÝŒv�a˜1’f‰~Œ~ÐÐÐÐàˆE�%‰LŒL€EØ�Œ8Œ>˜TÒ!Ð!Ð!Ð!Ø�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ø�Œ8Œ>˜YÒ&Ð&Ð&Ð&Ý�E˜5˜5¥¤¨%°sÐ!;Ñ!;Ô!;Ñ<Ô<Ñ=Ô=ð ð ‰ˆˆ1ÝŒv�a˜1’f‰~Œ~ÐÐÐÐå" 5Ñ)Ô)ð Dñ D‰ˆ‰Xˆb�"Ø�QŒx˜Œ}  2¡Ò%Ð%Ð%Ð%Ø�QŒx˜Œ}  2¡Ò%Ð%Ð%Ð%ÝŒv�e˜A”h˜s C˜xÔ(¨E¨E°"°b©M¬MÒ9Ñ:Ô:Ð:Ð:Ð:ÝŒv�e˜A”h˜s C˜xÔ(¨E¨E°"°b©M¬MÒ9Ñ:Ô:Ð:Ð:Ð:ÝŒv�e˜A”h˜s C˜xÔ(¨b¨T°2°q±5°'¸2¸q¹5¸'Ð,BÒBÑCÔCÐCÐCÐCÝŒv�e˜A”h˜s C˜xÔ(¨b¨T°2°q±5°'¸2¸q¹5¸'Ð,BÒBÑCÔCÐCÐCÐCÑCðDð Dr   c                 óV  — t          j        d¦  «        x}\  }}d„ }t          j        dt          | ¬¦  «        }t          j        |j        Ž D ]} ||||¦  «        ||<   Œd„ }t          j        dt          | ¬¦  «        }t          j        |j        Ž D ]} ||||¦  «        ||<   Œ|||||fS )Nrm   c                 ó:   — | \  }}}}||z  ||z  z   ||z   | z  z   S r   ra   )Úindexrw  rx  r   r   Úcr�   s          r   Úf_az'_get_Ndim_args_exprs_funcs.<locals>.f_aÉ  s0   € Ø‰
ˆˆ1ˆa�Ø�1‰u�r˜1‘u‰}  2¡¨¨™{Ñ*Ð*r   )r+   r{   r)   ri   )r›   r/   c                 ó   — | \  }}}|||z   z  S r   ra   )r”  rw  rx  r   r   r•  s         r   Úf_bz'_get_Ndim_args_exprs_funcs.<locals>.f_bÑ  s   € Ø‰ˆˆ1ˆaØ�"�r‘'‰{Ðr   )r)   r:   r)   )r0   r1   r3   ÚzerosÚobjectÚndindexr}   )	r/   rB   r(   rC   r–  Ú
nd_exprs_ar”  r˜  Ú
nd_exprs_bs	            r   Ú_get_Ndim_args_exprs_funcsrž  Å  sá   € Ý”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆað+ð +ð +õ ”˜,­f¸EÐBÑBÔB€JÝ”˜ZÔ-Ð.ð -ð -ˆØ˜C  q¨!Ñ,Ô,ˆ
�5ÑÐðð ð õ ”˜)­6¸Ð?Ñ?Ô?€JÝ”˜ZÔ-Ð.ð -ð -ˆØ˜C  q¨!Ñ,Ô,ˆ
�5ÑÐØ�˜Z¨¨cÐ1Ð1r   c            
      óP  ‡‡— t          d¬¦  «        \  } }}}}t          j        | ||d¬¦  «        Št          | ¦  «        }d}||fz   }t	          j        t          t          |¦  «        dz  ¦  «                             |d¬¦  «        Š ‰‰¦  «        \  }}	|j	        dk    sJ ‚|j
        ||j
        z   k    sJ ‚|	j	        dk    sJ ‚|	j
        ||j
        z   k    sJ ‚t          t          ˆˆfd„¦  «         t	          j        |¦  «        D ]Ÿ\  }
}}‰|
||d d …f         \  }}t	          j        |j
        Ž D ]0}t	          j        ||
||f|z             ||||¦  «        ¦  «        sJ ‚Œ1t	          j        |j
        Ž D ]0}t	          j        |	|
||f|z             ||||¦  «        ¦  «        sJ ‚Œ1Œ d S )Nr-   r.   ©r+   r{   ri   rn   r:   r¢   c                  ó$   •—  ‰‰ j         ¦  «        S r   ro  ©Úinp4Úlmb4s   €€r   rM   z4test_Lambdify_Ndimensional_order_C.<locals>.<lambda>è  ó   ø€    T¤V¡¤€ r   ©rž  r0   r@   r   r3   rÄ   r   r   rÅ   r€  r}   r   rf   r›  r   ©rB   rœ  r�  r–  r˜  r‚  Úinp_extra_shapeÚ	inp_shapeÚout4aÚout4br   r•  r�   rw  rx  r”  r£  r¤  s                   @@r   Ú"test_Lambdify_Ndimensional_order_Cr¬  Ú  sû  øø€ å-GÈcÐ-RÑ-RÔ-RÑ*€Dˆ*�j # sÝŒ;�t˜Z¨¸3Ð?Ñ?Ô?€DÝ�‰IŒI€Eà€OØ 5 (Ñ*€IÝŒ9•V�C Ñ+Ô+¨CÑ/Ñ0Ô0×8Ò8¸È#Ð8ÑNÔN€DØ�4˜‘:”:�L€Eˆ5ØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ;˜/¨JÔ,<Ñ<Ò<Ð<Ð<Ð<ØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ;˜/¨JÔ,<Ñ<Ò<Ð<Ð<Ð<Ý
�:Ð-Ð-Ð-Ð-Ð-Ñ.Ô.Ð.Ý”:˜oÑ.Ô.ð Lð L‰ˆˆ1ˆaØ�a˜˜A˜q˜q˜q�jÔ!‰ˆˆBÝ”Z Ô!1Ð2ð 	Lð 	LˆEÝ”:˜e Q¨¨1 I°Ñ$5Ô6¸¸¸EÀ2ÀrÑ8JÔ8JÑKÔKÐKÐKÐKÐKÝ”Z Ô!1Ð2ð 	Lð 	LˆEÝ”:˜e Q¨¨1 I°Ñ$5Ô6¸¸¸EÀ2ÀrÑ8JÔ8JÑKÔKÐKÐKÐKÐKð	Lð	Lð Lr   c            
      óP  ‡‡— t          d¬¦  «        \  } }}}}t          j        | ||d¬¦  «        Št          | ¦  «        }d}|f|z   }t	          j        t          t          |¦  «        dz  ¦  «                             |d¬¦  «        Š ‰‰¦  «        \  }}	|j	        dk    sJ ‚|j
        |j
        |z   k    sJ ‚|	j	        dk    sJ ‚|	j
        |j
        |z   k    sJ ‚t          t          ˆˆfd„¦  «         t	          j        |¦  «        D ]Ÿ\  }
}}‰d d …|
||f         \  }}t	          j        |j
        Ž D ]0}t	          j        |||
||fz             ||||¦  «        ¦  «        sJ ‚Œ1t	          j        |j
        Ž D ]0}t	          j        |	||
||fz             ||||¦  «        ¦  «        sJ ‚Œ1Œ d S )Nr«   r.   r   rn   r:   r¢   c                  ó$   •—  ‰‰ j         ¦  «        S r   ro  r¢  s   €€r   rM   z4test_Lambdify_Ndimensional_order_F.<locals>.<lambda>ÿ  r¥  r   r¦  r§  s                   @@r   Ú"test_Lambdify_Ndimensional_order_Fr¯  ñ  sû  øø€ å-GÈcÐ-RÑ-RÔ-RÑ*€Dˆ*�j # sÝŒ;�t˜Z¨¸3Ð?Ñ?Ô?€DÝ�‰IŒI€Eà€OØ�˜Ñ(€IÝŒ9•V�C Ñ+Ô+¨CÑ/Ñ0Ô0×8Ò8¸È#Ð8ÑNÔN€DØ�4˜‘:”:�L€Eˆ5ØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ;˜*Ô*¨_Ñ<Ò<Ð<Ð<Ð<ØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ;˜*Ô*¨_Ñ<Ò<Ð<Ð<Ð<Ý
�:Ð-Ð-Ð-Ð-Ð-Ñ.Ô.Ð.Ý”:˜oÑ.Ô.ð Lð L‰ˆˆ1ˆaØ�a�a�a˜˜A˜q�jÔ!‰ˆˆBÝ”Z Ô!1Ð2ð 	Lð 	LˆEÝ”:˜e E¨Q°°1¨IÑ$5Ô6¸¸¸EÀ2ÀrÑ8JÔ8JÑKÔKÐKÐKÐKÐKÝ”Z Ô!1Ð2ð 	Lð 	LˆEÝ”:˜e E¨Q°°1¨IÑ$5Ô6¸¸¸EÀ2ÀrÑ8JÔ8JÑKÔKÐKÐKÐKÐKð	Lð	Lð Lr   c                  óÈ  ‡	‡
‡‡— t          j        d¦  «        x} \  }}t          j        |g|dz  ¦  «        Š
t          t          ˆ
fd„¦  «          ‰
d¦  «        dk    sJ ‚t          j         ‰
ddg¦  «        ddgk    ¦  «        sJ ‚t          j        | |dz  |dz  z   ¦  «        Š ‰ddg¦  «        dk    sJ ‚t          t          ˆfd„¦  «         t          t          ˆfd	„¦  «         t          t          ˆfd
„¦  «         t          j         ‰g d¢¦  «        ddgk    ¦  «        sJ ‚d„ }t          j         |||¦  «        d¬¦  «        }t          j        | |d¬¦  «        Šddg}t          j         ‰|¦  «         ||Ž k    ¦  «        sJ ‚t          j        g d¢¦  «        Š	‰	‰	                     ¦   «         ‰	 	                    dd¬¦  «        fD ]b} ‰|¦  «        }|j
        dk    sJ ‚t          d¦  «        D ]8}t          j        |d|f          |‰	d|z  d|dz   z  …         Ž k    ¦  «        sJ ‚Œ9Œct          t          ˆ	ˆfd„¦  «         t          t          ˆ	ˆfd„¦  «         d S )Nrm   r*   c                  ó   •—  ‰ g ¦  «        S r   ra   )rƒ  s   €r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>  s   ø€    R¡¤€ r   ri   é   r+   rÊ   c                  ó   •—  ‰ g ¦  «        S r   ra   ©Úlmb2s   €r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>  s   ø€ ˜t˜t B™xœx€ r   c                  ó   •—  ‰ dg¦  «        S ©Nr*   ra   r´  s   €r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>  s   ø€ ˜t˜t Q C™yœy€ r   c                  ó   •—  ‰ g d¢¦  «        S )N)r*   r+   ri   ra   r´  s   €r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>  s   ø€ ˜t˜t I I I™œ€ r   )r*   r+   ri   r{   é)   c                 ó<   — | |z
  |dz  g| |z   | dz  g| |z  | |z  ggS r·  ra   rz  s     r   Ú_mtxz*test_Lambdify_inp_exceptions.<locals>._mtx  s9   € à�‰U�B˜‘EˆNØ�‰U�B˜‘EˆNØ�‰U�B˜‘FˆOð
ð 	
r   r«   r.   )r*   r+   ri   r{   r+   r*   r)   r{   ©r*   ri   )r+   r*   ri   .r)   c                  ó@   •—  ‰‰                       d¦  «        ¦  «        S )N)ri   r*   )rÅ   ©Úinp3bÚlmb3s   €€r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>(  s   ø€ ˜t˜t E§M¢M°&Ñ$9Ô$9Ñ:Ô:€ r   c                  óJ   •—  ‰‰                       d¦  «        j        ¦  «        S )Nr¼  )rÅ   r°   r¾  s   €€r   rM   z.test_Lambdify_inp_exceptions.<locals>.<lambda>)  s    ø€ ˜t˜t E§M¢M°&Ñ$9Ô$9Ô$;Ñ<Ô<€ r   )r0   r1   r@   r   rf   r3   r4   rx   ÚtolistrÅ   r}   r    )rB   r(   rC   r»  ÚmtxÚinp3art   Úout3brÓ   r¿  rƒ  rµ  rÀ  s            @@@@r   Útest_Lambdify_inp_exceptionsrÆ    sÀ  øøøø€ å”*˜UÑ#Ô#Ð#€D‰4ˆ1ˆaÝŒ;˜�s˜A˜q™DÑ!Ô!€DÝ
�:Ð)Ð)Ð)Ð)Ñ*Ô*Ð*Øˆ4�‰7Œ7�bŠ=ˆ=ˆ=ˆ=ÝŒ6�$�$˜˜1�v‘,”, 2 q 'Ò)Ñ*Ô*Ð*Ð*Ð*åŒ;�t˜Q ™T ! Q¡$™YÑ'Ô'€DØˆ4��A�‰<Œ<˜2ÒÐÐÐÝ
�:Ð'Ð'Ð'Ð'Ñ(Ô(Ð(Ý
�:Ð(Ð(Ð(Ð(Ñ)Ô)Ð)Ý
�:Ð.Ð.Ð.Ð.Ñ/Ô/Ð/ÝŒ6�$�$�|�|�|Ñ$Ô$¨¨U¨Ò3Ñ4Ô4Ð4Ð4Ð4ð
ð 
ð 
õ Œ(�4�4˜˜1‘:”: SÐ
)Ñ
)Ô
)€CÝŒ;�t˜S¨Ð,Ñ,Ô,€DØ�ˆF€EÝŒ6�$�$�u‘+”+   u Ò-Ñ.Ô.Ð.Ð.Ð.ÝŒHÐ-Ð-Ð-Ñ.Ô.€EØ�u—|’|‘~”~ u§}¢}°VÀ3 }Ñ'GÔ'GÐHð Fð FˆØ��S‘	”	ˆØŒ{˜iÒ'Ð'Ð'Ð'Ý�q‘”ð 	Fð 	FˆAÝ”6˜%  Q œ-¨4¨4°°q¸±s¸1¸aÀ¹c¹7°{Ô1CÐ+DÒDÑEÔEÐEÐEÐEÐEð	Få
�:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;Ý
�:Ð<Ð<Ð<Ð<Ð<Ñ=Ô=Ð=Ð=Ð=r   zScipy not installedc                  ó<  — ddl m}  dd l}t          j        d¦  «        x}\  }}t          j        |t          j        | |z  ¦  «        |dz  z  gd¬¦  «        }|                      |d|j        gd|j        gg¦  «        }t          |d         dz
  ¦  «        d	k     sJ ‚d S )
Nr   )Ú	integratezt, xr{   T)Úas_scipyr)   gš™™™™™É?gH¯¼šò×z>)
ÚscipyrÈ  Únumpyr0   r1   r@   r�   ÚnquadÚinfr   )rÈ  r3   rB   Útr(   r~   Úress          r   Ú
test_scipyrÐ  ,  s³   € àÐÐÐÐÐØÐÐÐÝ”*˜VÑ$Ô$Ð$€D‰4ˆ1ˆaÝ
Œ+�d�RœV Q B q¡D™\œ\¨!¨Q©$Ñ.Ð/¸$Ð
?Ñ
?Ô
?€CØ
�/Š/˜#  B¤F ¨a°´¨[Ð9Ñ
:Ô
:€CÝˆs�1Œv˜‰|ÑÔ˜tÒ#Ð#Ð#Ð#Ð#Ð#r   c                  ó4  — dd l } dd l}t          j        d¦  «        \  }}}t          j        |||g||z   |z   ||z  |z  dz   g¦  «        }|                     ¦   «         \  }} | j        g d¢| j        ¬¦  «        } | j        ddg| j        ¬¦  «        }	 ||	j                             | 	                    |j
        ¦  «        ¦  «        |j                             | 	                    |j
        ¦  «        ¦  «        |¦  «          | j        |	ddgk    ¦  «        sJ ‚d S )Nr   úx, y, zr)   r‚   rš   r¢   r:   )rË  Úctypesr0   r1   r@   Ú	as_ctypesrx   ÚdoubleÚdata_asÚPOINTERÚc_doubler4   )
r3   rÓ  r(   rC   rD   ÚlÚaddr1Úaddr2rt   r’   s
             r   Útest_as_ctypesrÜ  6  s!  € àÐÐÐØ€M€M€MÝŒj˜Ñ#Ô#�G€A€qˆ!Ý
Œ�Q˜˜1�I  !¡ A¡ q¨¡s¨1¡u¨Q¡wÐ/Ñ0Ô0€AØ—;’;‘=”=�L€Eˆ5Ø
ˆ"Œ(�7�7�7 "¤)Ð
,Ñ
,Ô
,€CØ
ˆ"Œ(�A�q�6 ¤Ð
+Ñ
+Ô
+€CØ	€Eˆ#Œ*×
Ò
˜VŸ^š^¨F¬OÑ<Ô<Ñ
=Ô
=¸s¼z×?QÒ?QÐRX×R`ÒR`ÐagÔapÑRqÔRqÑ?rÔ?rÐtyÑzÔzÐzØˆ2Œ6�#˜!˜Q˜’-Ñ Ô Ð Ð Ð Ð Ð r   re   c                  óÐ  — dd l } dd l}ddlm} t	          j        d¦  «        \  }}}t	          j        |||gt	          j        ||¦  «        t	          j        ||¦  «        g| j	        d¬¦  «        } | j
        g d¢| j	        ¬¦  «        } | j
        dd	g| j	        ¬¦  «        } ||¦  «        }	t          |¦  «        |k    sJ ‚|	j        | j	        k    sJ ‚ | j        |	|¦  «        sJ ‚d S )
Nr   )Ú	LLVMFloatrÒ  r_   ©r›   r>   r‚   rš   r)   r+   )rË  rÓ  Úsymengine.lib.symengine_wrapperrÞ  r0   r1   r@   ÚMinÚMaxÚfloat32rx   Útyper›   r&   )
r3   rÓ  rÞ  r(   rC   rD   rÙ  rt   Úexp_outr’   s
             r   Útest_llvm_floatræ  B  s  € ð ÐÐÐØ€M€M€MØ9Ð9Ð9Ð9Ð9Ð9ÝŒj˜Ñ#Ô#�G€A€qˆ!Ý
Œ�Q˜˜1�I¥¤ q¨!¡¤­b¬f°Q¸©l¬lÐ;À2Ä:ÐW]Ð^Ñ^Ô^€AØ
ˆ"Œ(�7�7�7 "¤*Ð
-Ñ
-Ô
-€CØˆbŒh˜˜1�v R¤ZÐ0Ñ0Ô0€GØ
ˆ!ˆC‰&Œ&€CÝ�‰7Œ7�iÒÐÐÐØŒ9˜œ
Ò"Ð"Ð"Ð"Øˆ2Œ;�s˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$r   zNo LLVM IEEE-80 bit supportc                  ó�  — dd l } dd l}ddlm} t	          j        d¦  «        \  }}}t	          j        |||gd|z  ||z  g| j        d¬¦  «        } | j        g d¢| j        ¬¦  «        } | j        dd	g| j        ¬¦  «        } ||¦  «        }	t          |¦  «        |k    sJ ‚|	j
        | j        k    sJ ‚ | j        |	|¦  «        sJ ‚d S )
Nr   )ÚLLVMLongDoublerÒ  r*   r_   rß  r‚   rš   gUUUUUUå?)rË  rÓ  rà  rè  r0   r1   r@   Ú
longdoublerx   rä  r›   r&   )
r3   rÓ  rè  r(   rC   rD   rÙ  rt   rå  r’   s
             r   Útest_llvm_long_doublerê  Q  sý   € ð ÐÐÐØ€M€M€MØ>Ð>Ð>Ð>Ð>Ð>ÝŒj˜Ñ#Ô#�G€A€qˆ!Ý
Œ�Q˜˜1�I  !¡ Q q¡S˜z°´ÈÐOÑOÔO€AØ
ˆ"Œ(�7�7�7 "¤-Ð
0Ñ
0Ô
0€CØˆbŒh˜˜7�|¨2¬=Ð9Ñ9Ô9€GØ
ˆ!ˆC‰&Œ&€CÝ�‰7Œ7�nÒ$Ð$Ð$Ð$ØŒ9˜œÒ%Ð%Ð%Ð%Øˆ2Œ;�s˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$r   )r   r   )T)\rx   r#  Ú	functoolsr   rü   Úoperatorr   rŽ   Ú	symenginer0   Úsymengine.test_utilitiesr   r   ÚunittestÚunittest.caser   ró   Úsympy.core.cacher   ÚatexitÚregisterÚ
have_sympyÚImportErrorrÊ  r	   Ú
have_scipyrË  r3   r   r   r&   Ú
skipUnlessr8   rF   rO   rX   rb   rg   rk   ry   r   r�   r“   r´   r¿   rÈ   rÌ   rÐ   r×   rß   rå   ré   rë   r2   rï   rñ   rö   rø   rú   r   r  r  r  r  r  r  r%  r(  r,  r0  r3  r:  r<  rJ  rP  rR  rT  rW  r`  re  rj  r‘  rž  r¬  r¯  rÆ  rÐ  rÜ  r`   ræ  Úhave_llvm_long_doublerê  ra   r   r   ú<module>rù     si
  ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "ðØ€L€L€LØ,Ð,Ð,Ð,Ð,Ð,Ø€M€M€MØ€F„O�KÑ Ô Ð Ø€J€JøØð ð ð Ø€J€J€JðøøøðØ€L€L€LØ&Ð&Ð&Ð&Ð&Ð&Ø€J€JøØð ð ð Ø€J€J€Jðøøøð ð ØÐÐÐðð ð ðð ð ð ðð ð ð ð €Ô�ZÐ!6Ñ7Ô7ð3ð 3ñ 8Ô7ð3ð €Ô�ZÐ!6Ñ7Ô7ð<ð <ñ 8Ô7ð<ð €Ô�ZÐ!6Ñ7Ô7ðoð oñ 8Ô7ðoðDð Dð Dð €Ô�ZÐ!6Ñ7Ô7ðSð Sñ 8Ô7ðSð
 €Ô�ZÐ!6Ñ7Ô7ð
<ð 
<ñ 8Ô7ð
<ð €Ô�ZÐ!6Ñ7Ô7ð@ð @ñ 8Ô7ð@ðð ð ð €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð#ð #ð #ð €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7ðDð Dñ 8Ô7ðDð> €Ô�ZÐ!6Ñ7Ô7ð	!ð 	!ñ 8Ô7ð	!ð €Ô�ZÐ!6Ñ7Ô7ð/ð /ñ 8Ô7ð/ð!ð !ð !ð €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7ð+ð +ñ 8Ô7ð+ð@ð @ð @ð4 €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7ð$ð $ñ 8Ô7ð$ð €Ô�ZÐ!6Ñ7Ô7ð$ð $ñ 8Ô7ð$ð !œnð ð ð ð ð$ €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7Ø€Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ñ 8Ô7ðð&ð &ð &ð €Ô�ZÐ!6Ñ7Ô7ð"ð "ñ 8Ô7ð"ð €Ô�ZÐ!6Ñ7Ô7ð2ð 2ñ 8Ô7ð2ð €Ô�ZÐ!6Ñ7Ô7ð
.ð 
.ñ 8Ô7ð
.ð €Ô�ZÐ!6Ñ7Ô7ð<ð <ñ 8Ô7ð<ð" €Ô�ZÐ!6Ñ7Ô7ð ð  ñ 8Ô7ð ð €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð=ð =ð =ðð ð ðð ð ð ð" €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7ð$ð $ñ 8Ô7ð$ð €Ô�ZÐ!6Ñ7Ô7ð$ð $ñ 8Ô7ð$ð €Ô�ZÐ!6Ñ7Ô7ðð ñ 8Ô7ðð €Ô�ZÐ!6Ñ7Ô7ð#ð #ñ 8Ô7ð#ð €Ô�ZÐ!6Ñ7Ô7ð#ð #ñ 8Ô7ð#ð €Ô�ZÐ!6Ñ7Ô7ð!ð !ñ 8Ô7ð!ð*;ð ;ð ;ð( €Ô�ZÐ!6Ñ7Ô7ð0ð 0ñ 8Ô7ð0ð1ð 1ð 1ð& €Ô�ZÐ!6Ñ7Ô7Ø€Ô�ZÐ!6Ñ7Ô7ðAð Añ 8Ô7ñ 8Ô7ðAð ð  ð  ðF^ð ^ð ^ðhð hð hð €Ô�ZÐ!6Ñ7Ô7ðPDð PDñ 8Ô7ðPDðf2ð 2ð 2ð* €Ô�ZÐ!6Ñ7Ô7ðLð Lñ 8Ô7ðLð, €Ô�ZÐ!6Ñ7Ô7ðLð Lñ 8Ô7ðLð, €Ô�ZÐ!6Ñ7Ô7ð >ð  >ñ 8Ô7ð >ðF €Ô�ZÐ!6Ñ7Ô7ð$ð $ñ 8Ô7ð$ð €Ô�ZÐ!6Ñ7Ô7ð	!ð 	!ñ 8Ô7ð	!ð €Ô�ZÐ!6Ñ7Ô7Ø€Ô�R”\Ð#4Ñ5Ô5ð%ð %ñ 6Ô5ñ 8Ô7ð%ð €Ô�ZÐ!6Ñ7Ô7Ø€Ô�R”\Ð#4Ñ5Ô5Ø€Ô�RÔ-Ð/LÑMÔMð%ð %ñ NÔMñ 6Ô5ñ 8Ô7ð%ð %ð %s#   ¸ A ÁA#Á"A#Á'A4 Á4A>Á=A>