Ë
    âQ(h‡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j8                  j;                  d«      gZd	Zd
Z ej8                  jC                  de¬«      ej8                  jC                  de ¬«       G d„ d«      «       «       Z" G d„ d«      Z#ej8                  jC                  de¬«      ej8                  jC                  de ¬«       G d„ de#«      «       «       Z$ej8                  jC                  de¬«      ej8                  jC                  de ¬«       G d„ de#«      «       «       Z%y)é    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
                  j                  dd ej                  ddd«      g«      d„ «       Z	ej
                  j                  d¬	«      ej
                  j                  d
ej                  j                  «      d„ «       «       Zej
                  j                  dddg«      ej
                  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
                  j                  dd«      ej
                  j                  dddd gf«      ej
                  j                  d!d"«      d#„ «       «       «       Zd$„ Zd%„ Zej
                  j                  d¬	«      ej
                  j:                  ej
                  j                  d
d&„ dfd'„ dff«      d(„ «       «       «       Zy))*ÚTestDerivativec                 ó,   — t        j                  |«      S ©N©r   Úndtr)ÚselfÚxs     új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/differentiate/tests/test_differentiate.pyÚfzTestDerivative.f   s   € Ü�|‰|˜A‹Ðó    r   ç333333ã?çš™™™™™©¿çÍÌÌÌÌÌð?é
   c                 ó˜  — |j                  d«      j                  }t        | j                  |j                  ||¬«      «      }|j                  t	        j
                  «       j                  |«      |¬«      }t        |j                  |«       t        |«      s3t        |j                  |j                  |z
  «      |j                  «       y y )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ÓDˆØ�j‰jœŸ™›×)Ñ)¨!Ó,°MˆjÓBˆÜ˜Ÿ™ Ô$ô ˜Œ|Ü˜2Ÿ6™6 #§&¡&¨3¡,Ó/°·±Õ;ð r   T)Únp_onlyÚcasec                 óØ   — |\  }} t        t        |«      |Ž }|j                  «       dz   }t        |j                  |«      }|j                  |«      }t        |j                  |d¬«       y )Nçš™™™™™¹?ç»½×Ùß|Û=©Úatol)Úgetattrr
   Úmedianr   Úcdfr)   r   r*   )r   r3   ÚdistnameÚparamsÚdistr   r/   r0   s           r   Útest_accuracyzTestDerivative.test_accuracy)   s^   € ð  Ñˆ�&Ø'Œw”u˜hÓ'¨Ð0ˆØ�K‰K‹M˜CÑˆÜ˜Ÿ™ 1Ó%ˆØ�h‰h�q‹kˆÜ˜Ÿ™ ¨%Ö0r   Úorderé   é   Úshape)é   ©é   é   )rF   é   rH   c                 ó,  ‡ ‡‡‡— |r&t        j                  ddd«      j                  |«      nd}t        j                  |«      Ši Št         j                  ˆˆ fd„«       }ˆˆ ˆfd„}d‰d<   d	‰d
<   t        ||j                  ||j                  ¬«      ‰¬«      } ||«      j                  «       }|D �	cg c]  }	|	j                  ‘Œ }
}	t        |j                  |j                  d«      |j                  |
«      «       |D �	cg c]  }	|	j                  ‘Œ }}	t        |j                  |j                  d«      |j                  |«      «       |D �	cg c]  }	|	j                  ‘Œ }}	t        |j                  |j                  d«      |j                  |«      d¬«       |D �	cg c]  }	t        |	j                  «      ‘Œ }}	t        |j                  |j                  d«      |j                  |«      «       |D �	cg c]!  }	t        j                   |	j"                  «      ‘Œ# }}	t        |j                  |j"                  d«      |j                  |«      «       |D �	cg c]!  }	t        j                   |	j$                  «      ‘Œ# }}	t        |j                  |j$                  d«      |j                  |«      «       t'        |«      r#|j)                  |j$                  «      ‰d
   k(  sJ ‚|D �	cg c]!  }	t        j                   |	j*                  «      ‘Œ# }}	t        |j                  |j*                  d«      |j                  |«      «       t'        |«      r$|j)                  |j*                  «      ‰d   k(  sJ ‚y y c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w )Nr    r!   rD   r   c                 ó4   •— t        ‰j                  | ‰¬«      S )N©r@   )r   r   )r   r@   r   s    €€r   Ú_derivative_singlez=TestDerivative.test_vectorization.<locals>._derivative_single<   s   ø€ ä˜dŸf™f a¨uÔ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|¢­i |¤ŽS )NÚnitrA   Úfevaléÿÿÿÿ)ÚsizeÚndimrC   r   )r   ÚargsÚkwargsÚnr   Ústates      €€€r   r   z,TestDerivative.test_vectorization.<locals>.f@   sX   ø€ Ø�%‹L˜AÑ‹LØ�'‹N A§F¡F¨a¢K°1·6±6¸A²:™aÀAÇGÁGÈBÁKÑO‹NØ�4—6‘6˜!Ð-˜dÒ- fÑ-Ð-r   rP   rN   r   rO   r%   rK   ©rP   gê-�™—q=r7   )ÚnpÚlinspaceÚreshaperQ   Ú	vectorizer   r'   Úfloat64Úravelr   r   r*   r,   ÚboolÚsuccessr   Úint32ÚstatusÚnfevr   ÚmaxrN   )r   r@   rC   r-   r   rL   r   r/   Úrefsr0   Úref_xÚref_dfÚ	ref_errorÚref_successÚref_flagÚref_nfevÚref_nitrU   rV   s   ``               @@r   Útest_vectorizationz!TestDerivative.test_vectorization3   sÃ  û€ ñ
 <AŒB�K‰K˜˜t RÓ(×0Ñ0°Ô7ÀcˆÜ�G‰G�A‹JˆØˆä	�‰ô	6ó 
ð	6ö	.ð
 ˆˆe‰Øˆˆg‰ä˜˜BŸJ™J q°·
±
˜JÓ;À5ÔIˆÙ! !Ó$×*Ñ*Ó,ˆà"&Ö'˜3�—“Ð'ˆÐ'Ü˜Ÿ
™
 3§5¡5¨%Ó0°"·*±*¸UÓ2CÔDà$(Ö)˜S�#—&“&Ð)ˆÐ)Ü˜Ÿ
™
 3§6¡6¨5Ó1°2·:±:¸fÓ3EÔFà*.Ö/ 3�S—Y“YÐ/ˆ	Ð/Ü˜Ÿ
™
 3§9¡9¨eÓ4°b·j±jÀÓ6KØ"õ	$ð 59Ö9¨S”t˜CŸK™KÕ(Ð9ˆÐ9Ü˜Ÿ
™
 3§;¡;°Ó6¸¿
¹
À;Ó8OÔPà48Ö9¨S”B—H‘H˜SŸZ™ZÕ(Ð9ˆÐ9Ü˜Ÿ
™
 3§:¡:¨uÓ5°r·z±zÀ(Ó7KÔLà26Ö7¨3”B—H‘H˜SŸX™XÕ&Ð7ˆÐ7Ü˜Ÿ
™
 3§8¡8¨UÓ3°R·Z±ZÀÓ5IÔJÜ�BŒ<Ø—6‘6˜#Ÿ(™(Ó# u¨W¡~Ò5Ð5Ð5à04Ö5¨”2—8‘8˜CŸG™GÕ$Ð5ˆÐ5Ü˜Ÿ
™
 3§7¡7¨EÓ2°B·J±J¸wÓ4GÔHÜ�BŒ<Ø—6‘6˜#Ÿ'™'“? e¨E¡lÒ2Ð2Ñ2ð ùò/ (ùò *ùò 0ùò :ùò :ùò 8ùò
 6s*   Â3M3ÄM8ÅM=ÆNÇ6&NÉ&NË&&Nc                 óÔ  ‡‡‡— t         j                  j                  d«      Šˆˆˆfd„Šd‰_        ‰j	                  d‰j
                  ¬«      f}t        ‰‰j                  d‰j                  ¬«      t        d¬«      d|¬	«      }‰j                  t        j                  t        t        j                  t        j                  g‰j                   ¬«      }t#        |j$                  |«       y )
