§
    fŠtjC‡  ã                   ó  — 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	Z	d dl	m
Z d dlmZ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 dl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)Ú
MapWrapperÚ_ScalarFunctionWrapper)Ú	csr_arrayÚ	csc_arrayÚ	lil_array)Ú_adjust_scheme_to_boundsÚapprox_derivativeÚcheck_derivativeÚgroup_columnsÚ_eps_for_methodÚ_compute_absolute_step)Úrosenc                  óò  — 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           ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test__numdiff.pyÚtest_group_columnsr(      s*  € àÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð€Iõ ”j¥)­Y½	ÐBð 
*ð 
*ˆ	Øˆ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_epsr8   .   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_boundsS   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   rO   r   r>   )FTT)	r   r   Úonesr   r   Úabsr   rD   r   )rE   rF   ÚlbÚubrG   rJ   Ú_rK   s           r'   Útest_with_boundz(TestAdjustSchemeToBounds.test_with_boundo   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š™™™™™©?rN   g¸…ëQ¸ž?çš™™™™™¹¿r   r=   g¸…ëQ¸®¿r   gš™™™™™™?r>   FTg¸…ëQ¸Ž?g¸…ëQ¸Ž¿)r   r   r   r   r   )rE   rS   rT   rF   rG   rJ   rU   rK   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__rL   rV   rY   © r)   r'   r:   r:   R   sA   € € € € € ð$ð $ð $ð8?ð ?ð ?ð,9ð 9ð 9ð 9ð 9r)   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)d„Zd*d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             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(S )+ÚTestApproxDerivativesDensec                 ó*   — t          j        |¦  «        S ©N©r   Úsinh©rE   Úxs     r'   Úfun_scalar_scalarz,TestApproxDerivativesDense.fun_scalar_scalar�   ó   € ÝŒw�q‰zŒzÐr)   c                 ó*   — t          j        |¦  «        S ra   ©r   Úcoshrd   s     r'   Újac_scalar_scalarz,TestApproxDerivativesDense.jac_scalar_scalar    rg   r)   c                 ó¢   — t          j        |d         dz  t          j        |d         ¦  «        t          j        |d         ¦  «        g¦  «        S ©Nr   r   ©r   r   ÚtanÚexprd   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   éþÿÿÿrO   r   ©r   r   Úcosrp   Úreshaperd   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Úlogrd   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   rn   rd   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   rw   r   r~   rd   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~   rw   rd   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                 óî   — |dk    sJ ‚t          j        |d         t          j        |d         ¦  «        z  |d         t          j        |d         ¦  «        z  |d         dz  |d         dz  z  g¦  «        S )ú=Used to test passing custom arguments with check_derivative()é*   r   r   r   rŒ   r�   ©rE   re   Úargs      r'   Úfun_vector_vector_with_argz5TestApproxDerivativesDense.fun_vector_vector_with_arg¾   sp   € à�bŠyˆyˆyˆyÝŒ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Œ   ç      ø¿r�   rd   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                 ó’  — |dk    sJ ‚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’   r   r   r   r   rŒ   r˜   r�   r“   s      r'   Újac_vector_vector_with_argz5TestApproxDerivativesDense.jac_vector_vector_with_argÎ   s·   € à�bŠyˆyˆyˆyÝŒ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 r|   ©r   r   rp   ©rE   re   Úc0Úc1s       r'   Úfun_parametrizedz+TestApproxDerivativesDense.fun_parametrized×   s;   € ÝŒx�œ  Q q¤T¡	Ñ*Ô*­B¬F°2¸¸!¼±9Ñ,=Ô,=Ð>Ñ?Ô?Ð?r)   rP   c           
      ó®   — t          j        |t          j        ||d         z  ¦  «        z  dgd|t          j        ||d         z  ¦  «        z  gg¦  «        S r|   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   rR   Únanrd   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¨   rd   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 r|   )r   r   rw   rd   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~   rd   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 ra   )r   r   ÚitemÚmathrp   )rE   re   Ú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.   ©r7   r/   ç�íµ ÷Æ°>©Úrtolç•Ö&è.>çê-�™—q=©r   rf   rk   r   ©rE   rF   Ú
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>©r7   Ú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                 óª  — d}t          d¦  «        5 }t          | j        |d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          | j        |t          ¬¦  «        }t          | j        |dd ¬¦  «        }|                      t          j        |¦  «        ¦  «        }t          ||d¬¦  «         t          ||d	¬¦  «         t          ||d
¬¦  «         d S )Nr+   r   r.   ©r7   Úworkers)rË   r/   r¸   r¹   r»   r¼   )r   r   rq   Úmapry   r   Ú
atleast_1dr   )rE   rF   Úmapperr¿   rÀ   rÁ   rÂ   s          r'   Útest_scalar_vectorz-TestApproxDerivativesDense.test_scalar_vector  s6  € ØˆÝ˜‰]Œ]ð 	M˜fÝ*¨4Ô+AÀ2Ø2;ÀVðMñ Mô MˆJð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mõ ' tÔ'=¸rÍ3ÐOÑOÔOˆ
Ý& tÔ'=¸rØ.2¸DðBñ Bô Bˆ
à×)Ò)­"¬-¸Ñ*;Ô*;Ñ<Ô<ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9s   ’7·;¾;g      @c                 ór  — g d¢}t          d¦  «        5 }t          t          |d|d¬¦  «        \  }}t          t          ||d¬¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   t          t          |ddd¬¦  «        \  }}t          t          ¦  «        }	t          |	|dd¬¦  «        \  }
}t	          |d	         |	j        ¦  «         d
|	_        t          |	|d¬¦  «        \  }}t	          |d	         |	j        ¦  «         d
|	_        t          |	|dd¬¦  «        \  }}t	          |d	         |	j        ¦  «         t	          |d	         |d	         ¦  «         t	          |d	         |d	         ¦  «         t	          |d	         |d	         ¦  «         t	          ||
¦  «         t	          ||¦  «         t	          ||¦  «         d S )N)r+   g      ø?ç       @r   r.   T)r7   rË   Úfull_output)rË   rÒ   r/   )r7   rÒ   Únfevr   )rÒ   )r   r   r   r	   r   rÓ   )rE   rF   rÎ   Úmd2Úmdct2Úmd3Úmdct3Úmd4Úmdct4ÚsfrÚd2Údct2Úd3Údct3Úd4Údct4s                   r'   Ú!test_workers_evaluations_and_nfevz<TestApproxDerivativesDense.test_workers_evaluations_and_nfev  s  € ð ˆ_ˆ_ˆÝ˜‰]Œ]ð 	M˜fÝ*­5°"Ø2;ÀVØ7;ð=ñ =ô =‰JˆC�õ +­5°"Ø39ÀtðMñ Mô M‰JˆC�ð		Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mõ '¥u¨bØ.2¸AØ37ð9ñ 9ô 9‰
ˆˆUõ %¥UÑ+Ô+ˆÝ$ S¨"°YÈDÐQÑQÔQ‰ˆˆDÝ�T˜&”\ 3¤8Ñ,Ô,Ð,ØˆŒÝ$ S¨"¸$Ð?Ñ?Ô?‰ˆˆDÝ�T˜&”\ 3¤8Ñ,Ô,Ð,ØˆŒÝ$ S¨"°TÀtÐLÑLÔL‰ˆˆDÝ�T˜&”\ 3¤8Ñ,Ô,Ð,å�U˜6”] D¨¤LÑ1Ô1Ð1Ý�U˜6”] D¨¤LÑ1Ô1Ð1Ý�U˜6”] D¨¤LÑ1Ô1Ð1å�S˜"ÑÔÐÝ�S˜"ÑÔÐÝ�S˜"ÑÔÐÐÐs   ”8AÁAÁA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€   rC   rˆ   r   r¾   s         r'   Útest_vector_scalar_abs_stepz6TestApproxDerivativesDense.test_vector_scalar_abs_stepK  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                 óž  — t          j        ddg¦  «        }t          | j        |d¬¦  «        }t          | j        |¦  «        }t	          d¦  «        5 }t          | j        |d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }t          ||d¬	¦  «         t          ||d
¬	¦  «         t          ||d¬	¦  «         d S )Nç      YÀçš™™™™™É?r.   r·   r   r/   rÊ   çñhãˆµøä>r¹   r¸   r¼   )r   r   r   rŽ   r   r™   r   )rE   rF   r¿   rÀ   rÎ   rÁ   rÂ   s          r'   Útest_vector_vectorz-TestApproxDerivativesDense.test_vector_vectorY  s0  € ÝŒX�v˜s�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7ð9ñ 9ô 9ˆ
å& tÔ'=¸rÑBÔBˆ
Ý˜‰]Œ]ð 	H˜fÝ*¨4Ô+AÀ2Ø26ÀðHñ Hô HˆJð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð ×)Ò)¨"Ñ-Ô-ˆÝ˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°4Ð8Ñ8Ô8Ð8Ý˜
 H°5Ð9Ñ9Ô9Ð9Ð9Ð9s   ÁA7Á7A;Á>A;c                 óà   — d}t          t          t          | j        |¦  «         |                      t	          j        |¦  «        ¦  «        }t          t          t          | j        ||¬¦  «         d S )Nr�   )Úf0)Úassert_raisesÚRuntimeErrorr   r„   r   rÍ   Ú
