§
    ¢éUg/L  ã                   ó”   — d dl Z d dlZd dlmZmZmZ d dlmc m	Z
 d dlmZmZ d dlmZmZmZ  G d„ d¦  «        Z G d„ d¦  «        ZdS )	é    N)Úassert_array_lessÚassert_allcloseÚassert_equal)ÚstatsÚoptimize)Ú_differentiateÚ	_jacobianÚ_EERRORINCREASEc            	       ó2  — e Zd Zd„ Zej                             dd ej        ddd¦  «        g¦  «        d„ ¦   «         Z	ej                             de
j        j        ¦  «        d	„ ¦   «         Zej                             d
ddg¦  «        ej                             d e¦   «         dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dd¦  «        ej                             ddddgf¦  «        ej                             dej        ej        ej        f¦  «        d„ ¦   «         ¦   «         ¦   «         Zd „ Zd!„ Zej        j        ej                             dd"„ dfd#„ dff¦  «        d$„ ¦   «         ¦   «         Zd%S )&ÚTestDifferentiatec                 óN   — t          j        ¦   «                              |¦  «        S ©N)r   ÚnormÚcdf)ÚselfÚxs     úf/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/tests/test_differentiate.pyÚfzTestDifferentiate.f   s   € ÝŒz‰|Œ|×Ò Ñ"Ô"Ð"ó    r   ç333333ã?çš™™™™™©¿çÍÌÌÌÌÌð?é
   c                 óH  — t          | j        |¦  «        }t          j        ¦   «                              |¦  «        }t
          j                             |j        |¦  «         t          t          |j        |z
  ¦  «        |j        ¦  «         |j        j        |j        k    sJ ‚d S r   )Údifferentiater   r   r   ÚpdfÚnpÚtestingr   Údfr   ÚabsÚerrorr   Úshape)r   r   ÚresÚrefs       r   Ú
test_basiczTestDifferentiate.test_basic   s‡   € õ ˜DœF AÑ&Ô&ˆÝŒj‰lŒl×Ò˜qÑ!Ô!ˆÝ
Œ
×"Ò" 3¤6¨3Ñ/Ô/Ð/õ 	�#˜cœf s™lÑ+Ô+¨S¬YÑ7Ô7Ð7ØŒuŒ{˜cœiÒ'Ð'Ð'Ð'Ð'Ð'r   Úcasec                 óð   — |\  }} t          t          |¦  «        |Ž }|                     ¦   «         dz   }t          |j        |¦  «        }|                     |¦  «        }t          |j        |d¬¦  «         d S )Ngš™™™™™¹?ç»½×Ùß|Û=©Úatol)Úgetattrr   Úmedianr   r   r   r   r   )r   r&   ÚdistnameÚparamsÚdistr   r#   r$   s           r   Útest_accuracyzTestDifferentiate.test_accuracy   sq   € àÑˆ�&Ø'�w•u˜hÑ'Ô'¨Ð0ˆØ�KŠK‰MŒM˜CÑˆÝ˜DœH aÑ(Ô(ˆØ�hŠh�q‰kŒkˆÝ˜œ ¨%Ð0Ñ0Ô0Ð0Ð0Ð0r   Úorderé   é   r"   )é   ©é   é   )r6   é   r8   c                 ó²  ‡ ‡‡‡— |r)t          j        ddd¦  «                             |¦  «        nd}t          j        |¦  «        Št           j        ˆˆ fd„¦   «         }ˆˆˆ fd„Šd‰_        d‰_        t          ‰|‰¬	¦  «        } ||¦  «                             ¦   «         }d
„ |D ¦   «         }t          |j
                             ¦   «         |¦  «         t          |j
        j        |¦  «         d„ |D ¦   «         }t          |j                             ¦   «         |¦  «         t          |j        j        |¦  «         d„ |D ¦   «         }	t          |j                             ¦   «         |	d¬¦  «         t          |j        j        |¦  «         d„ |D ¦   «         }
t          |j                             ¦   «         |
¦  «         t          |j        j        |¦  «         t          j        |j        j        t           j        ¦  «        sJ ‚d„ |D ¦   «         }t          |j                             ¦   «         |¦  «         t          |j        j        |¦  «         t          j        |j        j        t           j        ¦  «        sJ ‚d„ |D ¦   «         }t          |j                             ¦   «         |¦  «         t          t          j        |j        ¦  «        ‰j        ¦  «         t          |j        j        |j
        j        ¦  «         t          j        |j        j        t           j        ¦  «        sJ ‚d„ |D ¦   «         }t          |j                             ¦   «         |¦  «         t          t          j        |j        ¦  «        ‰j        ¦  «         t          |j        j        |j
        j        ¦  «         t          j        |j        j        t           j        ¦  «        sJ ‚d S )Nr   r   r4   r   c                 ó2   •— t          ‰j        | ‰¬¦  «        S )N©r1   )r   r   )r   r1   r   s    €€r   Ú_differentiate_singlezCTestDifferentiate.test_vectorization.<locals>._differentiate_single,   s   ø€ å  ¤¨°%Ð8Ñ8Ô8Ð8r   c                 ó¬   •— ‰xj         dz  c_         ‰xj        | j        ‰k    s| j        dk    rdn| j        d         z  c_         ‰j        | g|¢R i |¤ŽS )Nr2   éÿÿÿÿ)ÚnitÚfevalÚsizeÚndimr"   r   )r   ÚargsÚkwargsr   Únr   s      €€€r   r   z/TestDifferentiate.test_vectorization.<locals>.f0   sb   ø€ ØˆEŒE�Q‰JˆEŒEØˆGŒG˜QœV qš[˜[¨A¬F°QªJ¨J�q�q¸Q¼WÀR¼[ÑHˆGŒGØ�4”6˜!Ð-˜dÐ-Ð-Ð- fÐ-Ð-Ð-r   r>   r   r;   c                 ó   — g | ]	}|j         ‘Œ
