Ë
    çÿæiLl  ã                   ó2  — d dl Z d dlZd dlZd dlmc 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«       G d„ d«      «       Z G d	„ d
«      Z ee«       G d„ de«      «       Z ee«       G d„ de«      «       Z y)é    N)Úxp_assert_closeÚxp_assert_equalÚxp_assert_less)Úis_numpyÚis_torchÚmake_xp_test_case)ÚstatsÚoptimizeÚspecial)Ú
derivativeÚjacobianÚhessian)Ú_EERRORINCREASEc            	       óP  — 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	„ «       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
                  j9                  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     ú�/Volumes/fast/ai/experiments/voice-extract-mac/.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   Úcasec                 óØ   — |\  }} t        t        |«      |Ž }|j                  «       dz   }t        |j                  |«      }|j                  |«      }t        |j                  |d¬«       y )Nçš™™™™™¹?ç»½×Ùß|Û=©Úatol)Úgetattrr	   Úmedianr   Úcdfr%   r   r&   )r   r.   ÚdistnameÚparamsÚdistr   r+   r,   s           r   Útest_accuracyzTestDerivative.test_accuracy#   s\   € àÑˆ�&Ø'Œw”u˜hÓ'¨Ð0ˆØ�K‰K‹M˜CÑˆÜ˜Ÿ™ 1Ó%ˆØ�h‰h�q‹kˆÜ˜Ÿ™ ¨%Ö0r   Úorderé   é   Úshape)é   ©é   é   )rA   é   rC   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   r?   r   c                 ó4   •— t        ‰j                  | ‰¬«      S )N©r;   )r   r   )r   r;   r   s    €€r   Ú_derivative_singlez=TestDerivative.test_vectorization.<locals>._derivative_single5   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Únitr<   Úfevaléÿÿÿÿ)ÚsizeÚndimr>   r   )r   ÚargsÚkwargsÚnr   Ústates      €€€r   r   z,TestDerivative.test_vectorization.<locals>.f9   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   rK   rI   r   rJ   r!   rF   ©rK   gê-�™—q=r2   )ÚnpÚlinspaceÚreshaperL   Ú	vectorizer   r#   Úfloat64Úravelr   r   r&   r(   ÚboolÚsuccessr   Úint32ÚstatusÚnfevr   ÚmaxrI   )r   r;   r>   r)   r   rG   r   r+   Úrefsr,   Úref_xÚref_dfÚ	ref_errorÚref_successÚref_flagÚref_nfevÚref_nitrP   rQ   s   ``               @@r   Útest_vectorizationz!TestDerivative.test_vectorization,   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á$(Ó)¡D˜S�#—&“& DˆÐ)Ü˜Ÿ
™
 3§6¡6¨5Ó1°2·:±:¸fÓ3EÔFá*.Ó/©$ 3�S—Y“Y¨$ˆ	Ð/Ü˜Ÿ
™
 3§9¡9¨eÓ4°b·j±jÀÓ6KØ"õ	$ñ 59Ó9±D¨S”t˜CŸK™KÕ(°DˆÐ9Ü˜Ÿ
™
 3§;¡;°Ó6¸¿
