Ë
    0Ò^j™•  ã                   óD  — d dl Z d dlmZ d dlmZ d dlZd dlm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 d d	lmZmZmZ d d
lmZ d dlmZmZmZ d dlmZ d4d„Z d5d„Z!d„ Z"d„ Z#d„ Z$ G d„ d«      Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d5d„Z+d„ Z, G d„ d«      Z- G d„ d«      Z.d„ Z/ e0 ejb                  «       «      e/gz   Z2 G d „ d!«      Z3 G d"„ d#«      Z4 G d$„ d%«      Z5 G d&„ d'«      Z6 G d(„ d)e3e4e5e6«      Z7 G d*„ d+e3e4e5e6«      Z8 G d,„ d-e3«      Z9d.„ Z:d/„ Z;d0„ Z<d1„ Z=d2„ Z>d3„ Z?y)6é    N)Úproduct)ÚPool)Únorm)Úassert_Úassert_allcloseÚassert_equal)Úraises)ÚissparseÚ	lil_array)Úaslinearoperator)Úleast_squaresÚBoundsÚminimize)ÚIMPLEMENTED_LOSSES)ÚEPSÚmake_strictly_feasibleÚCL_scaling_vector)ÚOptimizeResultc                 ó   — | |z
  dz  dz   S )Né   ç      @© ©ÚxÚas     úr/var/www/ramen.bs-engineer-server.com/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                   ó   — e Zd Zd„ Zdd„Zy)ÚFun_Rosenbrockc                 ó   — d| _         y ©Nr   )Únfev©Úselfs    r   Ú__init__zFun_Rosenbrock.__init__*   s	   € Øˆ�	r   c                 óB   — | xj                   dz  c_         t        |«      S ©Nr$   )r4   r/   )r6   r   r   s      r   Ú__call__zFun_Rosenbrock.__call__-   s   € Ø�	Š	�Q‰�	Ü˜aÓ Ð r   N©r   )Ú__name__Ú