S © ©r   ©Ú.0r$   s     r   ú
<listcomp>z8TestDifferentiate.test_vectorization.<locals>.<listcomp>:   s   € Ð'Ð'Ð'˜3�”Ð'Ð'Ð'r   c                 ó   — g | ]	}|j         ‘Œ
S rG   )r   rI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>>   s   € Ð)Ð)Ð)˜S�#”&Ð)Ð)Ð)r   c                 ó   — g | ]	}|j         ‘Œ
S rG   )r!   rI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>B   s   € Ð/Ð/Ð/ 3�S”YÐ/Ð/Ð/r   gê-�™—q=r)   c                 ó   — g | ]	}|j         ‘Œ
S rG   )ÚsuccessrI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>F   s   € Ð3Ð3Ð3 s�s”{Ð3Ð3Ð3r   c                 ó   — g | ]	}|j         ‘Œ
S rG   )ÚstatusrI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>K   s   € Ð/Ð/Ð/ 3�C”JÐ/Ð/Ð/r   c                 ó   — g | ]	}|j         ‘Œ
S rG   )ÚnfevrI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>P   s   € Ð-Ð-Ð- �C”HÐ-Ð-Ð-r   c                 ó   — g | ]	}|j         ‘Œ
S rG   )r?   rI   s     r   rK   z8TestDifferentiate.test_vectorization.<locals>.<listcomp>V   s   € Ð+Ð+Ð+˜s�3”7Ð+Ð+Ð+r   )r   ÚlinspaceÚreshaperA   Ú	vectorizer?   r@   r   Úravelr   r   r   r"   r   r!   rO   Ú
issubdtypeÚdtypeÚbool_rQ   ÚintegerrS   Úmax)r   r1   r"   r   r<   r#   ÚrefsÚref_xÚref_dfÚ	ref_errorÚref_successÚref_flagÚref_nfevÚref_nitr   rE   s   ``            @@r   Útest_vectorizationz$TestDifferentiate.test_vectorization$   sj  øøøø€ ð
 <AÐI�BŒK˜˜t RÑ(Ô(×0Ò0°Ñ7Ô7Ð7ÀcˆÝŒG�A‰JŒJˆå	Œð	9ð 	9ð 	9ð 	9ð 	9ñ 
Œð	9ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð ˆŒØˆŒå˜A˜q¨Ð.Ñ.Ô.ˆØ$Ð$ QÑ'Ô'×-Ò-Ñ/Ô/ˆà'Ð' $Ð'Ñ'Ô'ˆÝ˜œŸš™œ uÑ-Ô-Ð-Ý�S”U”[ %Ñ(Ô(Ð(à)Ð) DÐ)Ñ)Ô)ˆÝ˜œŸš™œ¨Ñ/Ô/Ð/Ý�S”V”\ 5Ñ)Ô)Ð)à/Ð/¨$Ð/Ñ/Ô/ˆ	Ý˜œ	ŸšÑ)Ô)¨9¸5ÐAÑAÔAÐAÝ�S”Y”_ eÑ,Ô,Ð,à3Ð3¨dÐ3Ñ3Ô3ˆÝ�S”[×&Ò&Ñ(Ô(¨+Ñ6Ô6Ð6Ý�S”[Ô&¨Ñ.Ô.Ð.ÝŒ}˜Sœ[Ô.µ´Ñ9Ô9Ð9Ð9Ð9à/Ð/¨$Ð/Ñ/Ô/ˆÝ�S”Z×%Ò%Ñ'Ô'¨Ñ2Ô2Ð2Ý�S”ZÔ% uÑ-Ô-Ð-ÝŒ}˜SœZÔ-­r¬zÑ:Ô:Ð:Ð:Ð:à-Ð-¨Ð-Ñ-Ô-ˆÝ�S”X—^’^Ñ%Ô% xÑ0Ô0Ð0Ý•R”V˜CœHÑ%Ô% q¤wÑ/Ô/Ð/Ý�S”X”^ S¤U¤[Ñ1Ô1Ð1ÝŒ}˜SœXœ^­R¬ZÑ8Ô8Ð8Ð8Ð8à+Ð+ dÐ+Ñ+Ô+ˆÝ�S”W—]’]‘_”_ gÑ.Ô.Ð.Ý•R”V˜CœG‘_”_ a¤eÑ,Ô,Ð,Ý�S”W”] C¤E¤KÑ0Ô0Ð0ÝŒ}˜SœWœ]­B¬JÑ7Ô7Ð7Ð7Ð7Ð7Ð7r   c                 ót  ‡‡— t           j                             d¦  «        Šˆˆfd„Šd‰_        t          j        dt           j        ¬¦  «        f}t          ‰dgdz  dd|¬	¦  «        }t          j        t          j	        t          t          j        t          j        g¦  «        }t          |j        |¦  «         d S )
Nì   •¾;O  c                 óž   •‡— ‰xj         dz  c_         d„ ˆfd„d„ d„ gŠˆfd„t          | |                     ¦   «         ¦  «        D ¦   «         }|S )Nr2   c                 ó   — | dz
  S )Nç      @rG   rH   s    r   ú<lambda>z9TestDifferentiate.test_flags.<locals>.f.<locals>.<lambda>b   s
   € ˜q 3™w€ r   c                 óV   •— t          j        | ¦  «        ‰                     ¦   «         z  S r   )r   ÚexpÚrandom©r   Úrngs    €r   rl   z9TestDifferentiate.test_flags.<locals>.f.<locals>.<lambda>c   s   ø€ �rœv a™yœy¨¯ª©¬Ñ5€ r   c                 ó*   — t          j        | ¦  «        S r   )r   rn   rH   s    r   rl   z9TestDifferentiate.test_flags.<locals>.f.<locals>.<lambda>d   s   € �rœv a™yœy€ r   c                 óL   — t          j        | t           j        ¦  «        d         S )NrG   )r   Ú	full_likeÚnanrH   s    r   rl   z9TestDifferentiate.test_flags.<locals>.f.<locals>.<lambda>e   s   € �rœ|¨A­r¬vÑ6Ô6°rÔ:€ r   c                 ó8   •— g | ]\  }} ‰|         |¦  «        ‘ŒS rG   rG   )rJ   r   ÚjÚfuncss      €r   rK   z;TestDifferentiate.test_flags.<locals>.f.<locals>.<listcomp>f   s)   ø€ Ð?Ð?Ð?¡4 1 a�8�5˜”8˜A‘;”;Ð?Ð?Ð?r   )r?   ÚziprX   )ÚxsÚjsr#   rx   r   rq   s      @€€r   r   z'TestDifferentiate.test_flags.<locals>.f`   sk   øø€ ØˆEŒE�Q‰JˆEŒEØ&Ð&Ø5Ð5Ð5Ð5Ø(Ð(Ø:Ð:ð<ˆEð @Ð?Ð?Ð?­3¨r°2·8²8±:´:Ñ+>Ô+>Ð?Ñ?Ô?ˆCØˆJr   r   r7   ©rZ   r2   ç›+¡†›„=r8   )Úrtolr1   rC   )r   ro   Údefault_rngr?   ÚarangeÚint64r   ÚarrayÚeimÚ_ECONVERGEDr
   Ú	_ECONVERRÚ
