Ë
    âQ(h&m  ã                   óv  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZ  G d„ d«      Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zd„ Zd„ Z d„ Z!d„ Z" G d „ d!«      Z#y)"é    N)Ú
block_diag)Ú
csc_matrix)Úassert_array_almost_equalÚassert_array_lessÚassert_Úsuppress_warnings)ÚNonlinearConstraintÚLinearConstraintÚBoundsÚminimizeÚBFGSÚSR1Úrosenc                   ó:   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zed„ «       Z	y)	ÚMaratosú²Problem 15.4 from Nocedal and Wright

    The following optimization problem:
        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
        Subject to: x[0]**2 + x[1]**2 - 1 = 0
    Nc                 óð   — |dz  t         j                  z  }t        j                  |«      t        j                  |«      g| _        t        j
                  ddg«      | _        || _        || _        d | _	        y ©Né´   ç      ð?ç        ©
ÚnpÚpiÚcosÚsinÚx0ÚarrayÚx_optÚ
constr_jacÚconstr_hessÚbounds©ÚselfÚdegreesr    r!   Úradss        úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_minimize_constrained.pyÚ__init__zMaratos.__init__   óZ   € Ø�s‰{œ2Ÿ5™5Ñ ˆÜ—6‘6˜$“<¤§¡¨£Ð.ˆŒÜ—X‘X˜s C˜jÓ)ˆŒ
Ø$ˆŒØ&ˆÔØˆ�ó    c                 ó<   — d|d   dz  |d   dz  z   dz
  z  |d   z
  S ©Né   r   é   © ©r$   Úxs     r'   ÚfunzMaratos.fun!   s0   € Ø�!�A‘$˜‘'˜A˜a™D !™GÑ# aÑ'Ñ(¨1¨Q©4Ñ/Ð/r*   c                 óN   — t        j                  d|d   z  dz
  d|d   z  g«      S ©Né   r   r.   ©r   r   r0   s     r'   ÚgradzMaratos.grad$   s*   € Ü�x‰x˜˜1˜Q™4™ ™ 1 Q q¡T¡6Ð*Ó+Ð+r*   c                 ó2   — dt        j                  d«      z  S ©Nr5   r-   ©r   Úeyer0   s     r'   ÚhesszMaratos.hess'   ó   € Ø”—‘˜“‰{Ðr*   c                 ó–   — d„ }| j                   €d„ }n| j                   }| j                  €d„ }n| j                  }t        |dd||«      S )Nc                 ó$   — | d   dz  | d   dz  z   S ©Nr   r-   r.   r/   ©r1   s    r'   r2   zMaratos.constr.<locals>.fun,   ó   € Ø�Q‘4˜‘7˜Q˜q™T 1™WÑ$Ð$r*   c                 ó$   — d| d   z  d| d   z  ggS r,   r/   rA   s    r'   ÚjaczMaratos.constr.<locals>.jac0   ó    € Ø˜1˜Q™4™  1 Q¡4¡Ð(Ð)Ð)r*   c                 ó>   — d|d   z  t        j                  d«      z  S ©Nr-   r   r:   ©r1   Úvs     r'   r<   zMaratos.constr.<locals>.hess6   ó   € Ø˜˜1™‘vœbŸf™f Q›iÑ'Ð'r*   r.   ©r    r!   r	   ©r$   r2   rD   r<   s       r'   ÚconstrzMaratos.constr*   óT   € ò	%ð �?‰?Ð"ó*ð —/‘/ˆCà×ÑÐ#ó(ð ×#Ñ#ˆDä" 3¨¨1¨c°4Ó8Ð8r*   ©é<   NN©
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r2   r7   r<   ÚpropertyrM   r/   r*   r'   r   r      s/   „ ñóò0ò,òð ñ9ó ñ9r*   r   c                   ó@   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ Ze	d„ «       Z
y)
ÚMaratosTestArgsr   Nc                 ó  — |dz  t         j                  z  }t        j                  |«      t        j                  |«      g| _        t        j
                  ddg«      | _        || _        || _        || _	        || _
        d | _        y r   )r   r   r   r   r   r   r   r    r!   ÚaÚbr"   )r$   rZ   r[   r%   r    r!   r&   s          r'   r(   zMaratosTestArgs.__init__F   sh   € Ø�s‰{œ2Ÿ5™5Ñ ˆÜ—6‘6˜$“<¤§¡¨£Ð.ˆŒÜ—X‘X˜s C˜jÓ)ˆŒ
Ø$ˆŒØ&ˆÔØˆŒØˆŒØˆ�r*   c                 óT   — | j                   |k7  s| j                  |k7  r
t        «       ‚y ©N)rZ   r[   Ú
ValueError)r$   rZ   r[   s      r'   Ú
_test_argszMaratosTestArgs._test_argsP   s$   € Ø�6‰6�QŠ;˜$Ÿ&™& Aš+Ü“,Ðð &r*   c                 ó`   — | j                  ||«       d|d   dz  |d   dz  z   dz
  z  |d   z
  S r,   )r_   ©r$   r1   rZ   r[   s       r'   r2   zMaratosTestArgs.funT   s>   € Ø�‰˜˜1ÔØ�!�A‘$˜‘'˜A˜a™D !™GÑ# aÑ'Ñ(¨1¨Q©4Ñ/Ð/r*   c                 ór   — | j                  ||«       t        j                  d|d   z  dz
  d|d   z  g«      S r4   )r_   r   r   ra   s       r'   r7   zMaratosTestArgs.gradX   s8   € Ø�‰˜˜1ÔÜ�x‰x˜˜1˜Q™4™ ™ 1 Q q¡T¡6Ð*Ó+Ð+r*   c                 óV   — | j                  ||«       dt        j                  d«      z  S r9   )r_   r   r;   ra   s       r'   r<   zMaratosTestArgs.hess\   s"   € Ø�‰˜˜1ÔØ”—‘˜“‰{Ðr*   c                 ó–   — d„ }| j                   €d„ }n| j                   }| j                  €d„ }n| j                  }t        |dd||«      S )Nc                 ó$   — | d   dz  | d   dz  z   S r@   r/   rA   s    r'   r2   z#MaratosTestArgs.constr.<locals>.funb   rB   r*   c                 ó$   — d| d   z  d| d   z  ggS r4   r/   rA   s    r'   rD   z#MaratosTestArgs.constr.<locals>.jacf   rE   r*   c                 ó>   — d|d   z  t        j                  d«      z  S rG   r:   rH   s     r'   r<   z$MaratosTestArgs.constr.<locals>.hessl   rJ   r*   r.   rK   rL   s       r'   rM   zMaratosTestArgs.constr`   rN   r*   rO   )rR   rS   rT   rU   r(   r_   r2   r7   r<   rV   rM   r/   r*   r'   rX   rX   >   s4   „ ñóòò0ò,òð ñ9ó ñ9r*   rX   c                   óD   — e Zd ZdZdd„Zd„ Zed„ «       Zd„ Zed„ «       Z	y)	ÚMaratosGradInFuncr   Nc                 óð   — |dz  t         j                  z  }t        j                  |«      t        j                  |«      g| _        t        j
                  ddg«      | _        || _        || _        d | _	        y r   r   r#   s        r'   r(   zMaratosGradInFunc.__init__|   r)   r*   c                 óˆ   — d|d   dz  |d   dz  z   dz
  z  |d   z
  t        j                  d|d   z  dz
  d|d   z  g«      fS )Nr-   r   r.   r5   r6   r0   s     r'   r2   zMaratosGradInFunc.fun„   s\   € Ø�1�Q‘4˜‘7˜Q˜q™T 1™WÑ$ qÑ(Ñ)¨A¨a©DÑ0Ü—‘˜!˜A˜a™D™& ™( A a¨¡d¡FÐ+Ó,ð.ð 	.r*   c                  ó   — y)NTr/   ©r$   s    r'   r7   zMaratosGradInFunc.gradˆ   s   € àr*   c                 ó2   — dt        j                  d«      z  S r9   r:   r0   s     r'   r<   zMaratosGradInFunc.hessŒ   r=   r*   c                 ó–   — d„ }| j                   €d„ }n| j                   }| j                  €d„ }n| j                  }t        |dd||«      S )Nc                 ó$   — | d   dz  | d   dz  z   S r@   r/   rA   s    r'   r2   z%MaratosGradInFunc.constr.<locals>.fun‘   rB   r*   c                 ó$   — d| d   z  d| d   z  ggS r4   r/   rA   s    r'   rD   z%MaratosGradInFunc.constr.<locals>.jac•   rE   r*   c                 ó>   — d|d   z  t        j                  d«      z  S rG   r:   rH   s     r'   r<   z&MaratosGradInFunc.constr.<locals>.hess›   rJ   r*   r.   rK   rL   s       r'   rM   zMaratosGradInFunc.constr�   rN   r*   rO   )
