Ë
    çÿæiC‡  ã                   ó   — 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#y)é    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        ||«       y )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           úw/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/optimize/tests/test__numdiff.pyÚtest_group_columnsr(      s¾   € âÚÚÚÚÚÚð€Iô —j‘j¤)¬Y¼	ÓBˆ	Ù�iÓ ˆÜ—	‘	˜!“ˆÜ—h‘hÒ1Ó2ˆÜ˜q %Ó(ˆÜ�V˜[Ô)â"ˆÜ—h‘hÒ1Ó2ˆÜ˜q %Ó(ˆÜ�V˜[Õ)ð Cô ˜QÓ€HÜ˜QÓ€HÜ�˜8Õ$ó    c                  ó,  — t        j                  t         j                  «      j                  } | dz  | dz  | dz  dœ}dD ]n  }t	        t        t         j                  t         j                  |«      ||   «       t	        t        t         j                  t         j                  |«      ||   «       Œp t        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                  |«      ||   «       Œ¦ y )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™J¬¯
©
°FÓ;Ø˜&Ñ!ô	#ô 	ÜœBŸM™M¬2¯=©=¸&ÓAØ˜&Ñ!õ	
ð	 /ô �(‰(”2—:‘:Ó
×
"Ñ
"€CØ # S¡Ø" S™zØ ™8ñ%€Mó /ˆÜÜœBŸJ™J¬¯
©
°FÓ;Ø˜&Ñ!ô	
ô 	ÜœBŸJ™J¬¯
©
°FÓ;Ø˜&Ñ!ô	
ô 	ÜœBŸJ™J¬¯
©
°FÓ;Ø˜&Ñ!õ	
ñ /r)   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestAdjustSchemeToBoundsc                 ó  — t        j                  d«      }t        j                  dd«      }t        j                  |«      }t        j                  |«      }|j	                  t         j
                   «       |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                  | «      «       y )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‰X�a‹[ˆÜ�G‰G�A�tÓˆÜ—M‘M "Ó%ˆ	Ü—M‘M "Ó%ˆ	Ø�‰œŸ™�wÔØ�‰”r—v‘vÔä 8Ø��1�i ¨Ió!7Ñˆ
�Iä˜
 AÔ&Ü”—‘�yÓ!Ô"ä 8Ø��1�i ¨Ió!7Ñˆ
�Iä˜
 AÔ&Ü”—‘�yÓ!Ô"ä 8Ø��1�i ¨Ió!7Ñˆ
�Iä˜
 AÔ&Ü”—‘˜	�zÓ"Ô#ä 8Ø��1�i ¨Ió!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
¢«      «       y )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   s  € Ü�X‰XÒ(Ó)ˆÜ�g‰g�a‹jˆ[ˆÜ�W‰W�Q‹ZˆÜ�H‰H’ZÓ  4Ñ'ˆä0°°Q¸¸9ÀbÈ"ÓM‰ˆ
�AÜ˜
 AÔ&ä0°°Q¸¸9ÀbÈ"ÓM‰ˆ
�AÜ˜
¤B§H¡HªZÓ$8¸4Ñ$?Ô@ä 8Ø��1�i  Ró!)Ñˆ
�Iä˜
¤B§F¡F¨1£IÔ.Ü”—‘˜	�zÓ"Ô#ä 8Ø��1�i  Ró!)Ñˆ
�Iä˜
¤B§H¡HªZÓ$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«      «       y )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‰X�u˜e�nÓ%ˆÜ�X‰X�t˜T�lÓ#ˆÜ�X‰X�s˜D�kÓ"ˆÜ�H‰H�d˜D�\Ó"ˆä0°°Q¸¸9ÀbÈ"ÓM‰ˆ
�AÜ˜
¤B§H¡H¨d°E¨]Ó$;Ô<ä0°°Q¸¸9ÀbÈ"ÓM‰ˆ
�AÜ˜
¤B§H¡H¨e°U¨^Ó$<Ô=ä 8Ø��1�i  Ró!)Ñˆ
�Iä˜
¤B§H¡H¨d°E¨]Ó$;Ô<Ü�Y¤§¡¨%°¨Ó 7Ô8ä 8Ø��1�i  Ró!)Ñˆ
�Iä˜
¤B§H¡H¨e°V¨_Ó$=Ô>Ü�Y¤§¡¨%°¨Ó 7Õ8r)   N)Ú__name__Ú
__module__Ú__qualname__rL   rV   rY   © r)   r'   r:   r:   R   s   „ ò$ò8?ó,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j2                  j5                  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)y&))ÚTestApproxDerivativesDensec                 ó,   — t        j                  |«      S ©N©r   Úsinh©rE   Úxs     r'   Úfun_scalar_scalarz,TestApproxDerivativesDense.fun_scalar_scalar�   ó   € Ü�w‰w�q‹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£   ó8   € Ü�x‰x˜˜1™˜q™¤"§&¡&¨¨1©£,´·±°q¸±t³Ð=Ó>Ð>r)   c                 ó¼   — t        j                  d|d   z  t        j                  |d   «      dz  t        j                  |d   «      g«      j	                  dd«      S ©Nr   r   éþÿÿÿrO   r   ©r   r   Úcosrp   Úreshaperd   s     r'   Újac_scalar_vectorz,TestApproxDerivativesDense.jac_scalar_vector¦   óN   € Ü�x‰xØ��1‘‰X”r—v‘v˜a ™d“| rÑ)¬2¯6©6°!°A±$«<Ð8ó:ß:A¹'À"Àa».ð	Ir)   c                 óp   — 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‰v�a˜‘d˜Q˜q™T‘kÓ"¤R§V¡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‰x˜˜A™œrŸv™v a›y¬"¯&©&°«)Ð4Ó5Ð5r)   c           	      óf  — 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‰xØˆa‰D”2—6‘6˜!˜A™$  1¡™+Ó&Ñ&¬¯©°°!±«Ñ5Ü�F‰F�1�Q‘4˜!˜A™$‘;Ó ! A¡$Ñ&ñ'àˆa‰D”2—6‘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·   ó`   € Ü�x‰xØˆa‰D”2—6‘6˜!˜A™$“<ÑØˆa‰D”2—6‘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¾   sl   € à�bŠyÐˆyÜ�x‰xØˆa‰D”2—6‘6˜!˜A™$“<ÑØˆa‰D”2—6‘6˜!˜A™$“<ÑØˆa‰D�A‰I˜˜!™ ™Ñ$ð
ó ð 	r)   c                 óP  — 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‰xÜ�V‰V�A�a‘D‹\˜1˜Q™4¤"§&¡&¨¨1©£,Ñ.Ð/Ø�‰dˆU”R—V‘V˜A˜a™D“\Ñ!¤2§6¡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Ü�x‰xÜ�V‰V�A�a‘D‹\˜1˜Q™4¤"§&¡&¨¨1©£,Ñ.Ð/Ø�‰dˆU”R—V‘V˜A˜a™D“\Ñ!¤2§6¡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×   s8   € Ü�x‰xœŸ™  Q q¡T¡	Ó*¬B¯F©F°2¸¸!¹±9Ó,=Ð>Ó?Ð?r)   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Ú   sT   € Ü�x‰xØ”"—&‘&˜˜a ™d™Ó#Ñ# QÐ'Ø�”R—V‘V˜B  1¡™IÓ&Ñ&Ð'ð
ó ð 	r)   c                 óV   — t        j                  |«      dk  r|S t         j                  S )Nç:Œ0âŽyE>©r   rR   Únanrd   s     r'   Úfun_with_nanz'TestApproxDerivativesDense.fun_with_nanà   s    € Ü—F‘F˜1“I Ò%ˆqÐ1¬2¯6©6Ð1r)   c                 óV   — t        j                  |«      dk  rdS t         j                  S )Nr¦   ç      ð?r§   rd   s     r'   Újac_with_nanz'TestApproxDerivativesDense.jac_with_nanã   s    € Ü—f‘f˜Q“i 4Ò'ˆsÐ3¬R¯V©VÐ3r)   c                 óz   — 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æ   s7   € Ü�x‰x˜˜1™  !¡™¤b§f¡f¨Q¨q©T°A°a±D©[Ó&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é   so   € Ü�x‰xØˆq‰T�1�Q‘4ˆLØ�‰dˆU”R—V‘V˜A˜a™D 1 Q¡4™KÓ(Ñ(¨1¨Q©4¨%´"·&±&¸¸1¹ÀÀ!Á¹Ó2EÑ*EÐFð
ó ð 	r)   c                 ór   — t        j                  |«      j                  «       }t        j                  |«      S ra   )r   r   ÚitemÚmathrp   )rE   re   Úxps      r'   Újac_non_numpyz(TestApproxDerivativesDense.jac_non_numpyï   s(   € ô �Z‰Z˜‹]×ÑÓ!ˆÜ�x‰x˜‹|Ðr)   c                 ó
  — d}t        | j                  |d¬«      }t        | j                  |«      }t        | j                  |d¬«      }| j                  |«      }t        ||d¬«       t        ||d¬«       t        ||d¬«       y )	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ˆ
