§
    ´³Ùg‡m  ã                   óÜ  — d dl Z d dlZd dlZd dlmZ d dlmc mZ	 d dl
mZmZmZ d dlmZmZmZ d dlmZmZmZ d dlmZmZmZ d dlmZ eej                             d¦  «        gZd	Zd
Z ej         !                    de¬¦  «        ej         !                    de ¬¦  «         G d„ d¦  «        ¦   «         ¦   «         Z" G d„ d¦  «        Z#ej         !                    de¬¦  «        ej         !                    de ¬¦  «         G d„ de#¦  «        ¦   «         ¦   «         Z$ej         !                    de¬¦  «        ej         !                    de ¬¦  «         G d„ de#¦  «        ¦   «         ¦   «         Z%dS )é    N)Úarray_api_compatible)Úxp_assert_closeÚxp_assert_equalÚxp_assert_less)Úis_numpyÚis_torchÚarray_namespace)ÚstatsÚoptimizeÚspecial)Ú
derivativeÚjacobianÚhessian)Ú_EERRORINCREASEÚskip_xp_backendsz5Array API does not support fancy indexing assignment.z*JAX arrays do not support item assignment.Úarray_api_strict)Úreasonz	jax.numpyc            	       ó˜  — e Zd Zd„ Zej                             dd ej        ddd¦  «        g¦  «        d„ ¦   «         Z	ej         
                    d¬	¦  «        ej                             d
ej        j        ¦  «        d„ ¦   «         ¦   «         Zej                             dddg¦  «        ej                             d e¦   «         dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dd¦  «        ej                             dddd gf¦  «        ej                             d!d"¦  «        d#„ ¦   «         ¦   «         ¦   «         Zd$„ Zd%„ Zej         
                    d¬	¦  «        ej        j        ej                             d
d&„ dfd'„ dff¦  «        d(„ ¦   «         ¦   «         ¦   «         Zd)S )*ÚTestDerivativec                 ó*   — t          j        |¦  «        S ©N©r   Úndtr)ÚselfÚxs     úb/granary/edev/quantum/lib/python3.11/site-packages/scipy/differentiate/tests/test_differentiate.pyÚfzTestDerivative.f   s   € ÝŒ|˜A‰ŒÐó    r   ç333333ã?çš™™™™™©¿çÍÌÌÌÌÌð?é
   c                 ó°  — |                      d¦  «        j        }t          | j        |                      ||¬¦  «        ¦  «        }|                      t	          j        ¦   «                              |¦  «        |¬¦  «        }t          |j        |¦  «         t          |¦  «        s2t          |                     |j        |z
  ¦  «        |j        ¦  «         d S d S )Nç      ð?©Údtype)Úasarrayr&   r   r   r
   ÚnormÚpdfr   Údfr   r   ÚabsÚerror)r   r   ÚxpÚdefault_dtypeÚresÚrefs         r   Ú
test_basiczTestDerivative.test_basic   s¶   € ð Ÿ
š
 2™œÔ,ˆÝ˜œ §¢¨A°] Ñ!CÔ!CÑDÔDˆØ�jŠj�œ™œ×)Ò)¨!Ñ,Ô,°MˆjÑBÔBˆÝ˜œ Ñ$Ô$Ð$õ ˜‰|Œ|ð 	<Ý˜2Ÿ6š6 #¤&¨3¡,Ñ/Ô/°´Ñ;Ô;Ð;Ð;Ð;ð	<ð 	<r   T)Únp_onlyÚcasec                 óð   — |\  }} t          t          |¦  «        |Ž }|                     ¦   «         dz   }t          |j        |¦  «        }|                     |¦  «        }t          |j        |d¬¦  «         d S )Nçš™™™™™¹?ç»½×Ùß|Û=©Úatol)Úgetattrr
   Úmedianr   Úcdfr)   r   r*   )r   r3   ÚdistnameÚparamsÚdistr   r/   r0   s           r   Útest_accuracyzTestDerivative.test_accuracy)   ss   € ð  Ñˆ�&Ø'�w•u˜hÑ'Ô'¨Ð0ˆØ�KŠK‰MŒM˜CÑˆÝ˜œ 1Ñ%Ô%ˆØ�hŠh�q‰kŒkˆÝ˜œ ¨%Ð0Ñ0Ô0Ð0Ð0Ð0r   Úorderé   é   Úshape)é   ©é   é   )rF   é   rH   c                 óD  ‡ ‡‡‡— |r)t          j        ddd¦  «                             |¦  «        nd}t          j        |¦  «        Ši Št           j        ˆˆ fd„¦   «         }ˆˆ ˆfd„}d‰d<   d	‰d
<   t          ||                     ||j        ¬¦  «        ‰¬¦  «        } ||¦  «                             ¦   «         }d„ |D ¦   «         }	t          |                     |j
        d¦  «        |                     |	¦  «        ¦  «         d„ |D ¦   «         }
t          |                     |j        d¦  «        |                     |
¦  «        ¦  «         d„ |D ¦   «         }t          |                     |j        d¦  «        |                     |¦  «        d¬¦  «         d„ |D ¦   «         }t          |                     |j        d¦  «        |                     |¦  «        ¦  «         d„ |D ¦   «         }t          |                     |j        d¦  «        |                     |¦  «        ¦  «         d„ |D ¦   «         }t          |                     |j        d¦  «        |                     |¦  «        ¦  «         t#          |¦  «        r&|                     |j        ¦  «        ‰d
         k    sJ ‚d„ |D ¦   «         }t          |                     |j        d¦  «        |                     |¦  «        ¦  «         t#          |¦  «        r&|                     |j        ¦  «        ‰d         k    sJ ‚d S d S )Nr    r!   rD   r   c                 ó2   •— t          ‰j        | ‰¬¦  «        S )N©r@   )r   r   )r   r@   r   s    €€r   Ú_derivative_singlez=TestDerivative.test_vectorization.<locals>._derivative_single<   s   ø€ å˜dœf a¨uÐ5Ñ5Ô5Ð5r   c                 ó¬   •— ‰dxx         dz  cc<   ‰dxx         | j         ‰k    s| j        dk    rdn| j        d         z  cc<    ‰j        | g|¢R i |¤ŽS )NÚnitrA   Úfevaléÿÿÿÿ)ÚsizeÚndimrC   r   )r   ÚargsÚkwargsÚnr   Ústates      €€€r   r   z,TestDerivative.test_vectorization.<locals>.f@   so   ø€ Ø�%ˆLˆLŒL˜AÑˆLˆL‰LØ�'ˆNˆNŒN A¤F¨a¢K K°1´6¸A²:°:˜a˜aÀAÄGÈBÄKÑOˆNˆN‰NØ�4”6˜!Ð-˜dÐ-Ð-Ð- fÐ-Ð-Ð-r   rP   rN   r   rO   r%   rK   c                 ó   — g | ]	}|j         ‘Œ