Nì   •¾;O  c           	      óþ   •— ‰xj                   dz  c_         d„ ˆˆfd„ˆfd„ˆfd„g}t        | ‰j                  |d«      «      D ��cg c]  \  }} |t        |«         |«      ‘Œ }}}‰j	                  |«      S c c}}w )NrA   c                 ó   — | dz
  S ©Ng      @© ©r   s    r   ú<lambda>z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>k   s
   € ˜q 3™w€ r   c                 óH   •— ‰j                  | «      ‰j                  «       z  S r   )ÚexpÚrandom)r   Úrngr-   s    €€r   rt   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>l   s   ø€ ˜rŸv™v a›y¨¯©«Ñ5€ r   c                 ó&   •— ‰j                  | «      S r   ©rv   ©r   r-   s    €r   rt   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>m   s   ø€ ˜rŸv™v a›y€ r   c                 ó<   •— ‰j                  | ‰j                  «      S r   )Ú	full_likeÚnanr{   s    €r   rt   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>n   s   ø€ ˜rŸ|™|¨A¨r¯v©vÓ6€ r   rW   )rN   ÚziprZ   ÚintÚstack)	ÚxsÚjsÚfuncsr   Újr/   r   rx   r-   s	         €€€r   r   z$TestDerivative.test_flags.<locals>.fi   sq   ø€ Ø�EŠE�Q‰J�EÙ&Ü5Û(Û6ð8ˆEô 14°B¸¿
¹
À2ÀuÓ8MÓ0N×O©¨¨1�=�5œ˜Q›‘= Õ#ÐOˆCÑOØ—8‘8˜C“=Ð ùó Ps   ÁA9r   rG   r%   ç›+¡†›„=©ÚrtolrH   )Ú
tolerancesr@   rS   )rX   rw   Údefault_rngrN   ÚarangeÚint64r   Úonesr\   Údictr'   ÚeimÚ_ECONVERGEDr   Ú	_ECONVERRÚ
_EVALUEERRr`   r   ra   )r   r-   rS   r/   Ú	ref_flagsr   rx   s    `   @@r   Ú
test_flagszTestDerivative.test_flagse   s¸   ú€ ô �i‰i×#Ñ#Ð$4Ó5ˆö	!ð ˆŒà—	‘	˜! 2§8¡8�	Ó,Ð.ˆÜ˜˜BŸG™G A¨R¯Z©Z˜GÓ8Ü$(¨eÔ$4Ø  tô-ˆð —J‘J¤§¡Ü /Ü #§¡Ü #§¡ð 0ð 8:·x±xð ó Aˆ	ô 	˜Ÿ
™
 IÕ.r   c                 ó†  ‡‡— t         j                  j                  d«      Šˆˆfd„}t        |‰j	                  d‰j
                  ¬«      t        d¬«      dd¬	«      }‰j	                  t        j                  t        t        j                  t        j                  g‰j                  ¬«      }t        |j                  |«       y )
Nrn   c                 óÊ   •— | dz
  ‰j                  | «      ‰j                  «       z  ‰j                  | «      ‰j                  | ‰j                  «      g}‰j	                  |«      S rq   )rv   rw   r}   r~   r�   )r   Úoutrx   r-   s     €€r   r   z3TestDerivative.test_flags_preserve_shape.<locals>.f�   sT   ø€ Ø�s‘7Ø—6‘6˜!“9˜SŸZ™Z›\Ñ)Ø—6‘6˜!“9Ø—<‘<  2§6¡6Ó*ð,ˆCð —8‘8˜C“=Ð r   rA   r%   r†   r‡   rH   T)r‰   r@   Úpreserve_shape)rX   rw   rŠ   r   r'   r\   rŽ   r�   r�   r   r‘   r’   r`   r   ra   )r   r-   r   r/   r“   rx   s    `   @r   Útest_flags_preserve_shapez(TestDerivative.test_flags_preserve_shape~   s–   ù€ ä�i‰i×#Ñ#Ð$4Ó5ˆõ	!ô ˜˜BŸJ™J q°·
±
˜JÓ;Ü$(¨eÔ$4Ø °ô7ˆð —J‘J¤§¡Ü /Ü #§¡Ü #§¡ð 0ð 8:·x±xð ó Aˆ	ô 	˜Ÿ
™
 IÕ.r   c                 ó”  ‡— ˆfd„}‰j                  d«      }‰j                  ‰j                  d«      d‰j                  d|z  «      z  dd‰j                  d|z  «      z  z   d‰j                  d|z  «      z  |dz
  dz  z  d‰j                  d|z  «      z  |dz
  z  z   g«      }t        ||d¬	«      }t	        |j
                  |«       y )
Nc                 ó¶   •— | ‰j                  d| z  «      | ‰j                  d| z  «      z   ‰j                  d| z  «      | dz
  dz  z  g}‰j                  |«      S )NrF   r"   é   rA   rH   )Úsinr�   )r   r—   r-   s     €r   r   z-TestDerivative.test_preserve_shape.<locals>.f”   sT   ø€ Ø�b—f‘f˜Q˜q™S“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ˆØ�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ˆä˜˜A¨dÔ3ˆÜ˜Ÿ™ Õ$r   c                 óh  — |j                  d|j                  ¬«      }t        j                  }t	        t
        j                  j                  d«      «      }t        dd¬«      }|j                  «       }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 ‚|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 ‚y )Nr$   r%   r   )r8   rˆ   gü©ñÒMbP?r8   rG   )r‰   r@   g�íµ ÷Æ°>rˆ   )r'   r\   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‰LˆÜ”E—J‘J—N‘N 2Ó&Ó'ˆÜ ¨Ô*ˆà ×%Ñ%Ó'ˆ
