Ë
    âQ(hå„  ã                   ó
  — d dl mZ d dlZd dlmZ d dlmZ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 d dlmZmZ d d	lmZ d d
lmZmZmZ d/d„Zd0d„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d0d„Z&d„ Z' G d„ d«      Z( G d„ d«      Z)d„ Z* e+ ejX                  «       «      e*gz   Z- G d„ d«      Z. G d„ d«      Z/ G d „ d!«      Z0 G d"„ d#«      Z1 G d$„ d%e.e/e0e1«      Z2 G d&„ d'e.e/e0e1«      Z3 G d(„ d)e.«      Z4d*„ Z5d+„ Z6d,„ Z7d-„ Z8d.„ Z9y)1é    )ÚproductN)Únorm)Úassert_Úassert_allcloseÚassert_equalÚsuppress_warnings)Úraises)ÚissparseÚ
lil_matrix)Úaslinearoperator)Úleast_squaresÚBounds)ÚIMPLEMENTED_LOSSES)ÚEPSÚmake_strictly_feasibleÚCL_scaling_vectorc                 ó   — | |z
  dz  dz   S )Né   ç      @© ©ÚxÚas     úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_least_squares.pyÚfun_trivialr      s   € Ø�‰E�A‰:˜ÑÐó    c                 ó   — d| |z
  z  S ©Nr   r   r   s     r   Újac_trivialr      s   € Ø��A‘‰;Ðr   c                 ó<   — t        j                  | d   | d   g«      S ©Nr   é   ©ÚnpÚarray©r   s    r   Úfun_2d_trivialr'      s   € Ü�8‰8�Q�q‘T˜1˜Q™4�LÓ!Ð!r   c                 ó,   — t        j                  d«      S r   )r$   Úidentityr&   s    r   Újac_2d_trivialr*      s   € Ü�;‰;�q‹>Ðr   c                 óZ   — t        j                  d| d   | d   dz  z
  z  d| d   z
  g«      S )Né
   r"   r   r   r#   r&   s    r   Úfun_rosenbrockr-   !   s3   € Ü�8‰8�R˜1˜Q™4 ! A¡$¨¡'™>Ñ*¨Q°°1±©XÐ7Ó8Ð8r   c                 óD   — t        j                  d| d   z  dgddgg«      S )Néìÿÿÿr   r,   éÿÿÿÿr#   r&   s    r   Újac_rosenbrockr1   %   s/   € Ü�8‰8Ø	ˆq�‰t‰�RÐØ	ˆQˆðó ð r   c                 óJ   — t        j                  d| d   z  dgddgddgg«      S )Nr/   r   r,   r0   ç        r#   r&   s    r   Újac_rosenbrock_bad_dimr4   ,   s6   € Ü�8‰8Ø	ˆq�‰t‰�RÐØ	ˆQˆØ	ˆcˆ
ðó ð r   c                 ó   — t        | «      d   S ©Nr   )r-   r&   s    r   Úfun_rosenbrock_croppedr7   4   ó   € Ü˜!Ó˜QÑÐr   c                 ó   — t        | «      d   S r6   )r1   r&   s    r   Újac_rosenbrock_croppedr:   8   r8   r   c                 ó>   — t        j                  | | dz  | dz  g«      S )Nr   é   r#   r&   s    r   Úfun_wrong_dimensionsr=   =   s   € Ü�8‰8�Q˜˜1™˜a ™d�OÓ$Ð$r   c                 óB   — t        j                  t        | |¬«      «      S )N)r   )r$   Ú
atleast_3dr   r   s     r   Újac_wrong_dimensionsr@   A   s   € Ü�=‰=œ Q¨!Ô,Ó-Ð-r   c                 ód  — t        t        j                  | j                  d   «      «      }t        j                  |dz   |dz   f«      }| j                  ||f«      } | |dd…dd…f<   |d d…dd…f   |dd …dd…f   z   |dd…d d…f   z   |dd…dd …f   z   d| z  z
  | dz  z   }|j                  «       S )Nr   r   r"   r0   éþÿÿÿé   r<   )Úintr$   ÚsqrtÚshapeÚzerosÚreshapeÚravel)r   ÚnÚuÚys       r   Úfun_bvprM   E   sÌ   € ÜŒB�G‰G�A—G‘G˜A‘JÓÓ €AÜ
�‰�!�a‘%˜˜Q™�Ó €AØ	�	‰	�1�a�&Ó€AØ€A€aˆ€dˆAˆbˆD€j�MØ	ˆ#ˆ2ˆ#ˆq�ˆtˆ)‰�q˜™˜Q˜r˜T˜‘{Ñ" Q q¨ t¨S¨b¨S y¡\Ñ1°A°a¸°d¸A¹B°h±KÑ?À!ÀaÁ%ÑGÈ!ÈQÉ$ÑN€AØ�7‰7‹9Ðr   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚBroydenTridiagonalc                 óü  ‡ — t         j                  j                  d«      }|‰ _        t        j                  |«       ‰ _        t        j                  dd|«      ‰ _        t        j                  dd|«      ‰ _        ‰ xj                  d|j                  |«      z  z  c_        ‰ xj                  d|j                  |«      z  z  c_        ‰ xj
                  d|j                  |«      z  z  c_        t        ‰ j
                  ‰ j                  ‰ j                  «      ‰ _        |dk(  r¦t        ||ft        ¬«      ‰ _        t        j                  |«      }d	‰ j                  ||f<   t        j                  d	|«      }d	‰ j                  ||d	z
  f<   t        j                  |d	z
  «      }d	‰ j                  ||d	z   f<   ‰ j                  ‰ _        y |d
k(  rˆ fd„‰ _        y |dk(  rd ‰ _        ˆ fd„‰ _        y t#        d«       y )Nr   rB   ç      ø¿gš™™™™™é¿r3   çš™™™™™¹?Úsparse)Údtyper"   Úoperatorc                 ó8   •— t        ‰j                  | «      «      S ©N)r   Ú_jac©r   Úselfs    €r   ú<lambda>z-BroydenTridiagonal.__init__.<locals>.<lambda>i   s   ø€ Ô!1°$·)±)¸A³,Ó!?€ r   Údensec                 óB   •— ‰j                  | «      j                  «       S rW   )rX   ÚtoarrayrY   s    €r   r[   z-BroydenTridiagonal.__init__.<locals>.<lambda>l   s   ø€  §¡¨1£×!5Ñ!5Ó!7€ r   F)r$   ÚrandomÚRandomStaterJ   ÚonesÚx0ÚlinspaceÚlbÚubÚrandnr   r   rD   ÚsparsityÚarangerX   Újacr   )rZ   rJ   ÚmodeÚrngÚis   `    r   Ú__init__zBroydenTridiagonal.__init__O   s€  ø€ Ü�i‰i×#Ñ# AÓ&ˆàˆŒä—7‘7˜1“:�+ˆŒÜ—+‘+˜b $¨Ó*ˆŒÜ—+‘+˜d C¨Ó+ˆŒà�Š�3˜Ÿ™ 1›Ñ%Ñ%�Ø�Š�3˜Ÿ™ 1›Ñ%Ñ%�à�Š�3˜Ÿ™ 1›Ñ%Ñ%�Ü(¨¯©°$·'±'¸4¿7¹7ÓCˆŒà�8ÒÜ&¨¨1 v´SÔ9ˆDŒMÜ—	‘	˜!“ˆAØ"#ˆD�M‰M˜!˜Q˜$ÑÜ—	‘	˜!˜Q“ˆAØ&'ˆD�M‰M˜!˜Q ™U˜(Ñ#Ü—	‘	˜!˜a™%Ó ˆAØ&'ˆD�M‰M˜!˜Q ™U˜(Ñ#à—y‘yˆD�HØ�ZÒÛ?ˆD�HØ�WŠ_Ø ˆDŒMÛ7ˆD�Hä�E�Nr   c                 óf   — d|z
  |z  dz   }|dd xxx |d d z  ccc |d dxxx d|dd  z  z  ccc |S )Nr<   r"   r0   r   r   )rZ   r   Úfs      r   ÚfunzBroydenTridiagonal.funp   sG   € Ø�‰U�a‰K˜!‰OˆØ	ˆ!ˆ"‹��3�B�‰‹Ø	ˆ#ˆ2‹�!�a˜˜�e‘)Ñ‹Øˆr   c                 óL  — t        | j                  | j                  f«      }t        j                  | j                  «      }dd|z  z
  |||f<   t        j                  d| j                  «      }d|||dz
  f<   t        j                  | j                  dz
  «      }d|||dz   f<   |S )Nr<   r   r"   r0   rB   )r   rJ   r$   rh   )rZ   r   ÚJrl   s       r   rX   zBroydenTridiagonal._jacv   s‘   € Ü˜Ÿ™ §¡Ð'Ó(ˆÜ�I‰I�d—f‘fÓˆØ�a˜!‘e‘)ˆˆ!ˆQˆ$‰Ü�I‰I�a˜Ÿ™Ó ˆØˆˆ!ˆQ�‰Uˆ(‰Ü�I‰I�d—f‘f˜q‘jÓ!ˆØˆˆ!ˆQ�‰Uˆ(‰Øˆr   N)éd   rS   )Ú__name__Ú