S © ©r   ©Ú.0r0   s     r   ú
<listcomp>z5TestDerivative.test_vectorization.<locals>.<listcomp>K   s   € Ð'Ð'Ð'˜3�”Ð'Ð'Ð'r   ©rP   c                 ó   — g | ]	}|j         ‘Œ
S rX   )r*   rZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>N   s   € Ð)Ð)Ð)˜S�#”&Ð)Ð)Ð)r   c                 ó   — g | ]	}|j         ‘Œ
S rX   )r,   rZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>Q   s   € Ð/Ð/Ð/ 3�S”YÐ/Ð/Ð/r   gê-�™—q=r7   c                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS rX   )ÚboolÚsuccessrZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>U   s"   € Ð9Ð9Ð9¨S•t˜CœKÑ(Ô(Ð9Ð9Ð9r   c                 ó@   — g | ]}t          j        |j        ¦  «        ‘ŒS rX   )ÚnpÚint32ÚstatusrZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>X   s$   € Ð9Ð9Ð9¨S•B”H˜SœZÑ(Ô(Ð9Ð9Ð9r   c                 ó@   — g | ]}t          j        |j        ¦  «        ‘ŒS rX   )rd   re   ÚnfevrZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>[   s$   € Ð7Ð7Ð7¨3•B”H˜SœXÑ&Ô&Ð7Ð7Ð7r   c                 ó@   — g | ]}t          j        |j        ¦  «        ‘ŒS rX   )rd   re   rN   rZ   s     r   r\   z5TestDerivative.test_vectorization.<locals>.<listcomp>`   s$   € Ð5Ð5Ð5¨•2”8˜CœGÑ$Ô$Ð5Ð5Ð5r   )rd   ÚlinspaceÚreshaperQ   Ú	vectorizer   r'   Úfloat64Úravelr   r   r*   r,   r   rb   rf   rh   r   ÚmaxrN   )r   r@   rC   r-   r   rL   r   r/   ÚrefsÚref_xÚref_dfÚ	ref_errorÚref_successÚref_flagÚref_nfevÚref_nitrU   rV   s   ``              @@r   Útest_vectorizationz!TestDerivative.test_vectorization3   s"  øøøø€ ð
 <AÐI�BŒK˜˜t RÑ(Ô(×0Ò0°Ñ7Ô7Ð7ÀcˆÝŒG�A‰JŒJˆØˆå	Œð	6ð 	6ð 	6ð 	6ð 	6ñ 
Œð	6ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð
 ˆˆe‰Øˆˆg‰å˜˜BŸJšJ q°´
˜JÑ;Ô;À5ÐIÑIÔIˆØ!Ð! !Ñ$Ô$×*Ò*Ñ,Ô,ˆà'Ð' $Ð'Ñ'Ô'ˆÝ˜Ÿ
š
 3¤5¨%Ñ0Ô0°"·*²*¸UÑ2CÔ2CÑDÔDÐDà)Ð) DÐ)Ñ)Ô)ˆÝ˜Ÿ
š
 3¤6¨5Ñ1Ô1°2·:²:¸fÑ3EÔ3EÑFÔFÐFà/Ð/¨$Ð/Ñ/Ô/ˆ	Ý˜Ÿ
š
 3¤9¨eÑ4Ô4°b·j²jÀÑ6KÔ6KØ"ð	$ñ 	$ô 	$ð 	$ð :Ð9°DÐ9Ñ9Ô9ˆÝ˜Ÿ
š
 3¤;°Ñ6Ô6¸¿
º
À;Ñ8OÔ8OÑPÔPÐPà9Ð9°DÐ9Ñ9Ô9ˆÝ˜Ÿ
š
 3¤:¨uÑ5Ô5°r·z²zÀ(Ñ7KÔ7KÑLÔLÐLà7Ð7°$Ð7Ñ7Ô7ˆÝ˜Ÿ
š
 3¤8¨UÑ3Ô3°R·Z²ZÀÑ5IÔ5IÑJÔJÐJÝ�B‰<Œ<ð 	6Ø—6’6˜#œ(Ñ#Ô# u¨W¤~Ò5Ð5Ð5Ð5à5Ð5°Ð5Ñ5Ô5ˆÝ˜Ÿ
š
 3¤7¨EÑ2Ô2°B·J²J¸wÑ4GÔ4GÑHÔHÐHÝ�B‰<Œ<ð 	3Ø—6’6˜#œ'‘?”? e¨E¤lÒ2Ð2Ð2Ð2ð	3ð 	3Ø2Ð2r   c                 óÈ  ‡‡‡— t           j                             d¦  «        Šˆˆˆfd„Šd‰_        ‰                     d‰j        ¬¦  «        f}t          ‰‰                     d‰j        ¬¦  «        t          d¬¦  «        d|¬	¦  «        }‰ 
                    t          j        t          t          j        t          j        g‰j        ¬¦  «        }t#          |j        |¦  «         d S )
Nì   •¾;O  c                 óÒ   •‡— ‰xj         dz  c_         d„ ˆˆfd„ˆfd„ˆfd„gŠˆfd„t          | ‰                     |d¦  «        ¦  «        D ¦   «         }‰                     |¦  «        S )NrA   c                 ó   — | dz
  S ©Ng      @rX   rY   s    r   ú<lambda>z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>k   s
   € ˜q 3™w€ r   c                 óX   •— ‰                      | ¦  «        ‰                     ¦   «         z  S r   )ÚexpÚrandom)r   Úrngr-   s    €€r   r~   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>l   s   ø€ ˜rŸvšv a™yœy¨¯ª©¬Ñ5€ r   c                 ó.   •— ‰                      | ¦  «        S r   ©r€   ©r   r-   s    €r   r~   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>m   s   ø€ ˜rŸvšv a™yœy€ r   c                 ó:   •— ‰                      | ‰j        ¦  «        S r   )Ú	full_likeÚnanr…   s    €r   r~   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>n   s   ø€ ˜rŸ|š|¨A¨r¬vÑ6Ô6€ r   c                 óR   •— g | ]#\  }} ‰t          |¦  «                 |¦  «        ‘Œ$S rX   )Úint)r[   r   ÚjÚfuncss      €r   r\   z8TestDerivative.test_flags.<locals>.f.<locals>.<listcomp>o   s1   ø€ ÐOÐOÐO©¨¨1�=�5�˜Q™œ”= Ñ#Ô#ÐOÐOÐOr   r]   )rN   Úziprk   Ústack)ÚxsÚjsr/   rŒ   r   r‚   r-   s      @€€€r   r   z$TestDerivative.test_flags.<locals>.fi   s‹   øø€ ØˆEŒE�Q‰JˆEŒEØ&Ð&Ø5Ð5Ð5Ð5Ð5Ø(Ð(Ð(Ð(Ø6Ð6Ð6Ð6ð8ˆEð PÐOÐOÐOµ°B¸¿
º
À2ÀuÑ8MÔ8MÑ0NÔ0NÐOÑOÔOˆCØ—8’8˜C‘=”=Ð r   r   rG   r%   ç›+¡†›„=©ÚrtolrH   )Ú
tolerancesr@   rS   )rd   r�   Údefault_rngrN   ÚarangeÚint64r   Úonesrm   Údictr'   ÚeimÚ_ECONVERGEDr   Ú	_ECONVERRÚ
_EVALUEERRre   r   rf   )r   r-   rS   r/   Ú	ref_flagsr   r‚   s    `   @@r   Ú
test_flagszTestDerivative.test_flagse   só   øøø€ õ Œi×#Ò#Ð$4Ñ5Ô5ˆð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð ˆŒà—	’	˜! 2¤8�	Ñ,Ô,Ð.ˆÝ˜˜BŸGšG A¨R¬Z˜GÑ8Ô8Ý$(¨eÐ$4Ñ$4Ô$4Ø  tð-ñ -ô -ˆð —J’J¥¤Ý /Ý #¤Ý #¤ð 0ð 8:´xð ñ Aô Aˆ	õ 	˜œ
 IÑ.Ô.Ð.Ð.Ð.r   c                 ó|  ‡‡— t           j                             d¦  «        Šˆˆfd„}t          |‰                     d‰j        ¬¦  «        t          d¬¦  «        dd¬	¦  «        }‰                     t          j        t          t          j
        t          j        g‰j        ¬¦  «        }t          |j        |¦  «         d S )
Nrz   c                 óè   •— | dz
  ‰                      | ¦  «        ‰                     ¦   «         z  ‰                      | ¦  «        ‰                     | ‰j        ¦  «        g}‰                     |¦  «        S r}   )r€   r�   r‡   rˆ   rŽ   )r   Úoutr‚   r-   s     €€r   r   z3TestDerivative.test_flags_preserve_shape.<locals>.f�   s]   ø€ Ø�s‘7Ø—6’6˜!‘9”9˜SŸZšZ™\œ\Ñ)Ø—6’6˜!‘9”9Ø—<’<  2¤6Ñ*Ô*ð,ˆCð —8’8˜C‘=”=Ð r   rA   r%   r‘   r’   rH   T)r”   r@   Úpreserve_shape)rd   r�   r•   r   r'   rm   r™   rš   r›   r   rœ   r�   re   r   rf   )r   r-   r   r/   rž   r‚   s    `   @r   Útest_flags_preserve_shapez(TestDerivative.test_flags_preserve_shape~   sÊ   øø€ åŒi×#Ò#Ð$4Ñ5Ô5ˆð	!ð 	!ð 	!ð 	!ð 	!ð 	!õ ˜˜BŸJšJ q°´
˜JÑ;Ô;Ý$(¨eÐ$4Ñ$4Ô$4Ø °ð7ñ 7ô 7ˆð —J’J¥¤Ý /Ý #¤Ý #¤ð 0ð 8:´xð ñ Aô Aˆ	õ 	˜œ
 IÑ.Ô.Ð.Ð.Ð.r   c                 óÔ  ‡— ˆfd„}‰                      d¦  «        }‰                      ‰                      d¦  «        d‰                     d|z  ¦  «        z  dd‰                     d|z  ¦  «        z  z   d‰                     d|z  ¦  «        z  |dz
  dz  z  d‰                     d|z  ¦  «        z  |dz
  z  z   g¦  «        }t          ||d¬	¦  «        }t	          |j        |¦  «         d S )
Nc                 óÖ   •— | ‰                      d| z  ¦  «        | ‰                      d| z  ¦  «        z   ‰                      d| z  ¦  «        | dz
  dz  z  g}‰                     |¦  «        S )NrF   r"   é   rA   rH   )ÚsinrŽ   )r   r¢   r-   s     €r   r   z-TestDerivative.test_preserve_shape.<locals>.f”   s\   ø€ Ø�b—f’f˜Q˜q™S‘k”k 1 R§V¢V¨B¨q©D¡\¤\¡>°2·6²6¸"¸Q¹$±<´<ÀÀ1ÁÀqÁÑ3HÐIˆCØ—8’8˜C‘=”=Ð r   ç        rA   rF   r"   r§   rH   T©r£   )r'   Úcosr¨   r   r   r*   )r   r-   r   r   r0   r/   s    `    r   Útest_preserve_shapez"TestDerivative.test_preserve_shape’   sï   ø€ ð	!ð 	!ð 	!ð 	!ð 	!ð �JŠJ�r‰NŒNˆØ�jŠj˜"Ÿ*š* Q™-œ-¨¨2¯6ª6°!°A±#©;¬;©¸¸"¸R¿VºVÀBÀqÁD¹\¼\¹/Ñ8IØ˜RŸVšV B q¡D™\œ\™/¨1¨Q©3°©(Ñ2°Q°r·v²v¸bÀ¹d±|´|±^ÀQÀqÁSÑ5IÑIðKñ Lô Lˆå˜˜A¨dÐ3Ñ3Ô3ˆÝ˜œ Ñ$Ô$Ð$Ð$Ð$r   c                 óœ  — |                      d|j        ¬¦  «        }t          j        }t	          t
          j                             d¦  «        ¦  «        }t          dd¬¦  «        }| 	                    ¦   «         }d|d<   t          |||d¬¦  «        }t          |j        |z
  ¦  «        dk     sJ ‚d	|d<   t          |||d¬¦  «        }t          |j        |z
  ¦  «        d	k     sJ ‚t          |j        |z
  ¦  «        t          |j        |z
  ¦  «        k     sJ ‚| 	                    ¦   «         }d|d