rR   rS   rT   rU   r(   r2   rV   r7   r<   rM   r/   r*   r'   ri   ri   t   s>   „ ñóò.ð ñó ðòð ñ9ó ñ9r*   ri   c                   ó:   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zed„ «       Z	y)	ÚHyperbolicIneqa  Problem 15.1 from Nocedal and Wright

    The following optimization problem:
        minimize 1/2*(x[0] - 2)**2 + 1/2*(x[1] - 1/2)**2
        Subject to: 1/(x[0] + 1) - x[1] >= 1/4
                                   x[0] >= 0
                                   x[1] >= 0
    Nc                 ó‚   — ddg| _         ddg| _        || _        || _        t	        dt
        j                  «      | _        y )Nr   g–~TÃ>ÿ?gþ~1[²¶?)r   r   r    r!   r   r   Úinfr"   )r$   r    r!   s      r'   r(   zHyperbolicIneq.__init__¬   s:   € Ø�a�&ˆŒØ Ð)ˆŒ
Ø$ˆŒØ&ˆÔÜ˜Q¤§¡Ó'ˆ�r*   c                 ó<   — d|d   dz
  dz  z  d|d   dz
  dz  z  z   S )Nç      à?r   r-   r.   r/   r0   s     r'   r2   zHyperbolicIneq.fun³   s/   € Ø�A�a‘D˜1‘H˜q‘=Ñ  3¨¨!©¨s©
°Q¡Ñ#6Ñ6Ð6r*   c                 ó"   — |d   dz
  |d   dz
  gS )Nr   r-   r.   rx   r/   r0   s     r'   r7   zHyperbolicIneq.grad¶   s   € Ø�!‘�q‘˜!˜A™$ ™*Ð%Ð%r*   c                 ó,   — t        j                  d«      S ©Nr-   r:   r0   s     r'   r<   zHyperbolicIneq.hess¹   s   € Ü�v‰v�a‹yÐr*   c                 ó²   — d„ }| j                   €d„ }n| j                   }| j                  €d„ }n| j                  }t        |dt        j                  ||«      S )Nc                 ó$   — d| d   dz   z  | d   z
  S )Nr.   r   r/   rA   s    r'   r2   z"HyperbolicIneq.constr.<locals>.fun¾   s   € Ø�a˜‘d˜Q‘h‘< ! A¡$Ñ&Ð&r*   c                 ó$   — d| d   dz   dz  z  dggS )Néÿÿÿÿr   r.   r-   r/   rA   s    r'   rD   z"HyperbolicIneq.constr.<locals>.jacÂ   s!   € Ø˜Q˜q™T A™X¨™MÑ)¨2Ð.Ð/Ð/r*   c                 ób   — d|d   z  t        j                  d| d   dz   dz  z  dgddgg«      z  S )Nr-   r   r.   é   r6   rH   s     r'   r<   z#HyperbolicIneq.constr.<locals>.hessÈ   sE   € Ø˜˜1™‘vœbŸh™h¨¨A¨a©D°1©H°q©=©¸!Ð(<Ø)*¨A¨ð(0ó 1ñ 1ð 1r*   g      Ð?©r    r!   r	   r   rv   rL   s       r'   rM   zHyperbolicIneq.constr¼   sX   € ò	'ð �?‰?Ð"ó0ð —/‘/ˆCà×ÑÐ#ó1ð ×#Ñ#ˆDä" 3¨¬b¯f©f°c¸4Ó@Ð@r*   )NNrQ   r/   r*   r'   rt   rt   £   s1   „ ñó(ò7ò&òð ñAó ñAr*   rt   c                   ó:   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zed„ «       Z	y)	Ú
Rosenbrockz�Rosenbrock function.

    The following optimization problem:
        minimize sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
    c                 ó´   — t         j                  j                  |«      }|j                  dd|«      | _        t        j
                  |«      | _        d | _        y )Nr   r.   )r   ÚrandomÚRandomStateÚuniformr   Úonesr   r"   )r$   ÚnÚrandom_stateÚrngs       r'   r(   zRosenbrock.__init__Ø   s@   € Ü�i‰i×#Ñ# LÓ1ˆØ—+‘+˜b ! QÓ'ˆŒÜ—W‘W˜Q“ZˆŒ
Øˆ�r*   c                 óš   — t        j                  |«      }t        j                  d|dd  |d d dz  z
  dz  z  d|d d z
  dz  z   d¬«      }|S )Ng      Y@r.   r   ç       @r   ©Úaxis)r   ÚasarrayÚsum)r$   r1   Úrs      r'   r2   zRosenbrock.funÞ   sZ   € Ü�J‰J�q‹MˆÜ�F‰F�5˜A˜a˜b˜E A c r F¨C¡KÑ/°#Ñ5Ñ5¸¸Q¸sÀ¸V¹ÀcÑ8IÑIØôˆàˆr*   c                 ó8  — t        j                  |«      }|dd }|d d }|dd  }t        j                  |«      }d||dz  z
  z  d||dz  z
  z  |z  z
  dd|z
  z  z
  |dd d|d   z  |d   |d   dz  z
  z  dd|d   z
  z  z
  |d<   d|d   |d   dz  z
  z  |d<   |S )	Nr.   r   éþÿÿÿr-   éÈ   é�  épþÿÿr   )r   r‘   Ú
zeros_like)r$   r1   ÚxmÚxm_m1Úxm_p1Úders         r'   r7   zRosenbrock.gradä   sÛ   € Ü�J‰J�q‹MˆØˆq�ˆWˆØ�#�2�ˆØ�!�"�ˆÜ�m‰m˜AÓˆØ˜B ¨¡™MÑ*Ø˜E B¨¡E™MÑ*¨RÑ/ñ0Ø23°q¸2±v±,ñ?ˆˆAˆbˆ	à˜˜!™‘  !¡ q¨¡t¨Q¡w¡Ñ/°!°q¸1¸Q¹4±x±.Ñ@ˆˆA‰Ø˜˜2™  2¡¨¡Ñ)Ñ*ˆˆB‰Øˆ
r*   c                 ó˜  — t        j                  |«      }t        j                  d|d d z  d«      t        j                  d|d d z  d«      z
  }t        j                  t	        |«      |j
                  ¬«      }d|d   dz  z  d|d   z  z
  dz   |d<   d	|d<   d