¹
À;Ó8OÔPá48Ó9±D¨S”B—H‘H˜SŸZ™ZÕ(°DˆÐ9Ü˜Ÿ
™
 3§:¡:¨uÓ5°r·z±zÀ(Ó7KÔLá26Ó7±$¨3”B—H‘H˜SŸX™XÕ&°$ˆÐ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Ü˜Ÿ
™
 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 )Nr<   c                 ó   — | dz
  S ©Ng      @© ©r   s    r   Ú<lambda>z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>d   s   € ˜q 3šwr   c                 óH   •— ‰j                  | «      ‰j                  «       z  S r   )ÚexpÚrandom)r   Úrngr)   s    €€r   ro   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>e   s   ø€ ˜rŸv™v a›y¨¯©«Ò5r   c                 ó&   •— ‰j                  | «      S r   ©rq   ©r   r)   s    €r   ro   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>f   s   ø€ ˜rŸv™v aœyr   c                 ó<   •— ‰j                  | ‰j                  «      S r   )Ú	full_likeÚnanrv   s    €r   ro   z6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>g   s   ø€ ˜rŸ|™|¨A¨r¯v©vÔ6r   rR   )rI   ÚziprU   ÚintÚstack)	ÚxsÚjsÚfuncsr   Újr+   r   rs   r)   s	         €€€r   r   z$TestDerivative.test_flags.<locals>.fb   st   ø€ Ø�EŠE�Q‰J�EÙ&Ü5Û(Û6ð8ˆEô 14°B¸¿
¹
À2ÀuÓ8MÔ0NÔOÑ0N©¨¨1�=�5œ˜Q›‘= Õ#Ð0NˆCÑOØ—8‘8˜C“=Ð ùó Ps   ÁA9r   rB   r!   ç›+¡†›„=©ÚrtolrC   )Ú
tolerancesr;   rN   )rS   rr   Údefault_rngrI   ÚarangeÚint64r   ÚonesrW   Údictr#   ÚeimÚ_ECONVERGEDr   Ú	_ECONVERRÚ
_EVALUEERRr[   r   r\   )r   r)   rN   r+   Ú	ref_flagsr   rs   s    `   @@r   Ú
test_flagszTestDerivative.test_flags^   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 )
Nri   c                 óÊ   •— | dz
  ‰j                  | «      ‰j                  «       z  ‰j                  | «      ‰j                  | ‰j                  «      g}‰j	                  |«      S rl   )rq   rr   rx   ry   r|   )r   Úoutrs   r)   s     €€r   r   z3TestDerivative.test_flags_preserve_shape.<locals>.fz   sT   ø€ Ø�s‘7Ø—6‘6˜!“9˜SŸZ™Z›\Ñ)Ø—6‘6˜!“9Ø—<‘<  2§6¡6Ó*ð,ˆCð —8‘8˜C“=Ð r   r<   r!   r�   r‚   rC   T)r„   r;   Úpreserve_shape)rS   rr   r…   r   r#   rW   r‰   rŠ   r‹   r   rŒ   r�   r[   r   r\   )r   r)   r   r+   rŽ   rs   s    `   @r   Útest_flags_preserve_shapez(TestDerivative.test_flags_preserve_shapew   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 )NrA   r   é   r<   rC   )Ú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   ç        r<   rA   r   r—   rC   T©r“   )r#   Úcosr˜   r   r   r&   )r   r)   r   r   r,   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   )r3   rƒ   gü©ñÒMbP?r3   rB   )r„   r;   g�íµ ÷Æ°>rƒ   )r#   rW   r   r   Úfloatr	   r$   r%   r‰   Úcopyr   r'   r&   )	r   r)   r   r   r,   Ú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!   ç      à?r<   )Úinitial_stepÚmaxitergš™™™™™©?rC   )Ústep_factorr§   r—   rB   r   )r;   r§   Ústep_direction)r¦   r¨   g›+¡†›„ö<r‚   rK   r©   )r#   rW   r   r   rž   r	   r$   r%   r   r'   r&   r‰   r   rS   Úsqrt)	r   r)   r   r   r,   r¡   r¢   rO   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                  |«      }t        j                  |«      |dk     j	                  d«      }t        j                  |«      |dkD     j	                  d«      }t        |||¬	«      }t        |j                  ‰j                  |«      «       ‰j                  |j                  «      sJ ‚y )
