§
    ¡éUg3J  ã                   ó,  — d Z ddgZddlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZmZmZmZ dd	lmZ dd
lmZmZ ddlmZmZ dZ e ee¦  «        j         ¦  «        Z!d„ Z"dddddddddddddde!dfd„Z#dddddddde!ddfd„Z$d„ Z%d„ Z&dS )a  
This module implements the Sequential Least Squares Programming optimization
algorithm (SLSQP), originally developed by Dieter Kraft.
See http://www.netlib.org/toms/733

Functions
---------
.. autosummary::
   :toctree: generated/

    approx_jacobian
    fmin_slsqp

Úapprox_jacobianÚ
fmin_slsqpé    N)Úslsqp)
ÚzerosÚarrayÚlinalgÚappendÚconcatenateÚfinfoÚsqrtÚvstackÚisfiniteÚ
atleast_1dé   )ÚOptimizeResultÚ_check_unknown_optionsÚ_prepare_scalar_functionÚ_clip_x_for_funcÚ_check_clip_x)Úapprox_derivative)Úold_bound_to_newÚ_arr_to_scalar)Ú
atleast_ndÚarray_namespacezrestructuredtext enc                 óR   — t          || d||¬¦  «        }t          j        |¦  «        S )a“  
    Approximate the Jacobian matrix of a callable function.

    Parameters
    ----------
    x : array_like
        The state vector at which to compute the Jacobian matrix.
    func : callable f(x,*args)
        The vector-valued function.
    epsilon : float
        The perturbation used to determine the partial derivatives.
    args : sequence
        Additional arguments passed to func.

    Returns
    -------
    An array of dimensions ``(lenf, lenx)`` where ``lenf`` is the length
    of the outputs of `func`, and ``lenx`` is the number of elements in
    `x`.

    Notes
    -----
    The approximation is done using forward differences.

    ú2-point)ÚmethodÚabs_stepÚargs)r   ÚnpÚ