ä& t×'=Ñ'=¸rÓBˆ
Ü& t×'=Ñ'=¸rØ.2ô4ˆ
à×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9r)   c                 ó  — d}t        | j                  |dd¬«      }t        | j                  |d¬«      }t        | j                  |dd¬«      }| j                  |«      }t        ||d¬«       t        ||d	¬«       t        ||d
¬«       y )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ˆ
ä& t×'=Ñ'=¸rØ07ô9ˆ
ä& t×'=Ñ'=¸rØ.2¸WôFˆ
à×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9r)   c                 ó€  — d}t        d«      5 }t        | j                  |d|¬«      }d d d «       t        | j                  |t        ¬«      }t        | j                  |dd ¬«      }| j	                  t        j                  |«      «      }t        |d¬«       t        ||d	¬«       t        ||d
¬«       y # 1 sw Y   Œ�xY w)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  s¤   € ØˆÜ˜Œ]˜fÜ*¨4×+AÑ+AÀ2Ø2;ÀVôMˆJ÷ ô ' t×'=Ñ'=¸rÌ3ÔOˆ
Ü& t×'=Ñ'=¸rØ.2¸DôBˆ
à×)Ñ)¬"¯-©-¸Ó*;Ó<ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9÷ ˆ]ús   ŽB4Â4B=g      @c                 óÄ  — g d¢}t        d«      5 }t        t        |d|d¬«      \  }}t        t        ||d¬«      \  }}d d d «       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	        ||«       y # 1 sw Y   �ŒxY w)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  sM  € ò ˆÜ˜Œ]˜fÜ*¬5°"Ø2;ÀVØ7;ô=‰JˆC�ô +¬5°"Ø39ÀtôM‰JˆC�÷	 ô '¤u¨bØ.2¸AØ37ô9‰
ˆˆUô %¤UÓ+ˆÜ$ S¨"°YÈDÔQ‰ˆˆDÜ�T˜&‘\ 3§8¡8Ô,ØˆŒÜ$ S¨"¸$Ô?‰ˆˆDÜ�T˜&‘\ 3§8¡8Ô,ØˆŒÜ$ S¨"°TÀtÔL‰ˆˆDÜ�T˜&‘\ 3§8¡8Ô,ä�U˜6‘] D¨¡LÔ1Ü�U˜6‘] D¨¡LÔ1Ü�U˜6‘] D¨¡LÔ1ä�S˜"ÔÜ�S˜"ÔÜ�S˜"Õ÷9 ‰]ús   �.EÅEc                 ó4  — t        j                  ddg«      }t        | j                  |d¬«      }t        | j                  |«      }t        | j                  |d¬«      }| j	                  |«      }t        ||d¬«       t        ||d¬«       t        ||d	¬«       y )
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‰X�u˜d�mÓ$ˆÜ& t×'=Ñ'=¸rØ.7ô9ˆ
ä& t×'=Ñ'=¸rÓBˆ
Ü& t×'=Ñ'=¸rØ.2ô4ˆ
à×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9r)   c                 óZ  — t        j                  ddg«      }t        | j                  |dd¬«      }t        | j                  |dt         j                  ¬«      }t        | j                  |dd¬«      }| j                  |«      }t        ||d¬	«       t        ||d
¬	«       t        ||d¬	«       y )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‰X�u˜d�mÓ$ˆÜ& t×'=Ñ'=¸rØ.7À'ôKˆ
ä& t×'=Ñ'=¸rØ07Ä"Ç&Á&ôJˆ
ä& t×'=Ñ'=¸rØ.2¸WôFˆ
à×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9r)   c                 óv  — t        j                  ddg«      }t        | j                  |d¬«      }t        | j                  |«      }t	        d«      5 }t        | j                  |d|¬«      }d d d «       | j                  |«      }t        ||d¬	«       t        ||d
¬	«       t        |d¬	«       y # 1 sw Y   ŒExY w)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  s£   € Ü�X‰X�v˜s�mÓ$ˆÜ& t×'=Ñ'=¸rØ.7ô9ˆ
ä& t×'=Ñ'=¸rÓBˆ
Ü˜Œ]˜fÜ*¨4×+AÑ+AÀ2Ø26ÀôHˆJ÷ ð ×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Õ8Ü˜
 H°5Ö9÷ ˆ]ús   ÁB/Â/B8c                 óÔ   — d}t        t        t        | j                  |«       | j                  t	        j
                  |«      «      }t        t        t        | j                  ||¬«       y )Nr«   )Úf0)Úassert_raisesÚRuntimeErrorr   r„   r   rÍ   Ú