Ø!ˆ
�6ÑÜ˜!˜Q¨:¸QÔ?ˆÜ�4—7‘7˜S‘=Ó! DÒ(Ð(Ð(Ø!ˆ
�6ÑÜ˜!˜Q¨:¸QÔ?ˆÜ�4—7‘7˜S‘=Ó! DÒ(Ð(Ð(Ü�4—7‘7˜S‘=Ó!¤C¨¯©°#©Ó$6Ò6Ð6Ð6à ×%Ñ%Ó'ˆ
Ø!ˆ
�6ÑÜ˜!˜Q¨:¸QÔ?ˆÜ�4—7‘7˜S‘=Ó! D¨3¡JÒ.Ð.Ð.Ø!ˆ
�6ÑÜ˜!˜Q¨:¸QÔ?ˆÜ�4—7‘7˜S‘=Ó! D¨3¡JÒ.Ð.Ð.Ü�4—7‘7˜S‘=Ó!¤C¨¯©°#©Ó$6Ò6Ð6Ñ6r   c                 ó  — |j                  d|j                  ¬«      }t        j                  }t	        t
        j                  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¬«       y )Nr$   r%   ç      à?rA   )Úinitial_stepÚmaxitergš™™™™™©?rH   )Ústep_factorr¬   rœ   rG   r   )r@   r¬   Ústep_direction)r«   r­   g›+¡†›„ö<r‡   rP   r®   )r'   r\   r   r   r£   r
   r(   r)   r   r+   r*   rŽ   r   rX   Úsqrt)	r   r-   r   r   r0   r¦   r§   rT   r/   s	            r   Útest_step_parametersz#TestDerivative.test_step_parameters·   s×  € à�J‰J�r §¡ˆJÓ,ˆÜ�L‰LˆÜ”E—J‘J—N‘N 2Ó&Ó'ˆä˜!˜Q¨S¸!Ô<ˆÜ˜!˜Q¨T¸1Ô=ˆÜ�4—7‘7˜S‘=Ó!¤C¨¯©°#©Ó$6Ò6Ð6Ð6ä˜!˜Q¨A°qÔ9ˆÜ˜!˜Q¨B¸Ô:ˆÜ�4—7‘7˜S‘=Ó!¤C¨¯©°#©Ó$6Ò6Ð6Ð6ô ˜A q¸Ô;ˆÜ˜˜AÐK¨C¸SÑKÀFÑKˆÜ˜˜AÐG¨A¸1ÑGÀÑGˆÜ˜Ÿ™ §¡¨UÕ3ô ˜A q¸Ô;ˆÜ˜˜AÐG¨A¸1ÑGÀÑGˆÜ˜˜AÐT¨A¬b¯g©g°a«j©LÀcÑTÈVÑTˆÜ˜Ÿ™ §¡¨UÕ3à#%ˆÐÑ Ü˜˜AÐG¨A¸1ÑGÀÑGˆÜ˜˜AÐT¨A¬b¯g©g°a«j©LÀcÑTÈVÑTˆÜ˜Ÿ™ §¡¨UÖ3r   c                 ó  ‡— ˆfd„}‰j                  ddd«      }‰j                  |«      }d\  ||dk  <   ||dkD  <   t        |||¬«      }t        |j                  ‰j                  |«      «       ‰j                  |j                  «      sJ ‚y )	Nc                 óZ   •— ‰j                  | «      }‰j                  || dk  | dkD  z   <   |S )Nr   rH   )rv   r~   ©r   Úyr-   s     €r   r   z-TestDerivative.test_step_direction.<locals>.fØ   s0   ø€ Ø—‘�q“	ˆAØ#%§6¡6ˆAˆq�1‰u˜˜Q™ÑÑ ØˆHr   r   rH   r"   )rA   rP   r   gffffffö?©r®   )rY   Ú
zeros_liker   r   r*   rv   Úallr_   )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‘kÔ"Ð"Ñ"r   c                 óà  — d„ }d„ }|j                  |j                  g d¢«      d«      }|j                  |j                  g d¢«      d«      }|j                  |j                  ddg«      d	«      }t        ||||f¬
«      }|j                   |||«      |j                  j
                  «      }|j                  ||j                  d«      j                  ¬«      }t        |j                  |«       y )Nc                 ó   — | |z  S r   rr   ©r   Úps     r   r   z=TestDerivative.test_vectorized_step_direction_args.<locals>.fæ   s   € Ø˜‘6ˆMr   c                 ó   — || |dz
  z  z  S ©NrA   rr   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%   )rZ   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Ó0°*Ó=ˆØ�J‰J�r—z‘z 1 a &Ó)¨:Ó6ˆÜ˜˜A¨d¸!¸Ô>ˆØ�o‰o™b  A›h¨¯©¯©Ó5ˆØ�j‰j˜ B§J¡J¨r£N×$8Ñ$8ˆjÓ9ˆÜ˜Ÿ™ Õ$r   c           	      ó   ‡— ˆfd„}‰j                  d‰j                  ¬«      }‰j                  g d¢«      }‰j                  ‰j                  ddd«      d«      }t	        |||d	d
|¬«      }‰j                  |j                   ||«      z
  «      }‰j                  |d d…df   |d