__module__Ú__qualname__rm   rp   rX   r   r   r   rO   rO   N   s   „ óòBór   rO   c                   ó(   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zy)ÚExponentialFittingProblemz]Provide data and function for exponential fitting in the form
    y = a + exp(b * x) + noise.Nc                 óV  — t         j                  j                  |«      }|| _        d| _        t        j
                  d«      | _        t        j                  |d   |d   |«      | _        |t        j                  || j                  z  «      z   | _
        | xj                  ||j                  | j                  «      z  z  c_
        |j                  d| j                  |«      }	| j                  |	xx   d|z  |j                  |«      z  z  cc<   t        j                  ||g«      | _        y )Nr   r   r"   é2   )r$   r_   r`   ÚmrJ   rG   Úp0rc   r   ÚexprL   rf   ÚrandintÚrandr%   Úp_opt)
rZ   r   ÚbÚnoiseÚ
n_outliersÚx_rangeÚn_pointsÚrandom_seedrk   Úoutlierss
             r   rm   z"ExponentialFittingProblem.__init__…   sÜ   € ä�i‰i×#Ñ# KÓ0ˆØˆŒØˆŒä—(‘(˜1“+ˆŒÜ—‘˜W Q™Z¨°©°XÓ>ˆŒà”R—V‘V˜A §¡™JÓ'Ñ'ˆŒØ�Š�%˜#Ÿ)™) D§F¡FÓ+Ñ+Ñ+�à—;‘;˜q $§&¡&¨*Ó5ˆØ�‰ˆxÓ˜B ™J¨¯©°*Ó)=Ñ=Ñ=Óä—X‘X˜q !˜fÓ%ˆ�
r   c                 ór   — |d   t        j                  |d   | j                  z  «      z   | j                  z
  S r!   )r$   r}   r   rL   ©rZ   Úps     r   rp   zExponentialFittingProblem.fun–   s/   € Ø�‰t”b—f‘f˜Q˜q™T D§F¡F™]Ó+Ñ+¨d¯f©fÑ4Ð4r   c                 óà   — t        j                  | j                  | j                  f«      }d|d d …df<   | j                  t        j
                  |d   | j                  z  «      z  |d d …df<   |S )Nr"   r   )r$   Úemptyr{   rJ   r   r}   )rZ   rŠ   rr   s      r   ri   zExponentialFittingProblem.jac™   sZ   € Ü�H‰H�d—f‘f˜dŸf™fÐ%Ó&ˆØˆŠ!ˆQˆ$‰Ø—&‘&œ2Ÿ6™6 ! A¡$¨¯©¡-Ó0Ñ0ˆŠ!ˆQˆ$‰Øˆr   )r"   )r0   r"   é   N)rt   ru   rv   Ú__doc__rm   rp   ri   r   r   r   rx   rx   �   s   „ ñ#ð ;BØ*.ó&ò"5ór   rx   c                 ó”   — t        j                  d| j                  f«      }d| z   }d|dz  dz
  z  |d<   |dz  |d<   d|dz  z  |d<   |S )Nr<   r"   gUUUUUUÕ?r   gUUUUUUå¿g«ªªªªªú¿r   )r$   rŒ   Úsize)ÚzÚrhoÚts      r   Úcubic_soft_l1r”       s[   € Ü
�(‰(�A�q—v‘v�;Ó
€Cà	ˆA‰€AØ�!�c‘(˜Q‘,Ñ€Cˆ�FØ�4‰[€Cˆ�FØ�A˜‘IÑ€Cˆ�Fà€Jr   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d„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	BaseMixinc                 ó¾   — t        t        d| j                  ¬«      }t        |j                  dd¬«       t        |j
                  t        |j                  «      «       y )Nç       @©Úmethodr   ç-Cëâ6?©Úatol)r   r   rš   r   r   rp   ©rZ   Úress     r   Ú
test_basiczBaseMixin.test_basic¯   s;   € äœK¨°D·K±KÔ@ˆÜ˜Ÿ™˜q tÕ,Ü˜Ÿ™¤¨S¯U©UÓ!3Õ4r   c           	      ó  — d}dddt         fD ]ê  }t        «       5 }|j                  t        d«       t	        t
        d||f| j                  ¬«      }t	        t
        d|d|i| j                  ¬	«      }d d d «       t        j                  |d
¬«       t        j                  |d
¬«       t        t        t        t
        dd| j                  ¬«       t        t        t        t
        dddi| j                  ¬	«       Œì y # 1 sw Y   ŒŒxY w)Nç      @ú2-pointú3-pointÚcsúBjac='(3-point|cs)' works equivalently to '2-point' for method='lm'r˜   )Úargsrš   r   )Úkwargsrš   r›   )Úrtol)r<   rC   Úkaboomr<   )r   r   ÚfilterÚUserWarningr   r   rš   r   r   Úassert_raisesÚ	TypeError)rZ   r   ri   ÚsuprŸ   Úres1s         r   Útest_args_kwargszBaseMixin.test_args_kwargsµ   sã   € àˆØ˜y¨$´Ð<ò 	DˆCÜ"Ó$ð 8¨Ø—
‘
ÜØXôô $¤K°°cÀÀØ+/¯;©;ô8�ä$¤[°#°sÀCÈÀ8Ø+/¯;©;ô8�÷8ô ˜CŸE™E 1¨4Õ0Ü˜DŸF™F A¨DÕ1äœ)¤]´KÀØ&¨t¯{©{õ<äœ)¤]´KÀØ"*¨A °t·{±{öDñ!	D÷8ð 8ús   šAC;Ã;D	c                 óD  — dddt         fD ]`  }t        «       5 }|j                  t        d«       t	        t
        d|| j                  ¬«      }d d d «       t        j                  dd¬	«       Œb t        t        t        t
        dd
| j                  ¬«       y # 1 sw Y   ŒKxY w)Nr£   r¤   r¥   r¦   r˜   r™   r   r›   rœ   Úoops©ri   rš   )r   r   r«   r¬   r   r   rš   r   r   r­   Ú
ValueError)rZ   ri   r¯   rŸ   s       r   Útest_jac_optionszBaseMixin.test_jac_optionsË   s�   € Ø˜y¨$´Ð<ò 	1ˆCÜ"Ó$ð O¨Ø—
‘
ÜØXôô $¤K°°cÀ$Ç+Á+ÔN�÷Oô ˜CŸE™E 1¨4Ö0ð	1ô 	”j¤-´¸cÀvØ!Ÿ[™[ö	*÷Oð Oús   ˜4BÂB	c                 ó|   — dD ]7  }t        t        d|| j                  ¬«      }t        |j                  dd¬«       Œ9 y )N)Né   r˜   )Úmax_nfevrš   r   r›   rœ   )r   r   rš   r   r   )rZ   r¹   rŸ   s      r   Útest_nfev_optionszBaseMixin.test_nfev_optionsØ   s8   € Ø"ò 	1ˆHÜ¤¨S¸8Ø'+§{¡{ô4ˆCä˜CŸE™E 1¨4Ö0ñ	1r   c                 óÈ  — dt        j                  dg«      dfD ]*  }t        t        d|¬«      }t	        |j
                  d«       Œ, t        t        t        t        dd| j                  ¬«       t        t        t        t        dd	| j                  ¬«       t        t        t        t        dd | j                  ¬«       t        t        t        t        dd