ValueError)rE   rF   rð   s      r'   Útest_wrong_dimensionsz0TestApproxDerivativesDense.test_wrong_dimensionsf  sR   € ØˆÜ”lÔ$5Ø×/Ñ/°ô	5à×&Ñ&¤r§}¡}°RÓ'8Ó9ˆÜ”jÔ"3Ø×/Ñ/°¸ö	<r)   c                 óî   — t        j                  ddg«      }t        | j                  |dd¬«      }t        | j                  |d¬«      }| j	                  |«      }t        ||d¬«       t        ||d¬«       y )	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  sm   € Ü�X‰X�t˜S�kÓ"ˆÜ& t×'=Ñ'=¸rØ.7À$ôHˆ
ä& t×'=Ñ'=¸rØ04ô6ˆ
à×)Ñ)¨"Ó-ˆÜ˜
 H°4Õ8Ü˜
 H°4Ö8r)   c                 óœ  — t        j                  ddg«      }d}d}d}d}| j                  |||¬«      }t        j                  ddg«      }| j                  |||«      }t	        | j                  |d|||ft        |¬«      ||f¬	«      }	t	        | j                  ||||ft        |¬«      ||f¬
«      }
t        |	|d¬«       t        |
|d¬«       y )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‰X�s˜C�jÓ!ˆØˆØˆØˆØˆØ×"Ñ" 2 r¨bÐ"Ó1ˆÜ—8‘8˜U D˜MÓ*ˆØ×(Ñ(¨¨R°Ó4ˆÜ&Ø×!Ñ! 2¨iÀ(Ø˜˜¤d¨b¤k¸2¸r¸(ôDˆ
ô 'Ø×!Ñ! 2°Ø˜˜¤d¨b¤k¸2¸r¸(ôDˆ
ô 	˜
 H°4Õ8Ü˜
 H°4Ö8r)   c                 ór  — 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¬«      }| j                  |«      }t        ||d	¬