<   t          |||d¬¦  «        }t          |j        |z
  ¦  «        d|z  k     sJ ‚d	|d
<   t          |||d¬¦  «        }t          |j        |z
  ¦  «        d	|z  k     sJ ‚t          |j        |z
  ¦  «        t          |j        |z
  ¦  «        k     sJ ‚d S )Nr$   r%   r   )r8   r“   gü©ñÒMbP?r8   rG   )r”   r@   g�íµ ÷Æ°>r“   )r'   rm   r   r   Úfloatr
   r(   r)   r™   Úcopyr   r+   r*   )	r   r-   r   r   r0   Útolerances0r”   Úres1Úres2s	            r   Útest_convergencezTestDerivative.test_convergencež   sÓ  € à�JŠJ�r ¤ˆJÑ,Ô,ˆÝŒLˆÝ•E”J—N’N 2Ñ&Ô&Ñ'Ô'ˆÝ ¨Ð*Ñ*Ô*ˆà ×%Ò%Ñ'Ô'ˆ
Ø!ˆ
�6ÑÝ˜!˜Q¨:¸QÐ?Ñ?Ô?ˆÝ�4”7˜S‘=Ñ!Ô! DÒ(Ð(Ð(Ð(Ø!ˆ
�6ÑÝ˜!˜Q¨:¸QÐ?Ñ?Ô?ˆÝ�4”7˜S‘=Ñ!Ô! DÒ(Ð(Ð(Ð(Ý�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6à ×%Ò%Ñ'Ô'ˆ
Ø!ˆ
�6ÑÝ˜!˜Q¨:¸QÐ?Ñ?Ô?ˆÝ�4”7˜S‘=Ñ!Ô! D¨3¡JÒ.Ð.Ð.Ð.Ø!ˆ
�6ÑÝ˜!˜Q¨:¸QÐ?Ñ?Ô?ˆÝ�4”7˜S‘=Ñ!Ô! D¨3¡JÒ.Ð.Ð.Ð.Ý�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6Ð6Ð6r   c                 ó(  — |                      d|j        ¬¦  «        }t          j        }t	          t
          j                             d¦  «        ¦  «        }t          ||dd¬¦  «        }t          ||dd¬¦  «        }t          |j
        |z
  ¦  «        t          |j
        |z
  ¦  «        k     sJ ‚t          ||dd¬¦  «        }t          ||d	d¬¦  «        }t          |j
        |z
  ¦  «        t          |j
        |z
  ¦  «        k     sJ ‚t          d
dd¬¦  «        }t          ||fdddœ|¤Ž}t          ||fdddœ|¤Ž}t          |j
        |j
        d¬¦  «         t          ddd¬¦  «        }t          ||fdddœ|¤Ž}t          ||fdt          j        d¦  «        z  ddœ|¤Ž}t          |j
        |j
        d¬¦  «         d|d<   t          ||fdddœ|¤Ž}t          ||fdt          j        d¦  «        z  ddœ|¤Ž}t          |j
        |j
        d¬¦  «         d S )Nr$   r%   ç      à?rA   )Úinitial_stepÚmaxitergš™™™™™©?rH   )Ústep_factorr·   r§   rG   r   )r@   r·   Ústep_direction)r¶   r¸   g›+¡†›„ö<r’   rP   r¹   )r'   rm   r   r   r®   r
   r(   r)   r   r+   r*   r™   r   rd   Úsqrt)	r   r-   r   r   r0   r±   r²   rT   r/   s	            r   Útest_step_parametersz#TestDerivative.test_step_parameters·   sA  € à�JŠJ�r ¤ˆJÑ,Ô,ˆÝŒLˆÝ•E”J—N’N 2Ñ&Ô&Ñ'Ô'ˆå˜!˜Q¨S¸!Ð<Ñ<Ô<ˆÝ˜!˜Q¨T¸1Ð=Ñ=Ô=ˆÝ�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6å˜!˜Q¨A°qÐ9Ñ9Ô9ˆÝ˜!˜Q¨B¸Ð:Ñ:Ô:ˆÝ�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6õ ˜A q¸Ð;Ñ;Ô;ˆÝ˜˜AÐK¨C¸SÐKÐKÀFÐKÐKˆÝ˜˜AÐG¨A¸1ÐGÐGÀÐGÐGˆÝ˜œ ¤¨UÐ3Ñ3Ô3Ð3õ ˜A q¸Ð;Ñ;Ô;ˆÝ˜˜AÐG¨A¸1ÐGÐGÀÐGÐGˆÝ˜˜AÐT¨A­b¬g°a©j¬j©LÀcÐTÐTÈVÐTÐTˆÝ˜œ ¤¨UÐ3Ñ3Ô3Ð3à#%ˆÐÑ Ý˜˜AÐG¨A¸1ÐGÐGÀÐGÐGˆÝ˜˜AÐT¨A­b¬g°a©j¬j©LÀcÐTÐTÈVÐTÐTˆÝ˜œ ¤¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 ó<  ‡— ˆfd„}‰                      ddd¦  «        }‰                     |¦  «        }d\  ||dk     <   ||dk    <   t          |||¬¦  «        }t          |j        ‰                     |¦  «        ¦  «         ‰                     |j        ¦  «        sJ ‚d S )	Nc                 ó\   •— ‰                      | ¦  «        }‰j        || dk     | dk    z   <   |S )Nr   rH   )r€   rˆ   ©r   Úyr-   s     €r   r   z-TestDerivative.test_step_direction.<locals>.fØ   s0   ø€ Ø—’�q‘	”	ˆAØ#%¤6ˆAˆq�1Šu˜˜QšÑÑ ØˆHr   r   rH   r"   )rA   rP   r   gffffffö?©r¹   )rj   Ú
zeros_liker   r   r*   r€   Úallrb   )r   r-   r   r   r¹   r/   s    `    r   Útest_step_directionz"TestDerivative.test_step_directionÖ   s°   ø€ ð	ð 	ð 	ð 	ð 	ð
 �KŠK˜˜1˜bÑ!Ô!ˆØŸš qÑ)Ô)ˆØ;@Ñ8ˆ�q˜3’wÑ °°C²Ñ!8Ý˜˜A¨nÐ=Ñ=Ô=ˆÝ˜œ §¢ q¡	¤	Ñ*Ô*Ð*Ø�vŠv�c”kÑ"Ô"Ð"Ð"Ð"Ð"Ð"r   c                 ó  — d„ }d„ }|                      |                     g d¢¦  «        d¦  «        }|                      |                     g d¢¦  «        d¦  «        }|                      |                     ddg¦  «        d	¦  «        }t          ||||f¬
¦  «        }|                      |||¦  «        |j        j        ¦  «        }|                     ||                     d¦  «        j        ¬¦  «        }t          |j        |¦  «         d S )Nc                 ó   — | |z  S r   rX   ©r   Úps     r   r   z=TestDerivative.test_vectorized_step_direction_args.<locals>.fæ   s   € Ø˜‘6ˆMr   c                 ó   — || |dz
  z  z  S ©NrA   rX   rÆ   s     r   r*   z>TestDerivative.test_vectorized_step_direction_args.<locals>.dfé   s   € Ø�q˜Q ™U‘|Ñ#Ð#r   )rA   rH   rF   rG   )rP   rA   rA   ©rP   r   rA   )rA   rP   rA   rH   rF   )rA   rA   rP   )r¹   rS   r$   r%   )rk   r'   r   Úbroadcast_tor*   rC   r&   r   )	r   r-   r   r*   r   ÚhdirrÇ   r/   r0   s	            r   Ú#test_vectorized_step_direction_argsz2TestDerivative.test_vectorized_step_direction_argsä   sþ   € ð	ð 	ð 	ð	$ð 	$ð 	$ð �JŠJ�r—z’z , , ,Ñ/Ô/°Ñ<Ô<ˆØ�zŠz˜"Ÿ*š* Z Z ZÑ0Ô0°*Ñ=Ô=ˆØ�JŠJ�r—z’z 1 a &Ñ)Ô)¨:Ñ6Ô6ˆÝ˜˜A¨d¸!¸Ð>Ñ>Ô>ˆØ�oŠo˜b˜b  A™hœh¨¬¬Ñ5Ô5ˆØ�jŠj˜ B§J¢J¨r¡N¤NÔ$8ˆjÑ9Ô9ˆÝ˜œ Ñ$Ô$Ð$Ð$Ð$r   c           	      ób  ‡— ˆfd„}‰                      d‰j        ¬¦  «        }‰                      g d¢¦  «        }‰                     ‰                     ddd¦  «        d¦  «        }t	          |||d	d
|¬¦  «        }‰                     |j         ||¦  «        z
  ¦  «        }‰                     |d d…df         |d
d …df         k     ¦  «        sJ ‚t          |j	        d         ¦  «        D ]E}t	          ||||df         d	d
|¬¦  «        }	t          |j        |d d …f         |	j        d¬¦  «         ŒFd S )Nc                 ó.   •— ‰                      | ¦  «        S r   r„   r…   s    €r   r   z+TestDerivative.test_initial_step.<locals>.fö   s   ø€ Ø—6’6˜!‘9”9Ðr   r©   r%   rÊ   éýÿÿÿr   r"   )rP   rA   rH   rA   )r¶   r@   r·   r¹   rP   .r‘   r’   )r'   rm   rk   Úlogspacer   r+   r*   rÂ   ÚrangerC   r   )
r   r-   r   r   r¹   Úh0r/   ÚerrÚir0   s
    `        r   Útest_initial_stepz TestDerivative.test_initial_stepô   s^  ø€ ð	ð 	ð 	ð 	ð 	ð �JŠJ�r ¤ˆJÑ,Ô,ˆØŸš J J JÑ/Ô/ˆØ�ZŠZ˜Ÿš B¨¨2Ñ.Ô.°Ñ8Ô8ˆÝ˜˜A¨B°aÀØ(6ð8ñ 8ô 8ˆà�fŠf�S”V˜a˜a ™dœd‘]Ñ#Ô#ˆð �vŠv�c˜#˜2˜#˜s˜(”m c¨!¨"¨"¨c¨'¤lÒ2Ñ3Ô3Ð3Ð3Ð3õ �r”x ”{Ñ#Ô#ð 	>ð 	>ˆAÝ˜Q °°1°a°4´ÀÈ1Ø,:ð<ñ <ô <ˆCå˜CœF 1 a a a 4œL¨#¬&°uÐ=Ñ=Ô=Ð=Ð=ð	>ð 	>r   c                 óÞ  ‡‡	— |                      d|j        ¬¦  «        }dŠ	d„ }d}t          ||‰	t          d¬¦  «        ¬¦  «        }|                     |j        ¦  «        rJ ‚|                     |j        |d	z   ‰	d	z
  d