d …df   k  «      sJ ‚t        |j                  d   «      D ]A  }t	        ||||df   d	d
|¬«      }	t        |j                  |d d …f   |	j                  d¬«       ŒC y )Nc                 ó&   •— ‰j                  | «      S r   rz   r{   s    €r   r   z+TestDerivative.test_initial_step.<locals>.fö   s   ø€ Ø—6‘6˜!“9Ðr   rž   r%   r¿   éýÿÿÿr   r"   )rP   rA   rH   rA   )r«   r@   r¬   r®   rP   .r†   r‡   )r'   r\   rZ   Ú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Ó/ˆØ�Z‰Z˜Ÿ™ B¨¨2Ó.°Ó8ˆÜ˜˜A¨B°aÀØ(6ô8ˆà�f‰f�S—V‘V™a ›d‘]Ó#ˆð �v‰v�c˜#˜2˜#˜s˜(‘m c¨!©"¨c¨'¡lÑ2Ô3Ð3Ð3ô �r—x‘x ‘{Ó#ò 	>ˆAÜ˜Q °°1°a°4±ÀÈ1Ø,:ô<ˆCä˜CŸF™F 1¢a 4™L¨#¯&©&°uÖ=ñ	>r   c                 ó¨  ‡‡	— |j                  d|j                  ¬«      }dŠ	d„ }d}t        ||‰	t        d¬«      ¬«      }|j	                  |j
                  «      rJ ‚|j                  |j                  |d	z   ‰	d	z
  d
z  z   k(  «      sJ ‚|j                  |j                  ‰	k(  «      sJ ‚ˆˆ	fd„Šd‰_	        d ‰_
        t        «       ‰_        t        ||‰t        d¬«      ¬«      }|j                  «       D ][  }|dk(  r1||   t        j                  k(  sJ ‚||   t        j                   k(  rŒ7J ‚||   ‰j                  |   cxk(  r
||   k(  rŒXJ ‚ J ‚ y )Ng~ý,œã?r%   rF   c                 ó0   — 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                 ód  •— ‰xj                   dz  c_         | ‰_        t        | d«      sJ ‚t        | j                  «      ‰j
                  vsJ ‚‰j
                  j                  t        | j                  «      «       | j                  t        j                  k(  sJ ‚‰j                   ‰k(  rt        ‚y )NrA   r   )Úiterr/   Úhasattrr£   r*   ÚdfsÚaddra   r�   Ú_EINPROGRESSÚStopIteration)r/   Úcallbackr¬   s    €€r   r×   z6TestDerivative.test_maxiter_callback.<locals>.callback  s‹   ø€ Ø�MŠM˜QÑ�MØˆHŒLÜ˜3 Ô$Ð$Ð$Ü˜Ÿ™“=¨¯©Ñ4Ð4Ð4Ø�L‰L×ÑœU 3§6¡6›]Ô+Ø—:‘:¤×!1Ñ!1Ò1Ð1Ð1Ø�}‰} Ò'Ü#Ð#ð (r   rP   )r×   r‰   ra   )r'   r\   r   rŽ   Úanyr_   r·   rb   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
  sF  ù€ à�J‰J�x r§z¡zˆJÓ2ˆØˆò	ð ˆÜ˜˜A w¼4ÀUÔ;KÔLˆØ—6‘6˜#Ÿ+™+Ô&Ð&Ð&Ø�v‰v�c—h‘h -°!Ñ"3°wÀ±{ÀA±oÑ"EÑEÔFÐFÐFØ�v‰v�c—g‘g Ñ(Ô)Ð)Ð)õ	$ð ˆŒØˆŒÜ“uˆŒä˜!˜Q¨¼dÈÔ>NÔOˆð —8‘8“:ò 	BˆCØ�hŠØ˜3‘x¤3§=¡=Ò0Ð0Ð0Ø˜C‘y¤C§N¡NÓ2Ð2Ð2à˜C‘y H§L¡L°Ñ$5ÔA¸¸S¹ÓAÐAÑAÐAÐAñ	Br   rÁ   r¿   gÍÌÌÌÌÌä?gffffffæ?r&   )Úfloat16Úfloat32r\   c                 ó0  ‡‡— ‰dk(  r t        ‰«      st        j                  d«       t        ‰‰«      Š‰j	                  |‰¬«      }ˆˆfd„}ˆfd„}t        ||d||¬«      }|j                  j                  ‰k(  sJ ‚|j                  j                  ‰k(  sJ ‚|j                  j                  ‰k(  sJ ‚‰j                  ‰«      j                  }t        ‰«      r|dz  d	z  n|dz  }	t        |j                  ‰j                  |j                  «      |	¬
«       y )Nrß   z+float16 not tested for alternative backendsr%   c                 óH   •— | j                   ‰k(  sJ ‚‰j                  | «      S r   )r&   rv   )r   r&   r-   s    €€r   r   z$TestDerivative.test_dtype.<locals>.f;  s#   ø€ Ø—7‘7˜eÒ#Ð#Ð#Ø—6‘6˜!“9Ðr   c                 ó¨   •— | j                   j                  ‰k(  sJ ‚| j                  j                  ‰k(  sJ ‚| j                  j                  ‰k(  sJ ‚y r   )r   r&   r*   r,   )r/   r&   s    €r   r×   z+TestDerivative.test_dtype.<locals>.callback?  sE   ø€ Ø—5‘5—;‘; %Ò'Ð'Ð'Ø—6‘6—<‘< 5Ò(Ð(Ð(Ø—9‘9—?‘? eÒ+Ð+Ñ+r   rG   )r@   r®   r×   rª   é2   r‡   )r   ÚpytestÚskipr9   r'   r   r   r&   r*   r,   ÚfinfoÚepsr   r   rv   )
r   rÁ   r   r&   r-   r   r×   r/   rè   rˆ   s
      ``     r   Ú
test_dtypezTestDerivative.test_dtype0  sè   ù€ ð �IÒ¤h¨r¤lÜ�K‰KÐEÔFô ˜˜EÓ"ˆØ�J‰J�q ˆJÓ&ˆõ	ô	,ô
 ˜˜A Q°tÀhÔOˆØ�u‰u�{‰{˜eÒ#Ð#Ð#Ø�v‰v�|‰|˜uÒ$Ð$Ð$Ø�y‰y�‰ %Ò'Ð'Ð'Ø�h‰h�u‹o×!Ñ!ˆä (¨¤ˆs�C‰x˜"Š}°#°s±(ˆÜ˜Ÿ™ §¡ s§u¡u£°DÖ9r   c                 óª  — |j                  d«      }d}t        j                  t        |¬«      5  t	        d |«       d d d «       d}t        j                  t        |¬«      5  t	        d„ |j                  d«      «       d d d «       d}t        j                  t        |¬«      5  t	        d„ |j                  d	d
g«      «       d d d «       d}t        j                  t        |¬«      5  t	        d„ |t        d¬«      ¬«       d d d «       t        j                  t        |¬«      5  t	        d„ |t        d¬«      ¬«       d d d «       t        j                  t        |¬«      5  t	        d„ |t        «       ¬«       d d d «       d}t        j                  t        |¬«      5  t	        d„ |d¬«       d d d «       t        j                  t        |¬«      5  t	        d„ |d¬«       d d d «       d}t        j                  t        |¬«      5  t	        d„ |d¬«       d d d «       t        j                  t        |¬«      5  t	        d„ |d¬«       d d d «       d}t        j                  t        |¬«      5  t	        d „ |d!¬"«       d d d «       d#}t        j                  t        |¬«      5  t	        d$„ |d%¬&«       d d d «       y # 1 sw Y   �Œ‚xY w# 1 sw Y   �ŒMxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒäxY w# 1 sw Y   �Œ´xY w# 1 sw Y   �Œ†xY w# 1 sw Y   �Œ^xY w# 1 sw Y   �Œ8xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒéxY w# 1 sw Y   ŒÀxY w# 1 sw Y   y xY w)'NrA   z`f` must be callable.©Úmatchz3Abscissae and function output must be real numbers.c                 ó   — | S r   rr   rs   s    r   rt   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   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>[  s   € ¢€ r   éþÿÿÿrÅ   z6Tolerances and step parameters must be non-negative...c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>_  rî   r   rP   r7   ©r‰   c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>a  rî   r   Úekkir‡   c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>c  rî   r   ©r­   ú%`maxiter` must be a positive integer.c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>g  rî   r   ç      ø?©r¬   c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>i  rî   r   r   z"`order` must be a positive integerc                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>m  rî   r   rK   c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>o  rî   r   z'`preserve_shape` must be True or False.c                 ó   — | S r   rr   rs   s    r   rt   z6TestDerivative.test_input_validation.<locals>.<lambda>s  rî   r   ÚherringrŸ   z`callback` must be callable.c                 ó   — | S r   rr   rs   s    r   rt   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ˆà)ˆÜ�]‰]œ:¨WÔ5ñ 	"Ü�t˜SÔ!÷	"ð HˆÜ�]‰]œ:¨WÔ5ñ 	7Ü‘{ B§J¡J¨uÓ$5Ô6÷	7ð KˆÜ�]‰]œ:¨WÔ5ñ 	BÜÑ*¨B¯J©J¸¸B°xÓ,@ÔA÷	Bð KˆÜ�]‰]œ:¨WÔ5ñ 	CÜ‘{ C´D¸b´MÕB÷	Cä�]‰]œ:¨WÔ5ñ 	GÜ‘{ C´D¸fÔ4EÕF÷	Gä�]‰]œ:¨WÔ5ñ 	?Ü‘{ C´V³XÕ>÷	?ð :ˆÜ�]‰]œ:¨WÔ5ñ 	6Ü‘{ C°Õ5÷	6ä�]‰]œ:¨WÔ5ñ 	4Ü‘{ C°Õ3÷	4ð 7ˆÜ�]‰]œ:¨WÔ5ñ 	4Ü‘{ C¨sÕ3÷	4ä�]‰]œ:¨WÔ5ñ 	2Ü‘{ C¨qÕ1÷	2ð <ˆÜ�]‰]œ:¨WÔ5ñ 	CÜ‘{ C¸	ÕB÷	Cð 1ˆÜ�]‰]œ:¨WÔ5ñ 	?Ü‘{ C°+Õ>÷	?ð 	?÷I	"ñ 	"ú÷	7ñ 	7ú÷	Bñ 	Bú÷	Cñ 	Cú÷	Gñ 	Gú÷	?ñ 	?ú÷	6ñ 	6ú÷	4ñ 	4ú÷	4ñ 	4ú÷	2ð 	2ú÷	Cð 	Cú÷	?ð 	?ús�   ¯J<Á!K	Â#KÃ'K#Ä$K0Å!K=ÆL
ÇLÈL$È9L1É.L=Ê#M	Ê<KË	KËK Ë#K-Ë0K:Ë=LÌ
LÌL!Ì$L.Ì1L:Ì=MÍ	Mc           
      ó¤  ‡— d„ }t        |«      sZt        ||j                  d«      t        d¬«      ¬«      }|j                  sJ ‚t        |j                  |j                  d«      «       t        |j                  |j                  d«      |j                  ¬«      }t        |j                  |j                  |j                  «      «       t        |j                  |j                  d	|j                  ¬