_EVALUEERRr   rQ   )r   rC   r#   Ú	ref_flagsr   rq   s       @@r   Ú
test_flagszTestDifferentiate.test_flags\   s»   øø€ õ Œi×#Ò#Ð$4Ñ5Ô5ˆð	ð 	ð 	ð 	ð 	ð 	ð ˆŒå”	˜!¥2¤8Ð,Ñ,Ô,Ð.ˆÝ˜A ˜s 1™u¨5¸ÀÐEÑEÔEˆå”H�cœoÝ-Ý!œmÝ!œnð.ñ /ô /ˆ	õ 	�S”Z Ñ+Ô+Ð+Ð+Ð+r   c                 ó  ‡— t           j                             d¦  «        Šˆfd„}t          |dddd¬¦  «        }t          j        t
          j        t          t
          j        t
          j	        g¦  «        }t          |j        |¦  «         d S )Nrh   c                 óÎ   •— | dz
  t          j        | ¦  «        ‰                     ¦   «         z  t          j        | ¦  «        t          j        | t           j        ¦  «        d         gS )Nrk   rG   )r   rn   ro   rt   ru   rp   s    €r   r   z6TestDifferentiate.test_flags_preserve_shape.<locals>.fv   sM   ø€ Ø˜‘GÝ”F˜1‘I”I˜cŸjšj™lœlÑ*Ý”F˜1‘I”IÝ”L ¥B¤FÑ+Ô+¨BÔ/ð1ð 1r   r2   r}   r8   T)r~   r1   Úpreserve_shape)r   ro   r   r   r‚   rƒ   r„   r
   r…   r†   r   rQ   )r   r   r#   r‡   rq   s       @r   Útest_flags_preserve_shapez+TestDifferentiate.test_flags_preserve_shapes   s�   ø€ åŒi×#Ò#Ð$4Ñ5Ô5ˆð	1ð 	1ð 	1ð 	1ð 	1õ ˜A˜q u°AÀdÐKÑKÔKˆå”H�cœoÝ-Ý!œmÝ!œnð.ñ /ô /ˆ	õ 	�S”Z Ñ+Ô+Ð+Ð+Ð+r   c           	      óT  — d„ }d}ddt          j        d|z  ¦  «        z  ddt          j        d|z  ¦  «        z  z   dt          j        d|z  ¦  «        z  |dz
  dz  z  dt          j        d|z  ¦  «        z  |dz
  z  z   g}t          ||d¬	¦  «        }t	          |j        |¦  «         d S )
Nc                 ó¤   — | t          j        d| z  ¦  «        | t          j        d| z  ¦  «        z   t          j        d| z  ¦  «        | dz
  dz  z  gS )Nr6   r   é   r2   r8   ©r   ÚsinrH   s    r   r   z0TestDifferentiate.test_preserve_shape.<locals>.f†   sF   € Ø•r”v˜a ™c‘{”{ A¥b¤f¨R°©T¡l¤l¡NµB´F¸2¸a¹4±L´LÀ!ÀAÁ#ÈÁÑ4IÐJÐJr   r   r2   r6   r   r�   r8   T©r‹   )r   Úcosr‘   r   r   r   )r   r   r   r$   r#   s        r   Útest_preserve_shapez%TestDifferentiate.test_preserve_shape„   s¹   € ð	Kð 	Kð 	Kð ˆØ�!•B”F˜1˜Q™3‘K”K‘-  2¥b¤f¨R°©T¡l¤l¡?Ñ!2Ø•"”&˜˜A™‘,”,‰  !¡ a™xÑ'¨!­B¬F°2°a±4©L¬L©.¸!¸A¹#Ñ*>Ñ>ð@ˆå˜A˜q°Ð6Ñ6Ô6ˆÝ˜œ Ñ$Ô$Ð$Ð$Ð$r   c                 óØ  — t          j        ¦   «         }d}|j        }|                     |¦  «        }t	          ddd¬¦  «        }|                     ¦   «         }d|d<   t          ||fi |¤Ž}t          t          |j	        |z
  ¦  «        d¦  «         d|d<   t          ||fi |¤Ž}t          t          |j	        |z
  ¦  «        d¦  «         t          t          |j	        |z
  ¦  «        t          |j	        |z
  ¦  «        ¦  «         |                     ¦   «         }d|d<   t          ||fi |¤Ž}t          t          |j	        |z
  ¦  «        dt          j        |¦  «        z  ¦  «         d|d<   t          ||fi |¤Ž}t          t          |j	        |z
  ¦  «        dt          j        |¦  «        z  ¦  «         t          t          |j	        |z
  ¦  «        t          |j	        |z
  ¦  «        ¦  «         d S )	Nr2   r   r7   )r*   r~   r1   gü©ñÒMbP?r*   g�íµ ÷Æ°>r~   )r   r   r   r   ÚdictÚcopyr   r   r    r   r   )	r   r/   r   r   r$   Úkwargs0rD   Úres1Úres2s	            r   Útest_convergencez"TestDifferentiate.test_convergence�   sÆ  € åŒz‰|Œ|ˆØˆØŒHˆØ�hŠh�q‰kŒkˆÝ˜A A¨QÐ/Ñ/Ô/ˆà—’‘”ˆØˆˆv‰Ý˜Q Ð,Ð, VÐ,Ð,ˆÝ�#˜dœg¨™mÑ,Ô,¨dÑ3Ô3Ð3Øˆˆv‰Ý˜Q Ð,Ð, VÐ,Ð,ˆÝ�#˜dœg¨™mÑ,Ô,¨dÑ3Ô3Ð3Ý�#˜dœg¨™mÑ,Ô,­c°$´'¸C±-Ñ.@Ô.@ÑAÔAÐAà—’‘”ˆØˆˆv‰Ý˜Q Ð,Ð, VÐ,Ð,ˆÝ�#˜dœg¨™mÑ,Ô,¨dµR´V¸C±[´[Ñ.@ÑAÔAÐAØˆˆv‰Ý˜Q Ð,Ð, VÐ,Ð,ˆÝ�#˜dœg¨™mÑ,Ô,¨dµR´V¸C±[´[Ñ.@ÑAÔAÐAÝ�#˜dœg¨™mÑ,Ô,­c°$´'¸C±-Ñ.@Ô.@ÑAÔAÐAÐAÐAr   c                 óâ  — t          j        ¦   «         }d}|j        }|                     |¦  «        }t	          ||dd¬¦  «        }t	          ||dd¬¦  «        }t          |j        |z
  ¦  «        t          |j        |z
  ¦  «        k     sJ ‚t	          ||dd¬¦  «        }t	          ||dd¬¦  «        }t          |j        |z
  ¦  «        t          |j        |z
  ¦  «        k     sJ ‚t          ddd	¬