| j                  ¬«       y )Nç      ð?ç      à?ri   r˜   )Úx_scaler   Úauto)r¾   rš   ç      ð¿y      ð?       @)	r$   r%   r   r   r   r   r­   rµ   rš   )rZ   r¾   rŸ   s      r   Útest_x_scale_optionszBaseMixin.test_x_scale_optionsÞ   s¥   € ØœRŸX™X s e›_¨eÐ4ò 	&ˆGÜ¤¨S¸'ÔBˆCÜ˜CŸE™E 1Õ%ð	&ô 	”j¤-´Ø 6°$·+±+õ	?ä”j¤-´Ø 4°·±õ	=ä”j¤-´Ø 4°·±õ	=ä”j¤-´Ø 8°D·K±Kö	Ar   c                 óÂ  — t        t        dd| j                  ¬«      }t        t        dd| j                  ¬«      }t        t        dd | j                  ¬«      }t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  |j                  «       t        |j                  |j                  «       y )Nr˜   rR   )Ú	diff_steprš   gš™™™™™¹¿r   r›   rœ   )r   r   rš   r   r   r   Únfev)rZ   r°   Úres2Úres3s       r   Útest_diff_stepzBaseMixin.test_diff_stepë   sž   € ô œ[¨#¸Ø$(§K¡Kô1ˆäœ[¨#¸Ø$(§K¡Kô1ˆäœ[¨#Ø'+°D·K±KôAˆä˜Ÿ™ ¨Õ-Ü˜Ÿ™ ¨Õ-Ü˜Ÿ™ ¨Õ-Ü�T—V‘V˜TŸV™VÔ$Ü�T—Y‘Y §	¡	Õ*r   c           	      ó¨   — t        t        t        t        d| j                  ddi¬«       t        t        t        t        d| j                  ddi¬«       y )Nr˜   Úno_such_optionrs   )rš   Úoptionsr¹   )r­   r®   r   r   rš   ©rZ   s    r   Útest_incorrect_options_usagez&BaseMixin.test_incorrect_options_usageú   sA   € Ü”i¤´¸SØ!Ÿ[™[Ð3CÀSÐ2Iõ	Kä”i¤´¸SØ!Ÿ[™[°:¸sÐ2Cö	Er   c                 ó¸  — t        t        d| j                  ¬«      }t        |j                  dd¬«       t        |j
                  d«       t        |j                  d«       t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  d«       | j                  d	k(  r0t        |j                  d
k  «       t        |j                  d u «       n0t        |j                  dk  «       t        |j                  dk  «       t        |j                  dkD  «       t        |j                   «       y )Nr˜   r™   r   r›   rœ   g      )@é   ç{®Gáz„?Úlmé   r,   )r   r   rš   r   r   Úcostrp   ri   ÚgradÚ
optimalityr   Úactive_maskr   rÄ   ÚnjevÚstatusÚsuccessrž   s     r   Útest_full_resultzBaseMixin.test_full_result   sé   € ô œK¨°T·[±[ÔAˆÜ˜Ÿ™˜q tÕ,Ü˜Ÿ™ $Ô'Ü˜Ÿ™ Ô#Ü˜Ÿ™ ¨Õ.Ü˜Ÿ™ !¨$Õ/Ü˜Ÿ™¨°Õ5Ü�S—_‘_ aÔ(Ø�;‰;˜$ÒÜ�C—H‘H˜r‘MÔ"Ü�C—H‘H Ð$Õ%ä�C—H‘H˜r‘MÔ"Ü�C—H‘H˜r‘MÔ"Ü�—
‘
˜Q‘ÔÜ�—‘Õr   c                 ó  — | j                   dk(  ry t        t        d| j                   d¬«      }t        |j                  t        j                  dg«      «       t        |j                  d«       t        |j                  t        j                  dg«      «       t        |j                  t        j                  dgg«      «       t        |j                  t        j                  d	g«      «       t        |j                  d	«       t        |j                  t        j                  d
g«      «       t        |j                  d«       t        |j                  d«       t        |j                  d
«       t        |j                   d
«       y )NrÐ   r˜   r"   )rš   r¹   r   g     @D@é	   rC   é$   r   )rš   r   r   r   r   r$   r%   rÒ   rp   ri   rÓ   rÔ   rÕ   rÄ   rÖ   r×   rØ   rž   s     r   Útest_full_result_single_fevz%BaseMixin.test_full_result_single_fev  sø   € ð �;‰;˜$ÒØäœK¨°T·[±[Ø%&ô(ˆä�S—U‘UœBŸH™H a S›MÔ*Ü�S—X‘X˜tÔ$Ü�S—W‘WœbŸh™h¨ s›mÔ,Ü�S—W‘WœbŸh™h¨¨ u›oÔ.Ü�S—X‘XœrŸx™x¨¨›~Ô.Ü�S—^‘^ RÔ(Ü�S—_‘_¤b§h¡h°¨s£mÔ4Ü�S—X‘X˜qÔ!Ü�S—X‘X˜qÔ!Ü�S—Z‘Z Ô#Ü�S—[‘[ !Õ$r   c           
      óX  — ddg}ddg}t        dddt        gdt        j                  ddg«      dgd	d
g«      D ]d  \  }}}t	        «       5 }|j                  t        d«       t        t        ||||| j                  ¬«      }d d d «       t        j                  |«       Œf y # 1 sw Y   Œ"xY w)NrB   r"   r£   r¤   r¥   r¼   çš™™™™™É?ri   ÚexactÚlsmrr¦   ©r¾   Ú	tr_solverrš   )r   r1   r$   r%   r   r«   r¬   r   r-   rš   r   r   )rZ   rb   Úx_optri   r¾   rã   r¯   rŸ   s           r   Útest_rosenbrockzBaseMixin.test_rosenbrock(  s½   € Ø�!ˆWˆØ�A�ˆÜ'.Ø˜I t¬^Ð<Ø”b—h‘h  S˜zÓ*¨EÐ2Ø˜&Ð!ó(#ò 	*Ñ#ˆC�˜)ô #Ó$ð M¨Ø—
‘
ÜØXôô $¤N°B¸ÀWØ.7ÀÇÁôM�÷Mô ˜CŸE™E 5Õ)ñ	*÷Mð Mús   Á	6B Â B)	c           	      óB  — ddg}| j                   dk(  rt        t        t        t        |d¬«       y t        dddt        gdt        j                  dd	g«      d
gddg«      D ]=  \  }}}t        t        ||||| j                   ¬«      }t        |j                  dd¬«       Œ? y )NrB   r"   rÐ   r™   r£   r¤   r¥   r¼   rß   ri   rà   rá   râ   r   g›+¡†›„=rœ   )rš   r­   rµ   r   r7   r   r:   r$   r%   r   rÒ   )rZ   rb   ri   r¾   rã   rŸ   s         r   Útest_rosenbrock_croppedz!BaseMixin.test_rosenbrock_cropped8  s¤   € Ø�!ˆWˆØ�;‰;˜$ÒÜœ*¤mÔ5KØ Tö+ô ,3Ø 	¨4Ô1GÐHØœ"Ÿ(™( C¨ :Ó.°Ð6Ø˜fÐ%ó,'ò 9Ñ'��W˜iô $Ü*¨B°¸WØ'°·±ô=�ô   §¡¨!°%Ö8ñ9r   c                 óP   — t        t        t        t        d| j                  ¬«       y ©Nr˜   r™   )r­   rµ   r   r=   rš   rË   s    r   Útest_fun_wrong_dimensionsz#BaseMixin.test_fun_wrong_dimensionsG  s   € Ü”j¤-Ô1EØ $§+¡+ö	/r   c                 óZ   — t        t        t        t        dt        | j
                  ¬«       y ré   )r­   rµ   r   r   r@   rš   rË   s    r   Útest_jac_wrong_dimensionsz#BaseMixin.test_jac_wrong_dimensionsK  s   € Ü”j¤-´ØÔ/¸¿¹ö	Er   c                 ób   — ddg}t        t        t        t        |t        | j
                  ¬«       y )Nr"   r   r™   )r­   rµ   r   r-   r4   rš   ©rZ   rb   s     r   Ú(test_fun_and_jac_inconsistent_dimensionsz2BaseMixin.test_fun_and_jac_inconsistent_dimensionsO  s%   € Ø�ˆVˆÜ”j¤-´ÀÜ,°T·[±[ö	Br   c                 óš   — t        j                  d«      j                  dd«      }t        t        t
        t        || j                  ¬«       y )NrC   r   r™   )r$   ra   rH   r­   rµ   r   r   rš   rî   s     r   Útest_x0_multidimensionalz"BaseMixin.test_x0_multidimensionalT  s3   € Ü�W‰W�Q‹Z×Ñ  1Ó%ˆÜ”j¤-´¸bØ!Ÿ[™[ö	*r   c                 óT   — d}t        t        t        t        || j                  ¬«       y )Nù       @        r™   ©r­   rµ   r   r   rš   rî   s     r   Útest_x0_complex_scalarz BaseMixin.test_x0_complex_scalarY  s   € ØˆÜ”j¤-´¸bØ!Ÿ[™[ö	*r   c                 óX   — ddg}t        t        t        t        || j                  ¬«       y )Nr¼   ró   r™   rô   rî   s     r   Útest_x0_complex_arrayzBaseMixin.test_x0_complex_array^  s#   € Ø�<Ð ˆÜ”j¤-´¸bØ!Ÿ[™[ö	*r   c                 óü   — d}t        j                  |dz  «      }| j                  dk(  rd}nd}t        t        |d| j                  |¬«      }t        |j                  |k  «       t        |j                  dk  «       y )	Nr,   r   rÐ   iˆ  rs   rÏ   )Úftolrš   r¹   r½   )r$   ra   rš   r   rM   r   rÄ   rÒ   )rZ   rJ   rb   r¹   rŸ   s        r   Útest_bvpzBaseMixin.test_bvpc  sl   € ð
 ˆÜ�W‰W�Q˜‘T‹]ˆØ�;‰;˜$ÒØ‰HàˆHÜœG R¨d¸4¿;¹;Ø%-ô/ˆô 	�—‘˜8Ñ#Ô$Ü�—‘˜3‘Õr   c           
      óV   — t        t        t        t        d| j                  d d d ¬«       y )Nr˜   )rš   rù   ÚxtolÚgtolrô   rË   s    r   Ú/test_error_raised_when_all_tolerances_below_epsz9BaseMixin.test_error_raised_when_all_tolerances_below_epst  s    € ä”j¤-´¸cØ!Ÿ[™[¨t¸$ÀTö	Kr   c           
      ó¾   — | j                   dk(  ry ddg}ddg}dD ]@  \  }}}t        t        |t        |||| j                   ¬«      }t	        |j
                  |«       ŒB y )NrÐ   rB   r"   ))ç:Œ0âŽyE>NN)Nr   N)NNr   )ri   rù   rý   rü   rš   )rš   r   r-   r1   r   r   )rZ   rb   rä   rù   rü   rý   rŸ   s          r   Ú0test_convergence_with_only_one_tolerance_enabledz:BaseMixin.test_convergence_with_only_one_tolerance_enabledy  sk   € Ø�;‰;˜$ÒØØ�!ˆWˆØ�A�ˆð!6ò 	*ÑˆD�$˜ô  ¤°¼Ø%)°¸4Ø'+§{¡{ô4ˆCô ˜CŸE™E 5Õ)ñ	*r   N)rt   ru   rv   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–   ®   sl   „ ò5òDò,*ò1òAò+òEòò(%ò(*ò 9ò/òEòBò