Nc                 óž   •— ‰j                  | «      }t        j                  |«      | dk  | dkD  z      j                  ‰j                  «      }|S )Nr   rC   )rq   ÚxpxÚatÚsetry   ©r   Úyr)   s     €r   r   z-TestDerivative.test_step_direction.<locals>.fÑ   sC   ø€ Ø—‘�q“	ˆAÜ—‘�q“	˜1˜q™5 Q¨¡UÑ+Ñ,×0Ñ0°·±Ó8ˆAØˆHr   r   rC   r   r   r<   gffffffö?rK   ©r©   )rT   Ú
zeros_liker®   r¯   r°   r   r   r&   rq   ÚallrZ   )r   r)   r   r   r©   r+   s    `    r   Útest_step_directionz"TestDerivative.test_step_directionÏ   s¨   ø€ ô	ð
 �K‰K˜˜1˜bÓ!ˆØŸ™ qÓ)ˆÜŸ™ Ó/°°C±Ñ8×<Ñ<¸QÓ?ˆÜŸ™ Ó/°°C±Ñ8×<Ñ<¸RÓ@ˆÜ˜˜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   rm   ©r   Úps     r   r   z=TestDerivative.test_vectorized_step_direction_args.<locals>.fà   s   € Ø˜‘6ˆMr   c                 ó   — || |dz
  z  z  S ©Nr<   rm   r¹   s     r   r&   z>TestDerivative.test_vectorized_step_direction_args.<locals>.dfã   s   € Ø�q˜Q ™U‘|Ñ#Ð#r   )r<   rC   rA   rB   )rK   r<   r<   ©rK   r   r<   )r<   rK   r<   rC   rA   )r<   r<   rK   )r©   rN   r    r!   )rU   r#   r   Úbroadcast_tor&   r>   r"   r   )	r   r)   r   r&   r   Úhdirrº   r+   r,   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   ru   rv   s    €r   r   z+TestDerivative.test_initial_step.<locals>.fð   s   ø€ Ø—6‘6˜!“9Ðr   r™   r!   r½   éýÿÿÿr   r   )rK   r<   rC   r<   )r¦   r;   r§   r©   rK   .r�   r‚   )r#   rW   rU   Úlogspacer   r'   r&   rµ   Úranger>   r   )
r   r)   r   r   r©   Úh0r+   ÚerrÚir,   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 ‚|dk(  r3t#        ||   ||   d¬«       t#        ‰j                  |   ||   d¬«       Œq||   ‰j                  |   cxk(  r
||   k(  rŒ�J ‚ J ‚ y )Ng~ý,œã?r!   rA   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„   r<   rC   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 )Nr<   r   )Úiterr+   Úhasattrrž   r&   ÚdfsÚaddr\   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   rK   )rÕ   r„   r\   r(   r�   r2   )r#   rW   r   r‰   ÚanyrZ   rµ   r]   rI   rÏ   r+   r°   rÑ   ÚkeysrŠ   rŒ   Ú
_ECALLBACKr   )
r   r)   r   r   Údefault_orderr+   r¢   ÚkeyrÕ   r§   s
           @@r   Útest_maxiter_callbackz$TestDerivative.test_maxiter_callback  su  ù€ à�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–:ˆCØ�hŠØ˜3‘x¤3§=¡=Ò0Ð0Ð0Ø˜C‘y¤C§N¡NÓ2Ð2Ð2Ø˜’ô    S¡	¨3¨s©8¸%Õ@Ü §¡¨SÑ 1°3°s±8À%ÖHà˜C‘y H§L¡L°Ñ$5ÔA¸¸S¹ÓAÐAÑAÐAÐAñ r   r¿   r½   gÍÌÌÌÌÌä?gffffffæ?r"   ©Úfloat32rW   c                 óæ  ‡‡— 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!   c                 óH   •— | j                   ‰k(  sJ ‚‰j                  | «      S r   )r"   rq   )r   r"   r)   s    €€r   r   z$TestDerivative.test_dtype.<locals>.f7  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   rB   )r;   r©   rÕ   r¥   é2   r‚   )r4   r#   r   r   r"   r&   r(   ÚfinfoÚepsr   r   rq   )
r   r¿   r   r"   r)   r   rÕ   r+   rã   rƒ   s
      ``     r   Ú
test_dtypezTestDerivative.test_dtype/  sË   ù€ ô
 ˜˜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)'Nr<   z`f` must be callable.©Úmatchz3Abscissae and function output must be real numbers.c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>S  ó   € ¡r   y      À      ð?z6When `preserve_shape=False`, the shape of the array...c                 ó
   — g d¢S )N)r<   rC   rA   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>W  s   € £r   éþÿÿÿrÃ   z6Tolerances and step parameters must be non-negative...c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>[  ré   r   rK   r2   ©r„   c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>]  ré   r   Úekkir‚   c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>_  ré   r   ©r¨   ú%`maxiter` must be a positive integer.c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>c  ré   r   ç      ø?©r§   c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>e  ré   r   r   z"`order` must be a positive integerc                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>i  ré   r   rF   c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>k  ré   r   z'`preserve_shape` must be True or False.c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>o  ré   r   Úherringrš   z`callback` must be callable.c                 ó   — | S r   rm   rn   s    r   ro   z6TestDerivative.test_input_validation.<locals>.<lambda>s  ré   r   Ú	shrubbery)rÕ   )r#   ÚpytestÚraisesÚ
ValueErrorr   r‰   Úobject)r   r)   ÚoneÚmessages       r   Útest_input_validationz$TestDerivative.test_input_validationI  s@  € à�j‰j˜‹mˆà)ˆÜ�]‰]œ:¨WÖ5Ü�t˜SÔ!÷ 6ð HˆÜ�]‰]œ:¨WÖ5Ü‘{ B§J¡J¨uÓ$5Ô6÷ 6ð KˆÜ�]‰]œ:¨WÖ5ÜÑ*¨B¯J©J¸¸B°xÓ,@ÔA÷ 6ð KˆÜ�]‰]œ:¨WÖ5Ü‘{ C´D¸b´MÕB÷ 6ä�]‰]œ:¨WÖ5Ü‘{ C´D¸fÔ4EÕF÷ 6ä�]‰]œ:¨WÖ5Ü‘{ C´V³XÕ>÷ 6ð :ˆÜ�]‰]œ:¨WÖ5Ü‘{ C°Õ5÷ 6ä�]‰]œ:¨WÖ5Ü‘{ C°Õ3÷ 6ð 7ˆÜ�]‰]œ:¨WÖ5Ü‘{ C¨sÕ3÷ 6ä�]‰]œ:¨WÖ5Ü‘{ C¨qÕ1÷ 6ð <ˆÜ�]‰]œ:¨WÖ5Ü‘{ C¸	ÕB÷ 6ð 1ˆÜ�]‰]œ:¨WÖ5Ü‘{ C°+Õ>÷ 6Ð5÷I 6Ñ5ú÷ 6Ñ5ú÷ 6Ñ5ú÷ 6Ñ5úç5Ñ5úç5Ñ5ú÷ 6Ñ5úç5Ñ5ú÷ 6Ñ5úç5Ð5ú÷ 6Ð5ú÷ 6Ð5ú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           
      óª  ‡‡— ˆf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                 óP   •— ‰j                  | j                  d«      sJ ‚| dz  dz
  S )Nzreal floatingéc   r<   )Úisdtyper"   rv   s    €r   r   z,TestDerivative.test_special_cases.<locals>.fz  s)   ø€ Ø—:‘:˜aŸg™g Ô7Ð7Ð7Ø˜‘7˜Q‘;Ðr   é   r1   r‚   rí   gl)~IéŠQr<   r³   rÃ   r!   r   ©r¦   r=   rô   c                 ó   •— d| ‰z  z  S ©NrC   rm   )r   rP   s    €r   r   z,TestDerivative.test_special_cases.<locals>.f•  s   ø€ Ø˜˜A™‘v�r   rC   )r§   r;   rÍ   rF   c                 ó   — || z  dz
  S r¼   rm   )r   Úcs     r   r   z,TestDerivative.test_special_cases.<locals>.f¤  s   € Ø�Q‘3˜‘7ˆNr   rA   )rN   g      @)r   r   r#   r‰   rZ   r   r&   rq   ry   r   r\   r[   rÅ   rW   r^   r(   rI   )r   r)   r   r+   r   r,   rP   s    `    @r   Útest_special_casesz!TestDerivative.test_special_casesu  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–ˆ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ð ò"	ô ˜˜BŸJ™J q›M°·