«       y )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‰g�a‹jˆ[ˆÜ�W‰W�Q‹Zˆä�X‰X�t˜S�kÓ"ˆÜ”jÔ"3Ø×,Ñ,¨b¸"¸b¸õ	Cô �X‰X�t˜S�kÓ"ˆÜ$ T×%;Ñ%;¸RØ,5¸rÀ2¸hôHˆà×)Ñ)¨"Ó-ˆÜ˜ (°Ö6r)   c                 ó"  — t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }| j                  |«      }t        | j                  |«      }t        ||d¬«       t        | j                  ||t         j                  f¬«      }t        ||d¬«       t        | j                  |t         j                   |f¬«      }t        ||d¬«       t        | j                  |||f¬«      }t        ||d¬«       y )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‰X�s˜C�jÓ!ˆÜ�X‰X�s˜C�jÓ!ˆä�X‰X�s˜C�jÓ!ˆØ×)Ñ)¨"Ó-ˆä$ T×%;Ñ%;¸RÓ@ˆÜ˜ (°Õ6ä$ T×%;Ñ%;¸RØ-/´·±¨Lô:ˆä˜ (°Õ6ä$ T×%;Ñ%;¸RÜ.0¯f©f¨W°b¨Mô;ˆä˜ (°Õ6ä$ T×%;Ñ%;¸RØ-/°¨Hô6ˆä˜ (°Ö6r)   c                 ó°  — t        j                  ddg«      }|dz
  }|dz   }| j                  |«      }t        | j                  |d||f¬«      }t        ||d¬«       t        | j                  |dd||f¬«      }t        ||d¬«       t        | j                  |||f¬	«      }t        ||d¬«       t        | j                  |d||f¬