«      «       t        |j                  |j                  d«      d¬«      }t        |j                  |j                  |j                  «      «       t        |j                  |j                  d	|j                  ¬
«      «       t        d«      D ]í  Š|j                  d|j                  ¬
«      }ˆfd„}d‰z  |‰dz
  z  z  }t        ||dt        d‰«      ¬«      }t        |j                  |d¬«       t        |j                  |j                  |j                  |j                  ¬
«      «       t        ||t        d‰«      ¬«      }|j                  sJ ‚|j                   dk(  sJ ‚t        |j                  |d¬«       Œï d„ }t        ||j                  d«      |j                  d«      ¬«      }t        |j                  |j                  d«      «       y )Nc                 ód   — t        | «      }|j                  | 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~  s2   € Ü% aÓ(ˆGØ—?‘? 1§7¡7¨OÔ<Ð<Ð<Ø˜‘7˜Q‘;Ðr   é   r6   r‡   rò   gl)~IéŠQrA   rµ   rÅ   r%   r   ©r«   rB   rù   c                 ó   •— d| ‰z  z  S ©NrH   rr   )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¾   rr   )r   Úcs     r   r   z,TestDerivative.test_special_cases.<locals>.f©  s   € Ø�Q‘3˜‘7ˆNr   rF   )rS   g      @)r   r   r'   rŽ   r_   r   r*   rv   r~   r   ra   r`   rÇ   r\   rc   r,   rN   )r   r-   r   r/   r   r0   rU   s         @r   Útest_special_casesz!TestDerivative.test_special_casesy  s  ø€ ò
	ô
 ˜Œ|Ü˜Q §
¡
¨1£¼$ÀEÔ:JÔKˆCØ—;’;Ð�;Ü˜CŸF™F B§J¡J¨yÓ$9Ô:ô ˜Ÿ™ §¡¨A£¸r¿v¹vÔFˆÜ˜Ÿ™ §
¡
¨2¯6©6Ó 2Ô3Ü˜Ÿ
™
 B§J¡J¨r¸¿¹ JÓ$BÔCä˜Ÿ™ §¡¨A£¸QÔ?ˆÜ˜Ÿ™ §
¡
¨2¯6©6Ó 2Ô3Ü˜Ÿ
™
 B§J¡J¨r¸¿¹ JÓ$BÔCô �q“ò 	5ˆAØ—
‘
˜3 b§j¡j�
Ó1ˆAôð �A‘#�a˜!˜A™#‘h‘,ˆCä˜Q ¨1´C¸¸1³IÔ>ˆCÜ˜CŸF™F C¨eÕ4Ü˜CŸI™I r§z¡z°"·&±&ÀÇ
Á
 zÓ'KÔLä˜Q ¬¨Q°«Ô3ˆCØ—;’;Ð�;Ø—7‘7˜a’<Ð�<Ü˜CŸF™F C¨eÖ4ð	5ò"	ô ˜˜BŸJ™J q›M°·
±
¸1³Ô>ˆÜ˜Ÿ™ §
¡
¨2£Õ/r   c                 ó   — | dz
  dz  S )NrA   rF   rr   rs   s    r   rt   zTestDerivative.<lambda>³  s   € �A˜‘E˜a‘<€ r   c                 óN   — t        j                  | dkD  | dz
  dz  | dz
  dz  «      S )NrA   é   rF   )rX   Úwherers   s    r   rt   zTestDerivative.<lambda>´  s'   € ”2—8‘8˜A ™E A¨¡E¨a¡<°!°a±%¸A±Ó>€ r   c                 ó–   — d}t        |g d¢|dœŽ}t        j                  |j                  «      sJ ‚t	        |j
                  d|¬«       y )Ng¼‰Ø—²Òœ<r¿   )r®   r8   r   r7   )r   rX   r·   r_   r   r*   )r   r3   r8   r/   s       r   Útest_saddle_gh18811z"TestDerivative.test_saddle_gh18811°  s=   € ð ˆÜ˜$ªzÀÒEˆÜ�v‰v�c—k‘kÔ"Ð"Ð"Ü˜Ÿ™ ¨Ö-r   N)Ú__name__Ú
__module__Ú__qualname__r   rå   ÚmarkÚparametrizerX   rY   r1   r   r
   Ú_distr_paramsÚdistcontr?   Útuplerl   r”   r™   r¡   r¨   r°   r¸   rÂ   rË   rÞ   ré   r  r  Úxfailr  rr   r   r   r   r      sß  „ òð ‡[�[×Ñ˜S 3¨¨¯©°E¸4ÀÓ(DÐ"EÓFñ	<ó Gð	<ð ‡[�[×!Ñ!¨$Ð!Ó/Ø‡[�[×Ñ˜V U×%8Ñ%8×%AÑ%AÓBñ1ó Có 0ð1ð ‡[�[×Ñ˜W q¨! fÓ-Ø‡[�[×Ñ˜W¡u£w°°v¸yÐ&IÓJñ.3ó Kó .ð.3ò`/ò2/ò(
%ò7ò24ò>#ò%ò >ò,$BðL ‡[�[×Ñ˜V ZÓ0Ø‡[�[×Ñ˜S 4¨$°¨Ð"5Ó6Ø‡[�[×Ñ˜WÐ&GÓHñ:ó Ió 7ó 1ð:ò4*?òX40ðn ‡[�[×!Ñ!¨$Ð!Ó/Ø‡[�[×ÑØ‡[�[×Ñ˜VÙ	 Ð#Ù	>ÀÐBð&ó ñ.ó	ó ó 0ñ.r   r   c                   ó   — e Zd Zd„ Zy)ÚJacobianHessianTestc                 ó˜  — | j                   j                  }d}t        j                  t        |¬«      5   ||j
                  dt        d¬«      ¬«       d d d «       |j                  d«      }t        j                  }d}t        j                  t        |¬«      5   |||t        d¬«      ¬«       d d d «       t        j                  t        |¬«      5   |||t        d¬	«      ¬«       d d d «       t        j                  t        |¬«      5   |||d¬