±
¸1³Ô>ˆÜ˜Ÿ™ §
¡
¨2£Õ/r   T)Únp_onlyc                 ó   — | dz
  dz  S )Nr<   rA   rm   rn   s    r   ro   zTestDerivative.<lambda>®  s   € �A˜‘E˜a’<r   c                 óN   — t        j                  | dkD  | dz
  dz  | dz
  dz  «      S )Nr<   é   rA   )rS   Úwherern   s    r   ro   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©   r3   r   r2   )r   rS   rµ   rZ   r   r&   )r   r.   r)   r3   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ÚparametrizerS   rT   r-   r	   Ú_distr_paramsÚdistcontr:   Útuplerg   r�   r”   rœ   r£   r«   r¶   rÀ   rÉ   rÛ   rä   r  r  Úskip_xp_backendsÚxfailr  rm   r   r   r   r      sÄ  „ òð ‡[�[×Ñ˜S 3¨¨¯©°E¸4ÀÓ(DÐ"EÓFñ	<ó Gð	<ð ‡[�[×Ñ˜V U×%8Ñ%8×%AÑ%AÓBñ1ó Cð1ð ‡[�[×Ñ˜W q¨! fÓ-Ø‡[�[×Ñ˜W¡u£w°°v¸yÐ&IÓJñ.3ó Kó .ð.3ò`/ò2/ò(
%ò7ò24ò>#ò%ò >ò,)BðV ‡[�[×Ñ˜V ZÓ0Ø‡[�[×Ñ˜S 4¨$°¨Ð"5Ó6Ø‡[�[×Ñ˜WÐ&<Ó=ñ:ó >ó 7ó 1ð:ò.*?òX30ðl ‡[�[×!Ñ!¨$Ð!Ó/Ø‡[�[×ÑØ‡[�[×Ñ˜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æ   r<   rK   r2   rí   rA   z<Tolerances and step parameters must be non-negative scalars.r‚   rñ   z#`order` must be a positive integer.rF   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¼  sB  € Ø—,‘,×'Ñ'ˆð 7ˆÜ�]‰]œ:¨WÖ5Ù�B—F‘F˜A¬$°B¬-Õ8÷ 6ð
 �G‰G�A‹JˆÜ�~‰~ˆØPˆÜ�]‰]œ:¨WÖ5Ù�D˜!¬°"¬Õ6÷ 6ä�]‰]œ:¨WÖ5Ù�D˜!¬°"¬Õ6÷ 6ä�]‰]œ:¨WÖ5Ù�D˜!¨Õ,÷ 6ð 8ˆÜ�]‰]œ:¨WÖ5Ù�D˜! 2Õ&÷ 6ð :ˆÜ�]‰]œ:¨WÖ5Ù�D˜! RÕ(÷ 6Ð5÷) 6Ñ5ú÷ 6Ð5úç5Ð5úç5Ð5ú÷ 6Ð5ú÷ 6Ð5úsG   ´ FÂFÃFÄF(Ä=F4Å.G ÆFÆFÆF%Æ(F1Æ4F=Ç G	N)r  r  r  r'  rm   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 ©NrC   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+  )rS   rx   r›   )r-  r   r²   s      r   Údf1zTestJacobian.df1ä  s?   € Ø‰ˆˆ1Ø�Q‘˜‘˜A ™FÐ#¤b§l¡l°1°aÓ&8¼"¿&¹&À»)Ð%DÐEÐEr   )rC   rC   c                 óz   — | \  }}|j                  ||j                  |«      z  ||j                  |«      z  g«      S r   ©r|   r›   r˜   )r-  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   )rS   r›   r˜   )r-  r3  r4  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›   )r-  r)   r3  r4  Ú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   )rS   r˜   r›   r´   )r-  r3  r4  r9  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   )rA   rA   c           	      óz   — | \  }}}|j                  |d|z  d|dz  z  d|z  z
  ||j                  |«      z  g«      S ©Nr  rB   rC   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ë   )rS   Ú	ones_liker›   r˜   ©r   r@  rA  rB  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   r@   c           	      ó~   — | \  }}}|j                  d|z  d|dz  z  d|j                  ||z  «      z  z
  ||z  g«      S r>  r,  r?  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 rE  )rS   rF  r›   rG  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  r<   r"   rÜ   rL   )rm   )r=   )rC   rA   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 )	NrW   r1   g“ÆhUM`?ì   6Hœ2«)rL   c                 ó   •—  ‰| ‰«      S r   rm   )r   r&  r)   s    €€r   ro   z,TestJacobian.test_examples.<locals>.<lambda>1  s   ø€ ¡ a¨"¤r   r!   r2   )