__module__Ú__qualname__r7   r:   r   r   r   r1   r1   )   s   „ òô!r   r1   c                 óD   — t        j                  d| d   z  dgddgg«      S )Néìÿÿÿr   r.   éÿÿÿÿr%   r(   s    r   Újac_rosenbrockrB   2   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.   rA   ç        r%   r(   s    r   Újac_rosenbrock_bad_dimrE   9   s6   € Ü�8‰8Ø	ˆq�‰t‰�RÐØ	ˆQˆØ	ˆcˆ
ðó ð r   c                 ó   — t        | «      d   S r3   )r/   r(   s    r   Úfun_rosenbrock_croppedrG   A   ó   € Ü˜!Ó˜QÑÐr   c                 ó   — t        | «      d   S r3   )rB   r(   s    r   Újac_rosenbrock_croppedrJ   E   rH   r   c                 ó>   — t        j                  | | dz  | dz  g«      S )Nr   é   r%   r(   s    r   Úfun_wrong_dimensionsrM   J   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_dimensionsrP   N   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$   rA   éþÿÿÿé   rL   )Úintr&   ÚsqrtÚshapeÚzerosÚreshapeÚravel)r   ÚnÚuÚys       r   Úfun_bvpr]   R   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 )Ni0â rR   ç      ø¿gš™™™™™é¿rD   çš™™™™™¹?Úsparse©Údtyper$   Úoperatorc                 ó8   •— t        ‰j                  | «      «      S ©N)r   Ú_jac©r   r6   s    €r   ú<lambda>z-BroydenTridiagonal.__init__.<locals>.<lambda>v   s   ø€ Ô!1°$·)±)¸A³,Ó!?€ r   Údensec                 óB   •— ‰j                  | «      j                  «       S rh   )ri   Útoarrayrj   s    €r   rk   z-BroydenTridiagonal.__init__.<locals>.<lambda>y   s   ø€  §¡¨1£×!5Ñ!5Ó!7€ r   F)r&   ÚrandomÚdefault_rngrZ   ÚonesÚx0ÚlinspaceÚlbÚubÚstandard_normalr   r   rT   ÚsparsityÚarangeri   Újacr   )r6   rZ   ÚmodeÚrngÚis   `    r   r7   zBroydenTridiagonal.__init__\   s‰  ø€ Ü�i‰i×#Ñ# FÓ+ˆàˆŒä—7‘7˜1“:�+ˆŒÜ—+‘+˜b $¨Ó*ˆŒÜ—+‘+˜d C¨Ó+ˆŒà�Š�3˜×,Ñ,¨QÓ/Ñ/Ñ/�Ø�Š�3˜×,Ñ,¨QÓ/Ñ/Ñ/�à�Š�3˜×,Ñ,¨QÓ/Ñ/Ñ/�Ü(¨¯©°$·'±'¸4¿7¹7ÓCˆŒà�8ÒÜ% q¨! f´CÔ8ˆ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 )NrL   r$   rA   r   r   )r6   r   Úfs      r   ÚfunzBroydenTridiagonal.fun}   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 )NrL   r   r$   rA   rR   )r   rZ   r&   rx   )r6   r   ÚJr|   s       r   ri   zBroydenTridiagonal._jacƒ   s‘   € Ü�t—v‘v˜tŸv™vÐ&Ó'ˆÜ�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   rc   )r<   r=   r>   r7   r   ri   r   r   r   r_   r_   [   s   „ óòBór   r_   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&   ro   rp   ÚmrZ   rW   Úp0rs   r   Úexpr\   rv   Úintegersr'   Úp_opt)	r6   r   ÚbÚnoiseÚ
n_outliersÚx_rangeÚn_pointsr{   Úoutlierss	            r   r7   z"ExponentialFittingProblem.__init__’   sÞ   € ä�i‰i×#Ñ# CÓ(ˆØˆŒØˆŒä—(‘(˜1“+ˆŒÜ—‘˜W Q™Z¨°©°XÓ>ˆŒà”R—V‘V˜A §¡™JÓ'Ñ'ˆŒØ�Š�%˜#×-Ñ-¨d¯f©fÓ5Ñ5Ñ5�à—<‘<  4§6¡6¨:Ó6ˆØ�‰ˆxÓ˜B ™J¨¯©°JÓ)?Ñ?Ñ?Óä—X‘X˜q !˜fÓ%ˆ�
r   c                 ór   — |d   t        j                  |d   | j                  z  «      z   | j                  z
  S r#   )r&   r‰   r   r\   ©r6   Úps     r   r   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‡   rZ   r   r‰   )r6   r”   r�   s      r   ry   zExponentialFittingProblem.jac¦   sZ   € Ü�H‰H�d—f‘f˜dŸf™fÐ%Ó&ˆØˆŠ!ˆQˆ$‰Ø—&‘&œ2Ÿ6™6 ! A¡$¨¯©¡-Ó0Ñ0ˆŠ!ˆQˆ$‰Øˆr   )r$   )rA   r$   é   N)r<   r=   r>   Ú__doc__r7   r   ry   r   r   r   r„   r„   Ž   s   „ ñ#ð ;BØ"&ó&ò"5ór   r„   c                 ó”   — t        j                  d| j                  f«      }d| z   }d|dz  dz
  z  |d<   |dz  |d<   d|dz  z  |d<   |S )NrL   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d„ Zd„ Zej4                  j7                  d«      ej4                  j9                  d«      d„ «       «       Zy)Ú	BaseMixinzBjac='(3-point|cs)' works equivalently to '2-point' for method='lm'c                 ó¾   — t        t        d| j                  ¬«      }t        |j                  dd¬«       t        |j
                  t        |j                  «      «       y )Nç       @©Úmethodr   ç-Cëâ6?©Úatol)r   r   r¤   r   r   r   ©r6   Úress     r   Ú
test_basiczBaseMixin.test_basic½   s;   € äœK¨°D·K±KÔ@ˆÜ˜Ÿ™˜q tÕ,Ü˜Ÿ™¤¨S¯U©UÓ!3Õ4r   c           	      óD  — d}dddt         fD �]  }t        j                  «       5  t        j                  d| j                  t
        «       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Úignorer¢   )Úargsr¤   r   )Úkwargsr¤   r¥   )Úrtol)rL   rS   ÚkaboomrL   )r!   ÚwarningsÚcatch_warningsÚfilterwarningsÚmsgÚUserWarningr   r   r¤   r   r   Úassert_raisesÚ	TypeError)r6   r   ry   r©   Úres1s        r   Útest_args_kwargszBaseMixin.test_args_kwargsÃ   sé   € àˆØ˜y¨$´Ð<ó 	DˆCÜ×(Ñ(Ó*ñ 8Ü×'Ñ'¨°$·(±(¼KÔHÜ#¤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%DÄD	c                 óv  — dddt         fD ]y  }t        j                  «       5  t        j                  d| j                  t
        «       t        t        d|| j                  ¬«      }d d d «       t        j                  dd¬	«       Œ{ 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©ry   r¤   )r!   rµ   r¶   r·   r¸   r¹   r   r   r¤   r   r   rº   Ú
ValueError©r6   ry   r©   s      r   Útest_jac_optionszBaseMixin.test_jac_optionsÖ   s–   € Ø˜y¨$´Ð<ò 	1ˆCÜ×(Ñ(Ó*ñ OÜ×'Ñ'¨°$·(±(¼KÔHÜ#¤K°°cÀ$Ç+Á+ÔN�÷Oô ˜CŸE™E 1¨4Ö0ð		1ô 	”j¤-´¸cÀvØ!Ÿ[™[ö	*÷Oð Oús   ¢AB/Â/B8	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   )r6   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                 óz  — 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                  ¬«       y )Nç      ð?ç      à?ry   r¢   )Úx_scaler   Úauto)rÌ   r¤   ç      ð¿y      ð?       @)	r&   r'   r   r   r   r   rº   rÁ   r¤   )r6   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¤-´Ø 8°D·K±Kö	Ar   c                 óØ   — t        t        dd| j                  ¬«      }t        t        dd | j                  ¬«      }t        |j                  dd¬«       t        |j                  dd¬«       y )Nr¢   rb   )Ú	diff_stepr¤   r   r¥   r¦   rÇ   )r6   r¼   Úres3s      r   Útest_diff_stepzBaseMixin.test_diff_stepñ   sQ   € Üœ[¨#¸Ø$(§K¡Kô1ˆäœ[¨#Ø'+°D·K±KôAˆä˜Ÿ™ ¨Õ-Ü˜Ÿ™ ¨Ö-r   c           	      ó¨   — t        t        t        t        d| j                  ddi¬«       t        t        t        t        d| j                  ddi¬«       y )Nr¢   Úno_such_optionr‚   )r¤   ÚoptionsrÆ   )rº   r»   r   r   r¤   r5   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(  r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„?Úlmr.   )r   r   r¤   r   r   Úcostr   ry   ÚgradÚ
optimalityr   Úactive_maskr   Únjevr4   ÚstatusÚsuccessr¨   s     r   Útest_full_resultzBaseMixin.test_full_result   sÙ   € ô œK¨°T·[±[ÔAˆÜ˜Ÿ™˜q tÕ,Ü˜Ÿ™ $Ô'Ü˜Ÿ™ Ô#Ü˜Ÿ™ ¨Õ.Ü˜Ÿ™ !¨$Õ/Ü˜Ÿ™¨°Õ5Ü�S—_‘_ aÔ(Ø�;‰;˜$ÒÜ�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@é	   rS   é$   r   )r¤   r   r   r   r   r&   r'   rÜ   r   ry   rÝ   rÞ   rß   r4   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                 ó  — t        dd«      D ]y  }t        j                  j                  d«      }|j	                  d¬«      dz  }t        «       }t        ||t        | j                  |¬«      }|j                  |j                  k(  rŒyJ ‚ y )Nr$   rL   iŒ÷ r   )rš   r.   )ry   r¤   rÆ   )
Úranger&   ro   rp   Úuniformr1   r   rB   r¤   r4   )r6   r|   r{   rr   Úftrivialr©   s         r   Ú	test_nfevzBaseMixin.test_nfev'  sy   € ä�q˜!“ò 	-ˆAÜ—)‘)×'Ñ'¨Ó/ˆCØ—‘ !�Ó$ rÑ)ˆBÜ%Ó'ˆHÜØ˜¤¸¿¹ÈaôˆCð —8‘8˜xŸ}™}Ó,Ð,Ð,ñ	-r   c           
      óŠ  — ddg}ddg}t        dddt        gdt        j                  ddg«      dgd	d
g«      D ]}  \  }}}t	        j
                  «       5  t	        j                  d| j                  t        «       t        t        ||||| j                  ¬«      }d d d «       t        j                  |«       Œ y # 1 sw Y   Œ"xY w)NrR   r$   r­   r®   r¯   rÊ   çš™™™™™É?ry   ÚexactÚlsmrr°   ©rÌ   Ú	tr_solverr¤   )r   rB   r&   r'   rµ   r¶   r·   r¸   r¹   r   r/   r¤   r   r   )r6   rr   Úx_optry   rÌ   rò   r©   s          r   Útest_rosenbrockzBaseMixin.test_rosenbrock2  sÃ   € Ø�!ˆWˆØ�A�ˆÜ'.Ø˜I t¬^Ð<Ø”b—h‘h  S˜zÓ*¨EÐ2Ø˜&Ð!ó(#ò 	*Ñ#ˆC�˜)ô ×(Ñ(Ó*ñ MÜ×'Ñ'¨°$·(±(¼KÔHÜ#¤N°B¸ÀWØ.7ÀÇÁôM�÷Mô ˜CŸE™E 5Õ)ñ	*÷Mð Mús   ÁAB9Â9C	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 )NrR   r$   rÛ   r£   r­   r®   r¯   rÊ   rî   ry   rï   rð   rñ   r   g›+¡†›„=r¦   )r¤   rº   rÁ   r   rG   r   rJ   r&   r'   r   rÜ   )r6   rr   ry   rÌ   rò   r©   s         r   Útest_rosenbrock_croppedz!BaseMixin.test_rosenbrock_cropped?  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   rM   r¤   r5   s    r   Útest_fun_wrong_dimensionsz#BaseMixin.test_fun_wrong_dimensionsN  s   € Ü”j¤-Ô1EØ $§+¡+ö	/r   c                 óZ   — t        t        t        t        dt        | j
                  ¬«       y rø   )rº   rÁ   r   r   rP   r¤   r5   s    r   Útest_jac_wrong_dimensionsz#BaseMixin.test_jac_wrong_dimensionsR  s   € Ü”j¤-´ØÔ/¸¿¹ö	Er   c                 ób   — ddg}t        t        t        t        |t        | j
                  ¬«       y )Nr$   r   r£   )rº   rÁ   r   r/   rE   r¤   ©r6   rr   s     r   Ú(test_fun_and_jac_inconsistent_dimensionsz2BaseMixin.test_fun_and_jac_inconsistent_dimensionsV  s%   € Ø�ˆVˆÜ”j¤-´ÀÜ,°T·[±[ö	Br   c                 óš   — t        j                  d«      j                  dd«      }t        t        t
        t        || j                  ¬«       y )NrS   r   r£   )r&   rq   rX   rº   rÁ   r   r   r¤   rý   s     r   Útest_x0_multidimensionalz"BaseMixin.test_x0_multidimensional[  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_scalar`  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_arraye  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ˆ  r‚   rÚ   )Úftolr¤   rÆ   rË   )r&   rq   r¤   r   r]   r   r4   rÜ   )r6   rZ   rr   rÆ   r©   s        r   Útest_bvpzBaseMixin.test_bvpj  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  r5   s    r   Ú/test_error_raised_when_all_tolerances_below_epsz9BaseMixin.test_error_raised_when_all_tolerances_below_eps{  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Û   rR   r$   ))ç:Œ0âŽyE>NN)Nr  N)NNr  )ry   r  r  r  r¤   )r¤   r   r/   rB   r   r   )r6   rr   ró   r  r  r  r©   s          r   Ú0test_convergence_with_only_one_tolerance_enabledz:BaseMixin.test_convergence_with_only_one_tolerance_enabled€  sk   € Ø�;‰;˜$ÒØØ�!ˆWˆØ�A�ˆð!6ò 	*ÑˆD�$˜ô  ¤°¼Ø%)°¸4Ø'+§{¡{ô4ˆCô ˜CŸE™E 5Õ)ñ	*r   r$   r   c                 óD  — t        t        d| j                  ¬«      }g }dD ]0  }t        t        d| j                  |¬«      }|j                  |«       Œ2 t	        d«      5 }t        t        d| j                  |j
                  ¬«      }|j                  |«       d d d «       |D ]p  }|j                  sJ ‚t        |j                  |j                  «       t        |j                  |j                  «       t        |j                  |j                  «       Œr y # 1 sw Y   ŒxY w)Nr¢   r£   r    )r¤   Úworkersr   )r   r   r¤   Úappendr   Úmaprâ   r   r   r4   rà   )r6   ÚserialÚresesr  r©   s        r   Útest_workerszBaseMixin.test_workers�  së   € ô œ{¨C¸¿¹ÔDˆàˆØ ò 	ˆGÜÜ˜S¨¯©¸gôˆCð �L‰L˜Õð		ô
 �!‹Wð 	˜ÜÜ˜S¨¯©¸g¿k¹kôˆCð �L‰L˜Ô÷		ð
 ò 	0ˆCØ—;’;Ð�;Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™ 6§;¡;Ô/Ü˜Ÿ™ 6§;¡;Õ/ñ		0÷	ð 	ús   Á9DÄD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  ÚpytestÚmarkÚparallel_threads_limitÚ	fail_slowr  r   r   r   r    r    »   s°   „ Ø