atleast_2d)ÚxÚfuncÚepsilonr   Újacs        úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/_slsqp_py.pyr   r   #   s5   € õ6 ˜D !¨IÀØ!%ð'ñ 'ô '€Cõ Œ=˜ÑÔÐó    © éd   g�íµ ÷Æ°>c                 óZ  ‡
— |�|}||||dk    ||dœ}d}|t          ˆ
fd„|D ¦   «         ¦  «        z  }|t          ˆ
fd„|D ¦   «         ¦  «        z  }|r|d||‰
dœfz  }|r|d	||	‰
dœfz  }t          | |‰
f|||d
œ|¤Ž}|r%|d         |d         |d         |d         |d         fS |d         S )a/  
    Minimize a function using Sequential Least Squares Programming

    Python interface function for the SLSQP Optimization subroutine
    originally implemented by Dieter Kraft.

    Parameters
    ----------
    func : callable f(x,*args)
        Objective function.  Must return a scalar.
    x0 : 1-D ndarray of float
        Initial guess for the independent variable(s).
    eqcons : list, optional
        A list of functions of length n such that
        eqcons[j](x,*args) == 0.0 in a successfully optimized
        problem.
    f_eqcons : callable f(x,*args), optional
        Returns a 1-D array in which each element must equal 0.0 in a
        successfully optimized problem. If f_eqcons is specified,
        eqcons is ignored.
    ieqcons : list, optional
        A list of functions of length n such that
        ieqcons[j](x,*args) >= 0.0 in a successfully optimized
        problem.
    f_ieqcons : callable f(x,*args), optional
        Returns a 1-D ndarray in which each element must be greater or
        equal to 0.0 in a successfully optimized problem. If
        f_ieqcons is specified, ieqcons is ignored.
    bounds : list, optional
        A list of tuples specifying the lower and upper bound
        for each independent variable [(xl0, xu0),(xl1, xu1),...]
        Infinite values will be interpreted as large floating values.
    fprime : callable `f(x,*args)`, optional
        A function that evaluates the partial derivatives of func.
    fprime_eqcons : callable `f(x,*args)`, optional
        A function of the form `f(x, *args)` that returns the m by n
        array of equality constraint normals. If not provided,
        the normals will be approximated. The array returned by
        fprime_eqcons should be sized as ( len(eqcons), len(x0) ).
    fprime_ieqcons : callable `f(x,*args)`, optional
        A function of the form `f(x, *args)` that returns the m by n
        array of inequality constraint normals. If not provided,
        the normals will be approximated. The array returned by
        fprime_ieqcons should be sized as ( len(ieqcons), len(x0) ).
    args : sequence, optional
        Additional arguments passed to func and fprime.
    iter : int, optional
        The maximum number of iterations.
    acc : float, optional
        Requested accuracy.
    iprint : int, optional
        The verbosity of fmin_slsqp :

        * iprint <= 0 : Silent operation
        * iprint == 1 : Print summary upon completion (default)
        * iprint >= 2 : Print status of each iterate and summary
    disp : int, optional
        Overrides the iprint interface (preferred).
    full_output : bool, optional
        If False, return only the minimizer of func (default).
        Otherwise, output final objective function and summary
        information.
    epsilon : float, optional
        The step size for finite-difference derivative estimates.
    callback : callable, optional
        Called after each iteration, as ``callback(x)``, where ``x`` is the
        current parameter vector.

    Returns
    -------
    out : ndarray of float
        The final minimizer of func.
    fx : ndarray of float, if full_output is true
        The final value of the objective function.
    its : int, if full_output is true
        The number of iterations.
    imode : int, if full_output is true
        The exit mode from the optimizer (see below).
    smode : string, if full_output is true
        Message describing the exit mode from the optimizer.

    See also
    --------
    minimize: Interface to minimization algorithms for multivariate
        functions. See the 'SLSQP' `method` in particular.

    Notes
    -----
    Exit modes are defined as follows ::

        -1 : Gradient evaluation required (g & a)
         0 : Optimization terminated successfully
         1 : Function evaluation required (f & c)
         2 : More equality constraints than independent variables
         3 : More than 3*n iterations in LSQ subproblem
         4 : Inequality constraints incompatible
         5 : Singular matrix E in LSQ subproblem
         6 : Singular matrix C in LSQ subproblem
         7 : Rank-deficient equality constraint subproblem HFTI
         8 : Positive directional derivative for linesearch
         9 : Iteration limit reached

    Examples
    --------
    Examples are given :ref:`in the tutorial <tutorial-sqlsp>`.

    Nr   )ÚmaxiterÚftolÚiprintÚdispÚepsÚcallbackr(   c              3   ó$   •K  — | ]
}d |‰dœV — ŒdS )Úeq©ÚtypeÚfunr   Nr(   ©Ú.0Úcr   s     €r&   ú	<genexpr>zfmin_slsqp.<locals>.<genexpr>Ã   s-   øè è € ÐIÐI¸Q˜4¨°4Ð8Ð8ÐIÐIÐIÐIÐIÐIr'   c              3   ó$   •K  — | ]
}d |‰dœV — ŒdS )Úineqr3   Nr(   r6   s     €r&   r9   zfmin_slsqp.<locals>.<genexpr>Ä   s-   øè è € ÐLÐL¸q˜6¨!°TÐ:Ð:ÐLÐLÐLÐLÐLÐLr'   r2   )r4   r5   r%   r   r;   )r%   ÚboundsÚconstraintsr"   r5   ÚnitÚstatusÚmessage)ÚtupleÚ_minimize_slsqp)r#   Úx0ÚeqconsÚf_eqconsÚieqconsÚ	f_ieqconsr<   ÚfprimeÚfprime_eqconsÚfprime_ieqconsr   ÚiterÚaccr-   r.   Úfull_outputr$   r0   ÚoptsÚconsÚress             `          r&   r   r   E   sF  ø€ ð` ÐØˆàØØØ˜a’KØØ ð"ð "€Dð €Dð 	�EÐIÐIÐIÐIÀ&ÐIÑIÔIÑIÔIÑI€DØ�EÐLÐLÐLÐLÀGÐLÑLÔLÑLÔLÑL€Dð ð #Ø˜$ x¸Øð ð  ð #ñ 	#ˆàð #Ø˜&¨¸>Øð ð  ð #ñ 	#ˆõ ˜$  Dð 4¨f¸VØ&*ð4ð 4Ø.2ð4ð 4€Càð Ø�3Œx˜˜Uœ S¨¤Z°°X´ÀÀIÄÐNÐNà�3Œxˆr'   Fc                 óì  ‡‡‡E‡F‡G— t          |¦  «         |dz
  }|}|