*ò
*ò
*ò
 ò"Kó
*r   r–   c                   óx   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d«      d	„ «       Zy
)ÚBoundsMixinc                 óR   — t        t        t        t        dd| j                  ¬«       y )Nr˜   )ç      $@r3   ©Úboundsrš   rô   rË   s    r   Útest_inconsistentzBoundsMixin.test_inconsistentˆ  s   € Ü”j¤-´¸cØ(°·±ö	>r   c                 óR   — t        t        t        t        dd| j                  ¬«       y )Nr˜   )r¢   rC   r  rô   rË   s    r   Útest_infeasiblezBoundsMixin.test_infeasibleŒ  s   € Ü”j¤-´¸cØ$¨T¯[©[ö	:r   c                 óR   — t        t        t        t        dd| j                  ¬«       y )Nr˜   )r¼   r   r<   r  rô   rË   s    r   Útest_wrong_numberzBoundsMixin.test_wrong_number�  s   € Ü”j¤-´¸bØ'°·±ö	=r   c           	      ó¶   — t        t        t        t        ddddgf| j                  ¬«       t        t        t        t
        ddgdgddgf| j                  ¬«       y )Nr˜   r¼   r¢   r  r3   ç      @)r­   rµ   r   r   rš   r-   rË   s    r   Útest_inconsistent_shapez#BoundsMixin.test_inconsistent_shape”  sP   € Ü”j¤-´¸cØ! C¨ :Ð.°t·{±{õ	Dô 	”j¤-´À#ÀsÀØ"˜e c¨3 ZÐ0¸¿¹ö	Fr   c                 óâ  — dddt         fD ]â  }t        t        d|d| j                  ¬«      }t	        |j
                  dd¬	«       t        |j                  d
g«       t        d|j
                  cxk  xr dk  nc «       t        t        d|d| j                  ¬«      }t	        |j
                  dd¬	«       t        |j                  dg«       t        d|j
                  cxk  xr dk  nc «       Œä y )Nr£   r¤   r¥   r˜   )rÀ   r¢   ©ri   r  rš   r3   r›   rœ   r   r0   r<   )r½   r¢   r½   )	r   r   r   rš   r   r   r   rÕ   r   )rZ   ri   rŸ   s      r   Útest_in_boundszBoundsMixin.test_in_bounds›  sº   € Ø˜y¨$´Ð<ò 
	'ˆCÜ¤¨S°cØ'2¸4¿;¹;ôHˆCä˜CŸE™E 3¨TÕ2Ü˜Ÿ™¨1¨#Ô.Ü�B˜#Ÿ%™%Ö$ 1Ô$Ô%Ü¤¨S°cØ'1¸$¿+¹+ôGˆCä˜CŸE™E 3¨TÕ2Ü˜Ÿ™¨2¨$Ô/Ü�C˜3Ÿ5™5Ö% AÔ%Õ&ñ
	'r   c                 ó  — d„ }d„ }dddt         fD ]ú  }||fD ]ñ  }ddg}t        t        ||¬«      }t        |j                  ddg«       t        t        || |d	d
d
g«      | j
                  ¬«      }t        |j                  d	d	g«       t        t        || |ddgd«      | j
                  ¬«      }t        |j                  ddg«       t        t        || |dd	gddg«      | j
                  ¬«      }t        |j                  dd	gd¬«       Œó Œü y )Nc                 ó
   — | |fS rW   r   ©rd   re   s     r   Úget_bounds_directz8BoundsMixin.test_bounds_shape.<locals>.get_bounds_direct©  s   € Ø�r�6ˆMr   c                 ó   — t        | |«      S rW   )r   r  s     r   Úget_bounds_instancesz;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instances¬  s   € Ü˜"˜b“>Ð!r   r£   r¤   r¥   r¼   )ri   r3   r½   r˜   r  g333333Ó?rß   r¢   r0   çñhãˆµøä>rœ   )r*   r   r'   r   r   rš   )rZ   r  r  ri   Úbounds_funcrb   rŸ   s          r   Útest_bounds_shapezBoundsMixin.test_bounds_shape¨  s  € ò	ò	"ð ˜y¨$´Ð?ò 	>ˆCØ 1Ð3GÐHò >�Ø˜3�Z�Ü#¤N°B¸CÔ@�Ü §¡¨¨S zÔ2Ü#¤N°B¸CÙ+6°s¸SÀ#¸JÓ+GØ+/¯;©;ô8�ô   §¡¨¨S zÔ2Ü#¤N°B¸CÙ+6¸¸S°zÀ3Ó+GØ+/¯;©;ô8�ô   §¡¨¨S zÔ2Ü#Ü" B¨CÙ&¨¨C y°3¸°*Ó=ØŸ;™;ô(�ô   §¡¨¨S z¸Ö=ñ!>ñ	>r   c                 óŒ  — t        t        dt        «       ¬«      }t        |j                  dd¬«       t        t        dt        d¬«      ¬«      }t        |j                  dd¬«       t        t        dt        d	d¬