ValueError)rE   rF   rð   s      r'   Útest_wrong_dimensionsz0TestApproxDerivativesDense.test_wrong_dimensionsf  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 )	NrX   rP   r.   g-Cëâ6?)r7   rç   )rç   r<   r¹   )r   r   r   rŽ   r™   r   )rE   rF   r¿   rÀ   rÂ   s        r'   Útest_custom_rel_stepz/TestApproxDerivativesDense.test_custom_rel_stepn  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�   ç      ð¿rN   rÑ   )r¢   g�íµ ÷Æ°¾rä   r.   )r7   rç   rð   ÚargsÚkwargsÚbounds)rç   rð   rù   rú   rû   r¸   r¹   r»   )r   r   r£   r¥   r   Údictr   )rE   rF   r¡   r¢   rS   rT   rð   rç   rÂ   r¿   rÀ   s              r'   Útest_optionsz'TestApproxDerivativesDense.test_optionsx  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.   ©r7   rû   r¸   r¹   )	r   rQ   r   rñ   ró   r   rŽ   r™   r   )rE   rS   rT   rF   Újac_diffrÂ   s         r'   Útest_with_bounds_2_pointz3TestApproxDerivativesDense.test_with_bounds_2_pointŠ  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   rC   )rE   rS   rT   rF   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¹   ©r7   rç   rû   rÿ   ©rç   rû   )r   r   r™   r   rŽ   r   )rE   rF   rS   rT   rÂ   r  s         r'   rY   z,TestApproxDerivativesDense.test_tight_bounds®  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§   rN   r.   r¸   r  r  r¹   r»   )r¬   r   rª   r   )rE   rS   rT   rF   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ü   )rE   rF   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                 ó4  ‡‡‡‡— t           j                             d¦  «        }d„ Šˆfd„Št          j        ddd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 r|   r]   )Úpre   s     r'   Úfuncz0TestApproxDerivativesDense.test_fp.<locals>.funcë  s   € Ø�Q”4˜!˜Aœ$ ™(‘?Ð"r)   c                 ó"   •—  ‰| |¦  «        |z
  S ra   r]   )r  re   Úyr  s      €r'   Úerrz/TestApproxDerivativesDense.test_fp.<locals>.errî  s   ø€ Ø�4˜˜1‘:”: ‘>Ð!r)   r   éd   ©Údtype)Úsizer  rø   r.   )r7   rù   gü©ñÒMbP?)Úatolc                 ó†   •— | j         t          j        k    sJ ‚ ‰| ‰‰¦  «                             t          j        ¦  «        S ra   )r  r   r4   Úastype)r  r  re   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 ra   ©r   r~   ©re   s    r'   Úfz-TestApproxDerivativesDense.test_fp.<locals>.f  ó   € Ý”6˜!‘9”9Ðr)   c                 ó*   — t          j        | ¦  «        S ra   )r   rw   r  s    r'   Úgz-TestApproxDerivativesDense.test_fp.<locals>.g	  r!  r)   c                 ó,   — t          j        | ¦  «         S ra   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   rR   )rG   rF   r   r%  r5   Ú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Údefault_rngÚlinspacer1   r   r   r  r4   r  r   Úfloat16r0   r2   r   rR   )rE   ÚrngÚp0Újac_fp64Újac_fpr  r   r#  r%  r*  r  r5   rF   rG   r  r  r  re   r  s                  @@@@r'   Útest_fpz"TestApproxDerivativesDense.test_fpæ  sv  øøøø€ õ Œi×#Ò# AÑ&Ô&ˆð	#ð 	#ð 	#ð	"ð 	"ð 	"ð 	"ð 	"õ ŒK˜˜1˜c­¬Ð4Ñ4Ô4ˆØ�JŠJ˜C¥r¤zˆJÑ2Ô2ˆÝŒ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 )Nç      $Àé
   r»   r¸   rN   r   )r   r   r   rŽ   r™   r   r®   r°   ©rE   rF   Ú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)   c                 ó–   — t          j        ddg¦  «        }t          | j        | j        |ddi¬¦  «        }t          |dk     ¦  «         d S )Nr5  r6  r”   r’   )rú   r»   )r   r   r   r•   rœ   r   r7  s      r'   Ú!test_check_derivative_with_kwargsz<TestApproxDerivativesDense.test_check_derivative_with_kwargs1  sX   € ÝŒX�u˜b�kÑ"Ô"ˆÝ# DÔ$CØ$(Ô$CØ$&Ø,1°2¨;ð8ñ 8ô 8ˆõ 	�˜4’Ñ Ô Ð Ð Ð r)   N)r�   )rP   )*rZ   r[   r\   rf   rk   rq   ry   r€   r„   rˆ   rŽ   r•   r™   rœ   r£   r¥   rª   r¬   r®   r°   rµ   rÃ   rÈ   rÏ   ÚpytestÚmarkÚ	fail_slowrá   rå   ré   rî   rô   rö   rý   r  r  rY   r
  r  r3  r9  r;  r]   r)   r'   r_   r_   œ   s`  € € € € € ðð ð ðð ð ð?ð ?ð ?ðIð Ið Ið2ð 2ð 2ð6ð 6ð 6ðð ð ðð ð ðð ð ðð ð ðð ð ð@ð @ð @ð @ðð ð ð ð2ð 2ð 2ð4ð 4ð 4ð<ð <ð <ðð ð ðð ð ð