ŠE|	sd}t          |¦  «        }t          |d|¬¦  «        }|j        }|                     |j        d¦  «        r|j        }|                     |                     ||¦  «        d¦  «        ŠG|�t          |¦  «        dk    rt          j
         t          j
        fŠFnt          |¦  «        ŠFt          j        ‰G‰Fd         ‰Fd         ¦  «        ŠGt          |t          ¦  «        r|f}dddœ}t          |¦  «        D �]\  }}	 |d	                              ¦   «         }|dvrt#          d
|d	         z  ¦  «        ‚n_# t$          $ r}t%          d|z  ¦  «        |‚d}~wt&          $ r}t'          d¦  «        |‚d}~wt(          $ r}t'          d¦  «        |‚d}~ww xY wd|vrt#          d|z  ¦  «        ‚|                     d¦  «        }|€ˆEˆˆˆFfd„} ||d         ¦  «        }||xx         |d         ||                     dd¦  «        dœfz  cc<   �Œddddddddddddœ}t-          t/          t          ˆGfd „|d!         D ¦   «         ¦  «        ¦  «        }t-          t/          t          ˆGfd"„|d#         D ¦   «         ¦  «        ¦  «        }||z   }t1          d|g¦  «                             ¦   «         }t          ‰G¦  «        }|dz   }||z
  |z   |z   } d$|z  |z   |dz   z  ||z
  dz   | d%z   z  z   d%| z  z   || z   ||z
  z  z   d%|z  z   |z   |dz   |z  d%z  z   d%|z  z   d$|z  z   d$|z  z   dz   }!| }"t5          |!¦  «        }#t5          |"¦  «        }$|�t          |¦  «        dk    rvt          j        |t8          ¬&¦  «        }%t          j        |t8          ¬&¦  «        }&|%                     t          j        ¦  «         |&                     t          j        ¦  «         �n#t1          d'„ |D ¦   «         t8          ¦  «        }'|'j        d         |k    rtA          d(¦  «        ‚t          j!        d)¬*¦  «        5  |'dd…df         |'dd…df         k    }(ddd¦  «         n# 1 swxY w Y   |( "                    ¦   «         r/t#          d+d, #                    d-„ |(D ¦   «         ¦  «        z  ¦  «        ‚|'dd…df         |'dd…df         }&}%tI          |'¦  «         })t          j        |%|)dd…df         <   t          j        |&|)dd…df         <   tK          | ‰G‰||