¦  «        }t	          ||fdddœ|¤Ž}t	          ||fdddœ|¤Ž}t          |j        |j        d¬¦  «         t          ddd¬
¦  «        }t	          ||fdddœ|¤Ž}t	          ||fdt          j
        d¦  «        z  ddœ|¤Ž}t          |j        |j        d¬¦  «         d|d<   t	          ||fdddœ|¤Ž}t	          ||fdt          j
        d¦  «        z  ddœ|¤Ž}t          |j        |j        d¬¦  «         d S )Nr2   g      à?)Úinitial_stepÚmaxitergš™™™™™©?r8   )Ústep_factorrž   r�   r7   r   )r1   rž   Ústep_direction)r�   rŸ   g›+¡†›„ö<©r~   r>   r    )r   r   r   r   r   r    r   r–   r   r   Úsqrt)	r   r/   r   r   r$   r™   rš   rD   r#   s	            r   Útest_step_parametersz&TestDifferentiate.test_step_parameters©   sD  € åŒz‰|Œ|ˆØˆØŒHˆØ�hŠh�q‰kŒkˆå˜Q °¸QÐ?Ñ?Ô?ˆÝ˜Q °¸aÐ@Ñ@Ô@ˆÝ�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6å˜Q ¨q¸!Ð<Ñ<Ô<ˆÝ˜Q ¨r¸1Ð=Ñ=Ô=ˆÝ�4”7˜S‘=Ñ!Ô!¥C¨¬°#©Ñ$6Ô$6Ò6Ð6Ð6Ð6õ ˜A q¸Ð;Ñ;Ô;ˆÝ˜A˜qÐN¨sÀÐNÐNÀvÐNÐNˆÝ˜A˜qÐJ¨q¸aÐJÐJÀ6ÐJÐJˆÝ˜œ ¤¨UÐ3Ñ3Ô3Ð3õ ˜A q¸Ð;Ñ;Ô;ˆÝ˜A˜qÐJ¨q¸aÐJÐJÀ6ÐJÐJˆÝ˜A˜qð -¨qµ´¸±´©|Èð -ð -Ø%+ð-ð -ˆå˜œ ¤¨UÐ3Ñ3Ô3Ð3à#%ˆÐÑ Ý˜A˜qÐJ¨q¸aÐJÐJÀ6ÐJÐJˆÝ˜A˜qð -¨qµ´¸±´©|Èð -ð -Ø%+ð-ð -ˆå˜œ ¤¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 ó.  — d„ }t          j        ddd¦  «        }t          j        |¦  «        }d\  ||dk     <   ||dk    <   t          |||¬¦  «        }t	          |j        t          j        |¦  «        ¦  «         t          j        |j        ¦  «        sJ ‚d S )	Nc                 ób   — t          j        | ¦  «        }t           j        || dk     | dk    z   <   |S )Nr   r8   )r   rn   ru   )r   Úys     r   r   z0TestDifferentiate.test_step_direction.<locals>.fÍ   s-   € Ý”�q‘	”	ˆAÝ#%¤6ˆAˆq�1Šu˜˜QšÑÑ ØˆHr   r   r8   r   )r2   r>   r   gffffffö?)r    )	r   rU   Ú
zeros_liker   r   r   rn   ÚallrO   )r   r   r   r    r#   s        r   Útest_step_directionz%TestDifferentiate.test_step_directionË   s�   € ð	ð 	ð 	õ
 ŒK˜˜1˜bÑ!Ô!ˆÝœ qÑ)Ô)ˆØ;@Ñ8ˆ�q˜3’wÑ °°C²Ñ!8Ý˜A˜q°Ð@Ñ@Ô@ˆÝ˜œ¥¤ q¡	¤	Ñ*Ô*Ð*ÝŒv�c”kÑ"Ô"Ð"Ð"Ð"Ð"Ð"r   c                 ó¸  — d„ }d„ }t          j        g d¢¦  «                             ddd¦  «        }t          j        g d¢¦  «                             ddd¦  «        }t          j        ddg¦  «                             ddd¦  «        }t          ||||f¬	¦  «        }t          j         |||¦  «        |j        j        ¦  «        }t          |j        |¦  «         d S )
Nc                 ó   — | |z  S r   rG   ©r   Úps     r   r   z@TestDifferentiate.test_vectorized_step_direction_args.<locals>.fÛ   s   € Ø˜‘6ˆMr   c                 ó   — || |dz
  z  z  S ©Nr2   rG   r¬   s     r   r   zATestDifferentiate.test_vectorized_step_direction_args.<locals>.dfÞ   s   € Ø�q˜Q ™U‘|Ñ#Ð#r   )r2   r8   r6   r7   r>   r2   ©r>   r   r2   r8   r6   )r    rC   )r   r‚   rV   r   Úbroadcast_tor   r"   r   )r   r   r   r   Úhdirr­   r#   r$   s           r   Ú#test_vectorized_step_direction_argsz5TestDifferentiate.test_vectorized_step_direction_argsÙ   sà   € ð	ð 	ð 	ð	$ð 	$ð 	$õ ŒH�\�\�\Ñ"Ô"×*Ò*¨2¨q°!Ñ4Ô4ˆÝŒx˜
