§
    µ³Ùgt  ã            	       ó¸  — d dl Z d dlZd dlmZ d dlmZ d dlmZ e j	         
                    dg d¢¦  «        Zed„ ¦   «         Zed„ ¦   «         Zd	„ Zd
„ Ze j	                             d¦  «        d„ ¦   «         Zd„ Ze j	                             d¦  «        e j	         
                    dddg¦  «        e j	         
                    dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Zed„ ¦   «         Zd„ Zd„ Ze j	         
                    ddd ej        fej        d fej         ej        fej        ej         fg¦  «        d„ ¦   «         Ze j	        j        d„ ¦   «         ZdS )é    N)Úassert_allclose)Úquad_vec)ÚPoolÚ
quadrature)NÚgk15Úgk21Ú	trapezoidc           	      ó  ‡— t          j        d¦  «        Šˆfd„}dD ]ã}| dk    r|dk     rŒt          || ¬¦  «        }d‰dz   z  ‰dz   z  }t          |d	dfd
di|¤Ž\  }}t	          ||d	|¬¦  «         t          |d	dfd
di|¤Ž\  }}t           j                             ||z
  ¦  «        |k     sJ ‚t          |d	dfdddœ|¤Ž\  }}t	          ||d	|¬¦  «         t          |d	dfdddddœ|¤Ž^}}}t	          ||d	|¬¦  «         Œäd S )Né
   c                 ó   •— | ‰z  S ©N© )ÚxÚns    €úZ/granary/edev/quantum/lib/python3.11/site-packages/scipy/integrate/tests/test__quad_vec.pyÚfztest_quad_vec_simple.<locals>.f   s   ø€ Ø�A‰vˆó    ©çš™™™™™¹?gü©ñÒMbP?g�íµ ÷Æ°>r	   ç-Cëâ6?)Úepsabsr   é   é   r   ÚnormÚmax©ÚrtolÚatolÚ2)ç      à?ç      ð?)r   Úpointsg:Œ0âŽyE>Ti'  )r   ÚepsrelÚfull_outputÚlimit)ÚnpÚarangeÚdictr   r   Úlinalgr   )	r   r   r   ÚkwargsÚexactÚresÚerrÚrestr   s	           @r   Útest_quad_vec_simpler/      s�  ø€ å
Œ	�"‰Œ€Aðð ð ð ð à#ð 9ð 9ˆØ˜Ò$Ð$¨°$ª¨àå˜V°
Ð;Ñ;Ô;ˆà�A�a‘C‘˜!˜a™%Ñ ˆå˜A˜q !Ð:Ð:¨%Ð:°6Ð:Ð:‰ˆˆSÝ˜˜U¨°Ð8Ñ8Ô8Ð8å˜A˜q !Ð8Ð8¨#Ð8°Ð8Ð8‰ˆˆSÝŒy�~Š~˜c E™kÑ*Ô*¨VÒ3Ð3Ð3Ð3å˜A˜q !ÐM¨%¸
ÐMÐMÀfÐMÐM‰ˆˆSÝ˜˜U¨°Ð8Ñ8Ô8Ð8å" 1 a¨ð -°Ø*.Ø/3Ø).ð-ð -ð &,ð	-ð -ˆˆˆS�4õ
 	˜˜U¨°Ð8Ñ8Ô8Ð8Ð8ð/9ð 9r   c           
      óÚ  — d„ }dD �]Ï}| dk    r|dk     rŒt          d|| ¬¦  «        }t          |dt          j        fi |¤Ž\  }}t	          |t          j        dz  dt          ||¦  «        ¬	¦  «         t          |dt          j         fi |¤Ž\  }}t	          |t          j         dz  dt          ||¦  «        ¬	¦  «         t          |t          j         dfi |¤Ž\  }}t	          |t          j        dz  dt          ||¦  «        ¬	¦  «         t          |t          j        dfi |¤Ž\  }}t	          |t          j         dz  dt          ||¦  «        ¬	¦  «         t          |t          j         t          j        fi |¤Ž\  }}t	          |t          j        dt          ||¦  «        ¬	¦  «         t          |t          j        t          j         fi |¤Ž\  }}t	          |t          j         dt          ||¦  «        ¬	¦  «         t          |t          j        t          j        fi |¤Ž\  }}t	          |ddt          ||¦  «        ¬	¦  «         t          |t          j         t          j         fi |¤Ž\  }}t	          |ddt          ||¦  «        ¬	¦  «         t          |dt          j        fd