‰‰F¬.¦  «        }*tM          |*j'        ‰F¦  «        }+tM          |*j(        ‰F¦  «        },t1          dtR          ¦  «        }-t1          |t8          ¦  «        }t1          |tR          ¦  «        }.d}/t1          dt8          ¦  «        }0t1          dt8          ¦  «        }1t1          dt8          ¦  «        }2t1          dt8          ¦  «        }3t1          dt8          ¦  «        }4t1          dt8          ¦  «        }5t1          dt8          ¦  «        }6t1          dt8          ¦  «        }7t1          dt8          ¦  «        }8t1          dt8          ¦  «        }9t1          dtR          ¦  «        }:t1          dtR          ¦  «        };t1          dtR          ¦  «        }<t1          dtR          ¦  «        }=t1          dtR          ¦  «        }>t1          dtR          ¦  «        }t1          dtR          ¦  «        }?t1          dtR          ¦  «        }@|d%k    rtU          d/d0z  ¦  «          |+‰G¦  «        }AtW           |,‰G¦  «        d1¦  «        }BtY          ‰G|¦  «        }Ct[          ‰G||||||¦  «        }D	 t]          g |‘|‘‰G‘|%‘|&‘|A‘|C‘|B‘|D‘|‘|.‘|-‘|#‘|$‘|0‘|1‘|2‘|3‘|4‘|5‘|6‘|7‘|8‘|9‘|:‘|;‘|<‘|=‘|>‘|‘|?‘|@‘R Ž  |-dk    r |+‰G¦  «        }AtY          ‰G|¦  «        }C|-dk    r.tW           |,‰G¦  «        d1¦  «        }Bt[          ‰G||||||¦  «        }D|.|/k    rR|� |t          j/        ‰G¦  «        ¦  «         |d%k    r-tU          d2|.|*j0        |Atc          j2        |B¦  «        fz  ¦  «         tg          |-¦  «        dk    rntS          |.¦  «        }/�Œ|dk    r‚tU          |tS          |-¦  «                 d3z   ti          |-¦  «        z   d4z   ¦  «         tU          d5|A¦  «         tU          d6|.¦  «         tU          d7|*j0        ¦  «         tU          d8|*j5        ¦  «         tm          ‰G|A|Bdd…         tS          |.¦  «        |*j0        |*j5        tS          |-¦  «        |tS          |-¦  «                 |-dk    ¬9¦	  «	        S ):a¨  
    Minimize a scalar function of one or more variables using Sequential
    Least Squares Programming (SLSQP).

    Options
    -------
    ftol : float
        Precision goal for the value of f in the stopping criterion.
    eps : float
        Step size used for numerical approximation of the Jacobian.
    disp : bool
        Set to True to print convergence messages. If False,
        `verbosity` is ignored and set to 0.
    maxiter : int
        Maximum number of iterations.
    finite_diff_rel_step : None or array_like, optional
        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
        use for numerical approximation of `jac`. The absolute step
        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
        possibly adjusted to fit into the bounds. For ``method='3-point'``
        the sign of `h` is ignored. If None (default) then step is selected
        automatically.
    r   r   )ÚndimÚxpzreal floatingéÿÿÿÿNr(   )r2   r;   r4   zUnknown constraint type '%s'.z"Constraint %d has no type defined.z/Constraints must be defined using a dictionary.z#Constraint's type must be a string.r5   z&Constraint %d has no function defined.r%   c                 ó   •‡ — ˆˆˆ ˆˆfd„}|S )Nc                 ó€   •— t          | ‰¦  «        } ‰dv rt          ‰| ‰|‰‰¬¦  «        S t          ‰| d‰|‰¬¦  «        S )N)r   z3-pointÚcs)r   r   Úrel_stepr<   r   )r   r   r   r<   )r   r   )r"   r   r$   Úfinite_diff_rel_stepr5   r%   Ú