˜
˜
Ñ#Ô#×+Ò+¨A¨r°1Ñ5Ô5ˆÝŒH�a˜�VÑÔ×$Ò$ Q¨¨2Ñ.Ô.ˆÝ˜A˜q°¸Q¸DÐAÑAÔAˆÝŒo˜b˜b  A™hœh¨¬¬Ñ5Ô5ˆÝ˜œ Ñ$Ô$Ð$Ð$Ð$r   c                 óÒ  ‡‡‡	— d}t          j        ¦   «         ŠdŠ	ˆfd„}d}t          ||‰	d¬¦  «        }t          j        |j        ¦  «        rJ ‚t          j        |j        |dz   ‰	dz
  dz  z   k    ¦  «        sJ ‚t          j        |j        ‰	k    ¦  «        sJ ‚ˆˆ	fd	„Šd
‰_	        d ‰_
        t          ¦   «         ‰_        t          ||‰d¬¦  «        }|                     ¦   «         D ]~}|dk    rN||         t          j        k    sJ ‚‰j
        |         t          j        k    sJ ‚||         t          j        k    sJ ‚ŒV||         ‰j
        |         cxk    r||         k    sn J ‚Œd S )Ng~ý,œã?r6   c                 ó2   •— ‰                      | ¦  «        }|S r   )r   )r   r#   r/   s     €r   r   z2TestDifferentiate.test_maxiter_callback.<locals>.fî   s   ø€ Ø—(’(˜1‘+”+ˆCØˆJr   é   çVçž¯Ò<)rž   r~   r2   r8   c                 ó
  •— ‰xj         dz  c_         | ‰_        t          | d¦  «        sJ ‚| j        ‰j        vsJ ‚‰j                             | j        ¦  «         | j        t          j        k    sJ ‚‰j         ‰k    rt          ‚d S )Nr2   r   )
Úiterr#   Úhasattrr   ÚdfsÚaddrQ   rƒ   Ú_EINPROGRESSÚStopIteration)r#   Úcallbackrž   s    €€r   r¿   z9TestDifferentiate.test_maxiter_callback.<locals>.callbackø   sŽ   ø€ ØˆMŒM˜QÑˆMŒMØˆHŒLÝ˜3 Ñ$Ô$Ð$Ð$Ð$Ø”6 ¤Ð-Ð-Ð-Ð-ØŒL×Ò˜SœVÑ$Ô$Ð$Ø”:¥Ô!1Ò1Ð1Ð1Ð1ØŒ} Ò'Ð'Ý#Ð#ð (Ð'r   r>   )r¿   r~   rQ   )r   r   r   r   ÚanyrO   r¨   rS   r?   r¹   r#   Úsetr»   Úkeysrƒ   r…   r½   Ú
_ECALLBACK)
r   r   r   Údefault_orderr#   rš   Úkeyr¿   r/   rž   s
          @@@r   Útest_maxiter_callbackz'TestDifferentiate.test_maxiter_callbackè   s¶  øøø€ àˆÝŒz‰|Œ|ˆØˆð	ð 	ð 	ð 	ð 	ð ˆÝ˜A˜q¨'¸Ð>Ñ>Ô>ˆÝ”6˜#œ+Ñ&Ô&Ð&Ð&Ð&ÝŒv�c”h -°!Ñ"3°wÀ±{ÀA±oÑ"EÒEÑFÔFÐFÐFÐFÝŒv�c”g Ò(Ñ)Ô)Ð)Ð)Ð)ð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð ˆŒØˆŒÝ‘u”uˆŒå˜Q ¨H¸5ÐAÑAÔAˆð —8’8‘:”:ð 	Bð 	BˆCØ�hŠˆØ˜3”x¥3¤=Ò0Ð0Ð0Ð0Ø”| CÔ(­CÔ,<Ò<Ð<Ð<Ð<Ø˜C”y¥C¤NÒ2Ð2Ð2Ð2Ð2à˜C”y H¤L°Ô$5ÐAÐAÒAÐA¸¸S¼ÒAÐAÐAÐAÐAÐAÐAð	Bð 	Br   r²   r°   gÍÌÌÌÌÌä?gffffffæ?rZ   c                 óš  ‡— t          j        |‰¬¦  «        d         }ˆfd„}ˆfd„}t          ||d||¬¦  «        }|j        j        ‰k    sJ ‚|j        j        ‰k    sJ ‚|j        j        ‰k    sJ ‚t          j        ‰¦  «        j        }t          |j        t          j
        |j        ¦  «        t          j        |¦  «        ¬¦  «         d S )Nr|   rG   c                 óF   •— | j         ‰k    sJ ‚t          j        | ¦  «        S r   )rZ   r   rn   )r   rZ   s    €r   r   z'TestDifferentiate.test_dtype.<locals>.f  s$   ø€ Ø”7˜eÒ#Ð#Ð#Ð#Ý”6˜!‘9”9Ðr   c                 ót   •— | j         j        ‰k    sJ ‚| j        j        ‰k    sJ ‚| j        j        ‰k    sJ ‚d S r   )r   rZ   r   r!   )r#   rZ   s    €r   r¿   z.TestDifferentiate.test_dtype.<locals>.callback  sH   ø€ Ø”5”; %Ò'Ð'Ð'Ð'Ø”6”< 5Ò(Ð(Ð(Ð(Ø”9”? eÒ+Ð+Ð+Ð+Ð+Ð+r   r7   )r1   r    r¿   r¡   )r   Úasarrayr   r   rZ   r   r!   ÚfinfoÚepsr   rn   r¢   )r   r²   r   rZ   r   r¿   r#   rÌ   s      `    r   Ú
