Ë
    âQ(hˆ,  ã                   ó’   — d Z ddlmZmZmZmZmZ ddlmc m	Z
 ddlmZ ddlZddlZddlZdd„Zdd„Zd„ Zd„ Zdd	„Z G d
„ d«      Zy)z 
Tests for line search routines
é    )Úassert_equalÚassert_array_almost_equalÚassert_array_almost_equal_nulpÚassert_warnsÚsuppress_warningsN)ÚLineSearchWarningc                 óä   —  || «      } |d«      } |d«      } || «      }	d| › d|› d|› d|› d|	› d|› �}
|||| z  |z  z   k  s
J d|
z   «       ‚t        |	«      t        ||z  «      k  s
J d	|
z   «       ‚y
)z2
    Check that strong Wolfe conditions apply
    r   ús = ú; phi(0) = ú; phi(s) = z; phi'(0) = z; phi'(s) = ú; zWolfe 1 failed: zWolfe 2 failed: N)Úabs)ÚsÚphiÚderphiÚc1Úc2Úerr_msgÚphi1Úphi0Úderphi0Úderphi1Úmsgs              úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_linesearch.pyÚassert_wolfer      s¦   € ñ ˆq‹6€DÙˆq‹6€DÙ�Q‹i€GÙ�Q‹i€GØ�!��K ˜v [°°°lÀ7À)ð LØ ˜	  G 9ð.€Cð �4˜"˜Q™$˜w™,Ñ&Ò&Ð@Ð(:¸SÑ(@Ó@Ð&Üˆw‹<œ3˜r '™z›?Ò*ÐDÐ,>ÀÑ,DÓDÑ*ó    c                 ój   —  || «      } |d«      }d| › d|› d|› d|› �}|d|| z  z
  |z  k  sJ |«       ‚y)z-
    Check that Armijo condition applies
    r   r
   r   r   r   é   N© )r   r   r   r   r   r   r   s          r   Úassert_armijor       sS   € ñ ˆq‹6€DÙˆq‹6€DØ���;˜t˜f K°¨v°R¸°yÐ