z  z   k    ¦  «        sJ ‚|                     |j        ‰	k    ¦  «        sJ ‚ˆˆ	fd„Šd‰_	        d ‰_
        t          ¦   «         ‰_        t          ||‰t          d¬¦  «        ¬¦  «        }|                     ¦   «         D ]a}|dk    r1||         t          j        k    sJ ‚||         t          j        k    sJ ‚Œ9||         ‰j
        |         cxk    r||         k    sn J ‚Œbd S )Ng~ý,œã?r%   rF   c                 ó.   — t          j        | ¦  «        }|S r   r   )r   r/   s     r   r   z/TestDerivative.test_maxiter_callback.<locals>.f  s   € Ý”,˜q‘/”/ˆCØˆJr   é   çVçž¯Ò<r’   )r·   r”   rA   rH   c                 ó>  •— ‰xj         dz  c_         | ‰_        t          | d¦  «        sJ ‚t          | j        ¦  «        ‰j        vsJ ‚‰j                             t          | j        ¦  «        ¦  «         | j        t          j	        k    sJ ‚‰j         ‰k    rt          ‚d S )NrA   r   )Úiterr/   Úhasattrr®   r*   ÚdfsÚaddrf   rš   Ú_EINPROGRESSÚStopIteration)r/   Úcallbackr·   s    €€r   râ   z6TestDerivative.test_maxiter_callback.<locals>.callback  sš   ø€ ØˆMŒM˜QÑˆMŒMØˆHŒLÝ˜3 Ñ$Ô$Ð$Ð$Ð$Ý˜œ‘=”=¨¬Ð4Ð4Ð4Ð4ØŒL×Ò�U 3¤6™]œ]Ñ+Ô+Ð+Ø”:¥Ô!1Ò1Ð1Ð1Ð1ØŒ} Ò'Ð'Ý#Ð#ð (Ð'r   rP   )râ   r”   rf   )r'   rm   r   r™   Úanyrb   rÂ   rh   rN   rÜ   r/   ÚsetrÞ   Úkeysrš   rœ   Ú
_ECALLBACK)
r   r-   r   r   Údefault_orderr/   r²   Úkeyrâ   r·   s
           @@r   Útest_maxiter_callbackz$TestDerivative.test_maxiter_callback
  s³  øø€ à�JŠJ�x r¤zˆJÑ2Ô2ˆØˆð	ð 	ð 	ð ˆÝ˜˜A w½4ÀUÐ;KÑ;KÔ;KÐLÑLÔLˆØ—6’6˜#œ+Ñ&Ô&Ð&Ð&Ð&Ø�vŠv�c”h -°!Ñ"3°wÀ±{ÀA±oÑ"EÒEÑFÔFÐFÐFÐFØ�vŠv�c”g Ò(Ñ)Ô)Ð)Ð)Ð)ð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð ˆŒØˆŒÝ‘u”uˆŒå˜!˜Q¨½dÈÐ>NÑ>NÔ>NÐOÑOÔOˆð —8’8‘:”:ð 	Bð 	BˆCØ�hŠˆØ˜3”x¥3¤=Ò0Ð0Ð0Ð0Ø˜C”y¥C¤NÒ2Ð2Ð2Ð2Ð2à˜C”y H¤L°Ô$5ÐAÐAÒAÐA¸¸S¼ÒAÐAÐAÐAÐAÐAÐAð	Bð 	Br   rÌ   rÊ   gÍÌÌÌÌÌä?gffffffæ?r&   )Úfloat16Úfloat32rm   c                 ó  ‡‡— ‰dk    r#t          ‰¦  «        st          j        d¦  «         t          ‰‰¦  «        Š‰                     |‰¬¦  «        }ˆˆfd„}ˆfd„}t          ||d||¬¦  «        }|j        j        ‰k    sJ ‚|j        j        ‰k    sJ ‚|j	        j        ‰k    sJ ‚‰ 
                    ‰¦  «        j        }t          ‰¦  «        r|dz  d	z  n|dz  }	t          |j        ‰                     |j        ¦  «        |	¬
¦  «         d S )Nrê   z+float16 not tested for alternative backendsr%   c                 óH   •— | j         ‰k    sJ ‚‰                     | ¦  «        S r   )r&   r€   )r   r&   r-   s    €€r   r   z$TestDerivative.test_dtype.<locals>.f;  s&   ø€ Ø”7˜eÒ#Ð#Ð#Ð#Ø—6’6˜!‘9”9Ðr   c                 ót   •— | j         j        ‰k    sJ ‚| j        j        ‰k    sJ ‚| j        j        ‰k    sJ ‚d S r   )r   r&   r*   r,   )r/   r&   s    €r   râ   z+TestDerivative.test_dtype.<locals>.callback?  sH   ø€ Ø”5”; %Ò'Ð'Ð'Ð'Ø”6”< 5Ò(Ð(Ð(Ð(Ø”9”? eÒ+Ð+Ð+Ð+Ð+Ð+r   rG   )r@   r¹   râ   rµ   é2   r’   )r   ÚpytestÚskipr9   r'   r   r   r&   r*   r,   ÚfinfoÚepsr   r   r€   )
r   rÌ   r   r&   r-   r   râ   r/   ró   r“   s
      ``     r   Ú