«      ¬«      }t        |j                  dd¬«       t        t        dt        d	¬«      ¬«      }t        |j                  d	d¬«       t        t
        ddgt        d	d	gd¬
«      ¬«      }t        |j                  ddgd¬«       t        t
        ddgt        ddg¬«      ¬«      }t        |j                  ddgd¬«       y )Nr½   )r  r3   r›   rœ   r¢   r¼   )rd   rÀ   r  ç      À)re   r  rR   )r   r   r   r   r   r'   rž   s     r   Útest_bounds_instancesz!BoundsMixin.test_bounds_instancesÂ  sò   € ÜœK¨´V³XÔ>ˆÜ˜Ÿ™˜s¨Õ.äœK¨´V¸s´^ÔDˆÜ˜Ÿ™˜s¨Õ.äœK¨´V¸tÈÔ5LÔMˆÜ˜Ÿ™˜s¨Õ.äœK¨´fÀ´oÔFˆÜ˜Ÿ™˜t¨$Õ/äœN¨S°#¨JÜ#)¨d°D¨\¸cÔ#BôDˆä˜Ÿ™  S˜z°Õ5äœN¨S°#¨JÜ#)¨c°3¨ZÔ#8ô:ˆä˜Ÿ™  S˜z°Ö5r   r,   c                 ó  — t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }|t         j                   dgt         j                  ff|t         j                   dgt         j                  ff|t         j                   dgt         j                  ff|t         j                   dgdt         j                  gff|ddgddgff|d	dgd
dgffg}|D ]b  \  }}t        dddt        gddd
gdgddg«      D ]>  \  }	}
}t        t        ||	||
|| j                  ¬«      }t        |j                  dd¬«       Œ@ Œd y )Ng       Àr¼   r˜   r3   g333333ó¿rQ   g      ø?r¢   g      IÀr½   rs   r£   r¤   r¥   ri   rà   rá   râ   r  rœ   )
r$   r%   Úinfr   r1   r   r-   rš   r   rÔ   )rZ   Úx0_1Úx0_2Úx0_3Úx0_4Úx0_5Úproblemsrb   r  ri   r¾   rã   rŸ   s                r   Útest_rosenbrock_boundsz"BoundsMixin.test_rosenbrock_bounds×  s…  € ä�x‰x˜˜s˜Ó$ˆÜ�x‰x˜˜c˜
Ó#ˆÜ�x‰x˜˜s˜Ó$ˆÜ�x‰x˜˜c˜
Ó#ˆÜ�x‰x˜˜s˜Ó$ˆà”b—f‘f�W˜d�O¤R§V¡VÐ,Ð-Ø”b—f‘f�W˜c�N¤B§F¡FÐ+Ð,Ø”b—f‘f�W˜c�N¤B§F¡FÐ+Ð,Ø”b—f‘f�W˜c�N S¬"¯&©& MÐ2Ð3Ø�S˜#�J  c 
Ð+Ð,Ø�U˜C�L 3¨ *Ð-Ð.ð
ˆð #ò 	@‰JˆB�Ü+2Ø 	¨4´Ð@Ø˜3 ˜* eÐ,Ø˜fÐ%ó,'ò @Ñ'��W˜iô $¤N°B¸¸VØ,3¸yØ+/¯;©;ô8�ô   §¡°¸$Ö?ñ@ñ	@r   N)rt   ru   rv   r  r
  r  r  r  r  r  ÚpytestÚmarkÚ	fail_slowr'  r   r   r   r  r  ‡  sK   „ ò>ò:ò=òFò'ò>ò46ð* ‡[�[×Ñ˜2Óñ@ó ñ@r   r  c                   ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  d«      d„ «       Zd	„ Zd
„ Zd„ Zy)ÚSparseMixinc           	      ó   — t        «       }t        t        t        |j                  |j
                  |j                  d| j                  ¬«       t        t        t        |j                  |j
                  d|j                  | j                  ¬«       y )Nrà   ©rã   rš   )rã   Újac_sparsityrš   )	rO   r­   rµ   r   rp   rb   ri   rš   rg   r‰   s     r   Útest_exact_tr_solverz SparseMixin.test_exact_tr_solverò  sY   € ÜÓ ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ '°·±õ	=ä”j¤-°·±¸¿¹Ø '°a·j±jØ!Ÿ[™[ö	*r   c                 óô  — t        d¬«      }t        d¬«      }t        |j                  |j                  |j                  | j
                  ¬«      }t        |j                  |j                  |j                  | j
                  ¬«      }t        |j                  |j                  «       t        |j                  |j                  d¬«       t        |j                  dd¬«       t        |j                  dd¬«       y )NrS   ©rj   r\   r´   ç#B’¡œÇ;rœ   r   )rO   r   rp   rb   ri   rš   r   rÄ   r   r   rÒ   ©rZ   rS   r\   Ú
res_sparseÚ	res_denses        r   Útest_equivalencezSparseMixin.test_equivalenceú  s¨   € Ü#¨Ô2ˆÜ"¨Ô0ˆÜ"Ø�J‰J˜Ÿ	™	 v§z¡zØ—;‘;ô ˆ
ô "Ø�I‰I�u—x‘x V§Z¡ZØ—;‘;ô ˆ	ô 	�Z—_‘_ i§n¡nÔ5Ü˜
Ÿ™ i§k¡k¸Õ>Ü˜
Ÿ™¨°Õ7Ü˜	Ÿ™¨°Ö6r   c                 ó¼   — t        «       }t        |j                  |j                  |j                  | j
                  ddi¬«      }t        |j                  dd¬«       y )NÚbtolç»½×Ùß|Û=©rš   Ú
tr_optionsr   r3  rœ   )rO   r   rp   rb   ri   rš   r   rÒ   ©rZ   rŠ   rŸ   s      r   Útest_tr_optionszSparseMixin.test_tr_options  sC   € ÜÓ ˆÜ˜AŸE™E 1§4¡4¨¯©°t·{±{Ø(.° ô8ˆä˜Ÿ™ !¨%Ö0r   c           
      ó  — t        «       }t        t        t        |j                  |j
                  |j                  d| j                  ¬«       t        t        t        |j                  |j
                  |j                  dddi¬«       y )NÚbestr.  rá   Útolr:  )rã   r<  )	rO   r­   rµ   r   rp   rb   ri   rš   r®   r‰   s     r   Útest_wrong_parametersz!SparseMixin.test_wrong_parameters  sY   € ÜÓ ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ &¨t¯{©{õ	<ä”i¤°·±°q·t±t¸Q¿U¹UØ &°E¸5°>ö	Cr   c                 ó  — t        d¬«      }t        d¬«      }t        |j                  |j                  |j                  | j
                  ¬«      }t        |j                  |j                  |j                  | j
                  ¬«      }t        |j                  dd¬«       t        |j                  dd¬«       t        t        |j                  «      «       t        t        |j                  t        j                  «      «       y )NrS   r2  r\   r´   r   r3  rœ   )rO   r   rp   rb   ri   rš   r   rÒ   r   r
   Ú