N€Cò5òDò&*ò1ò	Aò.òEòò&%ò(	-ò*ò9ò/òEòBò
*ò
*ò
*ò
 ò"Kò
*ð ‡[�[×'Ñ'¨Ó*Ø‡[�[×Ñ˜3Óñ0ó  ó +ñ0r   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¢   )ç      $@rD   ©Úboundsr¤   r  r5   s    r   Útest_inconsistentzBoundsMixin.test_inconsistent§  s   € Ü”j¤-´¸cØ(°·±ö	>r   c                 óR   — t        t        t        t        dd| j                  ¬«       y )Nr¢   )r¬   rS   r   r  r5   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   rL   r   r  r5   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   rD   ç      @)rº   rÁ   r   r   r¤   r/   r5   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¬   ©ry   r!  r¤   rD   r¥   r¦   r   rA   rL   )rË   r¬   rË   )	r!   r   r   r¤   r   r   r   rß   r   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 rh   r   ©rt   ru   s     r   Úget_bounds_directz8BoundsMixin.test_bounds_shape.<locals>.get_bounds_directÈ  s   € Ø�r�6ˆMr   c                 ó   — t        | |«      S rh   )r   r/  s     r   Úget_bounds_instancesz;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instancesË  s   € Ü˜"˜b“>Ð!r   r­   r®   r¯   rÊ   )ry   rD   rË   r¢   r+  g333333Ó?rî   r¬   rA   çñhãˆµøä>r¦   )r,   r   r)   r   r   r¤   )r6   r0  r2  ry   Úbounds_funcrr   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!  rD   r¥   r¦   r¬   rÊ   )rt   rÎ   r/  ç      À)ru   r3  rb   )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¢   rD   g333333ó¿ra   g      ø?r¬   g      IÀrË   r‚   r­   r®   r¯   ry   rï   rð   rñ   r3  r¦   )
r&   r'   Úinfr   rB   r   r/   r¤   r   rÞ   )r6   Úx0_1Úx0_2Úx0_3Úx0_4Úx0_5Úproblemsrr   r!  ry   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)r<   r=   r>   r"  r$  r&  r)  r,  r5  r8  r  r  r  rA  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¤   )	r_   rº   rÁ   r   r   rr   ry   r¤   rw   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 )Nrc   ©rz   rl   rÀ   ç#B’¡œÇ;r¦   r   )r_   r   r   rr   ry   r¤   r   r4   r   r   rÜ   ©r6   rc   rl   Ú
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   rJ  r¦   )r_   r   r   rr   ry   r¤   r   rÜ   ©r6   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ÚbestrE  rð   ÚtolrQ  )rò   rS  )	r_   rº   rÁ   r   r   rr   ry   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 )Nrc   rI  rl   rÀ   r   rJ  r¦   )r_   r   r   rr   ry   r¤   r   rÜ   r   r
   Ú