«      }t        ||d¬«       y )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‰X�t˜T�lÓ#ˆØ�$‰YˆØ�$‰YˆØ×)Ñ)¨"Ó-ˆÜ$Ø×"Ñ" B¨yÀ"ÀbÀôKˆä˜ (°Õ6Ü$Ø×"Ñ" B¨yØ 2 r (ô,ˆô 	˜ (°Õ6ä$Ø×"Ñ" B°°B¨xô9ˆä˜ (°Õ6Ü$Ø×"Ñ" B°¸rÀ2¸hôHˆä˜ (°Ö6r)   c                 ó¤  — d}d}d}| j                  |«      }t        | j                  |dd||f¬«      }t        | j                  |d||f¬«      }t        ||d¬«       t        ||d	¬«       d}| j                  |«      }t        | j                  |dd||f¬«      }t        | j                  |d||f¬«      }t        ||d¬«       t        ||d	¬«       y )
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Â  sæ   € ØˆØˆØˆØ×$Ñ$ RÓ(ˆÜ&Ø×Ñ˜r¨)¸dØ˜�8ôˆ
ô 'Ø×Ñ˜r¨D¸"¸b¸ôCˆ
ä˜
 H°4Õ8Ü˜
 H°4Õ8àˆØ×$Ñ$ RÓ(ˆÜ&Ø×Ñ˜r¨)¸dØ˜�8ôˆ
ô 'Ø×Ñ˜r¨D¸"¸b¸ôCˆ
ä˜
 H°4Õ8Ü˜
 H°4Ö8r)   c                 ó  — d}| j                  |«      }t        | j                   |d¬«      }t        | j                   |«      }t        ||d¬«       t        ||d¬«       t        t        t        | j                   |fi t        d¬«      ¤Ž y )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Ñ'9¸2Ø.7ô9ˆ
ä& t×'9Ñ'9¸2Ó>ˆ
Ü˜
 H°4Õ8Ü˜
 H°4Õ8ô 	”iÔ!2°D×4FÑ4FÈñ 	+Ü DÔ)ó	+r)   c                 ó  ‡‡‡‡— t         j                  j                  d«      }d„ Šˆfd„Št        j                  dddt         j                  ¬«      Š|j                  dt         j                  ¬«      Št        j
                  ddg«      }t        ‰|d	‰‰f¬
«      }t        ‰|j                  t         j                  «      d	‰‰f¬
«      } ‰|‰‰«      j                  t         j                  k(  sJ ‚t        ||d¬«       ˆˆˆfd„}t        ||j                  t         j                  «      d	¬«      }t        ||d¬«       d„ }d„ }d„ }d„ }	t         j                  t         j                  t         j                  fD ]�  }
t        j                  |
«      j                  }t        j
                  d«      j                  |
«      }t        d | ||«      d	«      } |	|||||«      }t        ||d	|¬«       ||«      z
  Št        ‰«      |k  rŒ�J ‚ y )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   ø€ Ù˜˜1“: ‘>Ð!r)   r   éd   ©Údtype)Úsizer  rø   r.   )r7   rù   gü©ñÒMbP?)Úatolc                 ó�   •— | j                   t        j                  k(  sJ ‚ ‰| ‰‰«      j                  t        j                  «      S ra   )r  r   r4   Úastype)r  r  re   r  s    €€€r'   Úerr_fp32z4TestApproxDerivativesDense.test_fp.<locals>.err_fp32þ  s6   ø€ Ø—7‘7œbŸj™jÒ(Ð(Ð(Ù�q˜!˜Q“<×&Ñ&¤r§z¡zÓ2Ð2r)   r·   c                 ó,   — t        j                  | «      S ra   ©r   r~   ©re   s    r'   Úfz-TestApproxDerivativesDense.test_fp.<locals>.f  ó   € Ü—6‘6˜!“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‘F˜1“I�:Ðr)   c           
      ó(  — | 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  sr   € à�Q‘œœRŸV™V¡D¨£HÓ-¬r¯v©v±d¸2À¹6³lÓ/CÓDÑDˆBð �q‘œ3œrŸv™v¡a¨£e›}¬b¯f©f±Q°r¸A±v³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æ  s°  û€ ô �i‰i×#Ñ# AÓ&ˆò	#ô	"ô �K‰K˜˜1˜c¬¯©Ô4ˆØ�J‰J˜C¤r§z¡zˆJÓ2ˆÜ�X‰X�t˜T�lÓ#ˆä$ S¨"°YÀaÈÀVÔLˆô # 3¨¯	©	´"·*±*Ó(=Ø*3¸1¸a¸&ôBˆá�2�q˜!‹}×"Ñ"¤b§j¡jÒ0Ð0Ð0Ü˜ ¨tÕ4ö	3ô # 8¨R¯Y©Y´r·z±zÓ-BØ*3ô5ˆä˜ ¨tÕ4ò	ò	ò	ò	ô —j‘j¤"§*¡*¬b¯j©jÓ9ˆEÜ—(‘(˜5“/×%Ñ%ˆCÜ—‘˜#“×%Ñ% eÓ,ˆBÜ& t¨R±°2³¸	ÓBˆAÙ˜Q  A t¨SÓ1ˆDÜ# A r°)Ø-.ô0Ù23°B³%ñ8ˆCä�s“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(  «       y )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‰X�u˜b�kÓ"ˆÜ# D×$:Ñ$:Ø$(×$:Ñ$:¸Bó@ˆä�˜4‘Ô Ü# D×$:Ñ$:Ø$(×$:Ñ$:¸Bó@ˆä�˜4‘Ô ä�X‰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  «       y )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  sG   € Ü�X‰X�u˜b�kÓ"ˆÜ# D×$CÑ$CØ$(×$CÑ$CØ$&Ø,1°2¨;ô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ò2ò6òòòòòó@óò2ò4ò<òòò