«       d d d «       d}t        j                  t        |¬«      5   |||d¬«       d d d «       d}t        j                  t        |¬«      5   |||d¬«       d d d «       y # 1 sw Y   �Œ1xY w# 1 sw Y   ŒáxY w# 1 sw Y   Œ´xY w# 1 sw Y   Œ‘xY w# 1 sw Y   ŒlxY w# 1 sw Y   y xY w)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-   r&  r  r   Úfuncs         r   Útest_ivzJacobianHessianTest.test_ivÁ  sr  € Ø—,‘,×'Ñ'ˆð 7ˆÜ�]‰]œ:¨WÔ5ñ 	9Ù�B—F‘F˜A¬$°B¬-Õ8÷	9ð
 �G‰G�A‹JˆÜ�~‰~ˆØPˆÜ�]‰]œ:¨WÔ5ñ 	7Ù�D˜!¬°"¬Õ6÷	7ä�]‰]œ:¨WÔ5ñ 	7Ù�D˜!¬°"¬Õ6÷	7ä�]‰]œ:¨WÔ5ñ 	-Ù�D˜!¨Õ,÷	-ð 8ˆÜ�]‰]œ:¨WÔ5ñ 	'Ù�D˜! 2Õ&÷	'ð :ˆÜ�]‰]œ:¨WÔ5ñ 	)Ù�D˜! RÕ(÷	)ð 	)÷)	9ñ 	9ú÷	7ð 	7ú÷	7ð 	7ú÷	-ð 	-ú÷	'ð 	'ú÷	)ð 	)úsG   ´ FÂFÃFÄF(Ä=F4Å.G ÆFÆFÆF%Æ(F1Æ4F=Ç G	N)r  r  r  r*  rr   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*                  j-                  dd«      ej*                  j-                  dg d¢«      ej*                  j-                  dee	eeeeg«      d„ «       «       «       Zd„ Zd„ Zy)ÚTestJacobianc                 óh   — | \  }}|j                  |dz  |z  d|z  |j                  |«      z   g«      S ©NrH   r  ©r�   r�   )Úzr-   r   r´   s       r   Úf1zTestJacobian.f1æ  s8   € Ø‰ˆˆ1Ø�x‰x˜˜a™ !™ Q¨¡U¨R¯V©V°A«YÑ%6Ð7Ó8Ð8r   c                 ó|   — | \  }}d|z  |z  |dz  gt        j                  |d«      t        j                  |«      ggS r.  )rX   r}   r    )r0  r   r´   s      r   Údf1zTestJacobian.df1ê  s?   € Ø‰ˆˆ1Ø�Q‘˜‘˜A ™FÐ#¤b§l¡l°1°aÓ&8¼"¿&¹&À»)Ð%DÐEÐEr   )rH   rH   c                 óz   — | \  }}|j                  ||j                  |«      z  ||j                  |«      z  g«      S r   ©r�   r    r�   )r0  r-   ÚrÚphis       r   Úf2zTestJacobian.f2ñ  s7   € Ø‰ˆˆ3Ø�x‰x˜˜RŸV™V C›[™¨!¨b¯f©f°S«k©/Ð:Ó;Ð;r   c                 óÂ   — | \  }}t        j                  |«      | t        j                  |«      z  gt        j                  |«      |t        j                  |«      z  ggS r   )rX   r    r�   )r0  r6  r7  s      r   Údf2zTestJacobian.df2õ  sP   € Ø‰ˆˆ3Ü—‘˜“˜q˜b¤2§6¡6¨#£;Ñ.Ð/Ü—‘˜“˜a¤"§&¡&¨£+™oÐ.ð0ð 	0r   c                 óê   — | \  }}}|j                  ||j                  |«      z  |j                  |«      z  ||j                  |«      z  |j                  |«      z  ||j                  |«      z  g«      S r   )r�   r�   r    )r0  r-   r6  r7  Úths        r   Úf3zTestJacobian.f3ý  si   € Ø‰