A€CØ�A˜˜1™‘H˜d‘?Ò"Ð' CÓ'Ñ"r   c                 ó>   ‡ ‡‡‡— t        |fˆˆˆ fd„ˆˆˆ fd„dœ|¤Ž y )Nc                 ó    •—  ‰‰‰| z  z   «      S ©Nr   ©ÚspÚfÚpÚxs    €€€r   ú<lambda>z#assert_line_wolfe.<locals>.<lambda>(   s   ø€ ¡1 Q¨¨2©¡X£;€ r   c                 óH   •— t        j                   ‰‰‰| z  z   «      ‰«      S r#   ©ÚnpÚdot)r%   Úfprimer'   r(   s    €€€r   r)   z#assert_line_wolfe.<locals>.<lambda>)   s   ø€ ¤2§6¡6©&°°Q°r±T±Ó*:¸AÓ#>€ r   )r   r   )r   )r(   r'   r   r&   r.   Úkws   `` `` r   Úassert_line_wolfer0   '   s#   û€ Ü�ð FÕ.Ý>ñFØBDóFr   c                 ó0   ‡ ‡‡— t        |fdˆˆˆ fd„i|¤Ž y )Nr   c                 ó    •—  ‰‰‰| z  z   «      S r#   r   r$   s    €€€r   r)   z$assert_line_armijo.<locals>.<lambda>-   s   ø€ ¡A a¨!¨B©$¡h£K€ r   )r    )r(   r'   r   r&   r/   s   `` ` r   Úassert_line_armijor3   ,   s   ú€ Ü�!Ñ6Õ/Ð6°2Ó6r   c                 ód   — 	 t        | ||«       y# t        $ r}t        |› d|› �«      |‚d}~ww xY w)zEAssert two arrays are equal, up to some floating-point rounding errorú
N)r   ÚAssertionError)r(   Úyr   ÚnulpÚes        r   Úassert_fp_equalr:   0   s;   € ð7Ü& q¨!¨TÕ2øÜò 7Ü ˜s " W IÐ.Ó/°QÐ6ûð7ús   ‚ �	/™*ª/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„ Zd„ Zej&                  j(                  d„ «       Zd„ Zd„ Zd„ Zy)ÚTestLineSearchc                 óÜ   — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        | |dz  z
  |dz  z   }dd|dz  z  z
  d|dz  z  z   }||fS )NÚcr   r   é   é   éÿÿÿÿé   )ÚhasattrÚfcountr>   ©Úselfr   r'   Údps       r   Ú_scalar_func_1zTestLineSearch._scalar_func_1:   sl   € Ü�t—{‘{ CÔ(ØˆD�K‰KŒMØ�‰�Š˜Ñ�ØˆB��A‘‰I˜˜1™ÑˆØ�!�A�q‘D‘&‰[˜1˜Q ™T™6Ñ!ˆØ�"ˆuˆr   c                 ó  — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  d|z  «      |dz  z   }dt        j                  d|z  «      z  d|z  z   }||fS )Nr>   r   r   éüÿÿÿrB   )rC   rD   r>   r,   ÚexprE   s       r   Ú_scalar_func_2zTestLineSearch._scalar_func_2B   sn   € Ü�t—{‘{ CÔ(ØˆD�K‰KŒMØ�‰�Š˜Ñ�Ü�F‰F�2�a‘4‹L˜1˜a™4ÑˆØ”—‘�r˜!‘t“‰_˜q ™sÑ"ˆØ�"ˆuˆr   c                 óþ   — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  d|z  «       }dt        j
                  d|z  «      z  }||fS )Nr>   r   r   é
   iöÿÿÿ)rC   rD   r>   r,   ÚsinÚcosrE   s       r   Ú_scalar_func_3zTestLineSearch._scalar_func_3J   s_   € Ü�t—{‘{ CÔ(ØˆD�K‰KŒMØ�‰�Š˜Ñ�Ü�V‰V�B�q‘D‹\ˆMˆØ”—‘˜˜1™“ÑˆØ�"ˆuˆr   c                 óÌ   — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  ||«      }d|z  }||fS )Nr>   r   r   rB   )rC   rD   r>   r,   r-   ©rF   r(   r&   Údfs       r   Ú_line_func_1zTestLineSearch._line_func_1T   sN   € Ü�t—{‘{ CÔ(ØˆD�K‰KŒMØ�‰�Š˜Ñ�Ü�F‰F�1�a‹LˆØˆq‰SˆØ�"ˆuˆr   c                 ór  — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  |t        j                  | j
                  |«      «      dz   }t        j                  | j
                  | j
                  j                  z   |«      }||fS )Nr>   r   r   )rC   rD   r>   r,   r-   ÚAÚTrS   s       r   Ú_line_func_2zTestLineSearch._line_func_2\   s{   € Ü�t—{‘{ CÔ(ØˆD�K‰KŒMØ�‰�Š˜Ñ�Ü�F‰F�1”b—f‘f˜TŸV™V QÓ'Ó(¨1Ñ,ˆÜ�V‰V�D—F‘F˜TŸV™VŸX™XÑ% qÓ)ˆØ�"ˆuˆr   c           	      óp  — g | _         g | _        d| _        t        j                  «       | _        d„ }t        t        | «      «      D ]–  }|j                  d«      r9t        | |«      }| j                   j                  | ||d«       ||d«      f«       ŒM|j                  d«      sŒ_t        | |«      }| j                  j                  | ||d«       ||d«      f«       Œ˜ t        j                  j                  d«       t        j                  j                  | j                  | j                  «      | _        y )Né   c                 ó   ‡ ‡— ˆ ˆfd„S )Nc                  ó   •—  ‰| i |¤Ž‰   S r#   r   )Úar/   ÚfuncÚidxs     €€r   r)   zATestLineSearch.setup_method.<locals>.bind_index.<locals>.<lambda>n   s   ø€ ¡D¨! N¨r¡N°3Ñ$7€ r   r   )r_   r`   s   ``r   Ú
bind_indexz/TestLineSearch.setup_method.<locals>.bind_indexl   s	   ù€ ä7Ð7r   Ú_scalar_func_r   r   Ú_line_func_éÒ  )Úscalar_funcsÚ
line_funcsÚNÚ	threadingÚlocalrD   ÚsortedÚdirÚ
startswithÚgetattrÚappendr,   ÚrandomÚseedÚrandnrW   )rF   ra   ÚnameÚvalues       r   Úsetup_methodzTestLineSearch.setup_methodf   sÿ   € ØˆÔØˆŒØˆŒÜ—o‘oÓ'ˆŒò	8ô œ3˜t›9Ó%ò 	HˆDØ�‰˜Ô/Ü  dÓ+�Ø×!Ñ!×(Ñ(Ø™: e¨QÓ/±¸EÀ1Ó1EÐFõHà—‘ Õ/Ü  dÓ+�Ø—‘×&Ñ&Ø™: e¨QÓ/±¸EÀ1Ó1EÐFõHð	Hô 	�	‰	�‰�tÔÜ—‘—‘ §¡¨¯©Ó0ˆ�r   c              #   óŽ   K  — | j                   D ]2  \  }}}t        j                  j                  d«      D ]
  }||||f–— Œ Œ4 y ­w)Nr?   )re   r,   ro   rq   )rF   rr   r   r   Úold_phi0s        r   Úscalar_iterzTestLineSearch.scalar_iter}   sM   è ø€ Ø!%×!2Ñ!2ò 	2ÑˆD�#�vÜŸI™IŸO™O¨AÓ.ò 2�Ø˜C ¨Ð1Ó1ñ2ñ	2ùs   ‚AAc              #   óŒ  K  — t         j                  j                  d«      }| j                  D ]’  \  }}}d}|dk  sŒ|j	                  | j
                  «      }|j	                  | j
                  «      }t        j                  | ||«      «      dk\  rŒ\|dz  }t        |j	                  «       «      }||||||f–— |dk  rŒ„Œ” y ­w)Nrd   r   é	   r   )r,   ro   ÚRandomStaterf   rq   rg   r-   Úfloat)	rF   Úrngrr   r&   r.   Úkr(   r'   Úold_fvs	            r   Ú	line_iterzTestLineSearch.line_iter‚   s²   è ø€ Ü�i‰i×#Ñ# DÓ)ˆØ#Ÿ™ò 
	4‰OˆD�!�VØˆAØ�a“%Ø—I‘I˜dŸf™fÓ%�Ø—I‘I˜dŸf™fÓ%�Ü—6‘6˜!™V A›YÓ'¨1Ò,àØ�Q‘�Ü˜sŸy™y›{Ó+�Ø˜A˜v q¨!¨VÐ3Ò3ð �a”%ñ
	4ùs   ‚:C½BCÃCc           
      ó  — d}| j                  «       D ]j  \  }}}}|dz  }t        j                  || |d«      | |d«      «      \  }}}t        | |d«      |«       t        | ||«      |«       t	        ||||¬«       Œl |dkD  sJ ‚y )Nr   r   ©r   r?   )rw   ÚlsÚscalar_search_wolfe1r:   r   )	rF   r>   rr   r   r   rv   r   r   r   s	            r   Útest_scalar_search_wolfe1z(TestLineSearch.test_scalar_search_wolfe1’   s–   € ØˆØ+/×+;Ñ+;Ó+=ò 	7Ñ'ˆD�#�v˜xØ�‰FˆAÜ×3Ñ3°C¸ÁÀQÃØ4<¹fÀQ»ióI‰MˆAˆt�Tä˜D¡# a£&¨$Ô/Ü˜D¡# a£&¨$Ô/Ü˜˜C °Ö6ð	7ð �1Šuˆ‰ur   c           
      ó,  — | j                  «       D ]�  \  }}}}t        j                  || |d«      | |d«      «      \  }}}}t        | |d«      |«       t        | ||«      |«       |�t        | ||«      |«       t	        ||||› d|d›�¬«       Œƒ y ©Nr   ú Úgr�   )rw   r‚   Úscalar_search_wolfe2r:   r   )	rF   rr   r   r   rv   r   r   r   r   s	            r   Útest_scalar_search_wolfe2z(TestLineSearch.test_scalar_search_wolfe2ž   s¢   € Ø+/×+;Ñ+;Ó+=ò 	IÑ'ˆD�#�v˜xÜ%'×%<Ñ%<Ø�V™S ›V X©v°a«yó&:Ñ"ˆAˆt�T˜7ä˜D¡# a£&¨$Ô/Ü˜D¡# a£&¨$Ô/ØÐ"Ü ©°«°DÔ9Ü˜˜C °D°6¸¸8ÀA¸,Ð1GÖHñ	Ir   c                 óZ   — d„ }d„ }t        j                  ||d¬«      \  }}}}|�J ‚|�J ‚y )Nc                 ó   — | dz
  dz  S )Né   rB   r   ©Úalphas    r   r   zCTestLineSearch.test_scalar_search_wolfe2_with_low_amax.<locals>.phi©   s   € Ø˜A‘I !Ñ#Ð#r   c                 ó   — d| dz
  z  S )NrB   r�   r   rŽ   s    r   r   zFTestLineSearch.test_scalar_search_wolfe2_with_low_amax.<locals>.derphi¬   s   € Ø˜ ™	‘?Ð"r   gü©ñÒMbP?©Úamax©r‚   r‰   )rF   r   r   Ú