test_dtypezTestDerivative.test_dtype0  s>  øø€ ð �IÒÐ¥h¨r¡l¤lÐÝŒKÐEÑFÔFÐFõ ˜˜EÑ"Ô"ˆØ�JŠJ�q ˆJÑ&Ô&ˆð	ð 	ð 	ð 	ð 	ð 	ð	,ð 	,ð 	,ð 	,ð 	,õ
 ˜˜A Q°tÀhÐOÑOÔOˆØŒuŒ{˜eÒ#Ð#Ð#Ð#ØŒvŒ|˜uÒ$Ð$Ð$Ð$ØŒyŒ %Ò'Ð'Ð'Ð'Ø�hŠh�u‰oŒoÔ!ˆå (¨¡¤Ð:ˆs�C‰x˜"‰}ˆ}°#°s±(ˆÝ˜œ §¢ s¤u¡¤°DÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 ót  — |                      d¦  «        }d}t          j        t          |¬¦  «        5  t	          d |¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d„ |                      d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d„ |                      d	d
g¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d„ |t          d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t	          d„ |t          d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t	          d„ |t          ¦   «         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d„ |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t	          d„ |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d„ |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t	          d„ |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          d „ |d!¬"¦  «         d d d ¦  «         n# 1 swxY w Y   d#}t          j        t          |¬¦  «        5  t	          d$„ |d%¬&¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )'NrA   z`f` must be callable.©Úmatchz3Abscissae and function output must be real numbers.c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>W  ó   €  € r   y      À      ð?z6When `preserve_shape=False`, the shape of the array...c                 ó
   — g d¢S )N)rA   rH   rF   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>[  s
   €    € r   éþÿÿÿrÐ   z6Tolerances and step parameters must be non-negative...c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>_  rù   r   rP   r7   ©r”   c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>a  rù   r   Úekkir’   c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>c  rù   r   ©r¸   ú%`maxiter` must be a positive integer.c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>g  rù   r   ç      ø?©r·   c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>i  rù   r   r   z"`order` must be a positive integerc                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>m  rù   r   rK   c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>o  rù   r   z'`preserve_shape` must be True or False.c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>s  rù   r   Úherringrª   z`callback` must be callable.c                 ó   — | S r   rX   rY   s    r   r~   z6TestDerivative.test_input_validation.<locals>.<lambda>w  rù   r   Ú	shrubbery)râ   )r'   rð   ÚraisesÚ
ValueErrorr   r™   Úobject)r   r-   ÚoneÚmessages       r   Útest_input_validationz$TestDerivative.test_input_validationM  sÍ  € à�jŠj˜‰mŒmˆà)ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	"ð 	"Ý�t˜SÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð HˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7Ý�{�{ B§J¢J¨uÑ$5Ô$5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð KˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Bð 	BÝÐ*Ð*¨B¯JªJ¸¸B°xÑ,@Ô,@ÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð KˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Cð 	CÝ�{�{ CµD¸b°M±M´MÐBÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	CåŒ]�:¨WÐ5Ñ5Ô5ð 	Gð 	GÝ�{�{ CµD¸fÐ4EÑ4EÔ4EÐFÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	GåŒ]�:¨WÐ5Ñ5Ô5ð 	?ð 	?Ý�{�{ CµV±X´XÐ>Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	6ð 	6Ý�{�{ C°Ð5Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6åŒ]�:¨WÐ5Ñ5Ô5ð 	4ð 	4Ý�{�{ C°Ð3Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	4ð 	4Ý�{�{ C¨sÐ3Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4åŒ]�:¨WÐ5Ñ5Ô5ð 	2ð 	2Ý�{�{ C¨qÐ1Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð <ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Cð 	CÝ�{�{ C¸	ÐBÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	?ð 	?Ý�{�{ C°+Ð>Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s×   ³AÁAÁAÁ8%B)Â)B-Â0B-Ã'DÄDÄDÄ,"EÅEÅ!EÆ "F.Æ.F2Æ5F2Ç H È HÈHÈ(IÉIÉIÉ.JÊJÊJÊ6KËKËKË<LÌL Ì#L ÍM$Í$M(Í+M(ÎN-Î-N1Î4N1c           
      óÐ  ‡— d„ }t          |¦  «        sdt          ||                     d¦  «        t          d¬¦  «        ¬¦  «        }|j        sJ ‚t          |j        |                     d¦  «        ¦  «         t          |j        |                     d¦  «        |j        ¬¦  «        }t          |j        |                     |j        ¦  «        ¦  «         t          |j
        |                     d	|j        ¬
¦  «        ¦  «         t          |j        |                     d¦  «        d¬¦  «        }t          |j        |                     |j        ¦  «        ¦  «         t          |j
        |                     d	|j        ¬
¦  «        ¦  «         t          d¦  «        D ]êŠ|                     d|j        ¬
¦  «        }ˆfd„}d‰z  |‰dz
  z  z  }t          ||dt          d‰¦  «        ¬¦  «        }t          |j        |d¬¦  «         t          |j        |                     |j        |j        ¬
¦  «        ¦  «         t          ||t          d‰¦  «        ¬¦  «        }|j        sJ ‚|j        dk    sJ ‚t          |j        |d¬¦  «         Œëd„ }t          ||                     d¦  «        |                     d¦  «        ¬¦  «        }t          |j        |                     d¦  «        ¦  «         d S )Nc                 ój   — t          | ¦  «        }|                     | j        d¦  «        sJ ‚| dz  dz
  S )Nzreal floatingéc   rA   )r	   Úisdtyper&   )r   Úxp_tests     r   r   z,TestDerivative.test_special_cases.<locals>.f~  s9   € Ý% aÑ(Ô(ˆGØ—?’? 1¤7¨OÑ<Ô<Ð<Ð<Ð<Ø˜‘7˜Q‘;Ðr   é   r6   r’   rý   gl)~IéŠQrA   rÀ   rÐ   r%   r   ©r¶   rB   r  c                 ó   •— d| ‰z  z  S ©NrH   rX   )r   rU   s    €r   r   z,TestDerivative.test_special_cases.<locals>.fš  s   ø€ Ø˜˜A™‘v�r   rH   )r·   r@   rÚ   rK   c                 ó   — || z  dz
  S rÉ   rX   )r   Úcs     r   r   z,TestDerivative.test_special_cases.<locals>.f©  s   € Ø�Q‘3˜‘7ˆNr   rF   )rS   g      @)r   r   r'   r™   rb   r   r*   r€   rˆ   r   rf   re   rÒ   rm   ro   r,   rN   )r   r-   r   r/   r   r0   rU   s         @r   Útest_special_casesz!TestDerivative.test_special_casesy  sª  ø€ ð
	ð 	ð 	õ
 ˜‰|Œ|ð 	;Ý˜Q §
¢
¨1¡¤½$ÀEÐ:JÑ:JÔ:JÐKÑKÔKˆCØ”;ÐÐÐÝ˜CœF B§J¢J¨yÑ$9Ô$9Ñ:Ô:Ð:õ ˜œ §¢¨A¡¤¸r¼vÐFÑFÔFˆÝ˜œ §
¢
¨2¬6Ñ 2Ô 2Ñ3Ô3Ð3Ý˜œ
 B§J¢J¨r¸¼ JÑ$BÔ$BÑCÔCÐCå˜œ §¢¨A¡¤¸QÐ?Ñ?Ô?ˆÝ˜œ §
¢
¨2¬6Ñ 2Ô 2Ñ3Ô3Ð3Ý˜œ
 B§J¢J¨r¸¼ JÑ$BÔ$BÑCÔCÐCõ �q‘”ð 	5ð 	5ˆAØ—
’
˜3 b¤j�
Ñ1Ô1ˆAðð ð ð ð ð �A‘#�a˜!˜A™#‘h‘,ˆCå˜Q ¨1µC¸¸1±I´IÐ>Ñ>Ô>ˆCÝ˜CœF C¨eÐ4Ñ4Ô4Ð4Ý˜CœI r§z¢z°"´&ÀÄ
 zÑ'KÔ'KÑLÔLÐLå˜Q ­¨Q°©¬Ð3Ñ3Ô3ˆCØ”;ÐÐÐØ”7˜a’<�<�<�<Ý˜CœF C¨eÐ4Ñ4Ô4Ð4Ð4ð	ð 	ð 	õ ˜˜BŸJšJ q™MœM°·
²
¸1±´Ð>Ñ>Ô>ˆÝ˜œ §
¢
¨2¡¤Ñ/Ô/Ð/Ð/Ð/r   c                 ó   — | dz
  dz  S )NrA   rF   rX   rY   s    r   r~   zTestDerivative.<lambda>³  s   € �A˜‘E˜a‘<€ r   c                 óN   — t          j        | dk    | dz
  dz  | dz
  dz  ¦  «        S )NrA   é   rF   )rd   ÚwhererY   s    r   r~   zTestDerivative.<lambda>´  s(   € •2”8˜A šE A¨¡E¨a¡<°!°a±%¸A±Ñ>Ô>€ r   c                 óŒ   — d}t          |g d¢|dœŽ}t          j        |j        ¦  «        sJ ‚t	          |j        d|¬¦  «         d S )Ng¼‰Ø—²Òœ<rÊ   )r¹   r8   r   r7   )r   rd   rÂ   rb   r   r*   )r   r3   r8   r/   s       r   Útest_saddle_gh18811z"TestDerivative.test_saddle_gh18811°  sV   € ð ˆÝ˜$¨z¨z¨zÀÐEÐEÐEˆÝŒv�c”kÑ"Ô"Ð"Ð"Ð"Ý˜œ ¨Ð-Ñ-Ô-Ð-Ð-Ð-r   N)Ú__name__Ú
__module__Ú__qualname__r   rð   ÚmarkÚparametrizerd   rj   r1   r   r
   Ú_distr_paramsÚdistcontr?   Útuplerx   rŸ   r¤   r¬   r³   r»   rÃ   rÍ   rÖ   ré   rô   r  r  Úxfailr$  rX   r   r   r   r      s³  € € € € € ðð ð ð „[×Ò˜S 3¨¨¬°E¸4ÀÑ(DÔ(DÐ"EÑFÔFð	<ð 	<ñ GÔFð	<ð „[×!Ò!¨$Ð!Ñ/Ô/Ø„[×Ò˜V UÔ%8Ô%AÑBÔBð1ð 1ñ CÔBñ 0Ô/ð1ð „[×Ò˜W q¨! fÑ-Ô-Ø„[×Ò˜W u u¡w¤w°°v¸yÐ&IÑJÔJð.3ð .3ñ KÔJñ .Ô-ð.3ð`/ð /ð /ð2/ð /ð /ð(
%ð 
%ð 
%ð7ð 7ð 7ð24ð 4ð 4ð>#ð #ð #ð%ð %ð %ð >ð >ð >ð,$Bð $Bð $BðL „[×Ò˜V ZÑ0Ô0Ø„[×Ò˜S 4¨$°¨Ð"5Ñ6Ô6Ø„[×Ò˜WÐ&GÑHÔHð:ð :ñ IÔHñ 7Ô6ñ 1Ô0ð:ð4*?ð *?ð *?ðX40ð 40ð 40ðn „[×!Ò!¨$Ð!Ñ/Ô/Ø„[ÔØ„[×Ò˜VØ	Ð	 Ð#Ø	>Ð	>ÀÐBð&ñ ô ð.ð .ñ	ô ñ Ôñ 0Ô/ð.ð .ð .r   r   c                   ó   — e Zd Zd„ ZdS )ÚJacobianHessianTestc                 óÜ  — | j         j        }d}t          j        t          |¬¦  «        5   ||j        dt          d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        }t          j	        }d}t          j        t          |¬¦  «        5   |||t          d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5   |||t          d¬	¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5   |||d¬
¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5   |||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5   |||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"Argument `x` must be at least 1-D.rö   rA   rP   r7   rý   rF   z<Tolerances and step parameters must be non-negative scalars.r’   r  z#`order` must be a positive integer.rK   r  r  )
Újh_funcÚ__func__rð   r  r  r¨   r™   r˜   r   Úrosen)r   r-   r1  r  r   Úfuncs         r   Útest_ivzJacobianHessianTest.test_ivÁ  sm  € Ø”,Ô'ˆð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	9ð 	9ØˆG�B”F˜A­$°B¨-©-¬-Ð8Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð
 �GŠG�A‰JŒJˆÝŒ~ˆØPˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7ØˆG�D˜!­°"¨©¬Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7åŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7ØˆG�D˜!­°"¨©¬Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7åŒ]�:¨WÐ5Ñ5Ô5ð 	-ð 	-ØˆG�D˜!¨Ð,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 8ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	'ð 	'ØˆG�D˜! 2Ð&Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	)ð 	)ØˆG�D˜! RÐ(Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)sk   ª"AÁAÁAÂ!C