isinstancer&   ÚndarrayrK  s        r   Útest_solver_selectionz!SparseMixin.test_solver_selection4  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¤   rF  rJ  r¦   r   )r_   r   r   rr   r¤   rw   r   r4   r   r   rÜ   )r6   r”   ry   rM  rL  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¤   rF  r   rQ  r¦   )r_   r   ry   rw   r   r   rr   rt   r&   r:  r¤   ru   r   rÞ   )r6   r”   ry   rF  Úres_1Úres_2Úres_3s          r   Útest_with_boundszSparseMixin.test_with_boundsL  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 )NrA   ©rF  r¤   )r_   rw   rº   rÁ   r   r   rr   r¤   )r6   r”   rw   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 )	Nrf   rI  r£   rD   rJ  r¦   rï   )r¤   rò   ©
r_   r   r   rr   ry   r¤   r   rÜ   rº   rÁ   rT  s      r   Útest_linear_operatorz SparseMixin.test_linear_operatord  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 )Nry   )r¤   rÌ   rD   rJ  r¦   rf   rI  ri  rT  s      r   Útest_x_scale_jac_scalez"SparseMixin.test_x_scale_jac_scalek  sp   € ÜÓ ˆÜ˜AŸE™E 1§4¡4¨¯©°t·{±{Ø$)ô+ˆä˜Ÿ™ #¨EÕ2ä JÔ/ˆÜ”j¤-°·±¸¿¹¸a¿e¹eØ!Ÿ[™[°%ö	9r   N)r<   r=   r>   rG  rN  rU  rY  r]  r_  r  r  r  rd  rg  rj  rl  r   r   r   rC  rC    sT   „ ò*ò7ò1òCò
7ò
<ð ‡[�[×Ñ˜2Óñ=ó ð=ò"Aò=ó9r   rC  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Á   ©r6   rq  r©   s      r   Útest_optionszLossFunctionMixin.test_optionsw  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¢   rp  )rt  r   r   r¤   r   r   r   ru  s      r   Útest_funzLossFunctionMixin.test_fun€  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$   ©rq  rÆ   r¤   r   rÙ   ÚhuberÚsoft_l1rË   ÚcauchyÚarctanrS   gUUUUUUå?)
r&   r'   r   r   r!   r¤   r   rÝ   r   rž   )r6   r   r©   s      r   Ú	test_gradzLossFunctionMixin.test_gradˆ  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Ù   rz  r$   r{  r|  rË   r.   )rq  Úf_scalerÆ   r}  g      è¿r~  )rq  r‚  rÆ   r¤   r  g      4@rÅ   rL   rS   )rq  rÆ   é   g«ªªªªªê¿)	r   r   r!   r¤   r   ry   r   r   rž   )r6   r   r~   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)rb   rÊ   r$   rb   içyº )r{   r­   r®   r¯   rÀ   r   rÚ   r¦   rz  )ry   rq  r‚  r¤   )r„   ry   r   r   rˆ   r¤   r   rÞ   rt  r   r   r   r‹   )r6   r�   r”   ry   Úres_lsqrq  Ú
res_robusts          r   Útest_robustnessz!LossFunctionMixin.test_robustnessë  sö   € Øó 	7ˆEÜ)¨!¨S°%¸XÔFˆ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)r<   r=   r>   rv  rx  r€  r…  r‰  r   r   r   rn  rn  v  s   „ ò8ò6òIò>BLóH7r   rn  c                   ó   — e Zd ZdZy)Ú
TestDogboxÚdogboxN)r<   r=   r>   r¤   r   r   r   r‹  r‹  þ  s   „ Ø�Fr   r‹  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)TFr�  Ú
regularizerR  r   rJ  r¦   )r_   r   r   rr   ry   r   rÜ   )r6   r”   r‘  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)r<   r=   r>   r¤   r’  r   r   r   rŽ  rŽ    s   „ Ø€Fó5r   rŽ  c                   ó:   — e Zd 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¢   )r7  r¬   rÛ   r   ©rº   rÁ   r   r   r5   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 )NrR   r$   rÛ   r£   )rº   rÁ   r   rG   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£   ©r_   rº   rÁ   r   r   rr   ry   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Û   rf  r–  r5   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 )Nrf   rI  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¢   rz  rÛ   rp  rD   r¥   r¦   r|  )r¤   rq  )r   r   r   r   rº   rÁ   r¨   s     r   Ú	test_losszTestLM.test_loss'  s7   € ÜœK¨°8ÀDÔIˆÜ˜Ÿ™˜s¨Õ.ä”j¤-´¸cØ!¨ö	1r   c                 óº   — d„ }t        j                  «       5  t        j                  ddt        «       t	        t
        dgd|¬«       d d d «       y # 1 sw Y   y xY w)Nc                 ó   — J ‚rh   r   r(   s    r   Úcallbackz5TestLM.test_callback_with_lm_method.<locals>.callback/  s   € Ø�5r   r°   z@Callback function specified, but not supported with `lm` method.r   rÛ   )rr   r¤   r¥  )rµ   r¶   r·   r¹   r   r   )r6   r¥  s     r   Útest_callback_with_lm_methodz#TestLM.test_callback_with_lm_method.  sW   € ò	ô ×$Ñ$Ó&ñ 	OÜ×#Ñ#ØØRÜôô
 œ+¨1¨#°dÀXÕN÷	O÷ 	Oñ 	Oús   ˜0AÁAN)r<   r=   r>   r¤   r—  r™  rœ  rž  r   r¢  r¦  r   r   r   r”  r”    s+   „ Ø€Fò<ò#ò