d|dd dz  z  z   d|dd  z  z
  |dd |t        j                  |«      z   }|S )Nr˜   r   r.   r—   )Údtypei°  r   r-   r–   éÊ   )r   Ú
atleast_1dÚdiagÚzerosÚlenrŸ   )r$   r1   ÚHÚdiagonals       r'   r<   zRosenbrock.hessð   sÒ   € Ü�M‰M˜!ÓˆÜ�G‰G�D˜1˜S˜b˜6‘M 1Ó%¬¯©°°a¸¸°f±¸bÓ(AÑAˆÜ—8‘8œC ›F¨!¯'©'Ô2ˆØ˜Q˜q™T 1™W‘n s¨Q¨q©T¡zÑ1°AÑ5ˆ�‰Øˆ�‰Ø˜t a¨¨" g¨q¡jÑ0Ñ0°3¸¸1¸2¸±;Ñ>ˆ��2ˆØ”—‘˜Ó!Ñ!ˆØˆr*   c                  ó   — y)Nr/   r/   rm   s    r'   rM   zRosenbrock.constrú   s   € àr*   N)r-   r   rQ   r/   r*   r'   r„   r„   Ñ   s/   „ ñóòò
òð ñó ñr*   r„   c                   ó(   — e Zd ZdZdd„Zed„ «       Zy)ÚIneqRosenbrockzöRosenbrock subject to inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to: x[0] + 2 x[1] <= 1

    Taken from matlab ``fmincon`` documentation.
    c                 ód   — t         j                  | d|«       ddg| _        ddg| _        d | _        y )Nr-   r   ç      à¿gn£¼à?g$¹ü‡ôÛÏ?©r„   r(   r   r   r"   ©r$   r‹   s     r'   r(   zIneqRosenbrock.__init__  s2   € Ü×Ñ˜D ! \Ô2Ø�t�*ˆŒØ˜fÐ%ˆŒ
Øˆ�r*   c                 óH   — ddgg}d}t        |t        j                   |«      S ©Nr.   r-   ©r
   r   rv   )r$   ÚAr[   s      r'   rM   zIneqRosenbrock.constr  s'   € à�ˆVˆHˆØˆÜ ¤B§F¡F 7¨AÓ.Ð.r*   N©r   ©rR   rS   rT   rU   r(   rV   rM   r/   r*   r'   r©   r©   ÿ   s    „ ñóð ñ/ó ñ/r*   r©   c                   ó   — e Zd ZdZdd„Zy)ÚBoundedRosenbrocka  Rosenbrock subject to inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to:  -2 <= x[0] <= 0
                      0 <= x[1] <= 2

    Taken from matlab ``fmincon`` documentation.
    c                 ó|   — t         j                  | d|«       ddg| _        d | _        t	        ddgddg«      | _        y )Nr-   gš™™™™™É¿gš™™™™™É?r•   r   )r„   r(   r   r   r   r"   r­   s     r'   r(   zBoundedRosenbrock.__init__  s<   € Ü×Ñ˜D ! \Ô2Ø˜�+ˆŒØˆŒ
Ü˜b !˜W q¨! fÓ-ˆ�r*   Nr²   )rR   rS   rT   rU   r(   r/   r*   r'   rµ   rµ     s   „ ñô.r*   rµ   c                   ó(   — e Zd ZdZdd„Zed„ «       Zy)ÚEqIneqRosenbrocka*  Rosenbrock subject to equality and inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to: x[0] + 2 x[1] <= 1
                    2 x[0] + x[1] = 1

    Taken from matlab ``fimincon`` documentation.
    c                 ód   — t         j                  | d|«       ddg| _        ddg| _        d | _        y )Nr-   r   r«   gæWs€`ŽÚ?gÙ|\*ÆÅ?r¬   r­   s     r'   r(   zEqIneqRosenbrock.__init__0  s2   € Ü×Ñ˜D ! \Ô2Ø�t�*ˆŒØ˜wÐ'ˆŒ
Øˆ�r*   c                 óp   — ddgg}d}ddgg}d}t        |t        j                   |«      t        |||«      fS r¯   r°   )r$   ÚA_ineqÚb_ineqÚA_eqÚb_eqs        r'   rM   zEqIneqRosenbrock.constr6  sJ   € à�a�&�ˆØˆØ�A�ˆxˆØˆÜ  ¬"¯&©&¨°&Ó9Ü   t¨TÓ2ð4ð 	4r*   Nr²   r³   r/   r*   r'   r¸   r¸   &  s    „ ñóð ñ4ó ñ4r*   r¸   c                   óJ   — e Zd ZdZ	 	 d
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d	„ «       Zy)ÚElecaª  Distribution of electrons on a sphere.

    Problem no 2 from COPS collection [2]_. Find
    the equilibrium state distribution (of minimal
    potential) of the electrons positioned on a
    conducting sphere.

    References
    ----------
    .. [1] E. D. Dolan, J. J. Mor'{e}, and T. S. Munson,
           "Benchmarking optimization software with COPS 3.0.",
            Argonne National Lab., Argonne, IL (US), 2004.
    Nc                 óš  — || _         t        j                  j                  |«      | _        | j                  j                  ddt        j                  z  | j                   «      }| j                  j                  t        j                   t        j                  | j                   «      }t        j                  |«      t        j                  |«      z  }t        j                  |«      t        j                  |«      z  }t        j                  |«      }	t        j                  |||	f«      | _
        d | _        || _        || _        d | _        y )Nr   r-   )Ún_electronsr   r†   r‡   rŒ   rˆ   r   r   r   Úhstackr   r   r    r!   r"   )
r$   rÂ   r‹   r    r!   ÚphiÚthetar1   ÚyÚzs
             r'   r(   zElec.__init__N  sâ   € à&ˆÔÜ—9‘9×(Ñ(¨Ó6ˆŒà�h‰h×Ñ˜q !¤b§e¡e¡)¨T×-=Ñ-=Ó>ˆØ—‘× Ñ ¤"§%¡% ¬¯©°×0@Ñ0@ÓAˆÜ�F‰F�5‹MœBŸF™F 3›KÑ'ˆÜ�F‰F�5‹MœBŸF™F 3›KÑ'ˆÜ�F‰F�5‹MˆÜ—)‘)˜Q  1˜IÓ&ˆŒØˆŒ
Ø$ˆŒØ&ˆÔØˆ�r*   c                 ó†   — |d | j                    }|| j                   d| j                   z   }|d| j                   z  d  }|||fS r{   ©rÂ   )r$   r1   Úx_coordÚy_coordÚz_coords        r'   Ú_get_cordinateszElec._get_cordinates^  sW   € ØÐ%�T×%Ñ%Ð&ˆØ�D×$Ñ$ Q¨×)9Ñ)9Ñ%9Ð:ˆØ�A˜×(Ñ(Ñ(Ð)Ð*ˆØ˜ Ð(Ð(r*   c                 ó~   — | j                  |«      \  }}}|d d …d f   |z
  }|d d …d f   |z
  }|d d …d f   |z
  }|||fS r]   ©rÍ   )r$   r1   rÊ   rË   rÌ   ÚdxÚdyÚdzs           r'   Ú_compute_coordinate_deltaszElec._compute_coordinate_deltasd  s^   € Ø$(×$8Ñ$8¸Ó$;Ñ!ˆ�˜'Ø’Q˜�WÑ Ñ'ˆØ’Q˜�WÑ Ñ'ˆØ’Q˜�WÑ Ñ'ˆØ�2�rˆzÐr*   c                 ó
  — | j                  |«      \  }}}t        j                  d¬«      5  |dz  |dz  z   |dz  z   dz  }d d d «       dt        j                  |«      <   dt        j                  |«      z  S # 1 sw Y   Œ9xY w)NÚignore©Údivider-   r«   r   rx   )rÓ   r   ÚerrstateÚdiag_indices_fromr’   )r$   r1   rÐ   rÑ   rÒ   Údm1s         r'   r2   zElec.funk  s€   € Ø×4Ñ4°QÓ7‰
ˆˆB�Ü�[‰[ Ô)ñ 	2Ø�q‘5˜2˜q™5‘= 2 q¡5Ñ(¨TÑ1ˆC÷	2à)*ˆŒB× Ñ  Ó%Ñ&Ø”R—V‘V˜C“[Ñ Ð ÷	2ð 	2ús   ¬A9Á9Bc                 ó¬  — | j                  |«      \  }}}t        j                  d¬«      5  |dz  |dz  z   |dz  z   dz  }d d d «       dt        j                  |«      <   t        j                  ||z  d¬«       }t        j                  ||z  d¬«       }t        j                  ||z  d¬«       }t        j
                  |||f«      S # 1 sw Y   ŒŠxY w)NrÕ   rÖ   r-   ç      ø¿r   r.   r�   )rÓ   r   rØ   rÙ   r’   rÃ   )	r$   r1   rÐ   rÑ   rÒ   Údm3Úgrad_xÚgrad_yÚgrad_zs	            r'   r7   z	Elec.gradr  sÈ   € Ø×4Ñ4°QÓ7‰
ˆˆB�ä�[‰[ Ô)ñ 	2Ø�q‘5˜2˜q™5‘= 2 q¡5Ñ(¨TÑ1ˆC÷	2à)*ˆŒB× Ñ  Ó%Ñ&ä—&‘&˜˜c™¨Ô*Ð*ˆÜ—&‘&˜˜c™¨Ô*Ð*ˆÜ—&‘&˜˜c™¨Ô*Ð*ˆä�y‰y˜& &¨&Ð1Ó2Ð2÷	2ð 	2ús   ¬C
Ã
Cc           	      óÄ  — | j                  |«      \  }}}|dz  |dz  z   |dz  z   dz  }t        j                  d¬«      5  |dz  }|dz  }d d d «       t        j                  | j                  «      }d||f<   d||f<   |d|dz  z  |z  z
  }	t        j
                  |	d	¬
«       |	||f<   d|z  |z  |z  }
t        j
                  |
d	¬
«       |
||f<   d|z  |z  |z  }t        j
                  |d	¬
«       |||f<   |d|dz  z  |z  z
  }t        j
                  |d	¬
«       |||f<   d|z  |z  |z  }t        j
                  |d	¬
«       |||f<   |d|dz  z  |z  z
  }t        j
                  |d	¬
«       |||f<   t        j                  t        j                  |	|
|f«      t        j                  |
||f«      t        j                  |||f«      f«      }|S # 1 sw Y   �ŒŒxY w)Nr-   rx   rÕ   rÖ   éýÿÿÿéûÿÿÿr   r�   r.   r�   )rÓ   r   rØ   ÚarangerÂ   r’   ÚvstackrÃ   )r$   r1   rÐ   rÑ   rÒ   ÚdrÝ   Údm5ÚiÚHxxÚHxyÚHxzÚHyyÚHyzÚHzzr¥   s                   r'   r<   z	Elec.hess  s  € Ø×4Ñ4°QÓ7‰
ˆˆB�Ø�‰U�R˜‘U‰]˜R ™UÑ" sÑ*ˆä�[‰[ Ô)ñ 	Ø�r‘'ˆCØ�r‘'ˆC÷	ô �I‰I�d×&Ñ&Ó'ˆØˆˆAˆqˆD‰	ØˆˆAˆqˆD‰	à�A˜˜A™‘I ‘OÑ#ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	à�2‰g˜‰l˜SÑ ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	à�2‰g˜‰l˜SÑ ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	à�A˜˜A™‘I ‘OÑ#ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	à�2‰g˜‰l˜SÑ ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	à�A˜˜A™‘I ‘OÑ#ˆÜ—V‘V˜C aÔ(Ð(ˆˆAˆqˆD‰	ä�I‰IÜ�I‰I�s˜C �oÓ&Ü�I‰I�s˜C �oÓ&Ü�I‰I�s˜C �oÓ&ð
ó ˆð ˆ÷A	ñ 	ús   Á GÇGc                 ó¾   ‡ — ˆ fd„}‰ j                   €ˆ fd„}n‰ j                   }‰ j                  €d„ }n‰ j                  }t        |t        j                   d||«      S )Nc                 óV   •— ‰j                  | «      \  }}}|dz  |dz  z   |dz  z   dz
  S )Nr-   r.   rÏ   )r1   rÊ   rË   rÌ   r$   s       €r'   r2   zElec.constr.<locals>.fun§  s;   ø€ Ø(,×(<Ñ(<¸QÓ(?Ñ%ˆG�W˜gØ˜A‘: ¨¡
Ñ*¨W°a©ZÑ7¸!Ñ;Ð;r*   c                 ó   •— ‰j                  | «      \  }}}dt        j                  |«      z  }dt        j                  |«      z  }dt        j                  |«      z  }t        t        j                  |||f«      «      S r{   )rÍ   r   r¢   r   rÃ   )r1   rÊ   rË   rÌ   ÚJxÚJyÚJzr$   s          €r'   rD   zElec.constr.<locals>.jac¬  sm   ø€ Ø,0×,@Ñ,@ÀÓ,CÑ)�˜ 'ØœŸ™ Ó)Ñ)�ØœŸ™ Ó)Ñ)�ØœŸ™ Ó)Ñ)�Ü!¤"§)¡)¨R°°R¨LÓ"9Ó:Ð:r*   c                 óL   — dt        j                  |«      z  }t        |||«      S r{   )r   r¢   r   )r1   rI   ÚDs      r'   r<   zElec.constr.<locals>.hess¶  s"   € ØœŸ™ ›
‘N�Ü! ! Q¨Ó*Ð*r*   r   r‚   rL   s   `   r'   rM   zElec.constr¥  s[   ø€ ô	<ð �?‰?Ð"õ;ð —/‘/ˆCà×ÑÐ#ó+ð ×#Ñ#ˆDä" 3¬¯©¨°°C¸Ó>Ð>r*   )r–   r   NN)rR   rS   rT   rU   r(   rÍ   rÓ   r2   r7   r<   rV   rM   r/   r*   r'   rÀ   rÀ   @  sB   „ ñð 67Ø.2óò )òò!ò3ò$ðL ñ?ó ñ?r*   rÀ   c                   óž  — e Zd Z e«        ed¬«       e e«       ¬«       ed e«       ¬«       e«        e«        ed¬«       e e«       ¬«       ed e«       ¬«       e«        e	«        e
«        e«        ed¬«       edd¬«       ed e«       ¬«       edd e«       ¬«      gZej                  j                   ej                  j#                  d	e«      ej                  j#                  d
d«      ej                  j#                  ddd e«        ed¬«       ed¬«      f«      d„ «       «       «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTrustRegionConstrú2-point)r!   )r    r!   ú3-pointr-   rÉ   )rÂ   r!   )rÂ   r    r!   Úprobr7   )ú	prob.gradrú   Fr<   ú	prob.hessÚdamp_update)Úexception_strategyÚskip_updatec           
      óº  — |dk(  r|j                   n|}|dk(  r|j                  n|}|dv r|dv rt        j                  d«       |j                   du r|dv rt        j                  d«       t	        |t
        «      xr |d	k(  xr t	        |t        «      }|rt        j                  d