alpha_starÚ_Úderphi_stars         r   Ú'test_scalar_search_wolfe2_with_low_amaxz6TestLineSearch.test_scalar_search_wolfe2_with_low_amax¨   sD   € ò	$ò	#ô )+×(?Ñ(?ÀÀVÐRWÔ(XÑ%ˆ
�A�q˜+ØÐ!Ð!Ð!ØÐ"Ð"Ñ"r   c                 óT   — d„ }d„ }t        j                  ||«      \  }}}}|dk  sJ ‚y )Nc                 ó¾   — | dk  rdt         j                  z  dz  | dz
  z  S t        j                  dt         j                  z  dz  | z  t         j                  z
  «      S ©Nr   éýÿÿÿrB   r?   )r,   ÚpirP   rŽ   s    r   r   z@TestLineSearch.test_scalar_search_wolfe2_regression.<locals>.phi¶   sM   € Ø�qŠyØœ2Ÿ5™5‘y ‘{ e¨a¡iÑ0Ð0ä—v‘v˜a¤§¡™g a™i¨%Ñ/´"·%±%Ñ7Ó8Ð8r   c                 óà   — | dk  rdt         j                  z  dz  S dt         j                  z  dz  t        j                  dt         j                  z  dz  | z  t         j                  z
  «      z  S rš   )r,   rœ   rO   rŽ   s    r   r   zCTestLineSearch.test_scalar_search_wolfe2_regression.<locals>.derphi¼   sU   € Ø�qŠyØœ2Ÿ5™5‘y ‘{Ð"àœ2Ÿ5™5‘y ‘{¤R§V¡V¨A¬b¯e©e©G°A©I¸Ñ,=ÄÇÁÑ,EÓ%FÑFÐFr   g      ø?r“   )rF   r   r   r   r•   s        r   Ú$test_scalar_search_wolfe2_regressionz3TestLineSearch.test_scalar_search_wolfe2_regression³   s6   € ò	9ò	Gô ×,Ñ,¨S°&Ó9‰
ˆˆ1ˆa�ð �3Šwˆ‰wr   c           	      óÒ   — | j                  «       D ]T  \  }}}}t        j                  | |d«       |d«      «      \  }}t        | ||«      |«       t	        |||› d|d›�¬«       ŒV y r†   )rw   r‚   Úscalar_search_armijor:   r    )rF   rr   r   r   rv   r   r   s          r   Útest_scalar_search_armijoz(TestLineSearch.test_scalar_search_armijoÇ   sn   € Ø+/×+;Ñ+;Ó+=ò 	BÑ'ˆD�#�v˜xÜ×-Ñ-¨c±3°q³6¹6À!»9ÓE‰GˆAˆtÜ˜D¡# a£&¨$Ô/Ü˜!˜S¨T¨F°!°H¸Q°<Ð*@ÖAñ	Br   c                 óè  — d}d}| j                  «       D ]Ô  \  }}}}}} ||«      }	 ||«      }
d| j                  _        t        j                  |||||
|	||¬«      \  }}}}}}t        | j                  j                  ||z   «       t        | ||«      «       |€Œ‡t        | ||||z  z   «      «       t        | ||||z  z   «      d¬«       ||k  sŒ¿|dz  }t        ||||||¬«       ŒÖ |dkD  sJ ‚y )	Nr   éd   r‘   é   ©Údecimalr   r�   r?   )	r   rD   r>   r‚   Úline_search_wolfe1r   r:   r   r0   )rF   r>   Úsmaxrr   r&   r.   r(   r'   Úold_fÚf0Úg0r   ÚfcÚgcÚfvÚofvÚgvs                    r   Útest_line_search_wolfe1z&TestLineSearch.test_line_search_wolfe1Ï   s	  € ØˆØˆØ,0¯N©NÓ,<ò 	DÑ(ˆD�!�V˜Q  5Ù�1“ˆBÙ˜“ˆBØˆD�K‰KŒMÜ%'×%:Ñ%:¸1¸fÀaÈØ;=¸rÀ5Ø@Dô&FÑ"ˆAˆr�2�r˜3 ô ˜Ÿ™Ÿ™¨¨2©Ô.Ü˜C¡ 1£Ô&ØˆyØÜ˜B¡ ! a¨¡c¡'£
Ô+Ü% b©&°°Q°q±S±«/À2ÕFØ�4‹xØ�Q‘�Ü! ! Q¨¨1¨f¸dÖCð	Dð" �1Šuˆ‰ur   c                 ó€  — d}d}| j                  «       D �]  \  }}}}}} ||«      }	 ||«      }
d| j                  _        t        «       5 }|j	                  t
        d«       |j	                  t
        d«       t        j                  |||||
