§
    ¢éUgwz  ã                   óö   — d dl Z d dlmZ d dlZd dlmZmZmZ d dl	m
Z d dlmZmZmZ d dlmZmZmZmZmZmZ d„ Zd„ Z G d	„ d
¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zd„ Zd„ ZdS )é    N)Úproduct)Úassert_allcloseÚassert_equalÚassert_)Úraises)Ú
csr_matrixÚ
csc_matrixÚ
lil_matrix)Ú_adjust_scheme_to_boundsÚapprox_derivativeÚcheck_derivativeÚgroup_columnsÚ_eps_for_methodÚ_compute_absolute_stepc                  óò  — g d¢g d¢g d¢g d¢g d¢g d¢g d¢g} t           j        t          t          t          fD ]‘} || ¦  «        }t          j        d¦  «        }t          j        g d	¢¦  «        }t          ||¦  «        }t          ||¦  «         g d
¢}t          j        g d¢¦  «        }t          ||¦  «        }t          ||¦  «         Œ’t          |¦  «        }t          |¦  «        }t          ||¦  «         d S )N)é   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   é   )r   r   é   r   r   r   )r   r   é   é   é   r   )r   r   r   r   r   r   )	ÚnpÚasarrayr   r	   r
   ÚarangeÚarrayr   r   )Ú	structureÚ	transformÚAÚorderÚgroups_trueÚgroupsÚgroups_1Úgroups_2s           úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/tests/test__numdiff.pyÚtest_group_columnsr%      s*  € àÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð€Iõ ”j¥*­j½*ÐEð 
*ð 
*ˆ	ØˆI�iÑ Ô ˆÝ”	˜!‘”ˆÝ”hÐ1Ð1Ð1Ñ2Ô2ˆÝ˜q %Ñ(Ô(ˆÝ�V˜[Ñ)Ô)Ð)à"Ð"Ð"ˆÝ”hÐ1Ð1Ð1Ñ2Ô2ˆÝ˜q %Ñ(Ô(ˆÝ�V˜[Ñ)Ô)Ð)Ð)õ ˜QÑÔ€HÝ˜QÑÔ€HÝ�˜8Ñ$Ô$Ð$Ð$Ð$ó    c                  ó  — t          j        t           j        ¦  «        j        } | dz  | dz  | dz  dœ}dD ]t}t	          t          t           j        t           j        |¦  «        ||         ¦  «         t	          t          t           j        t           j        |¦  «        ||         ¦  «         Œut          j        t           j        ¦  «        j        } | dz  | dz  | dz  dœ}dD ]­}t	          t          t           j        t           j        |¦  «        ||         ¦  «         t	          t          t           j        t           j        |¦  «        ||         ¦  «         t	          t          t           j        t           j        |¦  «        ||         ¦  «         Œ®d S )Nç      à?çUUUUUUÕ?©ú2-pointz3-pointÚcs)r   ÚfinfoÚfloat64Úepsr   r   Ú
complex128Úfloat32)ÚEPSÚrelative_stepÚmethods      r$   Útest_correct_fp_epsr5   +   s‹  € å
Œ(•2”:Ñ
Ô
Ô
"€CØ # S¡Ø" S™zØ ™8ð%ð %€Mð /ð 
ð 
ˆÝÝ�BœJ­¬
°FÑ;Ô;Ø˜&Ô!ñ	#ô 	#ð 	#õ 	Ý�BœM­2¬=¸&ÑAÔAØ˜&Ô!ñ	
ô 	
ð 	
ð 	
õ Œ(•2”:Ñ
Ô
Ô
"€CØ # S¡Ø" S™zØ ™8ð%ð %€Mð /ð 
ð 
ˆÝÝ�BœJ­¬
°FÑ;Ô;Ø˜&Ô!ñ	
ô 	
ð 	
õ 	Ý�BœJ­¬
°FÑ;Ô;Ø˜&Ô!ñ	
ô 	
ð 	
õ 	Ý�BœJ­¬
°FÑ;Ô;Ø˜&Ô!ñ	
ô 	
ð 	
ð 	
ð
ð 
r&   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestAdjustSchemeToBoundsc                 ój  — t          j        d¦  «        }t          j        dd¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                     t           j         ¦  «         |                     t           j        ¦  «         t          ||dd||¦  «        \  }}t          ||¦  «         t          t          j	        |¦  «        ¦  «         t          ||dd||¦  «        \  }}t          ||¦  «         t          t          j	        |¦  «        ¦  «         t          ||dd||¦  «        \  }}t          ||¦  «         t          t          j	        | ¦  «        ¦  «         t          ||dd||¦  «        \  }}t          ||¦  «         t          t          j	        | ¦  «        ¦  «         d S )Nr   ç{®Gáz„?r   ú1-sidedr   ú2-sided)
r   ÚzerosÚfullÚ
empty_likeÚfillÚinfr   r   r   Úall)ÚselfÚx0ÚhÚ	inf_lowerÚ	inf_upperÚ
h_adjustedÚ	one_sideds          r$   Útest_no_boundsz'TestAdjustSchemeToBounds.test_no_boundsP   s–  € ÝŒX�a‰[Œ[ˆÝŒG�A�tÑÔˆÝ”M "Ñ%Ô%ˆ	Ý”M "Ñ%Ô%ˆ	Ø�Š�œ�wÑÔÐØ�Š•r”vÑÔÐå 8Ø��1�i ¨Iñ!7ô !7Ñˆ
�Iå˜
 AÑ&Ô&Ð&Ý•”�yÑ!Ô!Ñ"Ô"Ð"å 8Ø��1�i ¨Iñ!7ô !7Ñˆ
�Iå˜
 AÑ&Ô&Ð&Ý•”�yÑ!Ô!Ñ"Ô"Ð"å 8Ø��1�i ¨Iñ!7ô !7Ñˆ
�Iå˜
 AÑ&Ô&Ð&Ý•”˜	�zÑ"Ô"Ñ#Ô#Ð#å 8Ø��1�i ¨Iñ!7ô !7Ñˆ
�Iå˜
 AÑ&Ô&Ð&Ý•”˜	�zÑ"Ô"Ñ#Ô#Ð#Ð#Ð#r&   c                 óú  — t          j        g d¢¦  «        }t          j        d¦  «         }t          j        d¦  «        }t          j        g d¢¦  «        dz  }t          ||dd||¦  «        \  }}t	          ||¦  «         t          ||dd||¦  «        \  }}t	          |t          j        g d¢¦  «        dz  ¦  «         t          ||dd	||¦  «        \  }}t	          |t          j        |¦  «        ¦  «         t          t          j        | ¦  «        ¦  «         t          ||dd	||¦  «        \  }}t	          |t          j        g d¢¦  «        dz  ¦  «         t          |t          j        g d