«       t        «       5 }|j                  t        d«       t        |j                  |j                  d|||j                  |j                  ¬«      }d d d «       |j                   �Gt#        j$                  |j                   d¬«       |j&                  dk(  rt)        |j*                  d«       j&                  dk(  r;t)        |j,                  d«       |j.                  dk(  rt)        |j0                  d«       d|j&                  › d�}|j&                  dvsJ |«       ‚y # 1 sw Y   ŒÌxY w)Nrü   rý   >   FÚcsrù   rú   >   r  rù   rú   z+Numerical Hessian needs analytical gradientT>   Frú   z6prob.grad incompatible with grad in {'3-point', False}rú   z3Seems sensitive to initial conditions w/ Accelerateúdelta_grad == 0.0útrust-constr©ÚmethodrD   r<   r"   Úconstraintsé   ©Údecimalr.   ç:Œ0âŽyE>r-   Útr_interior_pointzInvalid termination condition: ú.>   r   r�   )r7   r<   ÚpytestÚskipÚ
isinstancerµ   r   Úxfailr   ÚfilterÚUserWarningr   r2   r   r"   rM   r   r   r1   Ústatusr   Ú
optimalityÚ	tr_radiusr  Úbarrier_parameter)r$   rû   r7   r<   Ú	sensitiveÚsupÚresultÚmessages           r'   Útest_list_of_problemsz+TestTrustRegionConstr.test_list_of_problemsÔ  s   € ð ! KÒ/ˆt�yŠy°TˆØ  KÒ/ˆt�yŠy°TˆàÐ7Ñ7ØÐ4Ñ4Ü�K‰KÐEÔFØ�9‰9˜Ñ Ð);Ñ!;Ü�K‰KÐPÔQÜ Ô&7Ó8ò 0¸TÀYÑ=Nò 0Ü# D¬$Ó/ð 	áÜ�L‰LÐNÔOÜÓ ð 	7 CØ�J‰J”{Ð$7Ô8Ü˜dŸh™h¨¯©Ø%3Ø"&¨TØ%)§[¡[Ø*.¯+©+ô	7ˆF÷	7ð �:‰:Ð!Ü% f§h¡h°·
±
Ø./õ1ð �}‰} Ò!Ü! &×"3Ñ"3°TÔ:à�=‰=˜AÒÜ˜f×.Ñ.°Ô5à�}‰}Ð 3Ò3Ü! &×":Ñ":¸DÔAð 4°F·M±M°?À!ÐDˆØ�}‰} FÑ*Ð3¨GÓ3Ñ*÷/	7ð 	7ús   Â5AGÇGc                 ó`   — d„ }dg}t        |dg|d¬«      }t        |j                  dd¬«       y )	Nc                 ó   — | dz
  dz  S r¯   r/   rA   s    r'   r2   z<TestTrustRegionConstr.test_default_jac_and_hess.<locals>.fun  ó   € Ø˜‘E˜a‘<Ðr*   ©r•   r-   rÜ   r  )r   r"   r  r.   r  r	  ©r   r   r1   ©r$   r2   r"   Úress       r'   Útest_default_jac_and_hessz/TestTrustRegionConstr.test_default_jac_and_hess  s0   € ò	 à�ˆÜ�s ˜v¨f¸^ÔLˆÜ! #§%¡%¨°AÖ6r*   c                 ób   — d„ }dg}t        |dg|dd¬«      }t        |j                  dd¬	«       y )
Nc                 ó   — | dz
  dz  S r¯   r/   rA   s    r'   r2   z4TestTrustRegionConstr.test_default_hess.<locals>.fun	  r  r*   r   rÜ   r  rù   )r   r"   r  rD   r.   r  r	  r!  r"  s       r'   Útest_default_hessz'TestTrustRegionConstr.test_default_hess  s5   € ò	 à�ˆÜ�s ˜v¨f¸^Ø$ô&ˆä! #§%¡%¨°AÖ6r*   c                 óà  — t        «       }t        |j                  |j                  d|j                  |j
                  ¬«      }t        |j                  |j                  dd¬«      }t        |j                  |j                  dd¬«      }t        |j                  |j                  d¬«       t        |j                  |j                  d¬«       t        |j                  |j                  d¬«       y )	Nr  )r  rD   r<   zL-BFGS-Brù   )r  rD   rú   r  r	  )	r„   r   r2   r   r7   r<   r   r1   r   )r$   rû   r  Úresult1Úresult2s        r'   Útest_no_constraintsz)TestTrustRegionConstr.test_no_constraints  s©   € Ü‹|ˆÜ˜$Ÿ(™( D§G¡GØ!/Ø"Ÿi™i¨d¯i©iô9ˆô ˜4Ÿ8™8 T§W¡WØ",Ø(ô*ˆô ˜4Ÿ8™8 T§W¡WØ",Ø(ô*ˆô 	" &§(¡(¨D¯J©JÀÕBÜ! '§)¡)¨T¯Z©ZÀÕCÜ! '§)¡)¨T¯Z©ZÀÖCr*   c           	      ó  ‡— t        «       Šˆfd„}t        ‰j                  ‰j                  d‰j                  |‰j
                  ‰j                  ¬«      }‰j                  �"t        |j                  ‰j                  d¬«       |j                  dk(  rt        |j                  d«       |j                  dk(  r;t        |j                  d«       |j                  dk(  rt        |j                  d«       |j                  d	v rt!        d
«      ‚y )Nc                 óH   •— ‰j                  | «      }|j                  |«      S r]   )r<   Údot)r1   Úpr¥   rû   s      €r'   Úhesspz/TestTrustRegionConstr.test_hessp.<locals>.hessp#  s   ø€ Ø—	‘	˜!“ˆAØ—5‘5˜“8ˆOr*   r  )r  rD   r0  r"   r  r-   r	  r.   r  r  ©r   r�   úInvalid termination condition.)r   r   r2   r   r7   r"   rM   r   r   r1   r  r   r  r  r  r  ÚRuntimeError)r$   r0  r  rû   s      @r'   Ú
test_hesspz TestTrustRegionConstr.test_hessp   sÕ   ø€ Ü‹yˆô	ô ˜$Ÿ(™( D§G¡GØ!/Ø"Ÿi™i¨uØ!%§¡Ø&*§k¡kô	3ˆð �:‰:Ð!Ü% f§h¡h°·
±
ÀAÕFð �=‰=˜AÒÜ˜f×/Ñ/°Ô6à�=‰=˜AÒÜ˜f×.Ñ.°Ô5à�}‰}Ð 3Ò3Ü! &×":Ñ":¸DÔAà�=‰=˜FÑ"ÜÐ?Ó@Ð@ð #r*   c           
      ó&  — t        dd«      }t        |j                  |j                  dd|j                  |j
                  |j                  |j                  ¬«      }|j                  �"t        |j                  |j                  d¬«       |j                  dk(  rt        |j                  d	«       |j                  dk(  r;t        |j                  d	«       |j                  d
k(  rt        |j                   d	«       |j                  dv rt#        d«      ‚y )NrZ   éê   )rZ   r6  r  r  r-   r	  r.   r  r  r1  r2  )rX   r   r2   r   r7   r<   r"   rM   r   r   r1   r  r   r  r  r  r  r3  )r$   rû   r  s      r'   Ú	test_argszTestTrustRegionConstr.test_args=  sØ   € Ü˜s CÓ(ˆä˜$Ÿ(™( D§G¡G¨ZØ!/Ø"Ÿi™i¨d¯i©iØ!%§¡Ø&*§k¡kô	3ˆð �:‰:Ð!Ü% f§h¡h°·
±
ÀAÕFð �=‰=˜AÒÜ˜f×/Ñ/°Ô6à�=‰=˜AÒÜ˜f×.Ñ.°Ô5Ø�}‰}Ð 3Ò3Ü! &×":Ñ":¸DÔAà�=‰=˜FÑ"ÜÐ?Ó@Ð@ð #r*   c           	      óÚ   — t        «       }d}t        j                  t        |¬«      5  t	        |j
                  |j                  ddd|j                  ¬«       d d d «       y # 1 sw Y   y xY w)Nz9Whenever the gradient is estimated via finite-differences©Úmatchr  rù   )r  rD   r<   r  )r   r  Úraisesr^   r   r2   r   rM   )r$   rû   r  s      r'   Útest_raise_exceptionz*TestTrustRegionConstr.test_raise_exceptionU  sR   € Ü‹yˆØMˆÜ�]‰]œ:¨WÔ5ñ 	>Ü�T—X‘X˜tŸw™w¨~À9Ø#°·±õ>÷	>÷ 	>ñ 	>ús   ¨0A!Á!A*c                 óà   — d„ }t        d„ dgd„ d„ |d¬«      }t        |j                  d«      «       t        |j                  d	d
«      dk(  «       t        |j                  dd
«      dk(  «       y )Nc                 ó8   — t        d|v «       t        d|v «       y )NÚnitÚniter)r   )r1   Úinfos     r'   Úcallbackz7TestTrustRegionConstr.test_issue_9044.<locals>.callbacka  s   € Ü�E˜T�MÔ"Ü�G˜t�OÕ$r*   c                 ó   — | dz  S r{   r/   rA   s    r'   ú<lambda>z7TestTrustRegionConstr.test_issue_9044.<locals>.<lambda>e  s
   €  A q¡D€ r*   r   c                 ó   — d| z  S r{   r/   rA   s    r'   rD  z7TestTrustRegionConstr.test_issue_9044.<locals>.<lambda>e  s
   € ¸Q¸q¹S€ r*   c                  ó   — yr{   r/   rA   s    r'   rD  z7TestTrustRegionConstr.test_issue_9044.<locals>.<lambda>f  s   � r*   r  )rD   r<   rB  r  Úsuccessr?  r   r.   r@  )r   r   Úget)r$   rB  r  s      r'   Útest_issue_9044z%TestTrustRegionConstr.test_issue_9044\  sh   € ò
	%ô ™.¨1¨#±=Ù*°XØ!/ô1ˆô 	�—
‘
˜9Ó%Ô&Ü�—
‘
˜5 "Ó%¨Ñ*Ô+ô 	�—
‘
˜7 BÓ'¨1Ñ,Õ-r*   c                 ó>  — t        j                  ddg«      }d„ }t        t        j                  ddg«      t        j                  ddg«      d¬«      }t        «       5 }|j	                  t
        d«       t        d|||¬	«      }d d d «       d
   sJ ‚y # 1 sw Y   ŒxY w)Nr   rx   c                 ó,   — | d   }| d   }|dz  |dz  z   S )Nr   r.   r-   r/   )r1   Úx1Úx2s      r'   Úobjz3TestTrustRegionConstr.test_issue_15093.<locals>.objw  s'   € Ø�1‘ˆBØ�1‘ˆBØ˜‘7˜R 1™WÑ$Ð$r*   r   T)Úkeep_feasibler  r  )r  r2   r   r"   rG  )r   r   r   r   r  r  r   )r$   r   rN  r"   r  r  s         r'   Útest_issue_15093z&TestTrustRegionConstr.test_issue_15093o  sœ   € ô �X‰X�r˜3�iÓ ˆò	%ô
 œŸ™ " b Ó*¬B¯H©H°b¸"°XÓ,>Ø&*ô,ˆô Ó ð 	 CØ�J‰J”{Ð$7Ô8ÜØ%ØØØô	ˆF÷	ð �iÒ Ð Ñ ÷	ð 	ús   Á&BÂBN)rR   rS   rT   r   r   ri   rt   r   r„   r©   r¸   rµ   rÀ   Úlist_of_problemsr  ÚmarkÚthread_unsafeÚparametrizer  r$  r'  r+  r4  r7  r<  rI  rP  r/   r*   r'   rø   rø   ¿  sX  „ Ù›	Ù¨IÔ6Ù©C«EÔ2Ù¨9Á#Ã%ÔHÙ)Ó+Ù&Ó(Ù&°9Ô=Ù&±4³6Ô:Ù&°)Ù37³6ô;á"›Ù&Ó(Ù(Ó*Ù)Ó+Ù¨Ô+Ù¨¸	ÔBÙ¨¹»Ô>Ù¨°yÙ),«ô0ð#1Ðð( ‡[�[×ÑØ‡[�[×Ñ˜VÐ%5Ó6Ø‡[�[×Ñ˜VÐ%DÓEØ‡[�[×Ñ˜V k°9¹c»eÙ&*¸mÔ&LÙ&*¸mÔ&Lð&Nó Oñ$4óOó Fó 7ó ð$4òN7ò7òDò Aò:Aò0>ò.ó&!r*   rø   c                   ó   — e Zd ZdZd„ Zy)ÚTestEmptyConstraintaÇ  
    Here we minimize x^2+y^2 subject to x^2-y^2>1.
    The actual minimum is at (0, 0) which fails the constraint.
    Therefore we will find a minimum on the boundary at (+/-1, 0).

    When minimizing on the boundary, optimize uses a set of
    constraints that removes the constraint that sets that
    boundary.  In our case, there's only one constraint, so
    the result is an empty constraint.

    This tests that the empty constraint works.
    c           	      ó�  — d„ }d„ }d„ }d„ }d„ }d„ }t        |dt        j                  ||«      }ddg}t        t        j                   t        j                   gt        j                  t        j                  g«      }t	        ||d	|||g|¬
«      }	t        t        |	j                  «      t        j                  ddg«      d¬«       y )Nc                 ó$   — | d   dz  | d   dz  z   S r@   r/   rA   s    r'   Úfunctionz;TestEmptyConstraint.test_empty_constraint.<locals>.function˜  rB   r*   c                 óH   — t        j                  d| d   z  d| d   z  g«      S )NrŽ   r   r.   r6   rA   s    r'   ÚfunctionjacobianzCTestEmptyConstraint.test_empty_constraint.<locals>.functionjacobian›  s&   € Ü—8‘8˜R  !¡™W b¨¨1©¡gÐ.Ó/Ð/r*   c                 ó   — d|z  S )NrŽ   r/   rH   s     r'   Úfunctionhvpz>TestEmptyConstraint.test_empty_constraint.<locals>.functionhvpž  s   € Ø�a‘4ˆKr*   c                 óL   — t        j                  | d   dz  | d   dz  z
  g«      S r@   r6   rA   s    r'   Ú
constraintz=TestEmptyConstraint.test_empty_constraint.<locals>.constraint¡  s)   € Ü—8‘8˜Q˜q™T 1™W q¨¡t¨Q¡wÑ.Ð/Ó0Ð0r*   c                 óJ   — t        j                  d| d   z  d| d   z  gg«      S )Nr-   r   r•   r.   r6   rA   s    r'   ÚconstraintjacobianzETestEmptyConstraint.test_empty_constraint.<locals>.constraintjacobian¤  s)   € Ü—8‘8˜a  !¡™f b¨¨1©¡gÐ.Ð/Ó0Ð0r*   c                 óD   — t        j                  ddgddgg«      |d   z  S )NrŽ   r   g       Àr   r6   rH   s     r'   ÚconstraintlcohzATestEmptyConstraint.test_empty_constraint.<locals>.constraintlcoh§  s'   € Ü—8‘8˜b "˜X¨¨C yÐ1Ó2°Q°q±TÑ9Ð9r*   r   rŽ   r  )r  rD   r0  r  r"   r.   r   r5   r	  )	r	   r   rv   r   r   r   Úabsr1   r   )
r$   rY  r[  r]  r_  ra  rc  Ú
startpointr"   r  s
             r'   Útest_empty_constraintz)TestEmptyConstraint.test_empty_constraint–  sµ   € ò	%ò	0ò	ò	1ò	1ò	:ô )¨°R¼¿¹Ø);¸^óMˆ
ð ˜"�Xˆ
äœ"Ÿ&™&˜¤2§6¡6 'Ð*¬R¯V©V´R·V±VÐ,<Ó=ˆäØ
Ø
ØØØØ!�lØô
ˆô 	"¤# f§h¡h£-´·±¸1¸a¸&Ó1AÈ1ÖMr*   N)rR   rS   rT   rU   rf  r/   r*   r'   rV  rV  ‰  s   „ ñó%Nr*   rV  c                  óH  — d„ } t         j                  j                  «       5 }|j                  t        «       t        j
                  t        j                  ddg«      «      }d d d «       t        dt         j                  «      }t        | ddgz  |¬«       y # 1 sw Y   Œ7xY w)Nc                 ó$   — | d   dz  | d   dz  z   S r@   r/   rA   s    r'   Úoptztest_bug_11886.<locals>.opt¿  s   € Ø�‰t�Q‰w�q˜‘t˜Q‘w‰Ðr*   r.   r   r-   )r  )
r   Útestingr   r  ÚPendingDeprecationWarningÚmatrixr¢   r
   rv   r   )ri  r  r±   Úlin_conss       r'   Útest_bug_11886rn  ¾  s}   € òô 
�‰×	%Ñ	%Ó	'ð '¨3Ø�
‰
Ô,Ô-Ü�I‰I”b—g‘g˜q !˜f“oÓ&ˆ÷'ô    2¤r§v¡vÓ.€HäˆS�!�Q�C‘% xÖ0÷'ð 'ús   ¢A BÂB!c                  ó¨  ‡‡— t        ddgddgd¬«      Šˆfd„Šˆfd„} ˆfd„}d„ }ˆfd	„}t        j                  d
«      }t        |dt        j                  «      t        |dd|¬«      g}t        | |d‰|¬«      } ‰|j                  «       |d   j                  |d   j                  |j                  «      cxk  r|d   j                  k  sJ ‚ J ‚y )Nr   r.   T)ÚlbÚubrO  c                 ó–   •— t        j                  | ‰j                  k\  «      sJ ‚t        j                  | ‰j                  k  «      sJ ‚y r]   )r   Úallrp  rq  )r1   Úbndss    €r'   Úassert_inboundsz%test_gh11649.<locals>.assert_inboundsÐ  s7   ø€ Ü�v‰v�a˜4Ÿ7™7‘lÔ#Ð#Ð#Ü�v‰v�a˜4Ÿ7™7‘lÔ#Ð#Ñ#r*   c                 óª   •—  ‰| «       t        j                  | d   «      d| d   dz  z  d| d   dz  z  z   d| d   z  | d   z  z   d| d   z  z   dz   z  S )Nr   r5   r-   r.   )r   Úexp©r1   ru  s    €r'   rN  ztest_gh11649.<locals>.objÔ  sf   ø€ Ù˜ÔÜ�v‰v�a˜‘d‹|˜Q˜q ™t Q™w™Y¨¨1¨Q©4°©7©Ñ2°Q°q¸±t±V¸A¸a¹D±[Ñ@À1ÀQÀqÁTÁ6ÑIÈAÑMÑNÐNr*   c                 ó0   •—  ‰| «       | d   dz  | d   z   S r@   r/   rx  s    €r'   Únceztest_gh11649.<locals>.nceØ  s!   ø€ Ù˜ÔØ�‰t�Q‰w˜˜1™‰~Ðr*   c                 ó<   — t        j                  d| d   z  dg«      S r,   r6   rA   s    r'   Únce_jacztest_gh11649.<locals>.nce_jacÜ  s   € Ü�x‰x˜˜1˜Q™4™ ˜Ó$Ð$r*   c                 ó*   •—  ‰| «       | d   | d   z  S )Nr   r.   r/   rx  s    €r'   Únciztest_gh11649.<locals>.nciß  s   ø€ Ù˜ÔØ�‰t�A�a‘D‰yÐr*   )g®Gáz®ï?g®Gáz®ï¿éöÿÿÿ)rD   r  )r2   r   r  r"   r  r   )
r   r   r   r	   rv   r   r1   rp  r2   rq  )	rN  rz  r|  r~  r   Únlcsr#  ru  rt  s	          @@r'   Útest_gh11649r�  Ê  sÇ   ù€ ô �b˜"�X 1 a &¸Ô=€Dô$ôOôò%ôô 
�‰�-Ó	 €BÜ  S¬"¯&©&Ó1Ü  Q¨¨wÔ7ð9€Dô �s˜r¨.Ø¨Dô2€Cá�C—E‘EÔØ�‰7�:‰:˜˜Q™Ÿ™ C§E¡EÓ*Ô7¨T°!©W¯Z©ZÒ7Ð7Ñ7Ð7Ñ7r*   c            	      ó  ‡— d} t        j                  t        | ¬«      5  t        j                  d«      }t        j
                  d«      j                  d«      t        j                  d«      cŠ}t        ˆfd„||¬«      }t        t        |d	|g¬
«       d d d «       t        j                  j                  «       5 }|j                  t        «       t        t        d	gddi¬«       d d d «       y # 1 sw Y   Œ]xY w# 1 sw Y   y xY w)Nz:...more equality constraints than independent variables...r9  )r-   é   )r�   r-   )r�   c                 ó   •— ‰| z  S r]   r/   )r1   r½   s    €r'   rD  z3test_gh20665_too_many_constraints.<locals>.<lambda>ô  s   ø€ ¨4°!©8€ r*   )rp  rq  r  ©r  r  Úfactorization_methodÚSVDFactorization)r  r  Úoptions)r  r;  r^   r   r‰   rä   Úreshaper	   r   r   rj  r   r  r  )r  r   r¾   Úgr  r½   s        @r'   Ú!test_gh20665_too_many_constraintsr‹  í  sß   ø€ ð K€GÜ	�‰”z¨Ô	1ñ DÜ�W‰W�T‹]ˆÜ—Y‘Y˜q“\×)Ñ)¨&Ó1´2·7±7¸4³=ˆ
ˆˆdÜÓ 3¸ÀÔFˆÜ”˜ >À¸sÕC÷	Dô 
�‰×	%Ñ	%Ó	'ð G¨3Ø�
‰
”;ÔÜ”˜ >À¸sØ0Ð2DÐEõ	G÷Gð G÷Dð Dú÷Gð Gús   ŸA5C0Â:-C<Ã0C9Ã<Dc                  ó  — d„ } d„ }t        «       5 }|j                  t        d«       |j                  t        d«       t        |ddgdt	        | dd«      ¬«      }d d d «       j
                  s|j                  d	kD  sJ ‚y # 1 sw Y   Œ'xY w)
Nc                 óN   — | \  }}ddg\  }}d|dz  |dz  z  z   |dz  |dz  z  z
  S )Nç      @ç      @r   r-   r/   )ÚuÚu1Úu2rZ   r[   s        r'   Úlsfztest_issue_18882.<locals>.lsfý  s@   € Ø‰ˆˆBØ�Sˆz‰ˆˆ1Ø�R˜‘U˜Q ™T‘\Ñ! B¨¡E¨A¨q©D¡LÑ0Ð0r*   c                 ó2   — t        j                  | dz  «      S r{   )r   r’   )r�  s    r'   Úofztest_issue_18882.<locals>.of  s   € Ü�v‰v�a˜‘d‹|Ðr*   r  zSingular Jacobian matrix.r   r  r   r…  r  )r   r  r  r   r	   rG  Úconstr_violation)r“  r•  r  r#  s       r'   Útest_issue_18882r—  ü  s‹   € ò1ò
ô 
Ó	ð 
 Ø�
‰
”;Ð 3Ô4Ø�
‰
”;Ð ;Ô<ÜØØ�#ˆJØ!Ü+¨C°°AÓ6ô	
ˆ÷
ð —’ #×"6Ñ"6¸Ò"=Ð>Ð>Ð"=÷
ð 
ús   ‘A	B Â B	c                   ó|  — e Zd Zej                  j                  d eej                   ej                  «       e	«       j                  f eej                   d«      ddgf edej                  «      ddgf eddgddg«      ddgfg«      d„ «       Zd	„ Zd
„ Zd„ Zej                  j                  d¬«      d„ «       Zy)ÚTestBoundedNelderMeadzbounds, x_optgš™™™™™é¿rŽ  g      "@r   r�  ç      @c                 ó`  — t        «       }t        «       5 }|j                  t        d«       t	        |j
                  ddgd|¬«      }t        j                  |j                  |j                  «      j                  «       sJ ‚t        j                  |j                  |j                  «      j                  «       sJ ‚t        j                  |j                  |j                  «      |j
                  «      sJ ‚t        j                  |j                  |d¬«      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nú0Initial guess is not within the specified boundsr  úNelder-Mead©r  r"   gü©ñÒMbP?)Úatol)r„   r   r  r  r   r2   r   Ú