isinstancer$   Úndarrayr4  s        r   Útest_solver_selectionz!SparseMixin.test_solver_selection  s¤   € Ü#¨Ô2ˆÜ"¨Ô0ˆÜ" 6§:¡:¨v¯y©y¸f¿j¹jØ*.¯+©+ô7ˆ
ä! %§)¡)¨U¯X©X¸5¿9¹9Ø)-¯©ô6ˆ	ä˜
Ÿ™¨°Õ7Ü˜	Ÿ™¨°Õ6Ü”˜Ÿ™Ó(Ô)Ü”
˜9Ÿ=™=¬"¯*©*Ó5Õ6r   c                 óÔ  — t        «       }dD ]Ù  }t        |j                  |j                  || j                  ¬«      }t        |j                  |j                  || j                  |j
                  ¬«      }t        |j                  |j                  «       t        |j                  |j                  d¬«       t        |j                  dd¬«       t        |j                  dd¬«       ŒÛ y )N)r£   r¤   r¥   r™   )rš   r/  r3  rœ   r   )rO   r   rp   rb   rš   rg   r   rÄ   r   r   rÒ   )rZ   rŠ   ri   r6  r5  s        r   Útest_numerical_jaczSparseMixin.test_numerical_jac!  s£   € ÜÓ ˆØ/ò 	<ˆCÜ% a§e¡e¨Q¯T©T°3¸t¿{¹{ÔKˆIÜ&Ø—‘�q—t‘t˜S¨¯©ØŸZ™Zô)ˆJô ˜Ÿ™¨¯©Ô9Ü˜IŸK™K¨¯©¸EÕBÜ˜IŸN™N¨A°EÕ:Ü˜JŸO™O¨Q°UÖ;ñ	<r   r,   c           	      ó¸  — t        «       }t        |j                  dddgd |j                  g«      D �]&  \  }}t	        |j
                  |j                  ||j                  t        j                  f| j                  |¬«      }t	        |j
                  |j                  |t        j                   |j                  f| j                  |¬«      }t	        |j
                  |j                  ||j                  |j                  f| j                  |¬«      }t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       �Œ) y )Nr£   r¤   r¥   )r  rš   r/  r   r:  rœ   )rO   r   ri   rg   r   rp   rb   rd   r$   r   rš   re   r   rÔ   )rZ   rŠ   ri   r/  Úres_1Úres_2Úres_3s          r   Útest_with_boundszSparseMixin.test_with_bounds-  s  € äÓ ˆÜ!(Ø—‘˜	 9¨dÐ3°d¸A¿J¹JÐ5Gó"Ió 	=ÑˆC�ä!Ø—‘�q—t‘t˜S¨!¯$©$´·±¨Ø—{‘{°ô>ˆEô "Ø—‘�q—t‘t˜S¬2¯6©6¨'°1·4±4¨Ø—{‘{°ô?ˆEô "Ø—‘�q—t‘t˜S¨!¯$©$°·±¨Ø—{‘{°ô?ˆEô ˜E×,Ñ,¨a°eÕ<Ü˜E×,Ñ,¨a°eÕ<Ü˜E×,Ñ,¨a°e×<ñ	=r   c                 ó¤   — t        «       }|j                  d d }t        t        t        |j
                  |j                  || j                  ¬«       y )Nr0   ©r/  rš   )rO   rg   r­   rµ   r   rp   rb   rš   )rZ   rŠ   rg   s      r   Útest_wrong_jac_sparsityz#SparseMixin.test_wrong_jac_sparsity?  s;   € ÜÓ ˆØ—:‘:˜c˜r�?ˆÜ”j¤-°·±¸¿¹Ø#+°D·K±Kö	Ar   c           	      ó>  — t        d¬«      }t        |j                  |j                  |j                  | j
                  ¬«      }t        |j                  dd¬«       t        t        t        |j                  |j                  |j                  | j
                  d¬«       y )	NrU   r2  r™   r3   r3  rœ   rà   )rš   rã   ©
rO   r   rp   rb   ri   rš   r   rÒ   r­   rµ   r=  s      r   Útest_linear_operatorz SparseMixin.test_linear_operatorE  sc   € Ü JÔ/ˆÜ˜AŸE™E 1§4¡4¨¯©°t·{±{ÔCˆÜ˜Ÿ™ #¨EÕ2Ü”j¤-°·±¸¿¹¸a¿e¹eØ!Ÿ[™[°Gö	=r   c           	      óT  — t        «       }t        |j                  |j                  |j                  | j
                  d¬«      }t        |j                  dd¬«       t        d¬«      }t        t        t        |j                  |j                  |j                  | j
                  d¬«       y )Nri   )rš   r¾   r3   r3  rœ   rU   r2  rR  r=  s      r   Útest_x_scale_jac_scalez"SparseMixin.test_x_scale_jac_scaleL  sp   € ÜÓ ˆÜ˜AŸE™E 1§4¡4¨¯©°t·{±{Ø$)ô+ˆä˜Ÿ™ #¨EÕ2ä JÔ/ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ!Ÿ[™[°%ö	9r   N)rt   ru   rv   r0  r7  r>  rB  rF  rH  r(  r)  r*  rM  rP  rS  rU  r   r   r   r,  r,  ñ  sT   „ ò*ò7ò1òCò
7ò
<ð ‡[�[×Ñ˜2Óñ=ó ð=ò"Aò=ó9r   r,  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚLossFunctionMixinc                 óÒ   — t         D ]7  }t        t        d|| j                  ¬«      }t	        |j
                  dd¬«       Œ9 t        t        t        t        dd| j                  ¬«       y )Nr˜   ©Úlossrš   r   çVçž¯Ò<rœ   Úhinge)ÚLOSSESr   r   rš   r   r   r­   rµ   ©rZ   rZ  rŸ   s      r   Útest_optionszLossFunctionMixin.test_optionsX  sS   € Üò 	2ˆDÜ¤¨S°tØ'+§{¡{ô4ˆCä˜CŸE™E 1¨5Ö1ð	2ô
 	”j¤-´¸cØ"¨4¯;©;ö	8r   c                 ó¦   — t         D ]H  }t        t        d|| j                  ¬«      }t	        |j
                  t        |j                  «      «       ŒJ y )Nr˜   rY  )r]  r   r   rš   r   rp   r   r^  s      r   Útest_funzLossFunctionMixin.test_funa  sA   € ô ò 	6ˆDÜ¤¨S°tØ'+§{¡{ô4ˆCä˜Ÿ™¤+¨c¯e©eÓ"4Õ5ñ	6r   c                 óæ  — t        j                  dg«      }t        t        |t        dd| j
                  ¬«      }t        |j                  d|z  |dz  dz   z  «       t        t        |t        dd| j
                  ¬«      }t        |j                  d|z  «       t        t        |t        dd| j
                  ¬«      }t        |j                  d|z  |dz  dz   z  d|dz  dz   dz  z   d	z  z  «       t        t        |t        d
d| j
                  ¬«      }t        |j                  d|z  |dz  dz   z  d|dz  dz   dz  z   z  «       t        t        |t        dd| j
                  ¬«      }t        |j                  d|z  |dz  dz   z  d|dz  dz   dz  z   z  «       t        t        |t        t        d| j
                  ¬«      }t        |j                  d|z  |dz  dz   z  d|dz  dz   dz  z   dz  z  «       y )Nr˜   Úlinearr"   ©rZ  r¹   rš   r   rÎ   ÚhuberÚsoft_l1r½   ÚcauchyÚarctanrC   gUUUUUUå?)