:ð 
:ð 
:ð:ð :ð :ð:ð :ð :ð „[×Ò˜3ÑÔð ð  ñ  Ôð ðD
:ð 
:ð 
:ð:ð :ð :ð:ð :ð :ð<ð <ð <ð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ej         	                    d¦  «        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 )Ni‚´7é2   rX   r   rP   gËPÊÿÿï?r   )r   r+  r,  r/  Únr   rS   rT   ÚemptyrF   ÚjacÚJ_true)rE   s    r'   Úsetup_methodz'TestApproxDerivativeSparse.setup_method<  sÊ   € Ý”9×(Ò(¨Ñ3Ô3ˆŒØˆŒØ˜!�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   rO   r   r   )r   Úhstack)rE   re   Úes      r'   ÚfunzTestApproxDerivativeSparse.funG  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   rO   ©rO   rO   ru   ©rO   ru   )r  r   r?   Úrange)rE   re   rC  ÚJÚis        r'   rE  zTestApproxDerivativeSparse.jacK  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   rN  rO  r   rQ  rR  )r   r?   ÚintrS  )rE   rC  r!   rU  s       r'   r   z$TestApproxDerivativeSparse.structureY  s{   € ÝŒH�a˜�V¥3Ð'Ñ'Ô'ˆØˆˆ$‰Øˆˆ$‰Ý�q˜!˜a™%‘”ð 	#ð 	#ˆAØ!"ˆAˆa��Q‘˜˜A™�ˆoÑÐØˆˆ&‰	Øˆˆ&‰	àˆr)   r   c           
      ó�  — |                       | j        ¦  «        }t          j        | j        ¦  «        }t	          ||¦  «        }| j                             |¦  «         t	          ||¦  «        }t          d¦  «        5 }t          g d¢||gt          j	         | j
        gt          j	        | j        gt          |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 d d ¦  «         d S # 1 swxY w Y   d S )