test_dtypezTestDifferentiate.test_dtype  sï   ø€ õ
 ŒJ�q Ð&Ñ&Ô& rÔ*ˆð	ð 	ð 	ð 	ð 	ð	,ð 	,ð 	,ð 	,ð 	,õ
 ˜A˜q¨¸$Ø,4ð6ñ 6ô 6ˆàŒuŒ{˜eÒ#Ð#Ð#Ð#ØŒvŒ|˜uÒ$Ð$Ð$Ð$ØŒyŒ %Ò'Ð'Ð'Ð'ÝŒh�u‰oŒoÔ!ˆÝ˜œ¥¤ s¤u¡¤µB´G¸C±L´LÐAÑAÔAÐAÐAÐAr   c                 óR  — d}t          j        t          |¬¦  «        5  t          d d¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d„ d¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d„ d	d
g¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d„ dd ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d„ dt	          ¦   «         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d„ dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d }t          j        t          |¬¦  «        5  t          d!„ dd"¬#¦  «         d d d ¦  «         n# 1 swxY w Y   d$}t          j        t          |¬¦  «        5  t          d%„ dd&¬'¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )(Nz`func` must be callable.©Úmatchr2   z3Abscissae and function output must be real numbers.c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>1  ó   €  A€ r   y      À      ð?z6When `preserve_shape=False`, the shape of the array...c                 ó
   — g d¢S )N)r2   r8   r6   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>5  s
   €  I I I€ r   éþÿÿÿéýÿÿÿz6Tolerances and step parameters must be non-negative...c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>9  rÒ   r   r>   r)   c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>;  rÒ   r   Úekkir¡   c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>=  rÒ   r   ©r�   c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>?  rÒ   r   ©rŸ   ú%`maxiter` must be a positive integer.c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>C  rÒ   r   ç      ø?©rž   c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>E  rÒ   r   r   z"`order` must be a positive integerc                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>I  rÒ   r   r;   c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>K  rÒ   r   z'`preserve_shape` must be True or False.c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>O  rÒ   r   Úherringr’   z`callback` must be callable.c                 ó   — | S r   rG   rH   s    r   rl   z9TestDifferentiate.test_input_validation.<locals>.<lambda>S  rÒ   r   Ú	shrubbery)r¿   )ÚpytestÚraisesÚ
ValueErrorr   Úobject)r   Úmessages     r   Útest_input_validationz'TestDifferentiate.test_input_validation(  s  € ð -ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	#ð 	#Ý˜$ Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð HˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	.ð 	.Ý˜+˜+ uÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð KˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	9ð 	9ÝÐ-Ð-°°B¨xÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð KˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	3ð 	3Ý˜+˜+ q¨rÐ2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3åŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7Ý˜+˜+ q¨vÐ6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7åŒ]�:¨WÐ5Ñ5Ô5ð 	=ð 	=Ý˜+˜+ q°tÐ<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=åŒ]�:¨WÐ5Ñ5Ô5ð 	@ð 	@Ý˜+˜+ qµf±h´hÐ?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7Ý˜+˜+ q°#Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7åŒ]�:¨WÐ5Ñ5Ô5ð 	5ð 	5Ý˜+˜+ q°!Ð4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	5ð 	5Ý˜+˜+ q°Ð4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5åŒ]�:¨WÐ5Ñ5Ô5ð 	3ð 	3Ý˜+˜+ q°Ð2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð <ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Dð 	DÝ˜+˜+ q¸ÐCÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	@ð 	@Ý˜+˜+ q°;Ð?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@så   ž;»?Á?Á#BÂBÂBÂ)C	Ã	CÃCÃ1DÄDÄDÄ7EÅEÅEÅ=FÆF!Æ$F!Ç G/Ç/G3Ç6G3ÈH7È7H;È>H;ÉI=É=JÊJÊ%KËK	ËK	Ë+LÌLÌLÌ3MÍMÍMÍ;NÎN Î#N c           
      óX  ‡— d„ }t          |dd¬¦  «        }|j        sJ ‚t          |j        d¦  «         t	          d¦  «        D ]»Šd}ˆfd„}d	‰z  |‰d
z
  z  z  }t          ||d
t          d
‰¦  «        ¬¦  «        }t          |j        |d¬¦  «         t          |j        t          j	        ¦  «         t          ||t          d
‰¦  «        ¬¦  «        }|j        sJ ‚|j
        d	k    sJ ‚t          |j        |d¬¦  «         Œ¼d„ }t          |d	d¬¦  «        }t          |j        d¦  «         d S )Nc                 ó^   — t          j        | j        t           j        ¦  «        sJ ‚| dz  dz
  S )Néc   r2   )r   rY   rZ   ÚfloatingrH   s    r   r   z/TestDifferentiate.test_special_cases.<locals>.fZ  s,   € Ý”= ¤­"¬+Ñ6Ô6Ð6Ð6Ð6Ø˜‘7˜Q‘;Ðr   é   r(   r¡   gl)~IéŠQr3   rß   c                 ó   •— d| ‰z  z  S )Nr8   rG   )r   rE   s    €r   r   z/TestDifferentiate.test_special_cases.<locals>.fk  s   ø€ Ø˜˜A™‘v�r   r8   r2   )rž   r1   r·   r;   c                 ó   — || z  dz
  S r¯   rG   )r   Úcs     r   r   z/TestDifferentiate.test_special_cases.<locals>.fz  s   € Ø�Q‘3˜‘7ˆNr   r6   )rC   )r   rO   r   r   Úranger]   r   r!   r   ru   r?   )r   r   r#   r   r$   rE   s        @r   Útest_special_casesz$TestDifferentiate.test_special_casesU  sm  ø€ ð
	ð 	ð 	õ ˜A˜q uÐ-Ñ-Ô-ˆØŒ{ÐÐÐÝ˜œ 	Ñ*Ô*Ð*õ �q‘”ð 	5ð 	5ˆAØˆAðð ð ð ð ð �A‘#�a˜!˜A™#‘h‘,ˆCå  1¨aµs¸1¸a±y´yÐAÑAÔAˆCÝ˜CœF C¨eÐ4Ñ4Ô4Ð4Ý˜œ¥B¤FÑ+Ô+Ð+å  1­C°°1©I¬IÐ6Ñ6Ô6ˆCØ”;ÐÐÐØ”7˜a’<�<�<�<Ý˜CœF C¨eÐ4Ñ4Ô4Ð4Ð4ð	ð 	ð 	õ ˜A˜q qÐ)Ñ)Ô)ˆÝ˜œ Ñ"Ô"Ð"Ð"Ð"r   c                 ó   — | dz
  dz  S )Nr2   r6   rG   rH   s    r   rl   zTestDifferentiate.<lambda>‚  s   € �A˜‘E˜a‘<€ r   c                 óN   — t          j        | dk    | dz
  dz  | dz
  dz  ¦  «        S )Nr2   é   r6   )r   ÚwhererH   s    r   rl   zTestDifferentiate.<lambda>ƒ  s(   € •2”8˜A šE A¨¡E¨a¡<°!°a±%¸A±Ñ>Ô>€ r   c                 óŒ   — d}t          |g d¢|dœŽ}t          j        |j        ¦  «        sJ ‚t	          |j        d|¬¦  «         d S )Ng¼‰Ø—²Òœ<r°   )r    r*   r   r)   )r   r   r¨   rO   r   r   )r   r&   r*   r#   s       r   Útest_saddle_gh18811z%TestDifferentiate.test_saddle_gh18811€  sV   € ð ˆÝ˜T°*°*°*À4ÐHÐHÐHˆÝŒv�c”kÑ"Ô"Ð"Ð"Ð"Ý˜œ ¨Ð-Ñ-Ô-Ð-Ð-Ð-r   N) Ú__name__Ú