r4   rS   rr   r…   Úmnr   r#   r,   r   r&   )r   r"   rL   r&  r)   r3   rs   ÚmrP   r   r+   r,   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           
      óH  ‡‡‡‡— ‰j                  ddg«      Šˆfd„}ˆfd„Šˆfd„Št        |‰d¬«      }t        ‰«      sHt        j                  |j
                  «      dk(  sJ ‚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                  |
t        d„ t        |
j                  «      D «       «      ¬«      ||	<   ||	   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¥   rC   r2  )r-  r   r²   r)   s      €r   r0  z$TestJacobian.test_attrs.<locals>.df1<  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_0xy@  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_1xyC  s   ø€ Ø—6‘6˜!˜A™#“;  A¡Ñ%Ð%r   r   r	  rB   c                 ó   •—  ‰| ‰d   «      S r¼   rm   )r   rY  r-  s    €€r   ro   z)TestJacobian.test_attrs.<locals>.<lambda>L  ó   ø€ ¡7¨1¨a°©dÔ#3r   r   r<   c                 ó   •—  ‰‰d   | «      S ©Nr   rm   )r²   rY  r-  s    €€r   ro   z)TestJacobian.test_attrs.<locals>.<lambda>M  ó   ø€ ¡7¨1¨Q©4°Ô#3r   rC   c                 ó   •—  ‰| ‰d   «      S r¼   rm   )r   r[  r-  s    €€r   ro   z)TestJacobian.test_attrs.<locals>.<lambda>N  r]  r   c                 ó   •—  ‰‰d   | «      S r_  rm   )r²   r[  r-  s    €€r   ro   z)TestJacobian.test_attrs.<locals>.<lambda>O  r`  r   )rZ   r\   r&   rI   r]   c              3   ó2   K  — | ]  \  }}|d k(  sŒ|–— Œ y­w)r<   Nrm   )Ú.0ÚaxrL   s      r   Ú	<genexpr>z*TestJacobian.test_attrs.<locals>.<genexpr>V  s   è ø€ ÐUÑ.G¡( " dÈ4ÐSTË9œ2Ñ.Gùs   ‚�)ÚaxisgiUMuï>g´àø¤tã=r‚   )r#   r   r   r®   ÚnuniquerI   r]   r
   ÚOptimizeResultr4   Úsqueezer  Ú	enumerater>   r"   rÝ   r   )r   r)   r0  r+   Úres00Úres01Úres10Úres11r,   ÚattrÚref_attrrƒ   rY  r[  r-  s    `          @@@r   Ú