new_boundss     €€€€€r&   Úcjacz3_minimize_slsqp.<locals>.cjac_factory.<locals>.cjac+  sr   ø€ Ý% a¨Ñ4Ô4�AàÐ:Ð:Ð:Ý0°°aÀÈ$Ø:NØ8Bð Dñ  Dô  Dð Dõ  1°°aÀ	Ø:AÈØ8Bð Dñ  Dô  Dð Dr'   r(   )r5   r[   r$   rY   r%   rZ   s   ` €€€€r&   Úcjac_factoryz%_minimize_slsqp.<locals>.cjac_factory*  sA   øø€ ð
Dð 
Dð 
Dð 
Dð 
Dð 
Dð 
Dð 
Dð 
Dð �r'   r   )r5   r%   r   z$Gradient evaluation required (g & a)z$Optimization terminated successfullyz$Function evaluation required (f & c)z4More equality constraints than independent variablesz*More than 3*n iterations in LSQ subproblemz#Inequality constraints incompatiblez#Singular matrix E in LSQ subproblemz#Singular matrix C in LSQ subproblemz2Rank-deficient equality constraint subproblem HFTIz.Positive directional derivative for linesearchzIteration limit reached)rT   r   r   é   é   é   é   é   é   é   é	   c           	      óT   •— g | ]$}t           |d          ‰g|d         ¢R Ž ¦  «        ‘Œ%S ©r5   r   ©r   ©r7   r8   r"   s     €r&   ú
<listcomp>z#_minimize_slsqp.<locals>.<listcomp>M  sK   ø€ ð #ð #ð #Øõ # 8 1 U¤8¨AÐ#:°°&´	Ð#:Ð#:Ð#:Ñ;Ô;ð #ð #ð #r'   r2   c           	      óT   •— g | ]$}t           |d          ‰g|d         ¢R Ž ¦  «        ‘Œ%S rf   rg   rh   s     €r&   ri   z#_minimize_slsqp.<locals>.<listcomp>O  sK   ø€ ð &ð &ð &Øõ $ H A e¤H¨QÐ$;°°6´Ð$;Ð$;Ð$;Ñ<Ô<ð &ð &ð &r'   r;   r^   r]   )Údtypec                 óP   — g | ]#\  }}t          |¦  «        t          |¦  «        f‘Œ$S r(   )r   )r7   ÚlÚus      r&   ri   z#_minimize_slsqp.<locals>.<listcomp>h  sA   € ð ,ð ,ð ,Ù ˜1˜aõ & aÑ(Ô(­.¸Ñ*;Ô*;Ð<ð ,ð ,ð ,r'   zDSLSQP Error: the length of bounds is not compatible with that of x0.Úignore)Úinvalidz"SLSQP Error: lb > ub in bounds %s.z, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S )N)Ústr)r7   Úbs     r&   r9   z"_minimize_slsqp.<locals>.<genexpr>s  s(   è è € Ð&>Ð&>°!¥s¨1¡v¤vÐ&>Ð&>Ð&>Ð&>Ð&>Ð&>r'   )r%   r   r$   rY   r<   z%5s %5s %16s %16s)ÚNITÚFCÚOBJFUNÚGNORMg        z%5i %5i % 16.6E % 16.6Ez    (Exit mode ú)z#            Current function value:z            Iterations:z!            Function evaluations:z!            Gradient evaluations:)	r"   r5   r%   r>   ÚnfevÚnjevr?   r@   Úsuccess)7r   r   r   Úfloat64Úisdtyperk   ÚreshapeÚastypeÚlenr    Úinfr   ÚclipÚ
isinstanceÚdictÚ	enumerateÚlowerÚ
ValueErrorÚKeyErrorÚ	TypeErrorÚAttributeErrorÚgetÚsumÚmapr   Úmaxr   ÚemptyÚfloatÚfillÚnanÚshapeÚ
IndexErrorÚerrstateÚanyÚjoinr   r   r   r5   ÚgradÚintÚprintr	   Ú_eval_constraintÚ_eval_con_normalsr   Úcopyry   r   ÚnormÚabsrr   Úngevr   )Hr#   rC   r   r%   r<   r=   r+   r,   r-   r.   r/   r0   rY   Úunknown_optionsrK   rL   rS   rk   rO   ÚicÚconÚctypeÚer[   r\   Ú
exit_modesÚmeqÚmieqÚmÚlaÚnÚn1ÚmineqÚlen_wÚlen_jwÚwÚjwÚxlÚxuÚbndsÚbnderrÚinfbndÚsfÚwrapped_funÚwrapped_gradÚmodeÚmajiterÚmajiter_prevÚalphaÚf0ÚgsÚh1Úh2Úh3Úh4ÚtÚt0ÚtolÚiexactÚinconsÚiresetÚitermxÚlineÚn2Ún3ÚfxÚgr8   Úar$   rZ   r"   sH      `        `                                                        @@@r&   rB   rB   ×   s/  øøøøø€ õ8 ˜?Ñ+Ô+Ð+Ø�Q‰;€DØ
€CØ€Gàð Øˆõ 
˜Ñ	Ô	€BÝ	�B˜Q 2Ð	&Ñ	&Ô	&€BØŒJ€EØ	‡z‚z�"”(˜OÑ,Ô,ð Ø”ˆØ
�
Š
�2—9’9˜R Ñ'Ô'¨Ñ,Ô,€Að €~�˜V™œ¨Ò)Ð)Ý”v�g�rœvÐ&ˆ
ˆ
å% fÑ-Ô-ˆ
õ 	Œ��:˜a”= *¨Q¤-Ñ0Ô0€Aõ �+�tÑ$Ô$ð &Ø"�oˆà˜bÐ!Ð!€DÝ˜[Ñ)Ô)ð +9ñ +9‰ˆˆCð	PØ˜”K×%Ò%Ñ'Ô'ˆEð ˜NÐ*Ð*Ý Ð!@À3ÀvÄ;Ñ!NÑOÔOÐOð +øõ ð 	Mð 	Mð 	MÝÐ?À"ÑDÑEÔEÈ1ÐLøøøøÝð 	2ð 	2ð 	2Ýð *ñ +ô +Ø01ð2øøøøåð 	Jð 	Jð 	JÝÐAÑBÔBÈÐIøøøøð	Jøøøð ˜ÐÐÝÐEÈÑJÑKÔKÐKð �wŠw�u‰~Œ~ˆØˆ<ðð ð ð ð ð ð ð ð  �<  E¤
Ñ+Ô+ˆDð 	ˆUˆˆŒ  E¤
Ø $Ø!$§¢¨°Ñ!4Ô!4ð6ð 6ð 9ñ 	9ˆˆ‰‰ð =Ø<Ø<ØLØBØ;Ø;Ø;ØJØFØ/ð
1ð 
1€Jõ �c•#ð #ð #ð #ð #Ø˜D”zð#ñ #ô #ñ $ô $ñ %ô %€Cå�s•3ð &ð &ð &ð &Ø˜Vœð&ñ &ô &ñ 'ô 'ñ (ô (€Dð 	ˆd‰
€Aå	��1ˆv‰Œ×	Ò	Ñ	Ô	€BåˆA‰Œ€Að 
ˆQ‰€BØ�‰G�b‰L˜2Ñ€EØˆr‰T�!‰V�b˜‘d‰O˜R ™V A™X¨¨a©Ñ0Ñ0°1°U±7Ñ:¸B¸u¹HÀrÈ#ÁvÑ;NÑNØ�‰eñØñØ˜q™S !™G a™<ñ(Ø*+¨A©#ñ.Ø01°!±ñ4Ø67¸±dñ;Ø=>ñ?€Eà€FÝˆe‰Œ€AÝ	ˆv‰Œ€Bð €~�˜V™œ¨Ò)Ð)ÝŒX�a�uÐ%Ñ%Ô%ˆÝŒX�a�uÐ%Ñ%Ô%ˆØ
�Š•”‰ŒˆØ
�Š•”‰Œˆ‰åð ,ð ,Ø$*ð,ñ ,ô ,Ý-2ñ4ô 4ˆàŒ:�aŒ=˜AÒÐÝð ;ñ <ô <ð <õ Œ[ Ð*Ñ*Ô*ð 	-ð 	-Ø˜!˜!˜!˜Q˜$”Z $ q q q¨! t¤*Ò,ˆFð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð �:Š:‰<Œ<ð 	@ÝÐAØ!ŸYšYÐ&>Ð&>°vÐ&>Ñ&>Ô&>Ñ>Ô>ñ?ñ @ô @ð @à�a�a�a˜�d”˜T ! ! ! Q $œZˆBˆõ ˜4‘.”.�ˆÝœ6ˆˆ6�!�!�!�Q�$Œ<ÑÝœ6ˆˆ6�!�!�!�Q�$Œ<Ñõ 
" $¨¨s¸ÀsØ7KØ)3ð
5ñ 
5ô 
5€Bõ
 # 2¤6¨:Ñ6Ô6€KÝ# B¤G¨ZÑ8Ô8€Lõ �•C‰=Œ=€DÝ
�•UÑ
Ô
€CÝ�D�#ÑÔ€GØ€Lõ �!•U‰OŒO€EÝ	ˆq•%‰Œ€BÝ	ˆq•%‰Œ€BÝ	ˆq•%‰Œ€BÝ	ˆq•%‰Œ€BÝ	ˆq•%‰Œ€BÝ	ˆq•%‰Œ€BÝˆa•‰Œ€AÝ	ˆq•%‰Œ€BÝ
�•5‰/Œ/€CÝ�1•c‰]Œ]€FÝ�1•c‰]Œ]€FÝ�1•c‰]Œ]€FÝ�1•c‰]Œ]€FÝ�•C‰=Œ=€DÝ	ˆq•#‰Œ€BÝ	ˆq•#‰Œ€BÝ	ˆq•#‰Œ€Bð �‚{€{ÝÐ!Ð$DÑDÑEÔEÐEð
 