Ã
CÃCÃ0DÄDÄ DÄ?EÅEÅ!EÆFÆF!Æ$F!ÇG!Ç!G%Ç(G%N)r%  r&  r'  r5  rX   r   r   r/  r/  À  s#   € € € € € ð)ð )ð )ð )ð )r   r/  c                   óî  — e Zd ZeZd„ Zd„ Zde_        ee_        d„ Z	d„ Z
de	_        e
e	_        d„ Zd„ Zde_        ee_        d	„ Zd
„ Zde_        ee_        d„ Zd„ Zde_        ee_        d„ Zde_        ej        e_        ej                             dd¦  «        ej                             dg d¢¦  «        ej                             dee	eeeeg¦  «        d„ ¦   «         ¦   «         ¦   «         Zd„ Zd„ ZdS )ÚTestJacobianc                 óx   — | \  }}|                      |dz  |z  d|z  |                     |¦  «        z   g¦  «        S ©NrH   r!  ©rŽ   r¨   )Úzr-   r   r¿   s       r   Úf1zTestJacobian.f1æ  s=   € Ø‰ˆˆ1Ø�xŠx˜˜a™ !™ Q¨¡U¨R¯VªV°A©Y¬YÑ%6Ð7Ñ8Ô8Ð8r   c                 óx   — | \  }}d|z  |z  |dz  gt          j        |d¦  «        t          j        |¦  «        ggS r9  )rd   r‡   r«   )r;  r   r¿   s      r   Údf1zTestJacobian.df1ê  s@   € Ø‰ˆˆ1Ø�Q‘˜‘˜A ™FÐ#¥b¤l°1°aÑ&8Ô&8½"¼&À¹)¼)Ð%DÐEÐEr   )rH   rH   c                 ó’   — | \  }}|                      ||                     |¦  «        z  ||                     |¦  «        z  g¦  «        S r   ©rŽ   r«   r¨   )r;  r-   ÚrÚphis       r   Úf2zTestJacobian.f2ñ  s>   € Ø‰ˆˆ3Ø�xŠx˜˜RŸVšV C™[œ[™¨!¨b¯fªf°S©k¬k©/Ð:Ñ;Ô;Ð;r   c                 óº   — | \  }}t          j        |¦  «        | t          j        |¦  «        z  gt          j        |¦  «        |t          j        |¦  «        z  ggS r   )rd   r«   r¨   )r;  rA  rB  s      r   Údf2zTestJacobian.df2õ  sP   € Ø‰ˆˆ3Ý”˜‘”˜q˜b¥2¤6¨#¡;¤;Ñ.Ð/Ý”˜‘”˜a¥"¤&¨¡+¤+™oÐ.ð0ð 	0r   c                 ó  — | \  }}}|                      ||                     |¦  «        z  |                     |¦  «        z  ||                     |¦  «        z  |                     |¦  «        z  ||                     |¦  «        z  g¦  «        S r   )rŽ   r¨   r«   )r;  r-   rA  rB  Úths        r   Úf3zTestJacobian.f3ý  sx   € Ø‰
ˆˆ3�Ø�xŠx˜˜RŸVšV C™[œ[™¨2¯6ª6°"©:¬:Ñ5°q¸2¿6º6À#¹;¼;±ÈÏÊÐPRÉÌÑ7SØ˜RŸVšV C™[œ[™ð*ñ +ô +ð 	+r   c                 óŒ  — | \  }}}t          j        |¦  «        t          j        |¦  «        z  |t          j        |¦  «        z  t          j        |¦  «        z  | t          j        |¦  «        z  t          j        |¦  «        z  gt          j        |¦  «        t          j        |¦  «        z  |t          j        |¦  «        z  t          j        |¦  «        z  |t          j        |¦  «        z  t          j        |¦  «        z  gt          j        |¦  «        | t          j        |¦  «        z  t          j        |¦  «        ggS r   )rd   r¨   r«   rÁ   )r;  rA  rB  rG  s       r   Údf3zTestJacobian.df3  sï   € Ø‰
ˆˆ3�Ý”˜‘”�rœv b™zœzÑ)¨1­r¬v°c©{¬{©?½R¼VÀB¹Z¼ZÑ+GØ�•b”f˜S‘k”kÑ!¥B¤F¨2¡J¤JÑ.ð0å”˜‘”�rœv b™zœzÑ)¨1­r¬v°c©{¬{©?½R¼VÀB¹Z¼ZÑ+GØ•R”V˜C‘[”[‘¥2¤6¨"¡:¤:Ñ-ð/å”˜‘”˜q˜b¥2¤6¨#¡;¤;Ñ.µ´¸aÑ0@Ô0@ÐAð	Cð 	Cr   )rF   rF   c           	      óŠ   — | \  }}}|                      |d|z  d|dz  z  d|z  z
  ||                     |¦  «        z  g¦  «        S ©Nr!  rG   rH   r:  ©r   r-   Úx1Úx2Úx3s        r   Úf4zTestJacobian.f4  sK   € Ø‰
ˆˆB�Ø�xŠx˜˜Q ™V Q¨¨q©¡[°1°r±6Ñ%9¸2ÀÇÂÀrÁ
Ä
¹?ÐKÑLÔLÐLr   c                 óÞ   — | \  }}}t          j        |¦  «        }|d|z  d|z  gd|z  d|z  d|z  gd|z  d|z  d|z  g|t          j        |¦  «        z  d|z  t          j        |¦  «        ggS ©Nr   r!  rÙ   rû   )rd   Ú	ones_liker«   r¨   ©r   rN  rO  rP  r  s        r   Údf4zTestJacobian.df4  s†   € Ø‰
ˆˆB�ÝŒl˜2ÑÔˆØ�a˜#‘g˜q 3™wÐ'Ø�S‘˜!˜c™' 1 s¡7Ð+Ø�S‘˜!˜b™& " s¡(Ð+Ø•b”f˜R‘j”j‘ ! c¡'­2¬6°"©:¬:Ð6ð8ð 	8r   rE   c           	      óŽ   — | \  }}}|                      d|z  d|dz  z  d|                     ||z  ¦  «        z  z
  ||z  g¦  «        S rL  r:  rM  s        r   Úf5zTestJacobian.f5  sN   € Ø‰
ˆˆB�Ø�xŠx˜˜R™  R¨1¡W¡¨q°2·6²6¸"¸r¹'±?´?Ñ/BÑ!BÀBÈÁGÐLÑMÔMÐMr   c                 óÜ   — | \  }}}t          j        |¦  «        }d|z  d|z  d|z  gd|z  d|z  t          j        ||z  ¦  «        z  d|z  t          j        ||z  ¦  «        z  gd|z  ||ggS rS  )rd   rT  r«   rU  s        r   Údf5zTestJacobian.df5   s‚   € Ø‰
ˆˆB�ÝŒl˜2ÑÔˆØ�S‘˜!˜c™' 1 s¡7Ð+Ø�R‘˜˜b™¥2¤6¨"¨r©'¡?¤?Ñ2°B¸±G½b¼fÀRÈ"ÁW¹o¼oÑ4MÐNØ�S‘˜"˜bÐ!ð#ð 	#r   c                 ó*   — t          j        | ¦  «        S r   )r   r3  )r   Ú_s     r   r3  zTestJacobian.rosen*  s   € �HœN¨1Ñ-Ô-Ð-r   )r!  rA   r&   )rë   rm   rQ   )rX   )rB   )rH   rF   r4  c                 ó¼  ‡‡— |dk    rdnd}t          ‰|¦  «        }t          j                             d¦  «        }‰j        \  }}|                     |f|z   ¬¦  «        }	t          ˆˆfd„‰                     |	|¬¦  «        ¦  «        }
‰                     t          j        ‰                     |	¦  «        ¦  «        |¬¦  «        }t          |
j	        ||¬¦  «         d S )	Nrm   r6   g“ÆhUM`?ì   6Hœ2«)rQ   c                 ó   •—  ‰| ‰¦  «        S r   rX   )r   r4  r-   s    €€r   r~   z,TestJacobian.test_examples.<locals>.<lambda>7  s   ø€    a¨"¡¤€ r   r%   r7   )
r9   rd   r�   r•   Úmnr   r'   r0   r   r*   )r   r&   rQ   r4  r-   r8   r‚   ÚmrU   r   r/   r0   s      ``       r   Útest_exampleszTestJacobian.test_examples.  sÓ   øø€ ð  Ò*Ð*ˆuˆu°ˆÝ˜˜EÑ"Ô"ˆÝŒi×#Ò# LÑ1Ô1ˆØŒw‰ˆˆ1Ø�JŠJ˜Q˜D 4™KˆJÑ(Ô(ˆÝÐ-Ð-Ð-Ð-Ð-¨r¯zªz¸!À5¨zÑ/IÔ/IÑJÔJˆà�jŠj�œ D§H¢H¨Q¡K¤KÑ0Ô0¸ˆjÑ>Ô>ˆÝ˜œ ¨$Ð/Ñ/Ô/Ð/Ð/Ð/r   c           	      ó²  ‡‡‡‡— ‰                      ddg¦  «        Šˆfd„}ˆfd„Šˆfd„Št          |‰d¬¦  «        }t          ‰¦  «        rXt          t	          j        |j        ¦  «        ¦  «        dk    sJ ‚t          t	          j        |j        ¦  «        ¦  «        dk    sJ ‚t          ˆˆfd	„‰d
d…         d¬¦  «        }t          ˆˆfd„‰dd…         d¬¦  «        }t          ˆˆfd„‰d
d…         d¬¦  «        }t          ˆˆfd„‰dd…         d¬¦  «        }t          j	        ¦   «         }dD ]¥}	‰                      t          ||	¦  «        t          ||	¦  «        gt          ||	¦  «        t          ||	¦  «        gg¦  «        }
‰                     |
¦  «        ||	<   ||	         j        ‰j        k    rdnd}t          ||	         ||	         |¬¦  «         Œ¦d S )Nrµ   ç      Ð?c                 óÌ   •— | \  }}‰                      ‰                     d|z  ¦  «        ‰                     |¦  «        z  ‰                     d|z  ¦  «        |dz  z  g¦  «        S )Nrµ   rH   r@  )r;  r   r¿   r-   s      €r   r>  z$TestJacobian.test_attrs.<locals>.df1B  sW   ø€ Ø‰DˆAˆqØ—8’8˜RŸVšV C¨¡E™]œ]¨R¯VªV°A©Y¬YÑ6¸¿º¸qÀ¹s¹¼ÀaÈÁdÑ8JÐKÑLÔLÐLr   c                 ó`   •— ‰                      d| z  ¦  «        ‰                      |¦  «        z  S )Nrµ   )r«   r¾   s     €r   Údf1_0xyz(TestJacobian.test_attrs.<locals>.df1_0xyF  s&   ø€ Ø—6’6˜#˜a™%‘=”= 2§6¢6¨!¡9¤9Ñ,Ð,r   c                 ó@   •— ‰                      d| z  ¦  «        |dz  z  S r  )r¨   r¾   s     €r   Údf1_1xyz(TestJacobian.test_attrs.<locals>.df1_1xyI  s    ø€ Ø—6’6˜!˜A™#‘;”;  A¡Ñ%Ð%r   r"   r  rG   c                 ó(   •—  ‰| ‰d         ¦  «        S rÉ   rX   )r   rg  r;  s    €€r   r~   z)TestJacobian.test_attrs.<locals>.<lambda>Q  ó   ø€  7 7¨1¨a°¬dÑ#3Ô#3€ r   r   rA   c                 ó(   •—  ‰‰d         | ¦  «        S ©Nr   rX   )r¿   rg  r;  s    €€r   r~   z)TestJacobian.test_attrs.<locals>.<lambda>R  ó   ø€  7 7¨1¨Q¬4°Ñ#3Ô#3€ r   rH   c                 ó(   •—  ‰| ‰d         ¦  «        S rÉ   rX   )r   ri  r;  s    €€r   r~   z)TestJacobian.test_attrs.<locals>.<lambda>S  rk  r   c                 ó(   •—  ‰‰d         | ¦  «        S rm  rX   )r¿   ri  r;  s    €€r   r~   z)TestJacobian.test_attrs.<locals>.<lambda>T  rn  r   )rb   rf   r*   rN   rh   giUMuï>g´àø¤tã=r’   )r'   r   r   Úlenrd   ÚuniquerN   rh   r   ÚOptimizeResultr9   Úsqueezer&   rë   r   )r   r-   r>  r/   Úres00Úres01Úres10Úres11r0   ÚattrÚref_attrr“   rg  ri  r;  s    `          @@@r   Ú
test_attrszTestJacobian.test_attrs<  sF  øøøø€ à�JŠJ˜˜T�{Ñ#Ô#ˆð	Mð 	Mð 	Mð 	Mð 	Mð	-ð 	-ð 	-ð 	-ð 	-ð	&ð 	&ð 	&ð 	&ð 	&õ �s˜A¨BÐ/Ñ/Ô/ˆÝ�B‰<Œ<ð 	1Ý•r”y ¤Ñ)Ô)Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ý•r”y ¤Ñ*Ô*Ñ+Ô+¨qÒ0Ð0Ð0Ð0åÐ3Ð3Ð3Ð3Ð3°Q°q¸°s´VÈ"ÐMÑMÔMˆÝÐ3Ð3Ð3Ð3Ð3°Q°q¸°s´VÈ"ÐMÑMÔMˆÝÐ3Ð3Ð3Ð3Ð3°Q°q¸°s´VÈ"ÐMÑMÔMˆÝÐ3Ð3Ð3Ð3Ð3°Q°q¸°s´VÈ"ÐMÑMÔMˆÝÔ%Ñ'Ô'ˆØ>ð 	=ð 	=ˆDØ—z’z¥G¨E°4Ñ$8Ô$8½'À%ÈÑ:NÔ:NÐ#OÝ$+¨E°4Ñ$8Ô$8½'À%ÈÑ:NÔ:NÐ#Oð#Qñ Rô RˆHàŸ
š
 8Ñ,Ô,ˆC�‰IØ  œYœ_°´
Ò:Ð:�6�6ÀˆDÝ˜C œI s¨4¤y°tÐ<Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 óä  ‡‡	‡
— t           j                             d¦  «        }|                     d¦  «        Š	dŠ
ˆ	ˆ
ˆfd„}g d¢}g d¢}ddi}t          |‰                     ‰	‰j        ¬	¦  «        |||¬
¦  «        }‰                     t                               ‰	¦  «        ‰j        ¬	¦  «        }t          |j	        |d¬¦  «         ‰ 
                    ‰                     |¦  «        ¦  «        sJ ‚d S )Nl   ]2œZëVrF   gH¯¼šò×z>c                 ó,  •— ‰j         | d| d         ‰d         k     f<   ‰j         | d| d         ‰d         dz   k    f<   ‰j         | d| d         ‰d         k    f<   ‰j         | d| d         ‰d         dz
  ‰z
  k     f<   t                               | ‰¦  «        S )Nr   rd  rA   r5   )rˆ   r7  rX  )r   Úbró   r-   s    €€€r   r   z0TestJacobian.test_step_direction_size.<locals>.fd  s—   ø€ Ø "¤ˆAˆa��1”˜˜!œ’ˆnÑØ')¤vˆAˆa��1”˜˜!œ˜t™Ò#Ð#Ñ$Ø "¤ˆAˆa��1”˜˜!œ’ˆnÑØ*,¬&ˆAˆa��1”˜˜!œ˜s™
 3™Ò&Ð&Ñ'Ý—?’? 1 bÑ)Ô)Ð)r   )rA   rP   r   )rd  r5   rµ   r8   ç:Œ0âŽyE>r%   )r¶   r¹   r”   r7   )rd   r�   r•   r   r'   rm   r7  rZ  r   r*   rÂ   Úisfinite)r   r-   r‚   r   ÚdirrÓ   r8   r/   r0   r~  ró   s    `       @@r   Útest_step_direction_sizez%TestJacobian.test_step_direction_size]  s	  øøø€ õ Œi×#Ò# NÑ3Ô3ˆØ�JŠJ�q‰MŒMˆØˆð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð ˆjˆjˆØÐÐˆØ˜ˆ~ˆÝ�q˜"Ÿ*š* Q¨b¬j˜*Ñ9Ô9ÈØ&)°dð<ñ <ô <ˆà�jŠj�×)Ò)¨!Ñ,Ô,°B´JˆjÑ?Ô?ˆÝ˜œ ¨$Ð/Ñ/Ô/Ð/Ø�vŠv�b—k’k #Ñ&Ô&Ñ'Ô'Ð'Ð'Ð'Ð'Ð'r   N)r%  r&  r'  r   r1  r<  r>  r`  r0   rC  rE  rH  rJ  rQ  rV  rX  rZ  r3  r   Ú	rosen_derrð   r(  r)  rb  r{  r‚  rX   r   r   r7  r7  Þ  sÂ  € € € € € ð €Gð
9ð 9ð 9ðFð Fð Fð €B„EØ€B„Fð<ð <ð <ð0ð 0ð 0ð
 €B„EØ€B„Fð+ð +ð +ð
Cð Cð Cð €B„EØ€B„FðMð Mð Mð8ð 8ð 8ð €B„EØ€B„FðNð Nð Nð#ð #ð #ð €B„EØ€B„Fà-Ð-Ð-Ø€E„HØÔ"€E„Ià„[×Ò˜WÐ&<Ñ=Ô=Ø„[×Ò˜VÐ%7Ð%7Ð%7Ñ8Ô8Ø„[×Ò˜V b¨"¨b°"°b¸%Ð%@ÑAÔAð	0ð 	0ñ BÔAñ 9Ô8ñ >Ô=ð	0ð=ð =ð =ðB(ð (ð (ð (ð (r   r7  c                   óØ   — e Zd ZeZej                             dg d¢¦  «        d„ ¦   «         Zd„ Z	d„ Z
ej        j        ej                             dd¬¦  «        d	„ ¦   «         ¦   «         Zd
S )ÚTestHessianrC   )rX   )rG   )rH   rG   c                 ó  — t           j                             d¦  «        }d}|                     |                     |f|z   ¦  «        |j        ¬¦  «        }t          t          j        |¦  «        }|ro|                     ||df¦  «        }| 	                    d„ |j
        D ¦   «         ¦  «        }|                     |dd¦  «        }|                     |||f|z   ¦  «        }nt          j        |¦  «        }t          |j        |d¬¦  «         d S )	Nr^  rF   r%   rP   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rX   )r   Ú