#ò
5ò#ò
1ó
Or   r”  c                  óT   — t        t        d«      } t        | j                  dd¬«       y )Nr¢   r   rQ  r¦   )r   r   r   r   )r©   s    r   rª   rª   ;  s   € ä
œ SÓ
)€CÜ�C—E‘E˜1 5Ö)r   c                  ó8  ‡
— g Š
dt         fˆ
fd„} ˆ
fd„}dt         fˆ
fd„}ˆ
fd„}| |g}||g}d„ d„ d„ g}t        ||«      D ]u  \  }}‰
j                  «         ||«      }	t        ‰
«      d	kD  sJ ‚‰
d
   j                  d	kD  sJ ‚|	j
                  dk7  sJ ‚t        ‰
d
   j                  |	j                  «       Œw t        ||«      D ]R  \  }}‰
j                  «         ||«      }	t        ‰
«      d	kD  sJ ‚‰
d
   j                  dk(  sJ ‚|	j
                  dk(  rŒRJ ‚ y )NÚintermediate_resultc                 ó(   •— ‰j                  | «       y rh   )r  ©r©  Úresultss    €r   Úmy_callback_optimresultz.test_callback.<locals>.my_callback_optimresultF  s   ø€ Ø�‰Ð*Õ+r   c                 óX   •— t        «       }d|_        | |_        ‰j                  |«       y)Nr$   F)r   Únitr   r  ©r   Úrr¬  s     €r   Úmy_callback_xz$test_callback.<locals>.my_callback_xI  s(   ø€ ÜÓˆØˆŒØˆŒØ�‰�qÔØr   c                 ó2   •— ‰j                  | «       t        ‚rh   )r  ÚStopIterationr«  s    €r   Ú&my_callback_optimresult_stop_exceptionz=test_callback.<locals>.my_callback_optimresult_stop_exceptionP  s   ø€ à�‰Ð*Ô+ÜÐr   c                 ób   •— t        «       }d|_        | |_        ‰j                  |«       t        ‚r9   )r   r¯  r   r  r´  r°  s     €r   Úmy_callback_x_stop_exceptionz3test_callback.<locals>.my_callback_x_stop_exceptionU  s+   ø€ ÜÓˆØˆŒØˆŒØ�‰�qÔÜÐr   c                 ó(   — t        t        dd| ¬«      S )Nr   r�  ©r¤   r¥  ©r   r   ©r¥  s    r   rk   ztest_callback.<locals>.<lambda>c  s   € œ¤{°CÀØ08ô:€ r   c                 ó*   — t        t        ddd| ¬«      S )Nr   r�  )g       Àç       @)r¤   r!  r¥  rº  r»  s    r   rk   ztest_callback.<locals>.<lambda>e  s   € œ¤{°CÀØ.9ÀHôN€ r   c                 ó(   — t        t        dd| ¬«      S )Nr   rŒ  r¹  rº  r»  s    r   rk   ztest_callback.<locals>.<lambda>g  s   € œ¤{°CÀØ08ô:€ r   r   rA   rR   r$   )r   r   ÚclearÚlenr¯  rá   r   r   )r­  r²  rµ  r·  Úcallbacks_nostopÚcallbacks_stopÚcallsÚ