ˆˆ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   )rX   r�   r    r¶   )r0  r6  r7  r<  s       r   Údf3zTestJacobian.df3  sî   € Ø‰
ˆˆ3�Ü—‘˜“œrŸv™v b›zÑ)¨1¬r¯v©v°c«{©?¼R¿V¹VÀB»ZÑ+GØ�”b—f‘f˜S“kÑ!¤B§F¡F¨2£JÑ.ð0ä—‘˜“œrŸv™v b›zÑ)¨1¬r¯v©v°c«{©?¼R¿V¹VÀB»ZÑ+GØ”R—V‘V˜C“[‘¤2§6¡6¨"£:Ñ-ð/ä—‘˜“˜q˜b¤2§6¡6¨#£;Ñ.´·±¸aÓ0@ÐAð	Cð 	Cr   )rF   rF   c           	      óz   — | \  }}}|j                  |d|z  d|dz  z  d|z  z
  ||j                  |«      z  g«      S ©Nr  rG   rH   r/  ©r   r-   Úx1Úx2Úx3s        r   Úf4zTestJacobian.f4  sF   € Ø‰
ˆˆB�Ø�x‰x˜˜Q ™V Q¨¨q©¡[°1°r±6Ñ%9¸2ÀÇÁÀrÃ
¹?ÐKÓ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ð   )rX   Ú	ones_liker    r�   ©r   rC  rD  rE  r  s        r   Údf4zTestJacobian.df4  s…   € Ø‰
ˆˆB�Ü�l‰l˜2ÓˆØ�a˜#‘g˜q 3™wÐ'Ø�S‘˜!˜c™' 1 s¡7Ð+Ø�S‘˜!˜b™& " s¡(Ð+Ø”b—f‘f˜R“j‘ ! c¡'¬2¯6©6°"«:Ð6ð8ð 	8r   rE   c           	      ó~   — | \  }}}|j                  d|z  d|dz  z  d|j                  ||z  «      z  z
  ||z  g«      S rA  r/  rB  s        r   Úf5zTestJacobian.f5  sI   € Ø‰
ˆˆB�Ø�x‰x˜˜R™  R¨1¡W¡¨q°2·6±6¸"¸r¹'³?Ñ/BÑ!BÀBÈÁGÐLÓ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 rH  )rX   rI  r    rJ  s        r   Údf5zTestJacobian.df5   s�   € Ø‰
ˆˆB�Ü�l‰l˜2ÓˆØ�S‘˜!˜c™' 1 s¡7Ð+Ø�R‘˜˜b™¤2§6¡6¨"¨r©'£?Ñ2°B¸±G¼b¿f¹fÀRÈ"ÁW»oÑ4MÐNØ�S‘˜"˜bÐ!ð#ð 	#r   c                 ó,   — t        j                  | «      S r   )r   r(  )r   Ú_s     r   r(  zTestJacobian.rosen*  s   € œHŸN™N¨1Ó-Ð-r   )r  rA   r&   )rà   r\   rQ   )rr   )rB   )rH   rF   r)  c                 ó–  ‡‡— |dk(  rdnd}t        ‰|«      }t        j                  j                  d«      }‰j                  \  }}|j                  |f|z   ¬«      }	t        ˆˆfd„‰j                  |	|¬«      «      }
‰j                  t        j                  ‰j                  |	«      «      |¬«      }t        |
j                  ||¬«       y )	Nr\   r6   g“ÆhUM`?ì   6Hœ2«)rQ   c                 ó   •—  ‰| ‰«      S r   rr   )r   r)  r-   s    €€r   rt   z,TestJacobian.test_examples.<locals>.<lambda>7  s   ø€ ¡ a¨"£€ r   r%   r7   )
r9   rX   rw   rŠ   Úmnr   r'   r0   r   r*   )r   r&   rQ   r)  r-   r8   rx   ÚmrU   r   r/   r0   s      ``       r   Útest_exampleszTestJacobian.test_examples.  s£   ù€ ð  Ò*‰u°ˆÜ˜˜EÓ"ˆÜ�i‰i×#Ñ# LÓ1ˆØ�w‰w‰ˆˆ1Ø�J‰J˜Q˜D 4™KˆJÓ(ˆÜÔ-¨r¯z©z¸!À5¨zÓ/IÓJˆà�j‰jœŸ™ D§H¡H¨Q£KÓ0¸ˆjÓ>ˆÜ˜Ÿ™ ¨$Ö/r   c           	      ó"  ‡‡‡‡— ‰j                  ddg«      Šˆfd„}ˆfd„Šˆfd„Št        |‰d¬«      }t        ‰«      rZt        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 ]‰  }	‰j                  t        ||	«      t        ||	«      gt        ||	«      t        ||	«      gg«      }
‰j                  |
«      ||	<   ||	   j                  ‰j                  k(  rdnd}t        ||	   ||	   |¬«       Œ‹ y )Nrª   ç      Ð?c                 ó¬   •— | \  }}‰j                  ‰j                  d|z  «      ‰j                  |«      z  ‰j                  d|z  «      |dz  z  g«      S )Nrª   rH   r5  )r0  r   r´   r-   s      €r   r3  z$TestJacobian.test_attrs.<locals>.df1B  sN   ø€ Ø‰DˆAˆqØ—8‘8˜RŸV™V C¨¡E›]¨R¯V©V°A«YÑ6¸¿¹¸qÀ¹s»ÀaÈÁdÑ8JÐKÓLÐLr   c                 óP   •— ‰j                  d| z  «      ‰j                  |«      z  S )Nrª   )r    r³   s     €r   Údf1_0xyz(TestJacobian.test_attrs.<locals>.df1_0xyF  s"   ø€ Ø—6‘6˜#˜a™%“= 2§6¡6¨!£9Ñ,Ð,r   c                 ó8   •— ‰j                  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¾   rr   )r   r\  r0  s    €€r   rt   z)TestJacobian.test_attrs.<locals>.<lambda>Q  ó   ø€ ¡7¨1¨a°©dÓ#3€ r   r   rA   c                 ó   •—  ‰‰d   | «      S ©Nr   rr   )r´   r\  r0  s    €€r   rt   z)TestJacobian.test_attrs.<locals>.<lambda>R  ó   ø€ ¡7¨1¨Q©4°Ó#3€ r   rH   c                 ó   •—  ‰| ‰d   «      S r¾   rr   )r   r^  r0  s    €€r   rt   z)TestJacobian.test_attrs.<locals>.<lambda>S  r`  r   c                 ó   •—  ‰‰d   | «      S rb  rr   )r´   r^  r0  s    €€r   rt   z)TestJacobian.test_attrs.<locals>.<lambda>T  rc  r   )r_   ra   r*   rN   rb   giUMuï>g´àø¤tã=r‡   )r'   r   r   ÚlenrX   ÚuniquerN   rb   r   ÚOptimizeResultr9   Úsqueezer&   rà   r   )r   r-   r3  r/   Úres00Úres01Úres10Úres11r0   ÚattrÚref_attrrˆ   r\  r^  r0  s    `          @@@r   Ú
test_attrszTestJacobian.test_attrs<  sm  û€ à�J‰J˜˜T�{Ó#ˆô	Mô	-ô	&ô �s˜A¨BÔ/ˆÜ�BŒ<Ü”r—y‘y §¡Ó)Ó*¨aÒ/Ð/Ð/Ü”r—y‘y §¡Ó*Ó+¨qÒ0Ð0Ð0äÔ3°Q°q¸°VÈ"ÔMˆÜÔ3°Q°q¸°VÈ"ÔMˆÜÔ3°Q°q¸°VÈ"ÔMˆÜÔ3°Q°q¸°VÈ"ÔMˆÜ×%Ñ%Ó'ˆØ>ò 	=ˆDØ—z‘z¤G¨E°4Ó$8¼'À%ÈÓ:NÐ#OÜ$+¨E°4Ó$8¼'À%ÈÓ:NÐ#Oð#Qó RˆHàŸ
™
 8Ó,ˆC�‰IØ  ™YŸ_™_°·
±
Ò:‘6ÀˆDÜ˜C ™I s¨4¡y°tÖ<ñ	=r   c                 ó¾  ‡‡	‡
— t         j                  j                  d«      }|j                  d«      Š	dŠ
ˆ	ˆ
ˆfd„}g d¢}g d¢}ddi}t        |‰j	                  ‰	‰j
                  ¬	«      |||¬