ˆ�Q‰Œ€BÝˆ|ˆ|˜A‰Œ Ñ$Ô$€AÝ˜˜DÑ!Ô!€AÝ˜!˜T 2 q¨!¨S°$Ñ7Ô7€Að$åð 	ˆað 	�ð 	�að 	˜ð 	˜Rð 	 ð 	 Qð 	¨ð 	¨1ð 	¨cð 	°7ð 	¸Dð 	À!ð 	ÀRð 	Øð	Øð	Øð	Øð	Ø!#ð	Ø%'ð	Ø)+ð	Ø-.ð	Ø02ð	Ø47ð	àð	àð	à$ð	à&,ð	à.2ð	ð ð	ð ð	ð ð	ð 	ð 	ð 	ð
 �1Š9ˆ9Ø�˜Q‘”ˆBÝ   DÑ)Ô)ˆAà�2Š:ˆ:Ý�|�| A‘”¨Ñ,Ô,ˆAÝ! ! T¨2¨q°!°S¸$Ñ?Ô?ˆAà�\Ò!Ð!àÐ#Ø��œ ™œÑ$Ô$Ð$ð ˜Š{ˆ{ÝÐ/°7¸B¼GØ35µv´{À1±~´~ð3Gñ Gñ Hô Hð Hõ ˆt‰9Œ9˜Š>ˆ>Øå˜7‘|”|ˆñ;$ð@ �‚{€{Ýˆj�˜T™œÔ#Ð&7Ñ7½#¸d¹)¼)ÑCÀcÑIÑJÔJÐJÝÐ3°RÑ8Ô8Ð8ÝÐ'¨Ñ1Ô1Ð1ÝÐ1°2´7Ñ;Ô;Ð;ÝÐ1°2´7Ñ;Ô;Ð;å˜A 2¨1¨S¨b¨S¬6µs¸7±|´|Ø!œw¨R¬W½SÀ¹Y¼YØ",­S°©Y¬YÔ"7À$È!Â)ðNñ Nô Nð NsB   Ä)E Å 