¢¦  «        ¦  «         d S )N)ç        g333333ë?g333333ë¿r   )r   r   éÿÿÿÿçš™™™™™¹?r   r:   r   )r   rL   r   r;   )FTT)	r   r   Úonesr   r   Úabsr   rA   r   )rB   rC   ÚlbÚubrD   rG   Ú_rH   s           r$   Útest_with_boundz(TestAdjustSchemeToBounds.test_with_boundl   ss  € ÝŒXÐ(Ð(Ð(Ñ)Ô)ˆÝŒg�a‰jŒjˆ[ˆÝŒW�Q‰ZŒZˆÝŒH�Z�Z�ZÑ Ô  4Ñ'ˆå0°°Q¸¸9ÀbÈ"ÑMÔM‰ˆ
�AÝ˜
 AÑ&Ô&Ð&å0°°Q¸¸9ÀbÈ"ÑMÔM‰ˆ
�AÝ˜
¥B¤H¨Z¨Z¨ZÑ$8Ô$8¸4Ñ$?Ñ@Ô@Ð@å 8Ø��1�i  Rñ!)ô !)Ñˆ
�Iå˜
¥B¤F¨1¡I¤IÑ.Ô.Ð.Ý•”˜	�zÑ"Ô"Ñ#Ô#Ð#å 8Ø��1�i  Rñ!)ô !)Ñˆ
�Iå˜
¥B¤H¨Z¨Z¨ZÑ$8Ô$8¸4Ñ$?Ñ@Ô@Ð@Ý�Y¥¤Ð)<Ð)<Ð)<Ñ =Ô =Ñ>Ô>Ð>Ð>Ð>r&   c                 ó  — t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          ||dd||¦  «        \  }}t          |t          j        ddg¦  «        ¦  «         t          ||d	d||¦  «        \  }}t          |t          j        d
dg¦  «        ¦  «         t          ||dd||¦  «        \  }}t          |t          j        ddg¦  «        ¦  «         t	          |t          j        ddg¦  «        ¦  «         t          ||d	d||¦  «        \  }}t          |t          j        ddg¦  «        ¦  «         t	          |t          j        ddg¦  «        ¦  «         d S )Ng¸…ëQ¸ž¿gš™™™™™©?rK   g¸…ëQ¸ž?çš™™™™™¹¿r   r:   g¸…ëQ¸®¿r   gš™™™™™™?r;   FTg¸…ëQ¸Ž?g¸…ëQ¸Ž¿)r   r   r   r   r   )rB   rP   rQ   rC   rD   rG   rR   rH   s           r$   Útest_tight_boundsz*TestAdjustSchemeToBounds.test_tight_bounds‚   s€  € ÝŒX�u˜e�nÑ%Ô%ˆÝŒX�t˜T�lÑ#Ô#ˆÝŒX�s˜D�kÑ"Ô"ˆÝŒH�d˜D�\Ñ"Ô"ˆå0°°Q¸¸9ÀbÈ"ÑMÔM‰ˆ
�AÝ˜
¥B¤H¨d°E¨]Ñ$;Ô$;Ñ<Ô<Ð<å0°°Q¸¸9ÀbÈ"ÑMÔM‰ˆ
�AÝ˜
¥B¤H¨e°U¨^Ñ$<Ô$<Ñ=Ô=Ð=å 8Ø��1�i  Rñ!)ô !)Ñˆ
�Iå˜
¥B¤H¨d°E¨]Ñ$;Ô$;Ñ<Ô<Ð<Ý�Y¥¤¨%°¨Ñ 7Ô 7Ñ8Ô8Ð8å 8Ø��1�i  Rñ!)ô !)Ñˆ
�Iå˜
¥B¤H¨e°V¨_Ñ$=Ô$=Ñ>Ô>Ð>Ý�Y¥¤¨%°¨Ñ 7Ô 7Ñ8Ô8Ð8Ð8Ð8r&   N)Ú__name__Ú
__module__Ú__qualname__rI   rS   rV   © r&   r$   r7   r7   O   sA   € € € € € ð$ð $ð $ð8?ð ?ð ?ð,9ð 9ð 9ð 9ð 9r&   r7   c                   óÒ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd$d„Zd%d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Z d!„ Z!d"„ Z"d#S )&ÚTestApproxDerivativesDensec                 ó*   — t          j        |¦  «        S ©N©r   Úsinh©rB   Úxs     r$   Úfun_scalar_scalarz,TestApproxDerivativesDense.fun_scalar_scalarš   ó   € ÝŒw�q‰zŒzÐr&   c                 ó*   — t          j        |¦  «        S r^   ©r   Úcoshra   s     r$   Újac_scalar_scalarz,TestApproxDerivativesDense.jac_scalar_scalar�   rd   r&   c                 ó¢   — t          j        |d         dz  t          j        |d         ¦  «        t          j        |d         ¦  «        g¦  «        S ©Nr   r   ©r   r   ÚtanÚexpra   s     r$   Úfun_scalar_vectorz,TestApproxDerivativesDense.fun_scalar_vector    ó9   € ÝŒx˜˜1œ˜q™¥"¤&¨¨1¬¡,¤,µ´°q¸´t±´Ð=Ñ>Ô>Ð>r&   c                 óÐ   — t          j        d|d         z  t          j        |d         ¦  «        dz  t          j        |d         ¦  «        g¦  «                             dd¦  «        S ©Nr   r   éþÿÿÿrL   r   ©r   r   Úcosrm   Úreshapera   s     r$   Újac_scalar_vectorz,TestApproxDerivativesDense.jac_scalar_vector£   óS   € ÝŒxØ��1”‰X•r”v˜a œd‘|”| rÑ)­2¬6°!°A´$©<¬<Ð8ñ:ô :ß:Aº'À"Àa¹.¼.ð	Ir&   c                 ó~   — t          j        |d         |d         z  ¦  «        t          j        |d         ¦  «        z  S ©Nr   r   ©r   ÚsinÚlogra   s     r$   Úfun_vector_scalarz,TestApproxDerivativesDense.fun_vector_scalar§   ó/   € ÝŒv�a˜”d˜Q˜qœT‘kÑ"Ô"¥R¤V¨A¨a¬D¡\¤\Ñ1Ð1r&   c                 ó~   — t          j        |dz  t          j        |¦  «        t          j        |¦  «        g¦  «        S ©Nr   rk   ra   s     r$   Úwrong_dimensions_funz/TestApproxDerivativesDense.wrong_dimensions_funª   s-   € ÝŒx˜˜A™�rœv a™yœy­"¬&°©)¬)Ð4Ñ5Ô5Ð5r&   c           	      óœ  — t          j        |d         t          j        |d         |d         z  ¦  «        z  t          j        |d         ¦  «        z  t          j        |d         |d         z  ¦  «        |d         z  z   |d         t          j        |d         |d         z  ¦  «        z  t          j        |d         ¦  «        z  g¦  «        S ©Nr   r   ©r   r   rt   r|   r{   ra   s     r$   Újac_vector_scalarz,TestApproxDerivativesDense.jac_vector_scalar­   ó¨   € ÝŒxØˆaŒD•2”6˜!˜Aœ$  1¤™+Ñ&Ô&Ñ&­¬°°!´©¬Ñ5ÝŒF�1�Q”4˜!˜Aœ$‘;ÑÔ ! A¤$Ñ&ñ'àˆaŒD•2”6˜!˜Aœ$  1¤™+Ñ&Ô&Ñ&­¬°°!´©¬Ñ5ð
ñ ô ð 	r&   c                 óÞ   — t          j        |d         t          j        |d         ¦  «        z  |d         t          j        |d         ¦  «        z  |d         dz  |d         dz  z  g¦  «        S ©Nr   r   r   ç      à¿©r   r   r{   rt   ra   s     r$   Úfun_vector_vectorz,TestApproxDerivativesDense.fun_vector_vector´   óc   € ÝŒxØˆaŒD•2”6˜!˜Aœ$‘<”<ÑØˆaŒD•2”6˜!˜Aœ$‘<”<ÑØˆaŒD�A‰I˜˜!œ ™Ñ$ð
ñ ô ð 	r&   c                 ó‚  — t          j        t          j        |d         ¦  «        |d         t          j        |d         ¦  «        z  g|d          t          j        |d         ¦  «        z  t          j        |d         ¦  «        gd|d         dz  z  |d         dz  z  d|d         dz  z  |d         dz  z  gg¦  «        S ©Nr   r   r   r   r‰   g      ø¿rŠ   ra   s     r$   Újac_vector_vectorz,TestApproxDerivativesDense.jac_vector_vector»   óª   € ÝŒxÝŒV�A�a”D‰\Œ\˜1˜Qœ4¥"¤&¨¨1¬¡,¤,Ñ.Ð/Ø�ŒdˆU•R”V˜A˜aœD‘\”\Ñ!¥2¤6¨!¨A¬$¡<¤<Ð0Ø��1”˜‘‰]˜Q˜qœT T™\Ñ)¨4°!°A´$¸!±)Ñ+;¸aÀ¼dÀd¹lÑ+JÐKð
ñ ô ð 	r&   ç      ð?c                 óš   — t          j        t          j        ||d         z  ¦  «        t          j        ||d         z  ¦  «        g¦  «        S ry   ©r   r   rm   ©rB   rb   Úc0Úc1s       r$   Úfun_parametrizedz+TestApproxDerivativesDense.fun_parametrizedÂ   s;   € ÝŒx�œ  Q q¤T¡	Ñ*Ô*­B¬F°2¸¸!¼±9Ñ,=Ô,=Ð>Ñ?Ô?Ð?r&   rM   c           
      ó®   — t          j        |t          j        ||d         z  ¦  «        z  dgd|t          j        ||d         z  ¦  «        z  gg¦  «        S ry   r“   r”   s       r$   Újac_parametrizedz+TestApproxDerivativesDense.jac_parametrizedÅ   sY   € ÝŒxØ•"”&˜˜a œd™Ñ#Ô#Ñ# QÐ'Ø�•R”V˜B  1¤™IÑ&Ô&Ñ&Ð'ð
ñ ô ð 	r&   c                 óN   — t          j        |¦  «        dk    r|nt           j        S )Nç:Œ0âŽyE>©r   rO   Únanra   s     r$   Úfun_with_nanz'TestApproxDerivativesDense.fun_with_nanË   s    € Ý”F˜1‘I”I Ò%Ð%ˆqˆq­2¬6Ð1r&   c                 óN   — t          j        |¦  «        dk    rdnt           j        S )Nr›   r‘   rœ   ra   s     r$   Újac_with_nanz'TestApproxDerivativesDense.jac_with_nanÎ   s    € Ý”f˜Q‘i”i 4Ò'Ð'ˆsˆs­R¬VÐ3r&   c                 óŽ   — t          j        |d         |d         z  t          j        |d         |d         z  ¦  «        g¦  «        S ry   )r   r   rt   ra   s     r$   Úfun_zero_jacobianz,TestApproxDerivativesDense.fun_zero_jacobianÑ   s9   € ÝŒx˜˜1œ  !¤™¥b¤f¨Q¨q¬T°A°a´D©[Ñ&9Ô&9Ð:Ñ;Ô;Ð;r&   c           
      óú   — t          j        |d         |d         g|d          t          j        |d         |d         z  ¦  «        z  |d          t          j        |d         |d         z  ¦  «        z  gg¦  «        S rƒ   )r   r   r{   ra   s     r$   Újac_zero_jacobianz,TestApproxDerivativesDense.jac_zero_jacobianÔ   st   € ÝŒxØˆqŒT�1�Q”4ˆLØ�ŒdˆU•R”V˜A˜aœD 1 Q¤4™KÑ(Ô(Ñ(¨1¨Q¬4¨%µ"´&¸¸1¼ÀÀ!Ä¹Ñ2EÔ2EÑ*EÐFð
ñ ô ð 	r&   c                 óv   — t          j        |¦  «                             ¦   «         }t          j        |¦  «        S r^   )r   r   ÚitemÚmathrm   )rB   rb   Úxps      r$   Újac_non_numpyz(TestApproxDerivativesDense.jac_non_numpyÚ   s+   € õ ŒZ˜‰]Œ]×ÒÑ!Ô!ˆÝŒx˜‰|Œ|Ðr&   c                 ó&  — d}t          | j        |d¬¦  «        }t          | j        |¦  «        }t          | j        |d¬¦  «        }|                      |¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          ||d¬¦  «         d S )	Nr‘   r+   ©r4   r,   ç�íµ ÷Æ°>©Úrtolç•Ö&è.>çê-�™—q=©r   rc   rh   r   ©rB   rC   Ú
jac_diff_2Ú
jac_diff_3Ú
jac_diff_4Újac_trues         r$   Útest_scalar_scalarz-TestApproxDerivativesDense.test_scalar_scalarà   s­   € ØˆÝ& tÔ'=¸rØ.7ð9ñ 9ô 9ˆ
å& tÔ'=¸rÑBÔBˆ
Ý& tÔ'=¸rØ.2ð4ñ 4ô 4ˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 ó.  — d}t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t          ||d¬¦  «         t          ||d	¬¦  «         t          ||d
¬¦  «         d S )Nr‘   r+   çÛ"•“\ÿO>©r4   Úabs_step)r»   r,   r¬   r­   r¯   r°   r±   r²   s         r$   Útest_scalar_scalar_abs_stepz6TestApproxDerivativesDense.test_scalar_scalar_abs_stepì   sÃ   € àˆÝ& tÔ'=¸rØ.7À'ðKñ Kô Kˆ
å& tÔ'=¸rØ07ð9ñ 9ô 9ˆ
å& tÔ'=¸rØ.2¸WðFñ Fô Fˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 óJ  — d}t          | j        |d¬¦  «        }t          | j        |¦  «        }t          | j        |d¬¦  «        }|                      t          j        |¦  «        ¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          ||d¬¦  «         d S )	Nr(   r+   r«   r,   r¬   r­   r¯   r°   )r   rn   rv   r   Ú
atleast_1dr   r²   s         r$   Útest_scalar_vectorz-TestApproxDerivativesDense.test_scalar_vectorú   s·   € ØˆÝ& tÔ'=¸rØ.7ð9ñ 9ô 9ˆ
å& tÔ'=¸rÑBÔBˆ
Ý& tÔ'=¸rØ.2ð4ñ 4ô 4ˆ
à×)Ò)­"¬-¸Ñ*;Ô*;Ñ<Ô<ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 óN  — t          j        ddg¦  «        }t          | j        |d¬¦  «        }t          | j        |¦  «        }t          | j        |d¬¦  «        }|                      |¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          ||d	¬¦  «         d S )
Nç      Y@r‰   r+   r«   r,   r¬   r­   çH¯¼šò×z>r°   )r   r   r   r}   r…   r   r²   s         r$   Útest_vector_scalarz-TestApproxDerivativesDense.test_vector_scalar  s»   € ÝŒX�u˜d�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7ð9ñ 9ô 9ˆ
å& tÔ'=¸rÑBÔBˆ
Ý& tÔ'=¸rØ.2ð4ñ 4ô 4ˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 ól  — t          j        ddg¦  «        }t          | j        |dd¬¦  «        }t          | j        |dt           j        ¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t          ||d¬	¦  «         t          ||d
¬	¦  «         t          ||d¬	¦  «         d S )NrÁ   r‰   r+   r¹   rº   )r»   Úrel_stepr,   r¬   r­   çßA:ÜÅ)>r°   )r   r   r   r}   r@   r…   r   r²   s         r$   Útest_vector_scalar_abs_stepz6TestApproxDerivativesDense.test_vector_scalar_abs_step  sØ   € åŒX�u˜d�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7À'ðKñ Kô Kˆ
å& tÔ'=¸rØ07Å"Ä&ðJñ Jô Jˆ
å& tÔ'=¸rØ.2¸WðFñ Fô Fˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 óN  — t          j        ddg¦  «        }t          | j        |d¬¦  «        }t          | j        |¦  «        }t          | j        |d¬¦  «        }|                      |¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          ||d	¬¦  «         d S )
Nç      YÀçš™™™™™É?r+   r«   r,   çñhãˆµøä>r­   r¬   r°   ©r   r   r   r‹   r�   r   r²   s         r$   Útest_vector_vectorz-TestApproxDerivativesDense.test_vector_vector   s»   € ÝŒX�v˜s�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7ð9ñ 9ô 9ˆ
å& tÔ'=¸rÑBÔBˆ
Ý& tÔ'=¸rØ.2ð4ñ 4ô 4ˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9r&   c                 óà   — d}t          t          t          | j        |¦  «         |                      t	          j        |¦  «        ¦  «        }t          t          t          | j        ||¬¦  «         d S )Nr‘   )Úf0)Úassert_raisesÚRuntimeErrorr   r�   r   r¾   Ú
ValueError)rB   rC   rÏ   s      r$   Útest_wrong_dimensionsz0TestApproxDerivativesDense.test_wrong_dimensions,  ss   € ØˆÝ•lÕ$5ØÔ/°ñ	5ô 	5ð 	5à×&Ò&¥r¤}°RÑ'8Ô'8Ñ9Ô9ˆÝ•jÕ"3ØÔ/°¸ð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r&   c                 ó  — t          j        ddg¦  «        }t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }|                      |¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         d S )	NrU   rM   r+   g-Cëâ6?)r4   rÅ   )rÅ   r9   r­   rÌ   )rB   rC   r³   r´   r¶   s        r$   Útest_custom_rel_stepz/TestApproxDerivativesDense.test_custom_rel_step4  s™   € ÝŒX�t˜S�kÑ"Ô"ˆÝ& tÔ'=¸rØ.7À$ðHñ Hô Hˆ
å& tÔ'=¸rØ04ð6ñ 6ô 6ˆ
à×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ð8Ð8r&   c                 óÆ  — t          j        ddg¦  «        }d}d}d}d}|                      |||¬¦  «        }t          j        ddg¦  «        }|                      |||¦  «        }t	          | j        |d|||ft          |¬¦  «        ||f¬	¦  «        }	t	          | j        ||||ft          |¬¦  «        ||f¬
¦  «        }
t          |	|d¬¦  «         t          |
|d¬¦  «         d S )Nr‘   ç      ð¿rK   ç       @)r–   g�íµ ÷Æ°¾rÂ   r+   )r4   rÅ   rÏ   ÚargsÚkwargsÚbounds)rÅ   rÏ   rÙ   rÚ   rÛ   r¬   r­   r¯   )r   r   r—   r™   r   Údictr   )rB   rC   r•   r–   rP   rQ   rÏ   rÅ   r¶   r³   r´   s              r$   Útest_optionsz'TestApproxDerivativesDense.test_options>  s  € ÝŒX�s˜C�jÑ!Ô!ˆØˆØˆØˆØˆØ×"Ò" 2 r¨bÐ"Ñ1Ô1ˆÝ”8˜U D˜MÑ*Ô*ˆØ×(Ò(¨¨R°Ñ4Ô4ˆÝ&ØÔ! 2¨iÀ(Ø˜˜¥d¨b k¡k¤k¸2¸r¸(ðDñ Dô Dˆ
õ 'ØÔ! 2°Ø˜˜¥d¨b k¡k¤k¸2¸r¸(ðDñ Dô Dˆ
õ 	˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ð8Ð8r&   c                 ó|  — t          j        d¦  «         }t          j        d¦  «        }t          j        ddg¦  «        }t          t          t
          | j        |||f¬¦  «         t          j        ddg¦  «        }t          | j        |d||f¬¦  «        }|                      |¦  «        }t          ||d	¬