test_attrszTestJacobian.test_attrs6  s  û€ à�J‰J˜˜T�{Ó#ˆô	Mô	-ô	&ô �s˜A¨BÔ/ˆä˜Œ|Ü—;‘;˜sŸw™wÓ'¨1Ò,Ð,Ð,Ü—;‘;˜sŸx™xÓ(¨AÒ-Ð-Ð-äÔ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àŸ
™
ØÜÑU¬i¸¿¹Ô.GÓUÓUð #ó ˆ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ëVrA   gH¯¼šò×z>c                 ó"  •— t        j                  | «      d| d   ‰d   k  f   j                  ‰j                  «      } t        j                  | «      d| d   ‰d   dz   kD  f   j                  ‰j                  «      } t        j                  | «      d| d   ‰d   kD  f   j                  ‰j                  «      } t        j                  | «      d| d   ‰d   dz
  ‰z
  k  f   j                  ‰j                  «      } t        j                  | ‰«      S )Nr   rV  r<   r0   )r®   r¯   r°   ry   r)  rJ  )r   Úbrã   r)   s    €€€r   r   z0TestJacobian.test_step_direction_size.<locals>.fb  sè   ø€ Ü—‘�q“	˜!˜Q˜q™T A a¡D™[˜.Ñ)×-Ñ-¨b¯f©fÓ5ˆAÜ—‘�q“	˜!˜Q˜q™T A a¡D¨4¡KÑ/Ð/Ñ0×4Ñ4°R·V±VÓ<ˆAÜ—‘�q“	˜!˜Q˜q™T A a¡D™[˜.Ñ)×-Ñ-¨b¯f©fÓ5ˆAÜ—‘�q“	˜!˜Q˜q™T A a¡D¨3¡J¨s¡NÑ2Ð2Ñ3×7Ñ7¸¿¹Ó?ˆAÜ—?‘? 1 bÓ)Ð)r   )r<   rK   r   )rV  r0   r¥   r3   ç:Œ0âŽyE>r!   )r¦   r©   r„   r2   )rS   rr   r…   r   r#   rW   r)  rL  r   r&   rµ   Úisfinite)r   r)   rs   r   ÚdirrÆ   r3   r+   r,   ru  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#  r.  r0  rR  r,   r5  r7  r:  r<  rC  rH  rJ  rL  r%  r
   Ú	rosen_derrý   r  r  rT  rr  ry  rm   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ò#=óJ(r   r)  c                   óª   — e Zd ZeZej                  j                  dg d¢«      d„ «       Zd„ Z	d„ Z