:ò:ò:ð ‡[�[×Ñ˜3Óñ ó  ð òD
:ò:ò:ò<ò9ò9ò$7ò7ò,7ò(9ò.+ò8#òtó"!r)   r_   c                   óx   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  d«      d„ «       Z
d„ Zd„ Zd	„ Zy
)ÚTestApproxDerivativeSparsec                 ó  — t         j                  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                  | j                  «      | _        y )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‘9×(Ñ(¨Ó3ˆŒØˆŒØ˜!œbŸi™i¨¯©Ó/Ñ/Ñ0ˆŒØ˜œRŸY™Y t§v¡vÓ.Ñ.Ñ/ˆŒÜ—(‘(˜4Ÿ6™6Ó"ˆŒØ  D§G¡G©C¨a¨C¡LÑ0ˆ�‰‘�!�‰Ø! T§W¡W¨Q¨T°¨T¡]Ñ2ˆ�‰���1�‰à—h‘h˜tŸw™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  sM   € ØˆaˆbˆE�1‰H�q˜˜"�v˜q‘yÑ ˆÜ�y‰y˜!˜Q ™U˜Ó$¤r§y¡y°!°a±%¸°Ó'<Ñ<Ð<r)   c                 ó\  — |j                   }t        j                  ||f«      }d|d   z  |d<   d|d   dz  z  |d<   t        d|dz
  «      D ]D  }d||dz
     z  |||dz
  f<   d	||   dz  z  d
||   z  z
  |||f<   d||dz      dz  z  |||dz   f<   ŒF d	|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‰FˆÜ�H‰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ð !ð ˜˜"™˜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  sm   € Ü�H‰H�a˜�V¤3Ô'ˆØˆˆ$‰Øˆˆ$‰Ü�q˜!˜a™%–ˆAØ!"ˆAˆa��Q‘˜˜A™�ˆoÒð !àˆˆ&‰	Øˆˆ&‰	àˆr)   r   c           
      óœ  — | j                  | j                  «      }t        j                  | j                  «      }t	        ||«      }| j
                  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)                  «       | j*                  d¬«       t        j,                  | j                  d«      }|d d d…xx   dz  cc<   t        | j                  | j                  ||||f|