¦  «         d S )Nr   g       ÀrÊ   ©rÛ   r×   r‘   r+   ©r4   rÛ   r¬   r­   )	r   rN   r   rÐ   rÒ   r   r‹   r�   r   )rB   rP   rQ   rC   Újac_diffr¶   s         r$   Útest_with_bounds_2_pointz3TestApproxDerivativesDense.test_with_bounds_2_pointP  sÉ   € ÝŒg�a‰jŒjˆ[ˆÝŒW�Q‰ZŒZˆåŒX�t˜S�kÑ"Ô"ˆÝ•jÕ"3ØÔ,¨b¸"¸b¸ð	Cñ 	Cô 	Cð 	Cõ ŒX�t˜S�kÑ"Ô"ˆÝ$ TÔ%;¸RØ,5¸rÀ2¸hðHñ Hô Hˆà×)Ò)¨"Ñ-Ô-ˆÝ˜ (°Ð6Ñ6Ô6Ð6Ð6Ð6r&   c                 ó.  — t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }|                      |¦  «        }t          | j        |¦  «        }t          ||d¬¦  «         t          | j        ||t           j        f¬¦  «        }t          ||d¬¦  «         t          | j        |t           j         |f¬¦  «        }t          ||d¬¦  «         t          | j        |||f¬¦  «        }t          ||d¬¦  «         d S )Nr‘   rØ   r¯   r­   rß   )r   r   r�   r   r‹   r   r@   )rB   rP   rQ   rC   r¶   rá   s         r$   Útest_with_bounds_3_pointz3TestApproxDerivativesDense.test_with_bounds_3_point^  s&  € ÝŒX�s˜C�jÑ!Ô!ˆÝŒX�s˜C�jÑ!Ô!ˆåŒX�s˜C�jÑ!Ô!ˆØ×)Ò)¨"Ñ-Ô-ˆå$ TÔ%;¸RÑ@Ô@ˆÝ˜ (°Ð6Ñ6Ô6Ð6å$ TÔ%;¸RØ-/µ´¨Lð:ñ :ô :ˆå˜ (°Ð6Ñ6Ô6Ð6å$ TÔ%;¸RÝ.0¬f¨W°b¨Mð;ñ ;ô ;ˆå˜ (°Ð6Ñ6Ô6Ð6å$ TÔ%;¸RØ-/°¨Hð6ñ 6ô 6ˆå˜ (°Ð6Ñ6Ô6Ð6Ð6Ð6r&   c                 óÐ  — t          j        ddg¦  «        }|dz
  }|dz   }|                      |¦  «        }t          | j        |d||f¬¦  «        }t          ||d¬¦  «         t          | j        |dd||f¬¦  «        }t          ||d¬¦  «         t          | j        |||f¬	¦  «        }t          ||d¬¦  «         t          | j        |d||f¬