less_equalrp  r1   rs  rq  Úallclose)r$   r"   r   rû   r  r  s         r'   Útest_rosen_brock_with_boundsz2TestBoundedNelderMead.test_rosen_brock_with_bounds  sâ   € ô ‹|ˆÜÓ ð 		< CØ�J‰J”{ð %;ô <ä˜dŸh™h¨¨c¨
Ø%2Ø%+ô-ˆFô —=‘= §¡¨F¯H©HÓ5×9Ñ9Ô;Ð;Ð;Ü—=‘= §¡¨6¯9©9Ó5×9Ñ9Ô;Ð;Ð;Ü—;‘;˜tŸx™x¨¯©Ó1°6·:±:Ô>Ð>Ð>Ü—;‘;˜vŸx™x¨°UÕ;Ð;Ñ;÷		<÷ 		<ñ 		<ús   •DD$Ä$D-c                 ó"  — t        «       }t        ddgddg«      }t        «       5 }|j                  t        d«       t        |j                  ddgd|¬«      }t        j                  |j                  ddg«      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr�  rš  rœ  r  é   r�  rž  ©
r„   r   r   r  r  r   r2   r   r¡  r1   ©r$   rû   r"   r  r  s        r'   Útest_equal_all_boundsz+TestBoundedNelderMead.test_equal_all_bounds%  s‡   € Ü‹|ˆÜ˜˜c˜
 S¨# JÓ/ˆÜÓ ð 	5 CØ�J‰J”{ð %;ô <ä˜dŸh™h¨¨a¨Ø%2Ø%+ô-ˆFô —;‘;˜vŸx™x¨#¨s¨Ô4Ð4Ñ4÷	5÷ 	5ñ 	5úó   ¥ABÂBc                 ó"  — t        «       }t        ddgddg«      }t        «       5 }|j                  t        d«       t        |j                  ddgd|¬«      }t        j                  |j                  dd	g«      sJ ‚	 d d d «       y # 1 sw Y   y xY w)