di|¤Ž\  }}t	          |t          j        dz  dt          ||¦  «        ¬	¦  «         �ŒÑd„ }t          j        t          j        z  t          j        d¦  «        z  }d}t          |t          j         t          j        dd|| d¬¦  «        \  }}}|j	        dk    sJ ‚t	          ||dt          |d|z  ¦  «        ¬	¦  «         d S )Nc                 ó<   — ddt          j        | ¦  «        dz  z   z  S ©Nr   r   )r&   Úfloat64©r   s    r   r   z#test_quad_vec_simple_inf.<locals>.f0   s   € Ø�A�œ
 1™œ¨Ñ*Ñ*Ñ+Ð+r   r   r	   r   r   )r   r   r   r   r   r   r"   )r!   g       @c                 óB   — t          j        | dz   ¦  «        d| dz  z   z  S )Nr   r   )r&   Úsinr4   s    r   r   z#test_quad_vec_simple_inf.<locals>.fU   s!   € ÝŒv�a˜!‘e‰}Œ}  A¨¡F¡
Ñ+Ð+r   gñhãˆµøä>iè  T)r%   r   r   r   r$   r   g      ø?)
r(   r   r&   Úinfr   Úpir   Úer6   Ústatus)r   r   r   r*   r,   r-   r+   Úinfos           r   Útest_quad_vec_simple_infr<   .   ss  € ð,ð ,ð ,ð $ð  Eñ  EˆØ˜Ò$Ð$¨°$ª¨àå˜5¨¸JÐGÑGÔGˆå˜A˜q¥"¤&Ð3Ð3¨FÐ3Ð3‰ˆˆSÝ˜�RœU 1™W¨1µ3°v¸sÑ3CÔ3CÐDÑDÔDÐDå˜A˜q¥2¤6 'Ð4Ð4¨VÐ4Ð4‰ˆˆSÝ˜�bœe˜V A™X¨AµC¸ÀÑ4DÔ4DÐEÑEÔEÐEå˜A¥¤˜w¨Ð4Ð4¨VÐ4Ð4‰ˆˆSÝ˜�RœU 1™W¨1µ3°v¸sÑ3CÔ3CÐDÑDÔDÐDå˜A�rœv qÐ3Ð3¨FÐ3Ð3‰ˆˆSÝ˜�bœe˜V A™X¨AµC¸ÀÑ4DÔ4DÐEÑEÔEÐEå˜A¥¤˜w­¬Ð9Ð9°&Ð9Ð9‰ˆˆSÝ˜�RœU¨µ°V¸SÑ1AÔ1AÐBÑBÔBÐBå˜A�rœv­¬ wÐ9Ð9°&Ð9Ð9‰ˆˆSÝ˜�bœe˜V¨!µ#°f¸cÑ2BÔ2BÐCÑCÔCÐCå˜A�rœv¥r¤vÐ8Ð8°Ð8Ð8‰ˆˆSÝ˜˜Q Q­S°¸Ñ-=Ô-=Ð>Ñ>Ô>Ð>å˜A¥¤˜w­¬¨Ð:Ð:°6Ð:Ð:‰ˆˆSÝ˜˜Q Q­S°¸Ñ-=Ô-=Ð>Ñ>Ô>Ð>å˜A˜q¥"¤&ÐFÐF°ÐF¸vÐFÐF‰ˆˆSÝ˜�RœU 1™W¨1µ3°v¸sÑ3CÔ3CÐDÑDÔDÐDÑDð,ð ,ð ,åŒE•B”D‰L�2œ6 !™9œ9Ñ$€EØ€Få˜a¥"¤& ­"¬&¸À5ÐQWØ)3ÀðGñ Gô G�N€CˆˆdàŒ;˜!ÒÐÐÐÝ�C˜ Q­S°¸¸s¹Ñ-CÔ-CÐDÑDÔDÐDÐDÐDr   c                  ó�   — d„ } d}t          j        g d¢¦  «        }t          | dd|f¬¦  «        \  }}t          ||dd¬¦  «         d S )	Nc                 ó<   — | | |z   z  t          j        d¦  «        z  S ©Né   ©r&   r'   ©r   Úas     r   r   ztest_quad_vec_args.<locals>.fa   s   € Ø�A˜‘E‰{�RœY q™\œ\Ñ)Ð)r   r   ©r   gUUUUUUõ?gUUUUUU@r   r   )Úargsr   r   )r&   Úarrayr   r   )r   rC   r+   r,   r-   s        r   Útest_quad_vec_argsrG   `   sb   € ð*ð *ð *à	€AÝŒH�]�]�]Ñ#Ô#€Eå˜˜1˜a q dÐ+Ñ+Ô+�H€CˆÝ�C˜ Q¨TÐ2Ñ2Ô2Ð2Ð2Ð2r   c                 ó   — dd| dz  z   z  S r2   r   r4   s    r   Ú
_lorenzianrI   j   s   € Ø��A�q‘D‘‰>Ðr   r   c            	      óœ  — t           } t          | t          j         t          j        ddd¬¦  «        \  }}t	          |t          j        dd¬¦  «         t          d¦  «        5 }d„ } t          | t          j         t          j        dd|j        ¬¦  «        \  }}t	          |t          j        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   r   é   )r   r   Úworkersr   r   r   c                 ó   — dd| dz  z   z  S r2   r   r4   s    r   r   ztest_quad_vec_pool.<locals>.fu   s   € Ø˜˜A ™F™
Ñ#Ð#r   )rI   r   r&   r7   r   r8   r   Úmap)r   r,   r-   ÚpoolÚ_s        r   Útest_quad_vec_poolrQ   n   sÿ   € å€AÝ˜�BœF˜7¥B¤F°¸tÈQÐOÑOÔO�H€CˆÝ�C�œ Q¨TÐ2Ñ2Ô2Ð2å	ˆb‰Œð 7�Tð	$ð 	$ð 	$å˜!�bœf˜W¥b¤f°5ÀÈtÌxÐXÑXÔX‰ˆˆQÝ˜�RœU¨°Ð6Ñ6Ô6Ð6ð	7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   Á!ACÃCÃCc                 ó<   — | | |z   z  t          j        d¦  «        z  S r?   rA   rB   s     r   Ú_func_with_argsrS   {   s   € Ø��A‘‰;�œ 1™œÑ%Ð%r   Ú
extra_argsr   )r   rL   r   c                 óB  — t           }t          j        g d¢¦  «        }t          |dd| |¬¦  «        \  }}t	          ||dd¬¦  «         t          |¦  «        5 }t          |dd| |j        ¬¦  «        \  }}t	          ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrD   r   r   )rE   rL   r   r   )rS   r&   rF   r   r   r   rN   )rT   rL   r   r+   r,   r-   rO   s          r   Útest_quad_vec_pool_argsrV      sñ   € õ 	€AÝŒH�]�]�]Ñ#Ô#€Eå˜˜1˜a j¸'ÐBÑBÔB�H€CˆÝ�C˜ Q¨TÐ2Ñ2Ô2Ð2å	ˆg‰Œð 7˜$Ý˜A˜q !¨*¸d¼hÐGÑGÔG‰ˆˆSÝ˜˜U¨°Ð6Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   Á0BÂBÂBc                 ót   ‡— ˆfd„}dgŠt          |dddd| ¬¦  «        }|d         j        ‰d         k    sJ ‚d S )Nc                 ó.   •— ‰dxx         dz  cc<   | dz  S )Nr   r   é   r   )r   Úcounts    €r   r   ztest_num_eval.<locals>.f�   s!   ø€ ØˆaˆˆŒ�A‰ˆˆ‰Ø�!‰tˆr   r   r   r   T)r   r$   r   r   )r   Úneval)r   r   r,   rZ   s      @r   Útest_num_evalr\   Ž   s`   ø€ ðð ð ð ð ð ˆC€EÝ
�1�a˜ °DÀZÐ
PÑ
PÔ
P€CØˆqŒ6Œ<˜5 œ8Ò#Ð#Ð#Ð#Ð#Ð#r   c                  ób  — d„ } t          | dddd¬¦  «        \  }}}|j        du sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        |j        j        d         d	ddfk    sJ ‚|j        j        |j        j        d         fk    sJ ‚d S )
Nc                 ó*   — t          j        d¦  «        S )N)r@   r   r   )r&   Úonesr4   s    r   r   ztest_info.<locals>.fš   s   € ÝŒw�yÑ!Ô!Ð!r   r   r   r   T)r   r$   zTarget precision reached.r   r@   )	r   Úsuccessr:   Úmessager[   Ú	intervalsÚshapeÚ	integralsÚerrors)r   r,   r-   r;   s       r   Ú	test_inforf   ™   sç   € ð"ð "ð "õ ˜a  A¨E¸tÐDÑDÔD�N€CˆˆdàŒ<˜4ÐÐÐÐØŒ;˜!ÒÐÐÐØŒ<Ð6Ò6Ð6Ð6Ð6ØŒ:˜Š>ˆ>ˆ>ˆ>ØŒ>Ô Ô" aÒ'Ð'Ð'Ð'ØŒ>Ô D¤NÔ$8¸Ô$;¸QÀÀ1Ð#EÒEÐEÐEÐEØŒ;Ô ¤Ô!5°aÔ!8Ð :Ò:Ð:Ð:Ð:Ð:Ð:r   c                  ó¢   — d„ } d„ }t          | ddd¬¦  «        \  }}}|j        dk    sJ ‚t          |ddd¬¦  «        \  }}}|j        dk    sJ ‚d S )Nc                 ó   — t           j        S r   )r&   Únanr4   s    r   Úf_nanztest_nan_inf.<locals>.f_nan©   s	   € ÝŒvˆr   c                 ó0   — | dk     rt           j        nd| z  S )Nr   r   )r&   r7   r4   s    r   Úf_infztest_nan_inf.<locals>.f_inf¬   s   € Ø˜Sš˜�rŒvˆv a¨¡cÐ)r   r   r   T)r$   r@   )r   r:   )rj   rl   r,   r-   r;   s        r   Útest_nan_infrm   ¨   s†   € ðð ð ð*ð *ð *õ ˜e Q¨°tÐ<Ñ<Ô<�N€CˆˆdØŒ;˜!ÒÐÐÐå˜e Q¨°tÐ<Ñ<Ô<�N€CˆˆdØŒ;˜!ÒÐÐÐÐÐr   za,b)r   r   c                 ó4  ‡‡‡— d}|t          d„ |D ¦   «         ¦  «        z  }dŠg ŠdŠˆˆˆfd„}t          || ||dd¬¦  «         ‰D ]Q}t          j        t	          |¦  «        t          |¦  «        ¦  «        }t          j        ||d         k    ¦  «        sJ ‚ŒRd S )N)r   g      Ð?r    g      è?r!   c              3   ó   K  — | ]}| V — Œd S r   r   )Ú.0r   s     r   ú	<genexpr>ztest_points.<locals>.<genexpr>¾   s$   è è € Ð'Ð'˜1�Q�BÐ'Ð'Ð'Ð'Ð'Ð'r   é   r   c                 ó¶   •— ‰‰z  dk    r!‰                      t          ¦   «         ¦  «         ‰dz  Š‰d                              t          | ¦  «        ¦  «         dS )Nr   r   éÿÿÿÿg        )ÚappendÚsetÚaddÚfloat)r   rZ   Úinterval_setsÚquadrature_pointss    €€€r   r   ztest_points.<locals>.fÄ   s[   ø€ ð Ð$Ñ$¨Ò)Ð)Ø× Ò ¥¡¤Ñ'Ô'Ð'à�‰
ˆØ�bÔ×Ò�e A™hœhÑ'Ô'Ð'Øˆsr   r   )r"   r   r%   )Útupler   r&   ÚsearchsortedÚsortedÚall)	rC   Úbr"   r   ÚpÚjrZ   ry   rz   s	         @@@r   Útest_pointsr‚   ¶   sÖ   øøø€ ð '€FØ
�eÐ'Ð' Ð'Ñ'Ô'Ñ'Ô'Ñ'€FàÐØ€MØ€Eðð ð ð ð ð ð õ ˆQ��1˜V°¸aÐ@Ñ@Ô@Ð@ð ð !ð !ˆÝŒO�F 6™NœN­E°!©H¬HÑ5Ô5ˆÝŒv�a˜1˜Qœ4’iÑ Ô Ð Ð Ð Ð ð!ð !r   c                  óŠ   — t          j        d¬¦  «        5  t          d„ ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz`quadrature='trapz'`)Úmatchc                 ó   — | S r   r   r4   s    r   ú<lambda>z(test_trapz_deprecation.<locals>.<lambda>Ù   s   € ˜1€ r   r   r   Útrapz)r   )ÚpytestÚdeprecated_callr   r   r   r   Útest_trapz_deprecationrŠ   Ö   s”   € å	Ô	Ð&<Ð	=Ñ	=Ô	=ð 8ð 8Ý��˜a ¨wÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   –8¸<¿<)rˆ   Únumpyr&   Únumpy.testingr   Úscipy.integrater   Úmultiprocessing.dummyr   ÚmarkÚparametrizeÚquadrature_paramsr/   r<   rG   rI   Ú	fail_slowrQ   rS   rV   r\   rf   rm   r7   r‚   Úthread_unsaferŠ   r   r   r   ú<module>r”      sG  ðØ €€€à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à $Ð $Ð $Ð $Ð $Ð $à &Ð &Ð &Ð &Ð &Ð &ð ”K×+Ò+ØÐ5Ð5Ð5ñ7ô 7Ð ð ð9ð 9ñ Ôð9ð< ð.Eð .Eñ Ôð.Eðb3ð 3ð 3ðð ð ð „×Ò�rÑÔð	7ð 	7ñ Ôð	7ð&ð &ð &ð „×Ò�rÑÔØ„×Ò˜¨¨4 yÑ1Ô1Ø„×Ò˜ Q¨ GÑ,Ô,ð	7ð 	7ñ -Ô,ñ 2Ô1ñ Ôð	7ð ð$ð $ñ Ôð$ð;ð ;ð ;ðð ð ð „×Ò˜ ¨!¨R¬V¨°r´v¸q°kØ#%¤6 '¨2¬6Ð!2°R´V¸b¼f¸WÐ4Eð!Gñ Hô Hð!ð !ñHô Hð!ð< „Ôð8ð 8ñ Ôð8ð 8ð 8r   