¦  «        }t          ||d¬¦  «         d S )Ng      $@rÆ   g•Ö&è.!>r+   rà   r¬   r­   ©r4   rÅ   rÛ   rß   ©rÅ   rÛ   )r   r   r�   r   r‹   r   )rB   rC   rP   rQ   r¶   rá   s         r$   rV   z,TestApproxDerivativesDense.test_tight_boundst  s-  € ÝŒX�t˜T�lÑ#Ô#ˆØ�$‰YˆØ�$‰YˆØ×)Ò)¨"Ñ-Ô-ˆÝ$ØÔ" B¨yÀ"ÀbÀðKñ Kô Kˆå˜ (°Ð6Ñ6Ô6Ð6Ý$ØÔ" B¨yØ 2 r (ð,ñ ,ô ,ˆõ 	˜ (°Ð6Ñ6Ô6Ð6å$ØÔ" B°°B¨xð9ñ 9ô 9ˆå˜ (°Ð6Ñ6Ô6Ð6Ý$ØÔ" B°¸rÀ2¸hðHñ Hô Hˆå˜ (°Ð6Ñ6Ô6Ð6Ð6Ð6r&   c                 óÎ  — d}d}d}|                       |¦  «        }t          | j        |dd||f¬¦  «        }t          | j        |d||f¬¦  «        }t          ||d¬¦  «         t          ||d	¬¦  «         d}|                       |¦  «        }t          | j        |dd||f¬¦  «        }t          | j        |d||f¬¦  «        }t          ||d¬¦  «         t          ||d	¬¦  «         d S )
Nç:Œ0âŽyE¾r›   rK   r+   r¬   ræ   rç   r­   r¯   )r    r   rž   r   )rB   rP   rQ   rC   r¶   r³   r´   s          r$   Útest_bound_switchesz.TestApproxDerivativesDense.test_bound_switchesˆ  s6  € ØˆØˆØˆØ×$Ò$ RÑ(Ô(ˆÝ&ØÔ˜r¨)¸dØ˜�8ðñ ô ˆ
õ 'ØÔ˜r¨D¸"¸b¸ðCñ Cô Cˆ
å˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8àˆØ×$Ò$ RÑ(Ô(ˆÝ&ØÔ˜r¨)¸dØ˜�8ðñ ô ˆ
õ 'ØÔ˜r¨D¸"¸b¸ðCñ Cô Cˆ
å˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ð8Ð8r&   c                 ó.  — d}|                       |¦  «        }t          | j         |d¬¦  «        }t          | j         |¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          t          t          | j         |fi t          d¬¦  «        ¤Ž d S )Nr‘   r+   r«   r¬   r­   r›   r,   )r©   r   r   rÐ   Ú	TypeErrorrÜ   )rB   rC   r¶   r³   r´   s        r$   Útest_non_numpyz)TestApproxDerivativesDense.test_non_numpyŸ  s¶   € ØˆØ×%Ò% bÑ)Ô)ˆÝ& tÔ'9¸2Ø.7ð9ñ 9ô 9ˆ
å& tÔ'9¸2Ñ>Ô>ˆ
Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8õ 	•iÕ!2°DÔ4FÈð 	+ð 	+Ý DÐ)Ñ)Ô)ð	+ð 	+ð 	+ð 	+ð 	+r&   c                 ój  ‡‡‡‡— t           j                             d¦  «         d„ Šˆfd„Št          j        dddt           j        ¬¦  «        Št           j                             d¦  «                             t           j        ¦  «        Št          j        ddg¦  «        }t          ‰|d‰‰f¬	¦  «        }t          ‰|                     t           j        ¦  «        d‰‰f¬	¦  «        } ‰|‰‰¦  «        j	        t           j        k    sJ ‚t          ||d
¬¦  «         ˆˆˆfd„}t          ||                     t           j        ¦  «        d¬¦  «        }t          ||d
¬¦  «         d„ }d„ }d„ }d„ }t           j        t           j        t           j        fD ] }	t          j        |	¦  «        j        }
t          j        d¦  «                             |	¦  «        }t          d | ||¦  «        d¦  «        } ||||||
¦  «        }t          ||d|¬¦  «         ||¦  «        z
  Št          ‰¦  «        |k     sJ ‚Œ¡d S )Nr   c                 ó*   — | d         | d         |z  z   S ry   rZ   )Úprb   s     r$   Úfuncz0TestApproxDerivativesDense.test_fp.<locals>.func±  s   € Ø�Q”4˜!˜Aœ$ ™(‘?Ð"r&   c                 ó"   •—  ‰| |¦  «        |z
  S r^   rZ   )rð   rb   Úyrñ   s      €r$   Úerrz/TestApproxDerivativesDense.test_fp.<locals>.err´  s   ø€ Ø�4˜˜1‘:”: ‘>Ð!r&   r   éd   ©Údtyper×   r+   )r4   rÙ   gü©ñÒMbP?)Úatolc                 ó†   •— | j         t          j        k    sJ ‚ ‰| ‰‰¦  «                             t          j        ¦  «        S r^   )r÷   r   r1   Úastype)rð   rô   rb   ró   s    €€€r$   Úerr_fp32z4TestApproxDerivativesDense.test_fp.<locals>.err_fp32Ä  s:   ø€ Ø”7�bœjÒ(Ð(Ð(Ð(Ø�3�q˜!˜Q‘<”<×&Ò&¥r¤zÑ2Ô2Ð2r&   r«   c                 ó*   — t          j        | ¦  «        S r^   ©r   r{   ©rb   s    r$   Úfz-TestApproxDerivativesDense.test_fp.<locals>.fÍ  ó   € Ý”6˜!‘9”9Ðr&   c                 ó*   — t          j        | ¦  «        S r^   )r   rt   rþ   s    r$   Úgz-TestApproxDerivativesDense.test_fp.<locals>.gÏ  r   r&   c                 ó,   — t          j        | ¦  «         S r^   rý   rþ   s    r$   Úhessz0TestApproxDerivativesDense.test_fp.<locals>.hessÑ  s   € Ý”F˜1‘I”I�:Ðr&   c           
      óH  — | dz  t          t          j         ||¦  «        ¦  «        t          j         ||| z   ¦  «        ¦  «        ¦  «        z  }|| z  t          t          j         ||¦  «        ¦  «        t          j         ||| z   ¦  «        ¦  «        ¦  «        z  }||z   S r€   )Úmaxr   rO   )rD   rC   rÿ   r  r2   Út0Út1s          r$   Ú	calc_atolz5TestApproxDerivativesDense.test_fp.<locals>.calc_atolÔ  s‹   € à�Q‘��RœV D D¨¡H¤HÑ-Ô-­r¬v°d°d¸2À¹6±l´lÑ/CÔ/CÑDÔDÑDˆBð �q‘�3�rœv a a¨¡e¤e™}œ}­b¬f°Q°Q°r¸A±v±Y´YÑ.?Ô.?Ñ@Ô@Ñ@ˆBØ˜‘7ˆNr&   r‘   rº   )r   ÚrandomÚseedÚlinspacer.   rú   r   r   r1   r÷   r   Úfloat16r-   r/   r   rO   )rB   Úp0Újac_fp64Újac_fprû   rÿ   r  r  r	  r÷   r2   rC   rD   rø   rô   rñ   rb   ró   s                 @@@@r$   Útest_fpz"TestApproxDerivativesDense.test_fp¬  sƒ  øøøø€ õ 	Œ	�Š�qÑÔÐð	#ð 	#ð 	#ð	"ð 	"ð 	"ð 	"ð 	"õ ŒK˜˜1˜c­¬Ð4Ñ4Ô4ˆÝŒI×Ò˜SÑ!Ô!×(Ò(­¬Ñ4Ô4ˆÝŒX�t˜T�lÑ#Ô#ˆå$ S¨"°YÀaÈÀVÐLÑLÔLˆõ # 3¨¯	ª	µ"´*Ñ(=Ô(=Ø*3¸1¸a¸&ðBñ Bô Bˆàˆs�2�q˜!‰}Œ}Ô"¥b¤jÒ0Ð0Ð0Ð0Ý˜ ¨tÐ4Ñ4Ô4Ð4ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3õ # 8¨R¯YªYµr´zÑ-BÔ-BØ*3ð5ñ 5ô 5ˆå˜ ¨tÐ4Ñ4Ô4Ð4ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	õ ”j¥"¤*­b¬jÐ9ð 	#ð 	#ˆEÝ”(˜5‘/”/Ô%ˆCÝ”˜#‘”×%Ò% eÑ,Ô,ˆBÝ& t¨R°°°2±´¸	ÑBÔBˆAØ�9˜Q  A t¨SÑ1Ô1ˆDÝ# A r°)Ø-.ð0ñ 0ô 0Ø23°!°B±%´%ñ8ˆCå�s‘8”8˜d’?�?�?�?�?ð	#ð 	#r&   c                 óÎ  — t          j        ddg¦  «        }t          | j        | j        |¦  «        }t          |dk     ¦  «         t          | j        | j        |¦  «        }t          |dk     ¦  «         t          j        ddg¦  «        }t          | j        | j        |¦  «        }t          |dk    ¦  «         t          | j        | j        |¦  «        }t          |dk    ¦  «         d S )Ng      $Àé
   r¯   r¬   rK   r   )r   r   r   r‹   r�   r   r¢   r¤   )rB   rC   Úaccuracys      r$   Útest_check_derivativez0TestApproxDerivativesDense.test_check_derivativeæ  sî   € ÝŒX�u˜b�kÑ"Ô"ˆÝ# DÔ$:Ø$(Ô$:¸Bñ@ô @ˆå�˜4’Ñ Ô Ð Ý# DÔ$:Ø$(Ô$:¸Bñ@ô @ˆå�˜4’Ñ Ô Ð åŒX�s˜C�jÑ!Ô!ˆÝ# DÔ$:Ø$(Ô$:¸Bñ@ô @ˆå�˜A’ÑÔÐÝ# DÔ$:Ø$(Ô$:¸Bñ@ô @ˆå�˜A’ÑÔÐÐÐr&   N)r‘   )rM   )#rW   rX   rY   rc   rh   rn   rv   r}   r�   r…   r‹   r�   r—   r™   rž   r    r¢   r¤   r©   r·   r¼   r¿   rÃ   rÇ   rÍ   rÓ   rÕ   rÝ   râ   rä   rV   rê   rí   r  r  rZ   r&   r$   r\   r\   ™   s  € € € € € ðð ð ðð ð ð?ð ?ð ?ðIð Ið Ið2ð 2ð 2ð6ð 6ð 6ðð ð ðð ð ðð ð ð@ð @ð @ð @ðð ð ð ð2ð 2ð 2ð4ð 4ð 4ð<ð <ð <ðð ð ðð ð ð