Nr�  rš  g      4@rœ  r  r¤  r�  rž  g      0@r¥  r¦  s        r'   Útest_equal_one_boundsz+TestBoundedNelderMead.test_equal_one_bounds0  s‡   € Ü‹|ˆÜ˜˜c˜
 S¨$ KÓ0ˆÜÓ ð 	6 CØ�J‰J”{ð %;ô <ä˜dŸh™h¨¨a¨Ø%2Ø%+ô-ˆFô —;‘;˜vŸx™x¨#¨t¨Ô5Ð5Ñ5÷	6÷ 	6ñ 	6úr¨  c                 óð   — t        «       }d}t        j                  t        |¬«      5  t	        t
        j                   dgddg«      }t        |j                  ddgd|¬	«       d d d «       y # 1 sw Y   y xY w)
Nz:An upper bound is less than the corresponding lower bound.r9  r   r�  g      Àr  r�   r�  rž  )	r„   r  r;  r^   r   r   rv   r   r2   ©r$   rû   r  r"   s       r'   Útest_invalid_boundsz)TestBoundedNelderMead.test_invalid_bounds;  se   € Ü‹|ˆØNˆÜ�]‰]œ:¨WÔ5ñ 	$ÜœbŸf™f˜W c˜N¨S°$¨KÓ8ˆFÜ�T—X‘X  Q˜xØ)Ø"õ$÷	$÷ 	$ñ 	$úó   ¨;A,Á,A5z5Failing on Azure Linux and macOS builds, see gh-13846)Úreasonc                 óð   — t        «       }d}t        j                  t        |¬«      5  t	        t
        j                   dgddg«      }t        |j                  ddgd|¬	«       d d d «       y # 1 sw Y   y xY w)