Nr   r-   )r7   rû   ÚsparsityrË   r¸   r¹   r§   rO   )r7   rç   rY  rË   rí   )r   rC  r   r   r   r/  Úshuffler   r   rC   rS   rT   rÌ   r   rK  rF   r   Ú
isinstancer
   r   ÚtoarrayrF  Ú	full_like)rE   r!   r"   r%   r&   rÎ   r7   r$   ÚlÚuÚmfrT  rç   s                r'   Útest_allz#TestApproxDerivativeSparse.test_alld  s  € à�NŠN˜4œ6Ñ"Ô"ˆÝ”	˜$œ&Ñ!Ô!ˆÝ   EÑ*Ô*ˆØŒ×Ò˜ÑÔÐÝ   EÑ*Ô*ˆå˜‰]Œ]ð 	E˜fÝ,3Ø0Ð0Ð0°8¸XÐ2FÝ”f�W˜dœgÐ&­¬°´Ð(9½CÀ¸=ñ-Jô -Jð Eð EÑ(�˜  1 bõ & d¤h°´ÀØ./°¨V¸qÀ&¸kØ.0ð2ñ 2ô 2�õ �
 1¥iÑ0Ô0Ñ1Ô1Ð1Ý §	¢	¡¤¨T¬[¸tÐDÑDÔDÐDåœ<¨¬°Ñ6Ô6�Ø˜˜˜1˜��” Ñ#��‘Ý% d¤h°´ÀØ/7À1ÀfÀ+Ø.0ð2ñ 2ô 2�õ   §	¢	¡¤¨T¬[¸tÐDÑDÔDÐDÐDðEð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	Eð 	Es   Á=D0F;Æ;F?ÇF?c                 óÄ   — |                       | j        ¦  «        }t          | j        | j        |¬¦  «        }t          |                     ¦   «         | j        d¬¦  «         d S )N)rY  r¸   r¹   )r   rC  r   rK  rF   r   r\  rF  )rE   r!   rT  s      r'   Útest_no_precomputed_groupsz5TestApproxDerivativeSparse.test_no_precomputed_groups}  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·   )rY  r7   gVçž¯Â<g¦ÖVs†ÿ<)rº   r  )
r   rQ   rC  rW  r   r   rK  rF   r   r\  )rE   r   r$   r7   Ú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 ra   )r
   rE  )re   rE   s    €r'   rE  z=TestApproxDerivativeSparse.test_check_derivative.<locals>.jac�  s   ø€ Ý˜TŸXšX a™[œ[Ñ)Ô)Ð)r)   rÿ   r»   )r   rK  rF   rS   rT   r   )rE   rE  r8  s   `  r'   r9  z0TestApproxDerivativeSparse.test_check_derivativeŒ  sœ   ø€ ð	*ð 	*ð 	*ð 	*ð 	*õ $ D¤H¨c°4´7Ø,0¬G°T´WÐ+=ð?ñ ?ô ?ˆå�˜4’Ñ Ô Ð å# D¤H¨c°4´7Ø,0¬G°T´WÐ+=ð?ñ ?ô ?ˆå�˜4’Ñ Ô Ð Ð Ð r)   N)rZ   r[   r\   rG  rK  rE  r   r<  r=  r>  ra  rc  rg  r9  r]   r)   r'   r@  r@  :  s¬   € € € € € ð	(ð 	(ð 	(ð=ð =ð =ðð ð ð	ð 	ð 	ð „[×Ò˜1ÑÔðEð Eñ ÔðEð0=ð =ð =ð
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 ra   rb   rd   s     r'   rf   z4TestApproxDerivativeLinearOperator.fun_scalar_scalar›  rg   r)   c                 ó*   — t          j        |¦  «        S ra   ri   rd   s     r'   rk   z4TestApproxDerivativeLinearOperator.jac_scalar_scalarž  rg   r)   c                 ó¢   — t          j        |d         dz  t          j        |d         ¦  «        t          j        |d         ¦  «        g¦  «        S rm   rn   rd   s     r'   rq   z4TestApproxDerivativeLinearOperator.fun_scalar_vector¡  rr   r)   c                 óÐ   — t          j        d|d         z  t          j        |d         ¦  «        dz  t          j        |d         ¦  «        g¦  «                             dd¦  «        S rt   rv   rd   s     r'   ry   z4TestApproxDerivativeLinearOperator.jac_scalar_vector¤  rz   r)   c                 ó~   — t          j        |d         |d         z  ¦  «        t          j        |d         ¦  «        z  S r|   r}   rd   s     r'   r€   z4TestApproxDerivativeLinearOperator.fun_vector_scalar¨  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‡   rd   s     r'   rˆ   z4TestApproxDerivativeLinearOperator.jac_vector_scalar«  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�   rd   s     r'   rŽ   z4TestApproxDerivativeLinearOperator.fun_vector_vector²  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�   rd   s     r'   r™   z4TestApproxDerivativeLinearOperator.jac_vector_vector¹  rš   r)   c                 óD  — d}t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t          j                             d¦  «        }t          d¦  «        D ]’}|                     d	dd
¬¦  «        }t          | 	                    |¦  «        ||z  d¬¦  «         t          | 	                    |¦  «        ||z  d¬¦  «         t          | 	                    |¦  «        ||z  d¬¦  «         Œ“d S )Nr�   r.   T©r7   Úas_linear_operator©rv  r/   ì   nÊV)r6  éöÿÿÿ©r   ©r  rí   r¹   çñhãˆµøÔ>)
r   rf   rk   r   r+  r,  rS  Úuniformr   Údot©	rE   rF   r¿   rÀ   rÁ   rÂ   r/  rU  r  s	            r'   rÃ   z5TestApproxDerivativeLinearOperator.test_scalar_scalarÀ  sa  € ØˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝŒi×#Ò# NÑ3Ô3ˆÝ�r‘”ð 	'ð 	'ˆAØ—’˜C ¨$�Ñ/Ô/ˆ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 ]Â}|                     d	dd
¬¦  «        }t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         t          | 
                    |¦  «        | 
                    |¦  «        d¬¦  «         ŒÃd S )Nr+   r.   Tru  rw  r/   rx  r6  ry  rz  r{  rí   r¹   r|  )r   rq   ry   r   rÍ   r+  r,  rS  r}  r   r~  r  s	            r'   rÏ   z5TestApproxDerivativeLinearOperator.test_scalar_vectorÕ  s}  € ØˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)­"¬-¸Ñ*;Ô*;Ñ<Ô<ˆÝŒi×#Ò# NÑ3Ô3ˆÝ�r‘”ð 	'ð 	'ˆAØ—’˜C ¨$�Ñ/Ô/ˆAÝ˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'å˜JŸNšN¨1Ñ-Ô-¨x¯|ª|¸A©¬Ø!%ð'ñ 'ô 'ð 'ð 'ð	'ð 	'r)   c           	      óB  — t          j        ddg¦  «        }t          | j        |dd¬¦  «        }t          | j        |d¬¦  «        }t          | j        |dd¬¦  «        }|                      |¦  «        }t           j                             d¦  «        }t          d	¦  «        D ]ý}|                     d