:ð 
:ð 
:ð:ð :ð :ð
:ð 
:ð 
:ð
:ð 
:ð 
:ð:ð :ð :ð
:ð 
:ð 
:ð<ð <ð <ð9ð 9ð 9ð9ð 9ð 9ð$7ð 7ð 7ð7ð 7ð 7ð,7ð 7ð 7ð(9ð 9ð 9ð.+ð +ð +ð8#ð 8#ð 8#ðtð ð ð ð r&   r\   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestApproxDerivativeSparsec                 óÔ  — t           j                             d¦  «         d| _        ddt          j        | j        ¦  «        z   z  | _        ddt          j        | j        ¦  «        z   z  | _        t          j        | j        ¦  «        | _        d| j        d d d…         z  | j        d d d…<   d| j        dd d…         z  | j        dd d…<   |  	                    | j        ¦  «        | _
        d S )Nr   é2   rU   r   rM   gËPÊÿÿï?r   )r   r
  r  Únr   rP   rQ   ÚemptyrC   ÚjacÚJ_true)rB   s    r$   Úsetup_methodz'TestApproxDerivativeSparse.setup_methodú  sÇ   € Ý
Œ	�Š�qÑÔÐØˆŒØ˜!�bœi¨¬Ñ/Ô/Ñ/Ñ0ˆŒØ˜�RœY t¤vÑ.Ô.Ñ.Ñ/ˆŒÝ”(˜4œ6Ñ"Ô"ˆŒØ  D¤G¨C¨C¨a¨C¤LÑ0ˆŒ���!�‰Ø! T¤W¨Q¨T°¨T¤]Ñ2ˆŒ���1�‰à—h’h˜tœwÑ'Ô'ˆŒˆˆr&   c                 óž   — |dd …         dz  |d d…         dz  z
  }t          j        dd|z  f¦  «        t          j        d|z  df¦  «        z   S )Nr   r   rL   r   r   )r   Úhstack)rB   rb   Úes      r$   ÚfunzTestApproxDerivativeSparse.fun  sS   € ØˆaˆbˆbŒE�1‰H�q˜˜"˜”v˜q‘yÑ ˆÝŒy˜!˜Q ™U˜Ñ$Ô$¥r¤y°!°a±%¸°Ñ'<Ô'<Ñ<Ð<r&   c                 ó„  — |j         }t          j        ||f¦  «        }d|d         z  |d<   d|d         dz  z  |d<   t          d|dz
  ¦  «        D ]P}d||dz
           z  |||dz
  f<   d	||         dz  z  d