|	||¬«      \  }}}}}}d d d «       t        | j                  j                  z   «       t         ||«      «       t         |||z  z   «      «       �t        | ||||z  z   «      d¬«       ||k  sŒþ|dz  }t        ||||||¬	«       �Œ |d
kD  sJ ‚y # 1 sw Y   Œ™xY w)Nr   i   z3The line search algorithm could not find a solutionz*The line search algorithm did not converger‘   r¤   r¥   r   r�   r?   )r   rD   r>   r   Úfilterr   r‚   Úline_search_wolfe2r   r:   r   r0   )rF   r>   r¨   rr   r&   r.   r(   r'   r©   rª   r«   Úsupr   r¬   r­   r®   r¯   r°   s                     r   Útest_line_search_wolfe2z&TestLineSearch.test_line_search_wolfe2å   sM  € ØˆØˆØ,0¯N©NÓ,<ó 	DÑ(ˆD�!�V˜Q  5Ù�1“ˆBÙ˜“ˆBØˆD�K‰KŒMÜ"Ó$ð J¨Ø—
‘
Ô,ØPôRà—
‘
Ô,ØGôIä)+×)>Ñ)>¸qÀ&È!ÈQØ?AÀ2ÀuØDHô*JÑ&��2�r˜2˜s B÷Jô ˜Ÿ™Ÿ™¨¨2©Ô.Ü˜C¡ 1£Ô&Ü˜B¡ ! a¨¡c¡'£
Ô+Øˆ~Ü)¨"©f°Q¸¸1¹±W«oÀrÕJØ�4‹xØ�Q‘�Ü! ! Q¨¨1¨f¸d×Cð'	Dð( �1Šuˆ‰u÷!Jð Jús   ÁAD4Ä4D=	c           
      óX  — d„ }d„ }t        j                  ddg«      }d|z  }d}t        j                  ||||d|¬«      \  }}}}}}t	        |||||«       t        t        t        j                  ||||d	|¬«      \  }}}}}}|�J ‚t        t        t        j                  |||||d