r$   r%   r   r   r   rš   r   rÓ   r   r”   )rZ   r   rŸ   s      r   Ú	test_gradzLossFunctionMixin.test_gradi  sÎ  € ô �H‰H�c�U‹OˆäœK¨¬K¸hØ%&¨t¯{©{ô<ˆä�S—X‘X˜q 1™u¨¨1©¨q©Ñ1Ô2äœK¨¬K¸gØ%&¨t¯{©{ô<ˆä�S—X‘X˜q 1™uÔ%äœK¨¬K¸iØ%&¨t¯{©{ô<ˆä˜Ÿ™Ø˜A™  A¡¨¡Ñ*¨a°1°a±4¸!±8¸a±-Ñ.?À#Ñ-EÑEô	Gô œK¨¬K¸hØ%&¨t¯{©{ô<ˆä˜Ÿ™ ! a¡%¨1¨a©4°!©8Ñ"4¸¸QÀ¹TÀA¹XÈ¹MÑ8IÑ"JÔKäœK¨¬K¸hØ%&¨t¯{©{ô<ˆä˜Ÿ™ ! a¡%¨1¨a©4°!©8Ñ"4¸¸QÀ¹TÀA¹XÈ¹MÑ8IÑ"JÔKäœK¨¬K¼mØ%&¨t¯{©{ô<ˆä˜Ÿ™Ø˜A™  A¡¨¡Ñ*¨a°1°a±4¸!±8¸a±-Ñ.?À3Ñ-GÑGõ	Ir   c           	      ó´  — d}|dz  dz   }t        t        |t        dd| j                  ¬«      }t	        |j
                  d|z  «       t        t        |t        dd| j                  ¬«      }t	        |j
                  d|z  t        dz  z  «       t        t        |t        dd	d¬
«      }t	        |j
                  d|z  «       t        t        |t        dd| j                  ¬«      }t        |j
                  d|z  d|dz  z   dz  z  «       t        t        |t        dd| j                  ¬«      }t        |j
                  d|z  t        dz  z  «       t        t        |t        dd	d| j                  ¬«      }|d	z  }t        |j
                  d|z  d|dz  z
  dz  z  d|dz  z   z  «       t        t        |t        dd| j                  ¬«      }t        |j
                  d|z  t        dz  z  «       t        t        |t        ddd| j                  ¬«      }|dz  }t        |j
                  d|z  dd|dz  z  z
  dz  z  d|dz  z   z  «       t        t        |t        t        d¬«      }t        |j
                  d|z  t        dz  z  «       t        t        |t        t        dd¬
«      }|dz  }t        |j
                  d|z  d|dz  dz  z
  dz  z  d|dz  z   dz  z  «       y )Nr˜   r   rÎ   rc  r"   rd  re  r½   r,   )rZ  Úf_scaler¹   rf  g      è¿rg  )rZ  rk  r¹   rš   rh  g      4@r¸   r<   rC   )rZ  r¹   é   g«ªªªªªê¿)	r   r   r   rš   r   ri   r   r   r”   )rZ   r   ro   rŸ   Úfss        r   Útest_jaczLossFunctionMixin.test_jacˆ  s¢  € ð ˆØˆq‰D�1‰HˆäœK¨¬K¸hØ%&¨t¯{©{ô<ˆä�S—W‘W˜a !™eÔ$ô œK¨¬K¸gØ%&¨t¯{©{ô<ˆä�S—W‘W˜a !™e¤c¨3¡hÑ.Ô/ô œK¨¬K¸gØ$&°ô4ˆä�S—W‘W˜a !™eÔ$ô œK¨¬K¸iØ%&¨t¯{©{ô<ˆä˜Ÿ™  Q¡¨!¨a°©d©(°UÑ):Ñ!:Ô;ô œK¨¬K¸hØ%&¨t¯{©{ô<ˆä˜Ÿ™  Q¡¬¨c©Ñ!1Ô2ô œK¨¬K¸hØ$&°¸4¿;¹;ôHˆà�‰VˆÜ˜Ÿ™  Q¡¨!¨b°!©e©)°cÑ)9Ñ!9¸QÀÀQÁ¹YÑ!GÔHô œK¨¬K¸hØ%&¨t¯{©{ô<ˆä˜Ÿ™  Q¡¬¨c©Ñ!1Ô2ô œK¨¬K¸hØ$(°1¸T¿[¹[ôJˆà�‰VˆÜ˜Ÿ™  Q¡¨!¨a°"°a±%©i©-¸#Ñ)=Ñ!=ÀÀRÈÁUÁÑ!KÔLô œK¨¬K¼mØ%&ô(ˆä˜Ÿ™  Q¡¬¨c©Ñ!1Ô2ô œK¨¬KÜ!.¸ÀAôGˆà�‰UˆÜ˜Ÿ™Ø˜A™  R¨¡U¨Q¡Y¡°Ñ 4Ñ4¸¸BÀ¹E¹	ÀTÑ7JÑJõ	Lr   c                 ó4  — dD �]  }t        dd|d¬«      }ddd|j                  fD ]í  }t        |j                  |j                  || j
                  ¬	«      }t        |j                  dd
¬«       t        D ]�  }|dk(  rŒ	t        |j                  |j                  |||| j
                  ¬«      }t        |j                  dd
¬«       t        t        |j                  |j                  z
  «      t        |j                  |j                  z
  «      k  «       ŒŸ Œï �Œ y )N)rR   r¼   r"   rR   r   )r†   r£   r¤   r¥   r´   rÏ   rœ   rc  )ri   rZ  rk  rš   )rx   ri   r   rp   r|   rš   r   rÔ   r]  r   r   r   r€   )rZ   r‚   rŠ   ri   Úres_lsqrZ  Ú
res_robusts          r   Útest_robustnessz!LossFunctionMixin.test_robustnessÌ  sö   € Øó 	7ˆEÜ)¨!¨S°%ÀQÔGˆAà! 9¨d°A·E±EÐ:ò 7�Ü'¨¯©¨q¯t©t¸Ø/3¯{©{ô<�ä × 2Ñ 2°A¸DÕAÜ"ò 7�DØ˜xÒ'Ø Ü!.ØŸ™˜qŸt™t¨°4ÀØ#Ÿ{™{ô",�Jô $ J×$9Ñ$9¸1À4ÕHÜœD §¡°·±Ñ!7Ó8Ü  §¡¨Q¯W©WÑ!4Ó5ñ6õ 7ñ7ò	7ñ	7r   N)rt   ru   rv   r_  ra  ri  rn  rr  r   r   r   rW  rW  W  s   „ ò8ò6òIò>BLóH7r   rW  c                   ó   — e Zd ZdZy)Ú
TestDogboxÚdogboxN)rt   ru   rv   rš   r   r   r   rt  rt  ß  s   „ Ø�Fr   rt  c                   ó   — e Zd ZdZd„ Zy)ÚTestTRFÚtrfc           	      ó¶   — t        «       }dD ]J  }t        |j                  |j                  |j                  dd|i¬«      }t        |j                  dd¬«       ŒL y )N)TFrx  Ú
regularizer;  r   r3  rœ   )rO   r   rp   rb   ri   r   rÒ   )rZ   rŠ   rz  rŸ   s       r   Útest_lsmr_regularizationz TestTRF.test_lsmr_regularizationæ  sP   € ÜÓ ˆØ'ò 	5ˆJÜ §¡ q§t¡t¨Q¯U©U¸5Ø,8¸*Ð+EôGˆCä˜CŸH™H a¨eÖ4ñ	5r   N)rt   ru   rv   rš   r{  r   r   r   rw  rw  ã  s   „ Ø€Fó5r   rw  c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestLMrÐ   c                 ó>   — t        t        t        t        ddd¬«       y )Nr˜   )r  r¢   rÐ   r  ©r­   rµ   r   r   rË   s    r   Útest_bounds_not_supportedz TestLM.test_bounds_not_supportedñ  s   € Ü”j¤-´Ø +°dö	<r   c                 óD   — ddg}t        t        t        t        |d¬«       y )NrB   r"   rÐ   r™   )r­   rµ   r   r7   rî   s     r   Útest_m_less_n_not_supportedz"TestLM.test_m_less_n_not_supportedõ  s   € Ø�!ˆWˆÜ”j¤-Ô1GÈØ!ö	#r   c                 ó†   — t        «       }t        t        t        |j                  |j
                  |j                  d¬«       y )NrÐ   r™   ©rO   r­   rµ   r   rp   rb   ri   r‰   s     r   Útest_sparse_not_supportedz TestLM.test_sparse_not_supportedú  s+   € ÜÓ ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ!ö	#r   c                 ó@   — t        t        t        t        ddgd¬«       y )Nr˜   r"   rÐ   rO  r  rË   s    r   Útest_jac_sparsity_not_supportedz&TestLM.test_jac_sparsity_not_supportedÿ  s   € Ü”j¤-´¸cØ$% 3¨tö	5r   c                 óŠ   — t        d¬«      }t        t        t        |j                  |j
                  |j                  d¬«       y )NrU   r2  rÐ   r™   r„  r‰   s     r   Ú!test_LinearOperator_not_supportedz(TestLM.test_LinearOperator_not_supported  s-   € Ü JÔ/ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ!ö	#r   c                 ó”   — t        t        ddd¬«      }t        |j                  dd¬«       t	        t
        t         t        ddd¬	«       y )