||         z  z
  |||f<   d||dz            dz  z  |||dz   f<   ŒQd	|d         dz  z  |d<   d|d         z  |d<   |S )Néüÿÿÿr   ©r   r   r   r   r   ©r   r   iúÿÿÿé	   r   rL   ©rL   rL   rr   ©rL   rr   )Úsizer   r<   Úrange)rB   rb   r  ÚJÚis        r$   r  zTestApproxDerivativeSparse.jac	  sî   € ØŒFˆÝŒH�a˜�VÑÔˆØ�q˜”t‘)ˆˆ$‰Ø�a˜”d˜A‘g‘+ˆˆ$‰Ý�q˜!˜a™%‘”ð 	(ð 	(ˆAØ˜q  1¡œv™+ˆAˆa��Q‘ˆh‰KØ˜!˜Aœ$ ™'‘k A¨¨!¬¡HÑ,ˆAˆa�ˆd‰GØ˜a  !¡œf a™i™-ˆAˆa��Q‘ˆh‰KˆKØ˜˜"œ˜q™‘Lˆˆ&‰	Ø˜˜2œ‘Jˆˆ&‰	àˆr&   c                 ó²   — t          j        ||ft          ¬¦  «        }d|d<   d|d<   t          d|dz
  ¦  «        D ]}d|||dz
  |dz   …f<   Œd|d<   d|d<   |S )Nrö   r   r%  r&  r   r(  r)  )r   r<   Úintr+  )rB   r  r   r-  s       r$   r   z$TestApproxDerivativeSparse.structure  s{   € ÝŒH�a˜�V¥3Ð'Ñ'Ô'ˆØˆˆ$‰Øˆˆ$‰Ý�q˜!˜a™%‘”ð 	#ð 	#ˆAØ!"ˆAˆa��Q‘˜˜A™�ˆoÑÐØˆˆ&‰	Øˆˆ&‰	àˆr&   c           	      ó2  — |                       | j        ¦  «        }t          j        | j        ¦  «        }t	          ||¦  «        }t          j                             |¦  «         t	          ||¦  «        }t          g d¢||gt          j         | j	        gt          j        | j
        g¦  «        D ]ê\  }}}}t          | j        | j        |||f||f¬¦  «        }	t          t          |	t           ¦  «        ¦  «         t#          |	                     ¦   «         | j        d¬¦  «         t          j        | j        d¦  «        }
|
d d d…xx         dz  cc<   t          | j        | j        ||
||f¬¦  «        }	t#          |	                     ¦   «         | j        d	¬¦  «         Œëd S )
Nr*   )r4   rÛ   Úsparsityr¬   r­   r›   r   rL   )r4   rÅ   r1  rË   )r   r  r   r   r   r
  Úshuffler   r@   rP   rQ   r   r"  rC   r   Ú