ej                  j                  dd¬«      d	„ «       Zy
)ÚTestHessianr>   )rm   )rB   )rC   rB   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 )NrP  rA   r!   rK   r   rv  r2   )rS   rr   r…   r#   rW   r   r
   r%  rU   r|   ÚTÚ
rosen_hessÚmoveaxisr   Úddf)	r   r>   r)   rs   rS  r   r+   Úxir,   s	            r   Útest_examplezTestHessian.test_examplew  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¹c¸œH×/Ñ/°Õ3¸cÑ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 )NrP  rA   r!   r   g{®Gáz„?r2   )rS   rr   r…   r#   rÝ   r   r
   r%  r  r   r�  r'   Úmin)r   r)   rs   r   r+   r,   Úmaskr3   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«      Šˆˆ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¥   rV  c                 óà   •—  ‰j                   | Ž \  }}‰j                  |j                  dkD  r"t        j                  |j
                  dd  «      ndz   ‰_        ‰j                  |«      |dz  z  S )NrC   r<   rA   )Úbroadcast_arraysr]   rM   ÚmathÚprodr>   r˜   )r-  r   r²   r.  r)   s      €€r   r.  z!TestHessian.test_nfev.<locals>.f1˜  s_   ø€ Ø&�2×&Ñ&¨Ð*‰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   r<   rm   )r   r.  r-  s    €€r   ro   z'TestHessian.test_nfev.<locals>.<lambda>¡  ó   ø€ ¡" a¨¡d¨A¨a©D \Ô"2r   r<   )r   r   c                 ó$   •—  ‰‰d   | d   g«      S r_  rm   )r²   r.  r-  s    €€r   ro   z'TestHessian.test_nfev.<locals>.<lambda>¥  rŽ  r   rC   )r<   r<   )r#   r]   r   )r   r)   r+   rl  ro  r.  r-  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)r  Úreasonc                 ó®   — 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­  s:   € ð 7ˆÜ�\‰\œ.°Ö8Ü�B—F‘F˜R˜D¬T°uÔ-=Õ>÷ 9×8Ñ8ús   ž$AÁAN)r  r  r  r   r#  rý   r  r  rƒ  r‡  r�  r  r•  rm   r   r   r|  r|  s  sd   „ à€Gà‡[�[×Ñ˜WÒ&8Ó9ñ1ó :ð1ò&?ò=ð0 ‡[�[×!Ñ!¨$Ø)Oð "ó Qñ?óQñ?r   r|  )!r‹  rý   ÚnumpyrS   Ú(scipy._lib._elementwise_iterative_methodÚ_libÚ_elementwise_iterative_methodrŠ   Úscipy._lib.array_api_extraÚarray_api_extrar®   Ú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   r!  r)  r|  rm   r   r   Ú<module>r¡     s§   ðÛ Û ã ç 6Ð 6ß (Ð (ß XÑ Xß GÑ Gç *Ñ *ß =Ñ =Ý >ñ �:Ó÷f.ð f.ó ðf.÷R)ñ )ñ< �8ÓôV(Ð&ó V(ó ðV(ñr �7Óô>?Ð%ó >?ó ñ>?r   