d	|j	        ¬¦  «        }t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         t          |                     |¦  «        t          j        |                     |¦  «        ¦  «        d¬¦  «         Œþd S )Nrã   rŒ   r.   Tru  rw  r/   rx  r6  ry  r{  rí   r¹   r|  rä   )r   r   r   r€   rˆ   r+  r,  rS  r}  Úshaper   r~  rÍ   r  s	            r'   rå   z5TestApproxDerivativeLinearOperator.test_vector_scalarê  s¡  € ÝŒX�u˜d�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝŒi×#Ò# NÑ3Ô3ˆÝ�r‘”ð 	'ð 	'ˆAØ—’˜C ¨"¬(�Ñ3Ô3ˆ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 ]Ç}|                     d
d	|j	        ¬¦  «        }t          |                     |¦  «        |                     |¦  «        d¬¦  «         t          |                     |¦  «        |                     |¦  «        d¬¦  «         t          |                     |¦  «        |                     |¦  «        d¬¦  «         ŒÈd S )Nrë   rì   r.   Tru  rw  r/   rx  r6  ry  r{  rí   r¹   r¸   rä   )r   r   r   rŽ   r™   r+  r,  rS  r}  r‚  r   r~  r  s	            r'   rî   z5TestApproxDerivativeLinearOperator.test_vector_vectorÿ  sj  € ÝŒX�v˜s�mÑ$Ô$ˆÝ& tÔ'=¸rØ.7Ø:>ð@ñ @ô @ˆ
õ ' tÔ'=¸rØ:>ð@ñ @ô @ˆ
å& tÔ'=¸rØ.2Ø:>ð@ñ @ô @ˆ
ð ×)Ò)¨"Ñ-Ô-ˆÝŒi×#Ò# NÑ3Ô3ˆÝ�r‘”ð 	Kð 	KˆAØ—’˜C ¨"¬(�Ñ3Ô3ˆ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Ž   rC   )rE   rF   s     r'   Útest_exceptionz1TestApproxDerivativeLinearOperator.test_exception  sN   € ÝŒX�v˜s�mÑ$Ô$ˆÝ•jÕ"3ØÔ,¨bØ&°µ2´6¨{ð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r)   N)rZ   r[   r\   rf   rk   rq   ry   r€   rˆ   rŽ   r™   rÃ   rÏ   rå   rî   r…  r]   r)   r'   rk  rk  ™  sÝ   € € € € € ðð ð ðð ð ð?ð ?ð ?ðIð Ið Ið2ð 2ð 2ðð ð ðð ð ðð ð ð'ð 'ð 'ð*'ð 'ð 'ð*'ð 'ð 'ð*Kð Kð Kð$<ð <ð <ð <ð <r)   rk  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 r|   )r   rR   r  s    r'   r   z"test_absolute_step_sign.<locals>.f!  s4   € Ý”�q˜”t˜a‘xÑ Ô Ð ¥2¤6¨!¨A¬$°©(Ñ#3Ô#3Ñ3Ð3r)   rO   r.   r§   rÆ   rø   r�   r	  )r7   rÇ   rû   )r   r   r   rC   )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   )rP   r   r6  r  r.   )
r   r   r0   r1   r2   rR   r   r   r  Úfloat)
ÚmethodsrF   r5   r6   rð   r7   rç   Úcorrect_steprÇ   Úsign_x0s
             r'   Útest__compute_absolute_stepr�  M  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   r<  r   rñ   Úscipy._lib._utilr   r	   Úscipy.sparser
   r   r   Úscipy.optimize._numdiffr   r   r   r   r   r   Úscipy.optimizer   r(   r8   r:   r_   r@  rk  r‰  r�  r]   r)   r'   ú<module>r—     s  ðØ €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð !Ð  Ð  Ð  Ð  Ð  ð%ð %ð %ð8!
ð !
ð !
ðHG9ð G9ð G9ð G9ð G9ñ G9ô G9ð G9ðT[!ð [!ð [!ð [!ð [!ñ [!ô [!ð [!ð|\!ð \!ð \!ð \!ð \!ñ \!ô \!ð \!ð~|<ð |<ð |<ð |<ð |<ñ |<ô |<ð |<ð~2'ð 2'ð 2'ðj(6ð (6ð (6ð (6ð (6r)   