isinstancer   r   Útoarrayr  Ú	full_like)rB   r   r   r"   r#   r4   r!   ÚlÚur,  rÅ   s              r$   Útest_allz#TestApproxDerivativeSparse.test_all"  s•  € Ø�NŠN˜4œ6Ñ"Ô"ˆÝ”	˜$œ&Ñ!Ô!ˆÝ   EÑ*Ô*ˆÝ
Œ	×Ò˜%Ñ Ô Ð Ý   EÑ*Ô*ˆå$+Ø,Ð,Ð,¨x¸Ð.BÝ”&�˜$œ'Ð"¥R¤V¨T¬WÐ$5ñ%7ô %7ð 	Að 	AÑ ˆF�F˜A˜qõ " $¤(¨D¬G¸FØ*+¨Q¨¸1¸f¸+ðGñ Gô GˆAå•J˜q¥*Ñ-Ô-Ñ.Ô.Ð.Ý˜AŸIšI™KœK¨¬¸4Ð@Ñ@Ô@Ð@å”| D¤G¨TÑ2Ô2ˆHØ�S�S�q�SˆMˆMŒM˜RÑˆMˆM‰MÝ! $¤(¨D¬G¸FØ+3¸qÀ&¸kðKñ Kô KˆAå˜AŸIšI™KœK¨¬¸4Ð@Ñ@Ô@Ð@Ð@ð	Að 	Ar&   c                 óÄ   — |                       | j        ¦  «        }t          | j        | j        |¬¦  «        }t          |                     ¦   «         | j        d¬¦  «         d S )N)r1  r¬   r­   )r   r  r   r"  rC   r   r4  r  )rB   r   r,  s      r$   Útest_no_precomputed_groupsz5TestApproxDerivativeSparse.test_no_precomputed_groups7  sR   € Ø�NŠN˜4œ6Ñ"Ô"ˆÝ˜dœh¨¬¸!Ð<Ñ<Ô<ˆÝ˜Ÿ	š	™œ T¤[°tÐ<Ñ<Ô<Ð<Ð<Ð<r&   c                 óP  — t          j        | j        | j        ft          ¬¦  «        }t          j        | j        ¦  «        }dD ]b}t          | j        | j        |¬¦  «        }t          | j        | j        ||f|¬¦  «        }t          || 	                    ¦   «         dd¬¦  «         Œcd S )Nrö   r*   r«   )r1  r4   gVçž¯Â<g¦ÖVs†ÿ<)r®   rø   )
r   rN   r  r/  r   r   r"  rC   r   r4  )rB   r   r!   r4   ÚJ_denseÚJ_sparses         r$   Útest_equivalencez+TestApproxDerivativeSparse.test_equivalence<  s»   € Ý”G˜TœV T¤VÐ,µCÐ8Ñ8Ô8ˆ	Ý”˜4œ6Ñ"Ô"ˆØ2ð 	4ð 	4ˆFÝ'¨¬°$´'À&ÐIÑIÔIˆGÝ(Ø”˜$œ'¨Y¸Ð,?ÈðPñ Pô PˆHå˜G X×%5Ò%5Ñ%7Ô%7Ø!&¨Uð4ñ 4ô 4ð 4ð 4ð		4ð 	4r&   c                 ó  ‡ — ˆ fd„}t          ‰ j        |‰ j        ‰ j        ‰ j        f¬¦  «        }t          |dk     ¦  «         t          ‰ j        |‰ j        ‰ j        ‰ j        f¬¦  «        }t          |dk     ¦  «         d S )Nc                 óH   •— t          ‰                     | ¦  «        ¦  «        S r^   )r   r  )rb   rB   s    €r$   r  z=TestApproxDerivativeSparse.test_check_derivative.<locals>.jacG  s   ø€ Ý˜dŸhšh q™kœkÑ*Ô*Ð*r&   rß   r¯   )r   r"  rC   rP   rQ   r   )rB   r  r  s   `  r$   r  z0TestApproxDerivativeSparse.test_check_derivativeF  sœ   ø€ ð	+ð 	+ð 	+ð 	+ð 	+õ $ D¤H¨c°4´7Ø,0¬G°T´WÐ+=ð?ñ ?ô ?ˆå�˜4’Ñ Ô Ð å# D¤H¨c°4´7Ø,0¬G°T´WÐ+=ð?ñ ?ô ?ˆå�˜4’Ñ Ô Ð Ð Ð r&   N)rW   rX   rY   r  r"  r  r   r8  r:  r>  r  rZ   r&   r$   r  r  ø  s�   € € € € € ð	(ð 	(ð 	(ð=ð =ð =ðð ð ð	ð 	ð 	ðAð Að Að*=ð =ð =ð
4ð 4ð 4ð
!ð 
!ð 
!ð 
!ð 
!r&   r  c                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )Ú"TestApproxDerivativeLinearOperatorc                 ó*   — t          j        |¦  «        S r^   r_   ra   s     r$   rc   z4TestApproxDerivativeLinearOperator.fun_scalar_scalarU  rd   r&   c                 ó*   — t          j        |¦  «        S r^   rf   ra   s     r$   rh   z4TestApproxDerivativeLinearOperator.jac_scalar_scalarX  rd   r&   c                 ó¢   — t          j        |d         dz  t          j        |d         ¦  «        t          j        |d         ¦  «        g¦  «        S rj   rk   ra   s     r$   rn   z4TestApproxDerivativeLinearOperator.fun_scalar_vector[  ro   r&   c                 óÐ   — t          j        d|d         z  t          j        |d         ¦  «        dz  t          j        |d         ¦  «        g¦  «                             dd¦  «        S rq   rs   ra   s     r$   rv   z4TestApproxDerivativeLinearOperator.jac_scalar_vector^  rw   r&   c                 ó~   — t          j        |d         |d         z  ¦  «        t          j        |d         ¦  «        z  S ry   rz   ra   s     r$   r}   z4TestApproxDerivativeLinearOperator.fun_vector_scalarb  r~   r&   c           	      óœ  — t          j        |d         t          j        |d         |d         z  ¦  «        z  t          j        |d         ¦  «        z  t          j        |d         |d         z  ¦  «        |d         z  z   |d         t          j        |d         |d         z  ¦  «        z  t          j        |d         ¦  «        z  g¦  «        S rƒ   r„   ra   s     r$   r…   z4TestApproxDerivativeLinearOperator.jac_vector_scalare  r†   r&   c                 óÞ   — t          j        |d         t          j        |d         ¦  «        z  |d         t          j        |d         ¦  «        z  |d         dz  |d         dz  z  g¦  «        S rˆ   rŠ   ra   s     r$   r‹   z4TestApproxDerivativeLinearOperator.fun_vector_vectorl  rŒ   r&   c                 ó‚  — t          j        t          j        |d         ¦  «        |d         t          j        |d         ¦  «        z  g|d          t          j        |d         ¦  «        z  t          j        |d         ¦  «        gd|d         dz  z  |d         dz  z  d|d         dz  z  |d         dz  z  gg¦  «        S rŽ   rŠ   ra   s     r$   r�   z4TestApproxDerivativeLinearOperator.jac_vector_vectors  r�   r&   c                 óX  — d}t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t          j                             d¦  «         t          d¦  «        D ]œ}t          j                             d	dd
¬¦  «        }t          | 	                    |¦  «        ||z  d¬¦  «         t          | 	                    |¦  «        ||z  d¬¦  «         t          | 	                    |¦  «        ||z  d¬¦  «         Œ�d S )Nr‘   r+   T©r4   Úas_linear_operator©rM  r,   r   r  éöÿÿÿ©r   ©r*  rË   r­   çñhãˆµøÔ>)
r   rc   rh   r   r
  r  r+  Úuniformr   Údot©rB   rC   r³   r´   rµ   r¶   r-  rð   s           r$   r·   z5TestApproxDerivativeLinearOperator.test_scalar_scalarz  se  € ØˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝ
Œ	�Š�qÑÔÐÝ�r‘”ð 	'ð 	'ˆAÝ”	×!Ò! # r°Ð!Ñ5Ô5ˆAÝ˜JŸNšN¨1Ñ-Ô-¨x¸©zØ!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¸©zØ!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¸©zØ!%ð'ñ 'ô 'ð 'ð 'ð	'ð 	'r&   c                 óÜ  — d}t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      t          j        |¦  «        ¦  «        }t          j                             d¦  «         t          d¦  «        D ]Ì}t          j                             d	dd
¬¦  «        }t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         ŒÍd S )Nr(   r+   TrL  rN  r,   r   r  rO  rP  rQ  rË   r­   rR  )r   rn   rv   r   r¾   r
  r  r+  rS  r   rT  rU  s           r$   r¿   z5TestApproxDerivativeLinearOperator.test_scalar_vector�  s�  € ØˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)­"¬-¸Ñ*;Ô*;Ñ<Ô<ˆÝ
Œ	�Š�qÑÔÐÝ�r‘”ð 	'ð 	'ˆAÝ”	×!Ò! # r°Ð!Ñ5Ô5ˆAÝ˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'ð 'ð	'ð 	'r&   c           	      óZ  — t          j        ddg¦  «        }t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t           j                             d¦  «         t          d	¦  «        D �]}t           j                             d
d	|j	        ¬¦  «        }t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         �Œ
d S )NrÁ   r‰   r+   TrL  rN  r,   r   r  rO  rQ  rË   r­   rR  rÂ   )r   r   r   r}   r…   r
  r  r+  rS  Úshaper   rT  r¾   rU  s           r$   rÃ   z5TestApproxDerivativeLinearOperator.test_vector_scalar¤  s¥  € ÝŒX�u˜d�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝ
Œ	�Š�qÑÔÐÝ�r‘”ð 	'ñ 	'ˆAÝ”	×!Ò! # r°´Ð!Ñ9Ô9ˆAÝ˜JŸNšN¨1Ñ-Ô-­r¬}¸X¿\º\È!¹_¼_Ñ/MÔ/MØ!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-­r¬}¸X¿\º\È!¹_¼_Ñ/MÔ/MØ!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-­r¬}¸X¿\º\È!¹_¼_Ñ/MÔ/MØ!%ð'ñ 'ô 'ð 'ñ 'ð	'ð 	'r&   c                 óê  — t          j        ddg¦  «        }t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t           j                             d¦  «         t          d	¦  «        D ]Ñ}t           j                             d
d	|j	        ¬¦  «        }t          |                     |¦  «        |                     |¦  «        d¬¦  «         t          |                     |¦  «        |                     |¦  «        d¬¦  «         t          |                     |¦  «        |                     |¦  «        d¬¦  «         ŒÒd S )NrÉ   rÊ   r+   TrL  rN  r,   r   r  rO  rQ  rË   r­   r¬   rÂ   )r   r   r   r‹   r�   r
  r  r+  rS  rX  r   rT  rU  s           r$   rÍ   z5TestApproxDerivativeLinearOperator.test_vector_vector¹  sn  € ÝŒX�v˜s�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝ
Œ	�Š�qÑÔÐÝ�r‘”ð 	Kð 	KˆAÝ”	×!Ò! # r°´Ð!Ñ9Ô9ˆAÝ˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬ÀTÐJÑJÔJÐJÝ˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬ÀTÐJÑJÔJÐJÝ˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬ÀTÐJÑJÔJÐJÐJð		Kð 	Kr&   c           	      ó’   — t          j        ddg¦  «        }t          t          t          | j        |ddt           j        f¬¦  «         d S )NrÉ   rÊ   r+   r   rà   )r   r   rÐ   rÒ   r   r‹   r@   )rB   rC   s     r$   Útest_exceptionz1TestApproxDerivativeLinearOperator.test_exceptionË  sN   € ÝŒX�v˜s�mÑ$Ô$ˆÝ•jÕ"3ØÔ,¨bØ&°µ2´6¨{ð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r&   N)rW   rX   rY   rc   rh   rn   rv   r}   r…   r‹   r�   r·   r¿   rÃ   rÍ   r[  rZ   r&   r$   rB  rB  S  sÝ   € € € € € ðð ð ðð ð ð?ð ?ð ?ðIð Ið Ið2ð 2ð 2ðð ð ðð ð ðð ð ð'ð 'ð 'ð*'ð 'ð 'ð*'ð 'ð 'ð*Kð Kð Kð$<ð <ð <ð <ð <r&   rB  c                  óp  — d„ } t          | ddgdd¬¦  «        }t          |ddg¦  «         t          | ddgdd¬¦  «        }t          |ddg¦  «         t          | ddgdddg¬¦  «        }t          |ddg¦  «         t          | ddgdddg¬¦  «        }t          |ddg¦  «         t          | ddgdddg¬¦  «        }t          |ddg¦  «         t          | ddgddt          j         df¬	¦  «        }t          |ddg¦  «         t          | ddgdddt          j        f¬	¦  «        }t          |ddg¦  «         d S )
Nc                 óz   — t          j        | d         dz   ¦  «         t          j        | d         dz   ¦  «        z   S ry   )r   rO   rþ   s    r$   rÿ   z"test_absolute_step_sign.<locals>.fÛ  s4   € Ý”�q˜”t˜a‘xÑ Ô Ð ¥2¤6¨!¨A¬$°©(Ñ#3Ô#3Ñ3Ð3r&   rL   r+   r›   rº   r×   r‘   ré   )r4   r»   rÛ   )r   r   r   r@   )rÿ   Úgrads     r$   Útest_absolute_step_signr_  Ò  s¯  € ð4ð 4ð 4õ ˜Q  R °ÀTÐJÑJÔJ€DÝ�D˜4 ˜+Ñ&Ô&Ð&õ ˜Q  R °ÀUÐKÑKÔK€DÝ�D˜3 ˜+Ñ&Ô&Ð&õ Ø	ˆB�ˆ8˜I°°t°ðñ ô €Dõ �D˜4 ˜+Ñ&Ô&Ð&õ Ø	ˆB�ˆ8˜I°°u°ðñ ô €Dõ �D˜4 ˜,Ñ'Ô'Ð'ÝØ	ˆB�ˆ8˜I°¸°ðñ ô €Dõ �D˜3 ˜*Ñ%Ô%Ð%õ Ø	ˆB�ˆ8˜I°Ý”�˜ˆ}ðñ ô €Dõ �D˜3 ˜+Ñ&Ô&Ð&åØ	ˆB�ˆ8˜I°¸rÅ2Ä6¸lðñ ô €Dõ �D˜4 ˜+Ñ&Ô&Ð&Ð&Ð&r&   c                  óà  — g d¢} t          j        g d¢¦  «        }t          j        t           j        ¦  «        j        }|dz  |dz  |dz  dœ}t          j        d¦  «        }| D ]°}||         }t          j        ||dz  |dz  |t          j        |d         ¦  «        z  g¦  «        }t          d |||¦  «        }t          ||¦  «         | dk                         t          ¦  «        dz  d	z
  }	t          d | ||¦  «        }t          ||	|z  ¦  «         Œ±t          j        g d
¢¦  «        }t          j        |d         |d         z  |d         |d         dz  |d         t          j        |d         ¦  «        z  g¦  «        }t          |||d¦  «        }t          ||¦  «         | dk                         t          ¦  «        dz  d	z
  }	t          || |d¦  «        }t          ||	|z  ¦  «         d S )Nr*   )rË   r   r   g     jø@r(   r)   r‘   r   r   r   r   )rM   r   r  rõ   r+   )
r   r   r-   r.   r/   rO   r   r   rú   Úfloat)
ÚmethodsrC   r2   r3   rÏ   r4   rÅ   Úcorrect_stepr»   Úsign_x0s
             r$   Útest__compute_absolute_stepre    s  € à*Ð*Ð*€Gå	ŒÐ#Ð#Ð#Ñ	$Ô	$€Bå
Œ(•2”:Ñ
Ô
Ô
"€Cà˜‘8Ø˜‘:Ø�3‰hðð €Mõ
 
Œ�#‰Œ€Bàð :ð :ˆØ  Ô(ˆÝ”x Ø!)¨B¡Ø!)¨B¡Ø!)­B¬F°2°a´5©M¬MÑ!9ð!;ñ <ô <ˆõ
 *¨$°°B¸Ñ?Ô?ˆÝ˜ ,Ñ/Ô/Ð/à�3˜!’8×#Ò#¥EÑ*Ô*¨QÑ.°Ñ2ˆÝ)¨$°°°R¸Ñ@Ô@ˆÝ˜ '¨LÑ"8Ñ9Ô9Ð9Ð9õ ŒxÐ)Ð)Ð)Ñ*Ô*€HÝ”8˜X aœ[¨2¨a¬5Ñ0Ø*¨9Ô5Ø% aœ[¨2Ñ-Ø% aœ[­2¬6°"°Q´%©=¬=Ñ8ð:ñ ;ô ;€Lõ
 & h°°B¸	ÑBÔB€HÝ�H˜lÑ+Ô+Ð+àˆs�aŠx×Ò¥Ñ&Ô&¨Ñ*¨QÑ.€GÝ% h°°°R¸ÑCÔC€HÝ�H˜g¨Ñ4Ñ5Ô5Ð5Ð5Ð5r&   )r§   Ú	itertoolsr   Únumpyr   Únumpy.testingr   r   r   Úpytestr   rÐ   Úscipy.sparser   r	   r
   Úscipy.optimize._numdiffr   r   r   r   r   r   r%   r5   r7   r\   r  rB  r_  re  rZ   r&   r$   ú<module>rl     sÖ  ðØ €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø *Ð *Ð *Ð *Ð *Ð *à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð
%ð %ð %ð8!
ð !
ð !
ðHG9ð G9ð G9ð G9ð G9ñ G9ô G9ð G9ðT\ð \ð \ð \ð \ñ \ô \ð \ð~
X!ð X!ð X!ð X!ð X!ñ X!ô X!ð X!ðv|<ð |<ð |<ð |<ð |<ñ |<ô |<ð |<ð~2'ð 2'ð 2'ðj(6ð (6ð (6ð (6ð (6r&   