F<Å*E=Å=F<Æ
FÆF<Æ'F7Æ7F<ÑQ2Ñ2Q6Ñ9Q6c                 ó  ‡ — |d         r"t          ˆ fd„|d         D ¦   «         ¦  «        }nt          d¦  «        }|d         r"t          ˆ fd„|d         D ¦   «         ¦  «        }nt          d¦  «        }t          ||f¦  «        }|S )Nr2   c           	      óT   •— g | ]$}t           |d          ‰g|d         ¢R Ž ¦  «        ‘Œ%S rf   rg   ©r7   r£   r"   s     €r&   ri   z$_eval_constraint.<locals>.<listcomp>Ù  sK   ø€ ð 3ð 3ð 3Ø #õ ' z s¨5¤z°!Ð'B°c¸&´kÐ'BÐ'BÐ'BÑCÔCð 3ð 3ð 3r'   r   r;   c           	      óT   •— g | ]$}t           |d          ‰g|d         ¢R Ž ¦  «        ‘Œ%S rf   rg   rÓ   s     €r&   ri   z$_eval_constraint.<locals>.<listcomp>ß  sK   ø€ ð 6ð 6ð 6Ø!$õ (¨
¨¨E¬
°1Ð(C°s¸6´{Ð(CÐ(CÐ(CÑDÔDð 6ð 6ð 6r'   )r
   r   )r"   rO   Úc_eqÚc_ieqr8   s   `    r&   r›   r›   Ö  sÃ   ø€ àˆD„zð Ýð 3ð 3ð 3ð 3Ø'+¨D¤zð3ñ 3ô 3ñ 4ô 4ˆˆõ �Q‰xŒxˆàˆF„|ð Ýð 6ð 6ð 6ð 6Ø(,¨V¬ð6ñ 6ô 6ñ 7ô 7ˆˆõ �a‘”ˆõ 	�T˜5�MÑ"Ô"€AØ€Hr'   c                 óˆ  ‡ — |d         r"t          ˆ fd„|d         D ¦   «         ¦  «        }nt          ||f¦  «        }|d         r"t          ˆ fd„|d         D ¦   «         ¦  «        }nt          ||f¦  «        }|dk    rt          ||f¦  «        }	nt          ||f¦  «        }	t          |	t          |dg¦  «        fd¦  «        }	|	S )Nr2   c                 ó:   •— g | ]} |d          ‰g|d         ¢R Ž ‘ŒS ©r%   r   r(   rÓ   s     €r&   ri   z%_eval_con_normals.<locals>.<listcomp>ì  sC   ø€ ð .ð .ð .Øð "�s˜5”z !Ð2 c¨&¤kÐ2Ð2Ð2ð .ð .ð .r'   r;   c                 ó:   •— g | ]} |d          ‰g|d         ¢R Ž ‘ŒS rÙ   r(   rÓ   s     €r&   ri   z%_eval_con_normals.<locals>.<listcomp>ò  sC   ø€ ð 1ð 1ð 1Øð #˜˜Eœ
 1Ð3 s¨6¤{Ð3Ð3Ð3ð 1ð 1ð 1r'   r   r   )r   r   r
   )
r"   rO   rª   r«   r©   r§   r¨   Úa_eqÚa_ieqrÐ   s
   `         r&   rœ   rœ   é  s  ø€ àˆD„zð Ýð .ð .ð .ð .Ø"& t¤*ð.ñ .ô .ñ /ô /ˆˆõ �c˜1�X‰ŒˆàˆF„|ð !Ýð 1ð 1ð 1ð 1Ø#'¨¤<ð1ñ 1ô 1ñ 2ô 2ˆˆõ �t˜Q�iÑ Ô ˆð 	ˆA‚v€vÝ�2�q�'‰NŒNˆˆå�D˜%�=Ñ!Ô!ˆÝ�Q�˜r 1˜g™œÐ'¨Ñ+Ô+€Aà€Hr'   )'Ú__doc__Ú__all__Únumpyr    Úscipy.optimize._slsqpr   r   r   r   r	   r
   r   r   r   r   r   Ú	_optimizer   r   r   r   r   Ú_numdiffr   Ú_constraintsr   r   Úscipy._lib._array_apir   r   Ú__docformat__r�   r/   Ú_epsilonr   r   rB   r›   rœ   r(   r'   r&   ú<module>rç      s  ððð ð ˜lÐ
+€à Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð &€àˆ4���e‘”Ô Ñ!Ô!€ðð ð ðD !#¨T¸2ÈØ °TØ"¨°#¸6Ø˜d°¸8Øð	Oð Oð Oð Oðd $&¨4¸Ø "Ø f°Q¸UØ ¨4Àdð|Nð |Nð |Nð |Nð~ð ð ð&ð ð ð ð r'   