mycallbackÚcallr©   r¬  s             @r   Útest_callbackrÆ  A  sI  ø€ ð €Gð,´^õ ,ôðÜ+õô
ð 0°Ð?ÐØ<Ø2ð4€Nñ
	:ñ	Nñ	:ð€Eô $Ð$4°eÓ<ò .Ñˆ
�DØ�‰Œá�:Óˆä�7‹|˜aÒÐÐà�r‰{�‰ Ò"Ð"Ð"à�z‰z˜RÒÐÐä˜ ™Ÿ™ s§u¡uÕ-ð.ô $ N°EÓ:ò 	 Ñˆ
�DØ�‰Œá�:Óˆä�7‹|˜aÒÐÐà�r‰{�‰ !Ò#Ð#Ð#à�z‰z˜RÓÐÐñ	 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t         j                  ¬«      }| j                  dt         j                  ¬«      }d„ Šˆfd„Šˆfd	„}t        ‰d
d
g||f¬«      }|j                  dkD  sJ ‚t        |d
dgd||fddi¬«      }t        |j                  |j                  d¬«       y )Niº  r   r$   r‚   rd   )rš   re   c                 óX   — | d   | d   |z  z   j                  t        j                  «      S r#   ©Úastyper&   Úfloat32)r”   r   s     r   Úfuncztest_fp32_gh12991.<locals>.func˜  s'   € Ø�!‘�q˜‘t˜a‘x‘×'Ñ'¬¯
©
Ó3Ð3r   c                 óV   •—  ‰| |«      |z
  j                  t        j                  «      S rh   rÌ  )r”   r   r\   rÏ  s      €r   Úerrztest_fp32_gh12991.<locals>.err›  s"   ø€ Ù�Q˜“