rosen_hess)r[   Úxis     r   r\   z,TestHessian.test_example.<locals>.<listcomp>‚  s#   € ÐBÐBÐB¸�HÔ/°Ñ3Ô3ÐBÐBÐBr   r   r  r7   )rd   r�   r•   r'   rm   r   r   r3  rk   rŽ   ÚTÚmoveaxisrˆ  r   Úddf)r   rC   r-   r‚   ra  r   r/   r0   s           r   Útest_examplezTestHessian.test_examplez  sö   € åŒi×#Ò# LÑ1Ô1ˆØˆØ�JŠJ�s—z’z 1 $¨¡,Ñ/Ô/°r´zˆJÑBÔBˆÝ•h”n aÑ(Ô(ˆØð 	)Ø—
’
˜1˜q "˜gÑ&Ô&ˆAØ—(’(ÐBÐB¸a¼cÐBÑBÔBÑCÔCˆCØ—+’+˜c 1 bÑ)Ô)ˆCØ—*’*˜S 1 a '¨E¡/Ñ2Ô2ˆCˆCåÔ% aÑ(Ô(ˆCÝ˜œ ¨4Ð0Ñ0Ô0Ð0Ð0Ð0r   c                 óø  — t           j                             d¦  «        }|                     |                     d¦  «        |j        ¬¦  «        }t          t          j        |¦  «        }t          j        |¦  «        }|dk    }t          |j
        |         ||         ¦  «         d|                     |                     ||         ¦  «        ¦  «        z  }t          |j
        |          ||          |¬¦  «         d S )Nr^  rF   r%   r   g{®Gáz„?r7   )rd   r�   r•   r'   rë   r   r   r3  rˆ  r   rŒ  r+   Úmin)r   r-   r‚   r   r/   r0   Úmaskr8   s           r   Útest_float32zTestHessian.test_float32Ž  sË   € ÝŒi×#Ò# LÑ1Ô1ˆØ�JŠJ�s—z’z !‘}”}¨B¬JˆJÑ7Ô7ˆÝ•h”n aÑ(Ô(ˆÝÔ! !Ñ$Ô$ˆØ�q’ˆÝ˜œ œ s¨4¤yÑ1Ô1Ð1Ø�b—f’f˜RŸVšV C¨¤IÑ.Ô.Ñ/Ô/Ñ/ˆÝ˜œ  œ¨¨T¨E¬