¬«      }t'        |j)                  «       | j*                  d	¬«       Œï 	 d d d «       y # 1 sw Y   y xY w)
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  sc  € à�N‰N˜4Ÿ6™6Ó"ˆÜ—	‘	˜$Ÿ&™&Ó!ˆÜ   EÓ*ˆØ�‰×Ñ˜ÔÜ   EÓ*ˆä˜Œ]˜fÜ,3Ú0°8¸XÐ2FÜ—f‘f�W˜dŸg™gÐ&¬¯©°·±Ð(9¼CÀ¸=ö-JÑ(�˜  1 bô & d§h¡h°·±ÀØ./°¨V¸qÀ&¸kØ.0ô2�ô œ
 1¤iÓ0Ô1Ü §	¡	£¨T¯[©[¸tÕDäŸ<™<¨¯©°Ó6�Ø™˜1˜“ Ñ#“Ü% d§h¡h°·±ÀØ/7À1ÀfÀ+Ø.0ô2�ô   §	¡	£¨T¯[©[¸tÖDñ-J÷ �]‰]ús   Á9D?GÇGc                 óÊ   — | j                  | j                  «      }t        | j                  | j                  |¬«      }t        |j                  «       | j                  d¬«       y )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}  s@   € Ø�N‰N˜4Ÿ6™6Ó"ˆÜ˜dŸh™h¨¯©¸!Ô<ˆÜ˜Ÿ	™	› T§[¡[°tÖ<r)   c                 óz  — t        j                  | j                  | j                  ft        ¬«      }t        j                  | j                  «      }dD ]f  }t        | j                  | j                  |¬«      }t        | j                  | j                  ||f|¬«      }t        ||j                  «       dd¬«       Œh y )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‘G˜TŸV™V T§V¡VÐ,´CÔ8ˆ	Ü—‘˜4Ÿ6™6Ó"ˆÛ2ˆFÜ'¨¯©°$·'±'À&ÔIˆGÜ(Ø—‘˜$Ÿ'™'¨Y¸Ð,?ÈôPˆHä˜G X×%5Ñ%5Ó%7Ø!&¨Uö4ñ	 3r)   c                 ó,  ‡ — ˆ fd„}t        ‰ j                  |‰ j                  ‰ j                  ‰ j                  f¬«      }t        |dk  «       t        ‰ j                  |‰ j                  ‰ j                  ‰ j                  f¬«      }t        |dk  «       y )Nc                 ó8   •— t        ‰j                  | «      «      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Œ  sr   ø€ ô	*ô $ D§H¡H¨c°4·7±7Ø,0¯G©G°T·W±WÐ+=ô?ˆä�˜4‘Ô ä# D§H¡H¨c°4·7±7Ø,0¯G©G°T·W±WÐ+=ô?ˆä�˜4‘Õ r)   N)rZ   r[   r\   rG  rK  rE  r   r<  r=  r>  ra  rc  rg  r9  r]   r)   r'   r@  r@  :  sJ   „ ò	(ò=òò	ð ‡[�[×Ñ˜1ÓñEó ðEò0=ò
4ó
!r)   r@  c                   óZ   — 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y)Ú"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«      j	                  dd«      S rt   rv   rd   s     r'   ry   z4TestApproxDerivativeLinearOperator.jac_scalar_vector¤  rz   r)   c                 óp   — t        j                  |d   |d   z  «      t        j                  |d   «      z  S r|   r}   rd   s     r'   r€   z4TestApproxDerivativeLinearOperator.fun_vector_scalar¨  r�   r)   c           	      óf  — 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                 óP  — 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}t        | j                  |dd¬«      }t        | j                  |d¬«      }t        | j                  |dd¬«      }| j                  |«      }t        j                  j                  d«      }t        d«      D ]v  }|j                  d	dd
¬«      }t        |j                  |«      ||z  d¬«       t        |j                  |«      ||z  d¬«       t        |j                  |«      ||z  d¬«       Œx y )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À  só   € ØˆÜ& t×'=Ñ'=¸rØ.7Ø:>ô@ˆ
ô ' t×'=Ñ'=¸rØ:>ô@ˆ
ä& t×'=Ñ'=¸rØ.2Ø:>ô@ˆ
ð ×)Ñ)¨"Ó-ˆÜ�i‰i×#Ñ# NÓ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                 ór  — d}t        | j                  |dd¬«      }t        | j                  |d¬«      }t        | j                  |dd¬«      }| j                  t        j                  |«      «      }t        j
                  j                  d«      }t        d«      D ]š  }|j                  d	dd
¬«      }t        |j                  |«      |j                  |«      d¬«       t        |j                  |«      |j                  |«      d¬«       t        |j                  |«      |j                  |«      d¬«       Œœ y )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‰i×#Ñ# NÓ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           	      óü  — t        j                  ddg«      }t        | j                  |dd¬«      }t        | j                  |d¬«      }t        | j                  |dd¬«      }| j	                  |«      }t         j
                  j                  d«      }t        d	«      D ]Ý  }|j                  d