¬«       y )Nc                 ó.   — t        j                  | | «      S r#   r+   ©r(   s    r   r&   z8TestLineSearch.test_line_search_wolfe2_bounds.<locals>.f  s   € Ü—6‘6˜!˜Q“<Ðr   c                 ó   — d| z  S )NrB   r   r¹   s    r   Úfpz9TestLineSearch.test_line_search_wolfe2_bounds.<locals>.fp  s   € Ø�q‘5ˆLr   r   r   iÄÿÿÿg      à?é   )r’   r   é   r�   )r   Úmaxiter)r,   Úarrayr‚   r´   r0   r   r   )rF   r&   r»   r'   r(   r   r   r•   s           r   Útest_line_search_wolfe2_boundsz-TestLineSearch.test_line_search_wolfe2_boundsþ   sÃ   € ò	 ò	ä�H‰H�a˜�VÓˆð �!‰GˆØˆä×0Ñ0°°B¸¸1À2È"ÔMÑˆˆ1ˆa��A�qÜ˜!˜Q  1 bÔ)ä'Ô(9Ü(*×(=Ñ(=¸qÀ"ÀaÈØ-/°Bô8Ñˆˆ1ˆa��A�qð ˆyÐˆyô 	Ô&¬×(=Ñ(=¸qÀ"ÀaÈØ Aö	'r   c           	      ód  — d}| j                  «       D ]”  \  }}}}}} ||«      } ||«      }	d| j                  _        t        j                  ||||	|«      \  }
}}|dz  }t        | j                  j                  |«       t        | |||
|z  z   «      «       t        |||
||¬«       Œ– |dk\  sJ ‚y )Nr   r   r�   ry   )r   rD   r>   r‚   Úline_search_armijor   r:   r3   )rF   r>   rr   r&   r.   r(   r'   r©   rª   r«   r   r¬   r®   s                r   Útest_line_search_armijoz&TestLineSearch.test_line_search_armijo  s³   € ØˆØ,0¯N©NÓ,<ò 	9Ñ(ˆD�!�V˜Q  5Ù�1“ˆBÙ˜“ˆBØˆD�K‰KŒMÜ×-Ñ-¨a°°A°r¸2Ó>‰IˆAˆr�2Ø�‰FˆAÜ˜Ÿ™Ÿ™¨Ô+Ü˜B¡ ! a¨¡c¡'£
Ô+Ü˜q ! Q¨°4Ö8ð	9ð �AŠvˆ‰vr   c                 ó¨   ‡— dgŠˆfd„}t        j                  | |d«      dd¬«      \  }}t        |d«       t        ‰d   d«       t        ||«       y )Nr   c                 ó6   •— ‰dxx   dz  cc<   |  d| dz  z  z   S )Nr   r   g{®Gáz„?rB   r   ©r   Úcounts    €r   r   z3TestLineSearch.test_armijo_terminate_1.<locals>.phi/  ó$   ø€ Ø�!‹H˜‰M‹HØ�2˜˜Q ™T™	‘>Ð!r   rA   r   )Úalpha0rB   )r‚   r    r   r    )rF   r   r   r   rÇ   s       @r   Útest_armijo_terminate_1z&TestLineSearch.test_armijo_terminate_1*  sS   ø€ ð �ˆô	"ô ×)Ñ)¨#©s°1«v°rÀ!ÔD‰ˆˆ4Ü�Q˜ÔÜ�U˜1‘X˜qÔ!Ü�a˜Õr   c           
      ó  ‡— ˆfd„}ˆfd„}t         j                  t         j                  fD ]W  }dgŠ ||| |d«      d  |d«      «      }|d   €	J ||f«       ‚‰d   dk  s	J ‰|f«       ‚t        |d   ||t	        |«      ¬«       ŒY y )Nc                 ó6   •— ‰dxx   dz  cc<   |  d| dz  z  z   S )Nr   r   gš™™™™™©?rB   r   rÆ   s    €r   r   z0TestLineSearch.test_wolfe_terminate.<locals>.phi;  rÈ   r   c                 ó.   •— ‰dxx   dz  cc<   dd| z  z   S )Nr   r   rA   gš™™™™™¹?r   rÆ   s    €r   r   z3TestLineSearch.test_wolfe_terminate.<locals>.derphi?  s   ø€ Ø�!‹H˜‰M‹HØ˜˜q™‘=Ð r   r   r@   r�   )r‚   rƒ   r‰   r   Ústr)rF   r   r   r_   ÚrrÇ   s        @r   Útest_wolfe_terminatez#TestLineSearch.test_wolfe_terminate7  sš   ø€ ô	"ô	!ô ×,Ñ,¬b×.EÑ.EÐFò 	?ˆDØ�CˆEÙ�S˜&¡# a£&¨$±°q³	Ó:ˆAØ�Q‘4Ð#Ð. a¨ YÓ.Ð#Ø˜‘8˜uÒ$Ð3 u¨d mÓ3Ð$Ü˜˜1™˜s F´C¸³IÖ>ñ	?r   N)Ú__name__Ú
__module__Ú__qualname__rH   rL   rQ   rU   rY   rt   rw   r   r„   rŠ   r—   rž   r¡   r±   r¶   ÚpytestÚmarkÚthread_unsaferÀ   rÃ   rÊ   rÐ   r   r   r   r<   r<   8   s|   „ òòòòòò1ò.2ò
4ò 
òIò	#òò(Bòò,ð2 ‡[�[×Ññ'ó ð'ò8òó?r   r<   )ç-Cëâ6?gÍÌÌÌÌÌì?Ú )r×   rØ   )rØ   é2   )Ú__doc__Únumpy.testingr   r   r   r   r   Úscipy.optimize._linesearchÚoptimizeÚ_linesearchr‚   r   Únumpyr,   rÔ   rh   r   r    r0   r3   r:   r<   r   r   r   ú<module>rà      sO   ðñ÷.õ .÷ (Ð 'Ý 8Û Û Û óEó(òFò
7ó7÷P?ò P?r   