__module__Ú__qualname__r   rè   ÚmarkÚparametrizer   rU   r%   r   Ú_distr_paramsÚdistcontr0   Útuplerf   rˆ   rŒ   r”   r›   r£   r©   r³   rÆ   Úfloat16Úfloat32Úfloat64rÍ   rí   r÷   Úxfailrý   rG   r   r   r   r      s~  € € € € € ð#ð #ð #ð „[×Ò˜S 3¨¨¬°E¸4ÀÑ(DÔ(DÐ"EÑFÔFð(ð (ñ GÔFð(ð „[×Ò˜V UÔ%8Ô%AÑBÔBð1ð 1ñ CÔBð1ð „[×Ò˜W q¨! fÑ-Ô-Ø„[×Ò˜W u u¡w¤w°°v¸yÐ&IÑJÔJð48ð 48ñ KÔJñ .Ô-ð48ðl,ð ,ð ,ð.,ð ,ð ,ð"	%ð 	%ð 	%ðBð Bð Bð4 4ð  4ð  4ðD#ð #ð #ð%ð %ð %ð&Bð &Bð &BðP „[×Ò˜V ZÑ0Ô0Ø„[×Ò˜S 4¨$°¨Ð"5Ñ6Ô6Ø„[×Ò˜W r¤z°2´:¸r¼zÐ&JÑKÔKðBð Bñ LÔKñ 7Ô6ñ 1Ô0ðBð*+@ð +@ð +@ðZ)#ð )#ð )#ðV „[ÔØ„[×Ò˜VØ	Ð	 Ð#Ø	>Ð	>ÀÐBð&ñ ô ð.ð .ñ	ô ñ Ôð
.ð .ð .r   r   c            
       óª  — e Zd 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_        ej        Zde_        ej        e_        ej                             dg d¢¦  «        ej                             deee	eeeg¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )ÚTestJacobianc                 óP   — | \  }}|dz  |z  d|z  t          j        |¦  «        z   gS ©Nr8   rú   r�   ©Úzr   r¦   s      r   Úf1zTestJacobian.f1”  s/   € Ø‰ˆˆ1Ø�Q‘˜‘