d	|j                  ¬«      }t        |j                  |«      t        j                  |j                  |«      «      d¬«       t        |j                  |«      t        j                  |j                  |«      «      d¬«       t        |j                  |«      t        j                  |j                  |«      «      d¬«       Œß y )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‰X�u˜d�mÓ$ˆÜ& t×'=Ñ'=¸rØ.7Ø:>ô@ˆ
ô ' t×'=Ñ'=¸rØ:>ô@ˆ
ä& t×'=Ñ'=¸rØ.2Ø:>ô@ˆ
ð ×)Ñ)¨"Ó-ˆÜ�i‰i×#Ñ# NÓ3ˆÜ�r–ˆAØ—‘˜C ¨"¯(©(�Ó3ˆAÜ˜JŸN™N¨1Ó-¬r¯}©}¸X¿\¹\È!»_Ó/MØ!%õ'ä˜JŸN™N¨1Ó-¬r¯}©}¸X¿\¹\È!»_Ó/MØ!%õ'ä˜JŸN™N¨1Ó-¬r¯}©}¸X¿\¹\È!»_Ó/MØ!%ö'ñ r)   c                 óŠ  — t        j                  ddg«      }t        | j                  |dd¬«      }t        | j                  |d¬«      }t        | j                  |dd¬«      }| j	                  |«      }t         j
                  j                  d«      }t        d	«      D ]¤  }|j                  d
d	|j                  ¬«      }t        |j                  |«      |j                  |«      d¬«       t        |j                  |«      |j                  |«      d¬«       t        |j                  |«      |j                  |«      d¬«       Œ¦ y )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ÿ  s  € Ü�X‰X�v˜s�mÓ$ˆÜ& t×'=Ñ'=¸rØ.7Ø:>ô@ˆ
ô ' t×'=Ñ'=¸rØ:>ô@ˆ
ä& t×'=Ñ'=¸rØ.2Ø:>ô@ˆ
ð ×)Ñ)¨"Ó-ˆÜ�i‰i×#Ñ# NÓ3ˆÜ�r–ˆAØ—‘˜C ¨"¯(©(�Ó3ˆAÜ˜JŸN™N¨1Ó-¨x¯|©|¸A«ÀTÕJÜ˜JŸN™N¨1Ó-¨x¯|©|¸A«ÀTÕJÜ˜JŸN™N¨1Ó-¨x¯|©|¸A«ÀTÖJñ	 r)   c           	      ó˜   — t        j                  ddg«      }t        t        t        | j
                  |ddt         j                  f¬«       y )Nrë   rì   r.   r   r   )r   r   rñ   ró   r   rŽ   rC   )rE   rF   s     r'   Útest_exceptionz1TestApproxDerivativeLinearOperator.test_exception  s9   € Ü�X‰X�v˜s�mÓ$ˆÜ”jÔ"3Ø×,Ñ,¨bØ&°´2·6±6¨{ö	<r)   N)rZ   r[   r\   rf   rk   rq   ry   r€   rˆ   rŽ   r™   rÃ   rÏ   rå   rî   r…  r]   r)   r'   rk  rk  ™  sE   „ òòò?òIò2òòòò'ò*'ò*'ò*Kó$<r)   rk  c                  ó  — 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«       y )
Nc                 ór   — 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!  s2   € Ü—‘�q˜‘t˜a‘xÓ Ð ¤2§6¡6¨!¨A©$°©(Ó#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ô ˜Q  R °ÀTÔJ€DÜ�D˜4 ˜+Ô&ô ˜Q  R °ÀUÔ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Á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\  j                  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\  j                  t        «      dz  d	z
  }	t        || |d«      }t        ||	|z  «       y )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‘x Ø!)¨B¡Ø!)¨B¡Ø!)¬B¯F©F°2°a±5«MÑ!9ð!;ó <ˆô
 *¨$°°B¸Ó?ˆÜ˜ ,Ô/à�3˜!‘8×#Ñ#¤EÓ*¨QÑ.°Ñ2ˆÜ)¨$°°°R¸Ó@ˆÜ˜ '¨LÑ"8Õ9ð ô �x‰xÒ)Ó*€HÜ—8‘8˜X a™[¨2¨a©5Ñ0Ø*¨9Ñ5Ø% a™[¨2Ñ-Ø% a™[¬2¯6©6°"°Q±%«=Ñ8ð:ó ;€Lô
 & h°°B¸	ÓB€HÜ�H˜lÔ+àˆs�a‰x×Ñ¤Ó&¨Ñ*¨QÑ.€GÜ% h°°°R¸ÓC€HÜ�H˜g¨Ñ4Õ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!
÷HG9ñ G9÷T[!ñ [!÷|\!ñ \!÷~|<ñ |<ò~2'ój(6r)   