Nr˜   rc  rÐ   rY  r3   r›   rœ   re  )rš   rZ  )r   r   r   r   r­   rµ   rž   s     r   Ú	test_losszTestLM.test_loss  s7   € ÜœK¨°8ÀDÔIˆÜ˜Ÿ™˜s¨Õ.ä”j¤-´¸cØ!¨ö	1r   N)
rt   ru   rv   rš   r€  r‚  r…  r‡  r‰  r‹  r   r   r   r}  r}  î  s%   „ Ø€Fò<ò#ò
#ò
5ò#ó
1r   r}  c                  óT   — t        t        d«      } t        | j                  dd¬«       y )Nr˜   r   r:  rœ   )r   r   r   r   )rŸ   s    r   r    r      s   € ä
œ SÓ
)€CÜ�C—E‘E˜1 5Ö)r   c                  óX   — dD ]%  \  } }}t        t        t        t        d|| |d¬«       Œ' y )N))Nç‚vIhÂ%<=rŽ  )rŽ  NrŽ  )rŽ  rŽ  Nr˜   rÐ   )rü   rù   rý   rš   r  )rù   rü   rý   s      r   Útest_small_tolerances_for_lmr�    s5   € ð3ò 9Ñˆˆd�Dô 	”j¤-´¸cÈØ d°4ö	9ñ9r   c                  ó€  ‡— t         j                  j                  d«      } t        j                  ddd«      j	                  d«      }| j                  d«      j	                  d«      }d„ Šˆfd„}t        |ddg||f¬«      }|j                  d	kD  sJ ‚t        |j                  t        j                  d
dg«      d¬«       y )Nr"   r   rs   Úfloat32c                 ó   — | d   | d   |z  z   S r!   r   )rŠ   r   s     r   Úfuncztest_fp32_gh12991.<locals>.func&  s   € Ø�‰t�a˜‘d˜Q‘h‰Ðr   c                 ó   •—  ‰| |«      |z
  S rW   r   )rŠ   r   rL   r“  s      €r   Úerrztest_fp32_gh12991.<locals>.err)  s   ø€ Ù�A�q‹z˜A‰~Ðr   rÀ   )r§   r   g ¼ùW Ú?gá	ÞáÃ?g-Cëâ6
?rœ   )
r$   r_   r`   rc   Úastyper   rÄ   r   r   r%   )rk   r   rL   r•  rŸ   r“  s        @r   Útest_fp32_gh12991r—    s    ø€ ô �)‰)×
Ñ
 Ó
"€Cä
�‰�A�q˜#Ó×%Ñ% iÓ0€AØ�
‰
�3‹×Ñ˜yÓ)€Aòôô ˜˜d D˜\°°A°Ô
7€Cð �8‰8�aŠ<Ðˆ<Ü�C—E‘Eœ2Ÿ8™8 Y°
Ð$;Ó<À4ÖHr   c                  ó°  ‡— dŠd} ˆfd„}d}t        || ddt        j                  f¬«      }t        |j                  |j
                  t        j                  d«      t        j                  t        j                  «      «      \  }}|j                  dk(  sJ ‚t        j                  j                  |j
                  |z  t        j                  ¬«      |k  sJ ‚y )	Ngê-�™—q=gy�²§õYs=c                 ó   •— | ‰z
  dz  S r   r   )r   Úanswers    €r   Úchi2z%test_gh_18793_and_19351.<locals>.chi2;  s   ø€ Ø�&‘˜1‰}Ðr   r[  r   )rb   rý   r  r"   )Úord)
r   r$   r   r   r   rÓ   Ú
atleast_1dr×   Úlinalgr   )Úinitial_guessr›  rý   rŸ   ÚscalingÚ_rš  s         @r   Útest_gh_18793_and_19351r¢  7  s¥   ø€ Ø€FØ€Môð €DÜ
˜ °UÀAÄrÇvÁvÀ;Ô
O€Cô # 3§5¡5¨#¯(©(Ü#%§=¡=°Ó#3´R·]±]Ä2Ç6Á6Ó5JóL�J€GˆQà�:‰:˜Š?Ðˆ?Ü�9‰9�>‰>˜#Ÿ(™( WÑ,´"·&±&ˆ>Ó9¸DÒ@Ð@Ñ@r   c                  ó  ‡‡— t        j                  dgdz  g d¢z   «      Št        j                  d‰j                  «      dz  Šˆˆfd„} g d¢}dt         j                  d	d
ff}t        | |d|¬«      }|j                  sJ ‚y )Nr3   éB   )Sr¼   r3   r3   r3   r3   r3   r¼   r¼   r3   r3   r¼   r¼   r¼   r¼   r3   r3   r3   r¼   r3   r3   r˜   r¼   r3   r¢   r¼   ç      @r   r3   r3   r˜   ç       @r  r  r¥  ç      "@ç      @r˜   r¨  r¦  r˜   ç      *@r§  r¦  ç      &@r  r©  g      ,@ç      3@rª  g      .@g      2@g      :@r«  ç      @@g      =@g      <@ç      B@r¬  g     €A@r­  g     €E@ç      J@r¬  g      M@g      L@r®  g     ÀP@g     €J@g      R@g      V@g     @S@g     ÀW@g     €W@g      U@g     €U@g     @Y@g     ÀZ@g      [@g     €]@g      X@g     À\@g     @a@g      a@r   rR   c                 óR   •— | \  }}}|t        j                  |‰|z
  z  «      z  ‰z
  S rW   )r$   r}   )ÚparamsÚAÚBrb   ÚxdataÚydatas       €€r   Úexponential_wrappedz*test_gh_19103.<locals>.exponential_wrappedc  s0   ø€ Ø‰ˆˆ1ˆbØ”2—6‘6˜!˜u r™zÑ*Ó+Ñ+¨eÑ3Ð3r   )rÏ   r¼   r   )rÏ   r   r   r,   gfffffæ4@rx  )rš   r  )r$   r%   rh   r�   r   r   rØ   )rµ  rb   r  rŸ   r³  r´  s       @@r   Útest_gh_19103r¶  Q  s~   ù€ ô �H‰H�b�T˜B‘Yò 	"ñ 	ó 	€Eô �I‰I�a˜Ÿ™Ó$ sÑ*€Eõ4ò 
€BØœRŸV™V R¨Ð.Ð/€FÜ
Ð+¨R¸ÀfÔ
M€CØ�;Š;Ð‰;r   )r   )r3   ):Ú	itertoolsr   Únumpyr$   Únumpy.linalgr   Únumpy.testingr   r   r   r   r(  r	   r­   Úscipy.sparser
   r   Úscipy.sparse.linalgr   Úscipy.optimizer   r   Ú!scipy.optimize._lsq.least_squaresr   Úscipy.optimize._lsq.commonr   r   r   r   r   r'   r*   r-   r1   r4   r7   r:   r=   r@   rM   rO   rx   r”   ÚlistÚkeysr]  r–   r  r,  rW  rt  rw  r}  r    r�  r—  r¢  r¶  r   r   r   ú<module>rÂ     s*  ðÝ ã Ý ÷<ó <ã Ý *ß -Ý 0ç 0Ý @ß UÑ Uóóò"òò9òòò ò ò
%ó.ò÷0ñ 0÷fñ ò>ñ 
Ð%Ð ×%Ñ%Ó'Ó	(¨M¨?Ñ	:€÷V*ñ V*÷rg@ñ g@÷Tc9ñ c9÷LE7ñ E7ôP�˜K¨Ð6Gô ô5ˆi˜ kÐ3Dô 5ô1ˆYô 1òD*ò9òIò2Aó4r   