˜A ™E¥B¤F¨1¡I¤IÑ-Ð.Ð.r   c                 óx   — | \  }}d|z  |z  |dz  gt          j        |d¦  «        t          j        |¦  «        ggS r  )r   rt   r“   r  s      r   Údf1zTestJacobian.df1˜  s@   € Ø‰ˆˆ1Ø�Q‘˜‘˜A ™FÐ#¥b¤l°1°aÑ&8Ô&8½"¼&À¹)¼)Ð%DÐEÐEr   )r8   r8   c                 óh   — | \  }}|t          j        |¦  «        z  |t          j        |¦  «        z  gS r   ©r   r“   r‘   ©r  ÚrÚphis      r   Úf2zTestJacobian.f2Ÿ  s.   € Ø‰ˆˆ3Ø•B”F˜3‘K”K‘ ¥R¤V¨C¡[¤[¡Ð1Ð1r   c                 óº   — | \  }}t          j        |¦  «        | t          j        |¦  «        z  gt          j        |¦  «        |t          j        |¦  «        z  ggS r   r  r  s      r   Údf2zTestJacobian.df2£  sP   € Ø‰ˆˆ3Ý”˜‘”˜q˜b¥2¤6¨#¡;¤;Ñ.Ð/Ý”˜‘”˜a¥"¤&¨¡+¤+™oÐ.ð0ð 	0r   c                 óê   — | \  }}}|t          j        |¦  «        z  t          j        |¦  «        z  |t          j        |¦  «        z  t          j        |¦  «        z  |t          j        |¦  «        z  gS r   )r   r‘   r“   ©r  r  r  Úths       r   Úf3zTestJacobian.f3«  s]   € Ø‰
ˆˆ3�Ø•B”F˜3‘K”K‘¥"¤&¨¡*¤*Ñ,¨aµ"´&¸±+´+©oÅÄÀrÁ
Ä
Ñ.JØ•B”F˜3‘K”K‘ð!ð 	!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   )r   r‘   r“   r§   r  s       r   Údf3zTestJacobian.df3°  sï   € Ø‰
ˆˆ3�Ý”˜‘”�rœv b™zœzÑ)¨1­r¬v°c©{¬{©?½R¼VÀB¹Z¼ZÑ+GØ�•b”f˜S‘k”kÑ!¥B¤F¨2¡J¤JÑ.ð0å”˜‘”�rœv b™zœzÑ)¨1­r¬v°c©{¬{©?½R¼VÀB¹Z¼ZÑ+GØ•R”V˜C‘[”[‘¥2¤6¨"¡:¤:Ñ-ð/å”˜‘”˜q˜b¥2¤6¨#¡;¤;Ñ.µ´¸aÑ0@Ô0@ÐAð	Cð 	Cr   )r6   r6   c                 ób   — | \  }}}|d|z  d|dz  z  d|z  z
  |t          j        |¦  «        z  gS ©Nrú   r7   r8   r�   ©r   Úx1Úx2Úx3s       r   Úf4zTestJacobian.f4»  s=   € Ø‰
ˆˆB�Ø�A˜‘F˜A  a¡™K¨!¨b©&Ñ0°"µr´v¸b±z´z±/ÐBÐBr   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Ô   )r   Ú	ones_liker“   r‘   ©r   r$  r%  r&  Úones        r   Údf4zTestJacobian.df4¿  s†   € Ø‰
ˆˆB�ÝŒl˜2ÑÔˆØ�a˜#‘g˜q 3™wÐ'Ø�S‘˜!˜c™' 1 s¡7Ð+Ø�S‘˜!˜b™& " s¡(Ð+Ø•b”f˜R‘j”j‘ ! c¡'­2¬6°"©:¬:Ð6ð8ð 	8r   r5   c                 óf   — | \  }}}d|z  d|dz  z  dt          j        ||z  ¦  «        z  z
  ||z  gS r"  r�   r#  s       r   Úf5zTestJacobian.f5Ê  s@   € Ø‰
ˆˆB�Ø�B‘˜˜B !™G™ a­"¬&°°b±©/¬/Ñ&9Ñ9¸2À¹7ÐCÐCr   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 r)  )r   r*  r“   r+  s        r   Údf5zTestJacobian.df5Î  s‚   € Ø‰
ˆˆB�ÝŒl˜2ÑÔˆØ�S‘˜!˜c™' 1 s¡7Ð+Ø�R‘˜˜b™¥2¤6¨"¨r©'¡?¤?Ñ2°B¸±G½b¼fÀRÈ"ÁW¹o¼oÑ4MÐNØ�S‘˜"˜bÐ!ð#ð 	#r   )rú   r2   rA   )rG   )r3   )r8   r6   Úfuncc                 ó$  — t           j                             d¦  «        }|j        \  }}|                     |f|z   ¬¦  «        }t	          ||¦  «        j        }|                     |¦  «        }t           j                             ||d¬¦  «         d S )Nl   6Hœ2«)rA   r(   r)   )	r   ro   r   ÚmnÚjacobianr   r$   r   r   )	r   rA   r2  rq   ÚmrE   r   r#   r$   s	            r   Útest_exampleszTestJacobian.test_examplesÜ  s�   € õ Œi×#Ò# LÑ1Ô1ˆØŒw‰ˆˆ1Ø�JŠJ˜Q˜D 4™KˆJÑ(Ô(ˆÝ�t˜QÑÔÔ"ˆØ�hŠh�q‰kŒkˆÝ
Œ
×"Ò" 3¨°%Ð"Ñ8Ô8Ð8Ð8Ð8r   c                 ó2  — d}t          j        t          |¬¦  «        5  t          t          j        dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        d¦  «        }t          j        }d}t          j        t          |¬¦  «        5  t          ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          ||d¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          ||d¬
¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"Argument `x` must be at least 1-D.rÏ   r2   r>   r)   r6   z<Tolerances and step parameters must be non-negative scalars.r¡   rÚ   rÜ   z#`order` must be a positive integer.r;   rÝ   rà   )	rè   ré   rê   r5  r   r‘   Úonesr   Úrosen)r   rì   r   r2  s       r   Útest_ivzTestJacobian.test_ivæ  sº  € à6ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	)ð 	)Ý•R”V˜Q RÐ(Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ
 ŒG�A‰JŒJˆÝŒ~ˆØPˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	'ð 	'Ý�T˜1 2Ð&Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'åŒ]�:¨WÐ5Ñ5Ô5ð 	'ð 	'Ý�T˜1 2Ð&Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'åŒ]�:¨WÐ5Ñ5Ô5ð 	/ð 	/Ý�T˜1¨2Ð.Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/åŒ]�:¨WÐ5Ñ5Ô5ð 	.ð 	.Ý�T˜1¨"Ð-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 8ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	(ð 	(Ý�T˜1 BÐ'Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý�T˜1 bÐ)Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s}   žAÁAÁAÂB.Â.B2Â5B2ÃC3Ã3C7Ã:C7ÄD8Ä8D<Ä?D<ÅE=Å=FÆFÆ%GÇGÇGÇ,HÈHÈHN)rþ   rÿ   r   r  r  r4  r$   r  r  r  r   r'  r-  r/  r1  r   r:  Ú	rosen_derrè   r  r  r7  r;  rG   r   r   r  r  �  s‹  € € € € € ð
/ð /ð /ðFð Fð Fð €B„EØ€B„Fð2ð 2ð 2ð0ð 0ð 0ð
 €B„EØ€B„Fð!ð !ð !ð
Cð Cð Cð €B„EØ€B„FðCð Cð Cð8ð 8ð 8ð €B„EØ€B„FðDð Dð Dð#ð #ð #ð €B„EØ€B„FàŒN€EØ€E„HØÔ"€E„Ià„[×Ò˜VÐ%7Ð%7Ð%7Ñ8Ô8Ø„[×Ò˜V b¨"¨b°"°b¸%Ð%@ÑAÔAð9ð 9ñ BÔAñ 9Ô8ð9ð*ð *ð *ð *ð *r   r  )rè   Únumpyr   Únumpy.testingr   r   r   Ú(scipy._lib._elementwise_iterative_methodÚ_libÚ_elementwise_iterative_methodrƒ   Úscipyr   r   Úscipy.optimize._differentiater   r   r	   r5  r
   r   r  rG   r   r   ú<module>rD     s  ðØ €€€à Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jà 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ðSð Sð Sð Sð Sð Sð Sð Sð Sð SðA.ð A.ð A.ð A.ð A.ñ A.ô A.ð A.ðHq*ð q*ð q*ð q*ð q*ñ q*ô q*ð q*ð q*ð q*r   