«      }‰j	                  t        j                  ‰	«      ‰j
                  ¬	«      }t        |j                  |d¬«       ‰j                  ‰j                  |«      «      sJ ‚y )Nl   ]2œZëVrF   gH¯¼šò×z>c                 ó  •— ‰j                   | d| d   ‰d   k  f<   ‰j                   | d| d   ‰d   dz   kD  f<   ‰j                   | d| d   ‰d   kD  f<   ‰j                   | d| d   ‰d   dz
  ‰z
  k  f<   t        j                  | ‰«      S )Nr   rY  rA   r5   )r~   r,  rM  )r   Úbrè   r-   s    €€€r   r   z0TestJacobian.test_step_direction_size.<locals>.fd  sœ   ø€ Ø "§¡ˆAˆa��1‘˜˜!™‘ˆnÑØ')§v¡vˆAˆa��1‘˜˜!™˜t™Ñ#Ð#Ñ$Ø "§¡ˆAˆa��1‘˜˜!™‘ˆnÑØ*,¯&©&ˆAˆa��1‘˜˜!™˜s™
 3™Ñ&Ð&Ñ'Ü—?‘? 1 bÓ)Ð)r   )rA   rP   r   )rY  r5   rª   r8   ç:Œ0âŽyE>r%   )r«   r®   r‰   r7   )rX   rw   rŠ   r   r'   r\   r,  rO  r   r*   r·   Úisfinite)r   r-   rx   r   ÚdirrÈ   r8   r/   r0   rs  rè   s    `       @@r   Útest_step_direction_sizez%TestJacobian.test_step_direction_size]  s·   ú€ ô �i‰i×#Ñ# NÓ3ˆØ�J‰J�q‹MˆØˆö	*ò ˆÚˆØ˜ˆ~ˆÜ�q˜"Ÿ*™* Q¨b¯j©j˜*Ó9ÈØ&)°dô<ˆà�j‰jœ×)Ñ)¨!Ó,°B·J±JˆjÓ?ˆÜ˜Ÿ™ ¨$Õ/Ø�v‰v�b—k‘k #Ó&Ô'Ð'Ñ'r   N)r  r  r  r   r&  r1  r3  rU  r0   r8  r:  r=  r?  rF  rK  rM  rO  r(  r   Ú	rosen_derrå   r  r  rW  rp  rw  rr   r   r   r,  r,  Þ  s  „ ð €Gò
9òFð €B„EØ€B„Fò<ò0ð
 €B„EØ€B„Fò+ò
Cð €B„EØ€B„FòMò8ð €B„EØ€B„FòNò#ð €B„EØ€B„Fâ-Ø€E„HØ×"Ñ"€E„Ià‡[�[×Ñ˜WÐ&<Ó=Ø‡[�[×Ñ˜VÒ%7Ó8Ø‡[�[×Ñ˜V b¨"¨b°"°b¸%Ð%@ÓAñ	0ó Bó 9ó >ð	0ò=óB(r   r,  c                   óÜ   — e Zd ZeZej                  j                  dg d¢«      d„ «       Zd„ Z	d„ Z
ej                  j                  ej                  j                  dd¬«      d	„ «       «       Zy
)ÚTestHessianrC   )rr   )rG   )rH   rG   c                 ó8  — t         j                  j                  d«      }d}|j                  |j                  |f|z   «      |j                  ¬«      }t        t        j                  |«      }|r{|j                  ||df«      }|j                  |j                  D �cg c]  }t        j                  |«      ‘Œ c}«      }|j                  |dd«      }|j                  |||f|z   «      }nt        j                  |«      }t        |j                  |d¬«       y c c}w )NrS  rF   r%   rP   r   rt  r7   )rX   rw   rŠ   r'   r\   r   r   r(  rZ   r�   ÚTÚ
rosen_hessÚmoveaxisr   Úddf)	r   rC   r-   rx   rV  r   r/   Úxir0   s	            r   Útest_examplezTestHessian.test_examplez  sß   € ä�i‰i×#Ñ# LÓ1ˆØˆØ�J‰J�s—z‘z 1 $¨¡,Ó/°r·z±zˆJÓBˆÜ”h—n‘n aÓ(ˆÙØ—
‘
˜1˜q "˜gÓ&ˆAØ—(‘(¸a¿c¹cÖB¸œH×/Ñ/°Õ3ÒBÓCˆCØ—+‘+˜c 1 bÓ)ˆCØ—*‘*˜S 1 a '¨E¡/Ó2‰Cä×%Ñ% aÓ(ˆCÜ˜Ÿ™ ¨4Ö0ùò Cs   ÂDc                 óÆ  — t         j                  j                  d«      }|j                  |j                  d«      |j                  ¬«      }t        t        j                  |«      }t        j                  |«      }|dk7  }t        |j                  |   ||   «       d|j                  |j                  ||   «      «      z  }t        |j                  |    ||    |¬«       y )NrS  rF   r%   r   g{®Gáz„?r7   )rX   rw   rŠ   r'   rà   r   r   r(  r}  r   r  r+   Úmin)r   r-   rx   r   r/   r0   Úmaskr8   s           r   Útest_float32zTestHessian.test_float32Ž  s¯   € Ü�i‰i×#Ñ# LÓ1ˆØ�J‰J�s—z‘z !“}¨B¯J©JˆJÓ7ˆÜ”h—n‘n aÓ(ˆÜ×!Ñ! !Ó$ˆØ�q‘ˆÜ˜Ÿ™ ™ s¨4¡yÔ1Ø�b—f‘f˜RŸV™V C¨¡IÓ.Ó/Ñ/ˆÜ˜Ÿ™  ™¨¨T¨E©
¸Ö>r   c                 óÀ  ‡‡‡‡— ‰j                  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J ‚ J ‚d‰_        t        ˆˆfd
„‰dd d¬«      }|j                  d   ‰j                  cxk(  r|j                  d	   k(  sJ ‚ J ‚y )Nrª   rY  c                 óà   •—  ‰j                   | Ž \  }}‰j                  |j                  dkD  r"t        j                  |j
                  dd  «      ndz   ‰_        ‰j                  |«      |dz  z  S )NrH   rA   rF   )Úbroadcast_arraysrb   rR   ÚmathÚprodrC   r�   )r0  r   r´   r1  r-   r  s      €€€r   r1  z!TestHessian.test_nfev.<locals>.f1œ  s_   ø€ Ø+�7×+Ñ+¨QÐ/‰DˆAˆqØ—g‘g¸1¿6¹6ÀAº:¤§¡¨1¯7©7°1°2¨;Ô!7È1ÑMˆBŒGØ—6‘6˜!“9˜q A™vÑ%Ð%r   r   r"   r  c                 ó$   •—  ‰| d   ‰d   g«      S )Nr   rA   rr   )r   r1  r0  s    €€r   rt   z'TestHessian.test_nfev.<locals>.<lambda>¥  ó   ø€ ¡" a¨¡d¨A¨a©D \Ó"2€ r   rA   )r   r   c                 ó$   •—  ‰‰d   | d   g«      S rb  rr   )r´   r1  r0  s    €€r   rt   z'TestHessian.test_nfev.<locals>.<lambda>©  rŒ  r   rH   )rA   rA   )r'   r	   rb   r   )r   r-   r/   rj  rm  r1  r  r0  s    `   @@@r   Ú	test_nfevzTestHessian.test_nfev˜  sÑ   û€ Ø�J‰J˜˜T�{Ó#ˆÜ! !Ó$ˆö	&ð ˆŒô �b˜!¨"Ô-ˆØˆŒÜÔ2°A°a¸°FÈÔLˆØ�x‰x˜‰~ §¡Ô<¨E¯J©J°tÑ,<Ò<Ð<Ñ<Ð<Ð<àˆŒÜÔ2°A°a¸°FÈÔLˆØ�x‰x˜‰~ §¡Ô<¨E¯J©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 «       y # 1 sw Y   y xY w)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±  sC   € ð 7ˆÜ�\‰\œ.°Ô8ñ 	?Ü�B—F‘F˜R˜D¬T°uÔ-=Õ>÷	?÷ 	?ñ 	?ús   ž$AÁAN)r  r  r  r   r&  rå   r  r  r�  r…  rŽ  Úthread_unsafer   r’  rr   r   r   rz  rz  u  sx   „ ð €Gà‡[�[×Ñ˜WÒ&8Ó9ñ1ó :ð1ò&?ò=ð2 ‡[�[×ÑØ‡[�[×!Ñ!¨$Ø)Oð "ó Qñ?óQó ñ?r   rz  )&r‰  rå   ÚnumpyrX   Ú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$  r,  rz  rr   r   r   ú<module>r¢     s[  ðÛ Û ã å /ß 6Ð 6ß XÑ Xß EÑ Eç *Ñ *ß =Ñ =Ý >ð # F§K¡K×$;Ñ$;Ð<NÓ$OÐP€
àVÐ Ø>€ð ‡�×ÑÐ0Ð9UÐÓVØ‡�×Ñ˜k°ÐÓA÷e.ð e.ó Bó Wðe.÷P)ñ )ð< ‡�×ÑÐ0Ð9UÐÓVØ‡�×Ñ˜k°ÐÓAôR(Ð&ó R(ó Bó WðR(ðj ‡�×ÑÐ0Ð9UÐÓVØ‡�×Ñ˜k°ÐÓAô@?Ð%ó @?ó Bó Wñ@?r   