Nrœ  r9  r   r�  rš  r  r¤  r�  rž  )	r„   r  Úwarnsr  r   r   rv   r   r2   r¬  s       r'   Útest_outside_bounds_warningz1TestBoundedNelderMead.test_outside_bounds_warningD  sg   € ô ‹|ˆØDˆÜ�\‰\œ+¨WÔ5ñ 	$ÜœbŸf™f˜W c˜N¨S°#¨JÓ7ˆFÜ�T—X‘X  Q˜xØ)Ø"õ$÷	$÷ 	$ñ 	$úr®  N)rR   rS   rT   r  rR  rT  r   r   rv   r„   r   r¢  r§  rª  r­  r  r²  r/   r*   r'   r™  r™    sÐ   „ à‡[�[×Ñ˜_Ù% r§v¡v g¨r¯v©vÓ6¹
»×8JÑ8JÐKÙ% r§v¡v g¨tÓ4°t¸T°lÐCÙ% c¨2¯6©6Ó2°S¸#°JÐ?Ù% s¨C j°3¸°*Ó=ÀÀB¸xÐHð ó!ñ<ó!ð<ò	5ò	6ò$ð ‡[�[×Ñð -Ðó .ñ$ó.ñ$r*   r™  )$Únumpyr   r  Úscipy.linalgr   Úscipy.sparser   Únumpy.testingr   r   r   r   Úscipy.optimizer	   r
   r   r   r   r   r   r   rX   ri   rt   r„   r©   rµ   r¸   rÀ   rø   rV  rn  r�  r‹  r—  r™  r/   r*   r'   ú<module>r¸     sÎ   ðÛ Û Ý #Ý #÷.ó .÷#÷ #ñ #÷*9ñ *9÷Z39ñ 39÷l,9ñ ,9÷^+Añ +A÷\+ñ +ô\/�Zô /ô,.˜
ô .ô"4�zô 4÷4|?ñ |?÷~H!ñ H!÷T2Nñ 2Nòj	1ò 8òFGò?÷(=$ò =$r*   