˜Q‘×&Ñ&¤r§z¡zÓ2Ð2r   c                 óD   •— t        j                   ‰| ||«      dz  «      S r    )r&   Úsum)r”   r   r\   rÑ  s      €r   Úmseztest_fp32_gh12991.<locals>.msež  s   ø€ Ü�v‰v‘c˜!˜Q “l A‘oÓ&Ð&r   rÎ   )r±   r   rÊ   ÚcobyqaÚfinal_tr_radiusg�íµ ÷Æ°>)r¤   r±   rÖ   gÖÿ9Ì—?r¦   )
r&   ro   rp   rs   rÎ  r   r4   r   r   r   )r{   r   r\   rÔ  r©   Úres2rÑ  rÏ  s         @@r   Útest_fp32_gh12991rØ  Œ  s¼   ù€ ô �)‰)×
Ñ
 Ó
%€Cä
�‰�A�q˜#¤R§Z¡ZÔ0€AØ�
‰
˜¤2§:¡:ˆ
Ó.€Aò4ô3ô'ô ˜˜d D˜\°°A°Ô
7€Cð �8‰8�aŠ<Ðˆ<äØØ	ˆsˆØØ�ˆVØ" DÐ)ô€Dô �C—E‘E˜4Ÿ6™6¨Ö-r   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   rr  r   )rr   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ã  ´  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 )NrD   éB   )SrÊ   rD   rD   rD   rD   rD   rÊ   rÊ   rD   rD   rÊ   rÊ   rÊ   rÊ   rD   rD   rD   rÊ   rD   rD   r¢   rÊ   rD   r¬   rÊ   ç      @r   rD   rD   r¢   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   rb   c                 óR   •— | \  }}}|t        j                  |‰|z
  z  «      z  ‰z
  S rh   )r&   r‰   )ÚparamsÚAÚBrr   ÚxdataÚydatas       €€r   Úexponential_wrappedz*test_gh_19103.<locals>.exponential_wrappedà  s0   ø€ Ø‰ˆˆ1ˆbØ”2—6‘6˜!˜u r™zÑ*Ó+Ñ+¨eÑ3Ð3r   )rÚ   rÊ   r   )rÚ   r   r   r.   gfffffæ4@r�  )r¤   r!  )r&   r'   rx   rš   r:  r   râ   )rõ  rr   r!  r©   ró  rô  s       @@r   Útest_gh_19103rö  Î  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;   )rD   )@rµ   Ú	itertoolsr   Úmultiprocessingr   Únumpyr&   Únumpy.linalgr   Únumpy.testingr   r   r   r  r	   rº   Úscipy.sparser
   r   Úscipy.sparse.linalgr   Úscipy.optimizer   r   r   Ú!scipy.optimize._lsq.least_squaresr   Úscipy.optimize._lsq.commonr   r   r   r   r   r!   r)   r,   r/   r1   rB   rE   rG   rJ   rM   rP   r]   r_   r„   rž   ÚlistÚkeysrt  r    r  rC  rn  r‹  rŽ  r”  rª   rÆ  rÉ  rØ  rã  rö  r   r   r   ú<module>r     sI  ðÛ å Ý  ã Ý ÷)ñ )ã Ý *ß ,Ý 0ç :Ñ :Ý @ß UÑ Uå )óóò"òò9÷!ñ !òòò ò ò
%ó.ò÷0ñ 0÷fñ ò>ñ 
Ð%Ð ×%Ñ%Ó'Ó	(¨M¨?Ñ	:€÷h0ñ h0÷Vg@ñ g@÷Tc9ñ c9÷LE7ñ E7ôP�˜K¨Ð6Gô ô5ˆi˜ kÐ3Dô 5ô+OˆYô +Oò\*ò@ òF9ò%.òPAó4r   