¸Ð>Ñ>Ô>Ð>Ð>Ð>r   c                 óÞ  ‡‡‡‡— ‰                      ddg¦  «        Št          ‰¦  «        Šˆˆˆfd„Šd‰_        t          ‰‰d¬¦  «        }d‰_        t          ˆˆfd„‰dd…         d¬¦  «        }|j        d	         ‰j        cxk    r|j        d	         k    sn J ‚d‰_        t          ˆˆfd
„‰dd…         d¬¦  «        }|j        d         ‰j        cxk    r|j        d	         k    sn J ‚d S )Nrµ   rd  c                 óÊ   •—  ‰j         | Ž \  }}‰j        |j        dk    r!t          j        |j        dd …         ¦  «        ndz   ‰_        ‰                     |¦  «        |dz  z  S )NrH   rA   rF   )Úbroadcast_arraysrh   rR   ÚmathÚprodrC   r¨   )r;  r   r¿   r<  r-   r  s      €€€r   r<  z!TestHessian.test_nfev.<locals>.f1œ  s`   ø€ Ø+�7Ô+¨QÐ/‰DˆAˆqØ”g¸1¼6ÀAº:¸:¥¤¨1¬7°1°2°2¬;Ñ!7Ô!7Ð!7È1ÑMˆBŒGØ—6’6˜!‘9”9˜q A™vÑ%Ð%r   r   r"   r  c                 ó6   •—  ‰| d         ‰d         g¦  «        S )Nr   rA   rX   )r   r<  r;  s    €€r   r~   z'TestHessian.test_nfev.<locals>.<lambda>¥  ó   ø€  " " a¨¤d¨A¨a¬D \Ñ"2Ô"2€ r   rA   )r   r   c                 ó6   •—  ‰‰d         | d         g¦  «        S rm  rX   )r¿   r<  r;  s    €€r   r~   z'TestHessian.test_nfev.<locals>.<lambda>©  r˜  r   rH   )rA   rA   )r'   r	   rh   r   )r   r-   r/   ru  rx  r<  r  r;  s    `   @@@r   Ú	test_nfevzTestHessian.test_nfev˜  s8  øøøø€ Ø�JŠJ˜˜T�{Ñ#Ô#ˆÝ! !Ñ$Ô$ˆð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð ˆŒõ �b˜!¨"Ð-Ñ-Ô-ˆØˆŒÝÐ2Ð2Ð2Ð2Ð2°A°a¸°c´FÈÐLÑLÔLˆØŒx˜Œ~ ¤Ð<Ð<Ò<Ð<¨E¬J°tÔ,<Ò<Ð<Ð<Ð<Ð<Ð<àˆŒÝÐ2Ð2Ð2Ð2Ð2°A°a¸°c´FÈÐLÑLÔLˆØŒx˜Œ~ ¤Ð<Ð<Ò<Ð<¨E¬J°tÔ,<Ò<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   Tz$Python list input uses NumPy backend)r2   r   c                 ó¾   — d}t          j        t          |¬¦  «        5  t          |j        dgt          d¬¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"The specified `rtol=1e-15`, but...rö   r$   rÚ   r’   rý   )rð   ÚwarnsÚRuntimeWarningr   r¨   r™   )r   r-   r  s      r   Útest_small_rtol_warningz#TestHessian.test_small_rtol_warning±  s¦   € ð 7ˆÝŒ\�.°Ð8Ñ8Ô8ð 	?ð 	?Ý�B”F˜R˜D­T°uÐ-=Ñ-=Ô-=Ð>Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   ž'AÁAÁAN)r%  r&  r'  r   r1  rð   r(  r)  r�  r‘  rš  Úthread_unsafer   rž  rX   r   r   r…  r…  u  sº   € € € € € ð €Gà„[×Ò˜WÐ&8Ð&8Ð&8Ñ9Ô9ð1ð 1ñ :Ô9ð1ð&?ð ?ð ?ð=ð =ð =ð2 „[ÔØ„[×!Ò!¨$Ø)Oð "ñ Qô Qð?ð ?ñQô Qñ Ôð?ð ?ð ?r   r…  )&r•  rð   Únumpyrd   Úscipy.conftestr   Ú(scipy._lib._elementwise_iterative_methodÚ_libÚ_elementwise_iterative_methodrš   Úscipy._lib._array_api_no_0dr   r   r   Úscipy._lib._array_apir   r   r	   Úscipyr
   r   r   Úscipy.differentiater   r   r   Ú"scipy.differentiate._differentiater   r(  ÚusefixturesÚ
pytestmarkÚarray_api_strict_skip_reasonÚjax_skip_reasonr   r   r/  r7  r…  rX   r   r   ú<module>r®     s   ðØ €€€Ø €€€à Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eà *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø >Ð >Ð >Ð >Ð >Ð >ð # F¤K×$;Ò$;Ð<NÑ$OÔ$OÐP€
àVÐ Ø>€ð „×ÒÐ0Ð9UÐÑVÔVØ„×Ò˜k°ÐÑAÔAðe.ð e.ð e.ð e.ð e.ñ e.ô e.ñ BÔAñ WÔVðe.ðP)ð )ð )ð )ð )ñ )ô )ð )ð< „×ÒÐ0Ð9UÐÑVÔVØ„×Ò˜k°ÐÑAÔAðR(ð R(ð R(ð R(ð R(Ð&ñ R(ô R(ñ BÔAñ WÔVðR(ðj „×ÒÐ0Ð9UÐÑVÔVØ„×Ò˜k°ÐÑAÔAð@?ð @?ð @?ð @?ð @?Ð%ñ @?ô @?ñ BÔAñ WÔVð@?ð @?ð @?r   