§
    fŠtjO¯  ã                   ó¤  — d Z ddlZddlZddlZddlmZmZmZmZm	Z	 ddlm
Z ddlZddlmZmZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZmZ dd
lmZ ddlmZ  G d„ d¦  «        Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$ G d„ d¦  «        Z% G d„ d¦  «        Z& G d„ d¦  «        Z' G d„ d¦  «        Z( G d„ d¦  «        Z) G d„ d¦  «        Z* G d„ d ¦  «        Z+dS )!z7
Unit tests for optimization routines from minpack.py.
é    N)Úassert_Úassert_almost_equalÚassert_array_equalÚassert_array_almost_equalÚassert_allclose)Úraises)ÚarrayÚfloat64)Ú
ThreadPool)ÚoptimizeÚlinalg)Úlambertw)ÚleastsqÚ	curve_fitÚfixed_point)ÚOptimizeWarning)ÚBoundsc                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚReturnShapezúThis class exists to create a callable that does not have a '__name__' attribute.

    __init__ takes the argument 'shape', which should be a tuple of ints.
    When an instance is called with a single argument 'x', it returns numpy.ones(shape).
    c                 ó   — || _         d S ©N)Úshape)Úselfr   s     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_minpack.pyÚ__init__zReturnShape.__init__   s   € ØˆŒ
ˆ
ˆ
ó    c                 ó4   — t          j        | j        ¦  «        S r   )ÚnpÚonesr   )r   Úxs     r   Ú__call__zReturnShape.__call__    s   € ÝŒw�t”zÑ"Ô"Ð"r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   © r   r   r   r      s<   € € € € € ðð ðð ð ð#ð #ð #ð #ð #r   r   c                 ó*   — t          j        |¦  «        S )zUA function that returns an array of ones of the given shape.
    `x` is ignored.
    )r   r   )r    r   s     r   Ú
dummy_funcr(   $   s   € õ Œ7�5‰>Œ>Ðr   c                 óœ   — t          t          | ¦  «        ¦  «        5 }|                     d„ | ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nc                 ó   —  | ¦   «         S r   r&   )Úfs    r   ú<lambda>z#sequence_parallel.<locals>.<lambda>-   s   €  ! !¡#¤#€ r   )r   ÚlenÚmap)ÚfsÚpools     r   Úsequence_parallelr1   +   sŠ   € Ý	•C˜‘G”GÑ	Ô	ð + Ø�xŠx˜˜ rÑ*Ô*ð+ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   �AÁAÁAc                 óŽ   — || dz  z  }t          j        |dd…         |d         z
  |                      ¦   «         |z
  f¦  «        }|S )aš  Evaluate non-linear equation system representing
    the pressures and flows in a system of n parallel pipes::

        f_i = P_i - P_0, for i = 1..n
        f_0 = sum(Q_i) - Qtot

    where Q_i is the flow rate in pipe i and P_i the pressure in that pipe.
    Pressure is modeled as a P=kQ**2 where k is a valve coefficient and
    Q is the flow rate.

    Parameters
    ----------
    flow_rates : float
        A 1-D array of n flow rates [kg/s].
    k : float
        A 1-D array of n valve coefficients [1/kg m].
    Qtot : float
        A scalar, the total input flow rate [kg/s].

    Returns
    -------
    F : float
        A 1-D array, F[i] == f_i.

    é   é   Nr   )r   ÚhstackÚsum)Ú
flow_ratesÚQtotÚkÚPÚFs        r   Úpressure_networkr<   4   sJ   € ð4 	
ˆJ˜‰MÑ€AÝ
Œ	�1�Q�R�R”5˜1˜Qœ4‘< §¢Ñ!1Ô!1°DÑ!8Ð9Ñ:Ô:€AØ€Hr   c                 óP  — t          | ¦  «        }t          j        | dd…         dz  |dd…         z  d| d         z  |d         z  z
  ¦  «        }t          j        ||f¦  «        }|dz  |d|dz
  …d|dz
  …f<   d|d|dz
  …|dz
  f<   t          j        |¦  «        ||dz
  dd…f<   |S )a„  Return the jacobian of the equation system F(flow_rates)
    computed by `pressure_network` with respect to
    *flow_rates*. See `pressure_network` for the detailed
    description of parameters.

    Returns
    -------
    jac : float
        *n* by *n* matrix ``df_i/dQ_i`` where ``n = len(flow_rates)``
        and *f_i* and *Q_i* are described in the doc for `pressure_network`
    r4   Nr3   r   )r-   r   ÚdiagÚemptyr   )r7   r8   r9   ÚnÚpdiffÚjacs         r   Úpressure_network_jacobianrC   S   s¾   € õ 	ˆJ‰Œ€AÝŒG�J˜q˜r˜r”N QÑ&¨¨1¨2¨2¬Ñ.°°ZÀ´]Ñ1BÀQÀqÄTÑ1IÑIÑJÔJ€Eå
Œ(�A�q�6Ñ
Ô
€CØ˜a‘i€Cˆˆˆ1‰ˆˆdˆq�‰sˆdˆ
�OØ€Cˆˆˆ1‰ˆˆa�‰cˆ	�NÝ”'˜!‘*”*€Cˆˆ!‰ˆQˆQˆQˆ�Kà€Jr   c                 óF   — t          | ||¦  «        t          | ||¦  «        fS r   )r<   rC   )r7   r8   r9   s      r   Úpressure_network_fun_and_gradrE   j   s*   € Ý˜Z¨¨qÑ1Ô1Ý% j°$¸Ñ:Ô:ð<ð <r   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S )Ú
TestFSolvec                 ó
  — t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |||fd¬¦  «        \  }}}}t          |t          j        d¦  «        ¦  «         t          |dk    |¦  «         d S )Né   ç      à?©ç       @ç        rL   rM   T©ÚargsÚfull_outputr4   )	r   Úfullr	   r   Úfsolver<   r   r   r   )r   r9   r8   Úinitial_guessÚfinal_flowsÚinfoÚierÚmesgs           r   Ú!test_pressure_network_no_gradientz,TestFSolve.test_pressure_network_no_gradientp   s‹   € åŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ'/¤Ý˜m°4¸°)Øð(ñ (ô (Ñ$ˆ�T˜3 õ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ý��q’˜$ÑÔÐÐÐr   c                 óâ   — t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |||ft          ¬¦  «        }t          |t          j        d¦  «        ¦  «         d S )NrI   rJ   rK   ©rO   Úfprime)	r   rQ   r	   r   rR   r<   rC   r   r   ©r   r9   r8   rS   rT   s        r   Ú#test_pressure_network_with_gradientz.TestFSolve.test_pressure_network_with_gradient{   sn   € åŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ”oÝ˜m°4¸°)Ý,ð.ñ .ô .ˆõ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 ón   — t          d¦  «        }ddg}t          t          t          j        ||¦  «         d S ©Nr4   ç      ø?rL   ©r   Úassert_raisesÚ	TypeErrorr   rR   ©r   ÚfuncÚx0s      r   Útest_wrong_shape_func_callablez)TestFSolve.test_wrong_shape_func_callable…   s4   € Ý˜1‰~Œ~ˆð �3ˆZˆÝ•i¥¤°$¸Ñ;Ô;Ð;Ð;Ð;r   c                 ó^   — ddg}t          t          t          j        t          |d¬¦  «         d S ©Nr`   rL   )©r4   ©rO   )rb   rc   r   rR   r(   ©r   rf   s     r   Útest_wrong_shape_func_functionz)TestFSolve.test_wrong_shape_func_functionŒ   s.   € ð �3ˆZˆÝ•i¥¤µ*¸bÀwÐOÑOÔOÐOÐOÐOr   c                 óŒ   — t          d¦  «        }t          d¦  «        }t          t          t          j        |ddg|¬¦  «         d S )Nr4   ©r3   r3   r   ©rf   r[   ra   ©r   re   Ú
deriv_funcs      r   Ú test_wrong_shape_fprime_callablez+TestFSolve.test_wrong_shape_fprime_callable’   s?   € Ý˜1‰~Œ~ˆÝ  Ñ'Ô'ˆ
Ý•i¥¤°$¸A¸a¸5ÈÐTÑTÔTÐTÐTÐTr   c                 ó\   — d„ }d„ }t          t          t          j        |ddg|¬¦  «         d S )Nc                 ó"   — t          | d¦  «        S ©N)r3   ©r(   ©r    s    r   re   z9TestFSolve.test_wrong_shape_fprime_function.<locals>.func˜   ó   € Ý˜a Ñ&Ô&Ð&r   c                 ó"   — t          | d¦  «        S ©N)é   r|   rw   rx   s    r   rr   z?TestFSolve.test_wrong_shape_fprime_function.<locals>.deriv_funcš   ó   € Ý˜a Ñ(Ô(Ð(r   r   r4   rp   )rb   rc   r   rR   rq   s      r   Ú test_wrong_shape_fprime_functionz+TestFSolve.test_wrong_shape_fprime_function—   sE   € ð	'ð 	'ð 	'ð	)ð 	)ð 	)å•i¥¤°$¸A¸a¸5ÈÐTÑTÔTÐTÐTÐTr   c                 ó˜   — d„ }t          t          d¬¦  «        5  t          j        |dg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó    — t          d¦  «        ‚©NúI raised©Ú
ValueErrorrk   s    r   re   z,TestFSolve.test_func_can_raise.<locals>.funcŸ   ó   € Ý˜ZÑ(Ô(Ð(r   r‚   ©Úmatchr   ©rf   ©rb   r„   r   rR   ©r   re   s     r   Útest_func_can_raisezTestFSolve.test_func_can_raisež   s¡   € ð	)ð 	)ð 	)õ �:¨ZÐ8Ñ8Ô8ð 	*ð 	*ÝŒO˜D a SÐ)Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ó   š?¿AÁAc                 ó    — d„ }d„ }t          t          d¬¦  «        5  t          j        |dg|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó2   — | t          j        dg¦  «        z
  S ©Né
   ©r   r	   rx   s    r   re   z,TestFSolve.test_Dfun_can_raise.<locals>.func¦   ó   € Ø•r”x  ‘~”~Ñ%Ð%r   c                  ó    — t          d¦  «        ‚r�   rƒ   rk   s    r   rr   z2TestFSolve.test_Dfun_can_raise.<locals>.deriv_func©   r…   r   r‚   r†   r   rp   r‰   rq   s      r   Útest_Dfun_can_raisezTestFSolve.test_Dfun_can_raise¥   s²   € ð	&ð 	&ð 	&ð	)ð 	)ð 	)õ �:¨ZÐ8Ñ8Ô8ð 	=ð 	=ÝŒO˜D a S°Ð<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó   �AÁAÁ
Ac                 ó®   — d„ }t          j        |t          j        ddgt          j        ¦  «        ¦  «        }t           ||¦  «        ddgd¬¦  «         d S )Nc                 óp   — t          j        | d         dz
  | d         dz
  gt           j        ¬¦  «        dz  S )Nr   éd   r4   éè  ©Údtyper3   )r   r	   Úfloat32rx   s    r   re   z%TestFSolve.test_float32.<locals>.func°   s3   € Ý”8˜Q˜qœT C™Z¨¨1¬°©Ð5½R¼ZÐHÑHÔHÈAÑMÐMr   r4   r   çü©ñÒMbP?©Úatol)r   rR   r   r	   rœ   r   )r   re   Úps      r   Útest_float32zTestFSolve.test_float32¯   s^   € ð	Nð 	Nð 	NåŒO˜D¥"¤(¨A¨q¨6µ2´:Ñ">Ô">Ñ?Ô?ˆÝ˜˜˜Q™œ ! Q ¨dÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 ó  ‡ — ˆ fd„}t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        ||||fd¬¦  «        \  }}}}t          |t          j        d¦  «        ¦  «         t          |dk    |¦  «         d S )Nc                  ó>   •— ‰                      ¦   «          t          | Ž S r   )rX   r<   ©rO   r   s    €r   re   z,TestFSolve.test_reentrant_func.<locals>.func¶   s    ø€ Ø×2Ò2Ñ4Ô4Ð4Ý# TÐ*Ð*r   rI   rJ   rK   TrN   r4   )r   rQ   r	   r   rR   r   r   r   )	r   re   r9   r8   rS   rT   rU   rV   rW   s	   `        r   Útest_reentrant_funczTestFSolve.test_reentrant_funcµ   s§   ø€ ð	+ð 	+ð 	+ð 	+ð 	+õ
 ŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ'/¤Ø�- t¨Q iØð(ñ (ô (Ñ$ˆ�T˜3 õ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ý��q’˜$ÑÔÐÐÐr   c                 óä   ‡ — ˆ fd„}t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |||f|¬¦  «        }t          |t          j        d¦  «        ¦  «         d S )Nc                  ó>   •— ‰                      ¦   «          t          | Ž S r   )r]   rC   r¤   s    €r   rr   z3TestFSolve.test_reentrant_Dfunc.<locals>.deriv_funcÅ   s    ø€ Ø×4Ò4Ñ6Ô6Ð6Ý,¨dÐ3Ð3r   rI   rJ   rK   rZ   )r   rQ   r	   r   rR   r<   r   r   )r   rr   r9   r8   rS   rT   s   `     r   Útest_reentrant_DfunczTestFSolve.test_reentrant_DfuncÄ   sŠ   ø€ ð	4ð 	4ð 	4ð 	4ð 	4õ
 ŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ”oÝ˜m°4¸°)Øðñ ô ˆõ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 ól   — t          | j        gdz  ¦  «        }t          d„ |D ¦   «         ¦  «        sJ ‚d S )Nr�   c                 ó   — g | ]}|d u ‘ŒS r   r&   ©Ú.0Úresults     r   ú
<listcomp>z:TestFSolve.test_concurrent_no_gradient.<locals>.<listcomp>Ô   ó   € Ð3Ð3Ð3 v�F˜d�NÐ3Ð3Ð3r   )r1   rX   Úall©r   Úvs     r   Útest_concurrent_no_gradientz&TestFSolve.test_concurrent_no_gradientÒ   sC   € Ý˜tÔEÐFÈÑKÑLÔLˆÝÐ3Ð3°Ð3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r   c                 ól   — t          | j        gdz  ¦  «        }t          d„ |D ¦   «         ¦  «        sJ ‚d S )Nr�   c                 ó   — g | ]}|d u ‘ŒS r   r&   r«   s     r   r®   z<TestFSolve.test_concurrent_with_gradient.<locals>.<listcomp>Ø   r¯   r   )r1   r]   r°   r±   s     r   Útest_concurrent_with_gradientz(TestFSolve.test_concurrent_with_gradientÖ   sC   € Ý˜tÔGÐHÈ2ÑMÑNÔNˆÝÐ3Ð3°Ð3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r   N)r"   r#   r$   rX   r]   rg   rm   rs   r~   r‹   r”   r¡   r¥   r¨   r³   r¶   r&   r   r   rG   rG   o   sà   € € € € € ð	 ð 	 ð 	 ð;ð ;ð ;ð<ð <ð <ðPð Pð PðUð Uð Uð
Uð Uð Uð*ð *ð *ð=ð =ð =ð4ð 4ð 4ð ð  ð  ð;ð ;ð ;ð5ð 5ð 5ð5ð 5ð 5ð 5ð 5r   rG   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestRootHybrc                 óâ   — t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |d||f¬¦  «        j        }t          |t          j        d¦  «        ¦  «         d S )NrI   rJ   rK   Úhybr©ÚmethodrO   ©	r   rQ   r	   r   Úrootr<   r    r   r   r\   s        r   rX   z.TestRootHybr.test_pressure_network_no_gradientÜ   su   € åŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ”mÕ$4°mØ+1¸¸q¸	ðCñ Cô CÜCDð 	å! +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 óð   — t          j        dd¦  «        }d}t          g d¢g¦  «        }t          j        t
          |||fdt          ¬¦  «        j        }t          |t          j	        d¦  «        ¦  «         d S )NrI   rJ   rK   rº   ©rO   r¼   rB   )
r   rQ   r	   r   r¾   r<   rC   r    r   r   r\   s        r   r]   z0TestRootHybr.test_pressure_network_with_gradientå   s}   € åŒG�A�s‰OŒOˆØˆÝÐ/Ð/Ð/Ð0Ñ1Ô1ˆÝ”mÕ$4°mØ*.°¨¸6Ý(AðCñ Cô CäCDð 	õ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 óä   — t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |||fdd¬¦  «        j        }t          |t          j        d¦  «        ¦  «         d S )NrI   rJ   rK   rº   TrÀ   )	r   rQ   r	   r   r¾   rE   r    r   r   r\   s        r   Ú,test_pressure_network_with_gradient_combinedz9TestRootHybr.test_pressure_network_with_gradient_combinedï   sy   € õ ŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ”mÕ$AØ$1¸¸q¸	Ø+1°tð=ñ =ô =ä=>ð 	õ 	" +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   N)r"   r#   r$   rX   r]   rÂ   r&   r   r   r¸   r¸   Û   sA   € € € € € ð;ð ;ð ;ð;ð ;ð ;ð	;ð 	;ð 	;ð 	;ð 	;r   r¸   c                   ó   — e Zd Zd„ ZdS )Ú
TestRootLMc                 óâ   — t          j        dd¦  «        }d}t          g d¢¦  «        }t          j        t
          |d||f¬¦  «        j        }t          |t          j        d¦  «        ¦  «         d S )NrI   rJ   rK   Úlmr»   r½   r\   s        r   rX   z,TestRootLM.test_pressure_network_no_gradientü   su   € åŒG�A�s‰OŒOˆØˆÝÐ.Ð.Ð.Ñ/Ô/ˆÝ”mÕ$4°mØ+/°t¸Q°iðAñ Aô AÜABð 	å! +­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r   N)r"   r#   r$   rX   r&   r   r   rÄ   rÄ   û   s#   € € € € € ð;ð ;ð ;ð ;ð ;r   rÄ   c                   ól   — e Zd Zd„ Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zd„ Z	dS )ÚTestNfevc                 ó6   — t          j        ¦   «         | _        d S r   )Ú	threadingÚlocalÚnfev©r   s    r   Úsetup_methodzTestNfev.setup_method  s   € Ý”OÑ%Ô%ˆŒ	ˆ	ˆ	r   c                 ó~   — t          | j        d¦  «        sd| j        _        | j        xj        dz  c_        |dz  dz
  S )NÚcr   r4   r3   r|   )ÚhasattrrÌ   rÐ   )r   Úys     r   Úzero_fzTestNfev.zero_f
  s>   € Ý�t”y #Ñ&Ô&ð 	ØˆDŒIŒKØŒ	ˆŒ�qÑˆŒØ�!‰t�A‰vˆr   r¼   )
rº   rÆ   Úbroyden1Úbroyden2ÚandersonÚlinearmixingÚdiagbroydenÚexcitingmixingÚkrylovzdf-sanec                 ó„   — d| j         _        t          j        | j        d|¬¦  «        }|j         | j         j        k    sJ ‚d S )Nr   r˜   ©r¼   )rÌ   rÐ   r   r¾   rÓ   )r   r¼   Úsolutions      r   Útest_root_nfevzTestNfev.test_root_nfev  sB   € ð ˆŒ	ŒÝ”= ¤¨c¸&ÐAÑAÔAˆØŒ} ¤	¤Ò+Ð+Ð+Ð+Ð+Ð+r   c                 ó�   — d| j         _        t          j        | j        dd¬¦  «        \  }}}}|d         | j         j        k    sJ ‚d S )Nr   r˜   T)rP   rÌ   )rÌ   rÐ   r   rR   rÓ   )r   r    rU   rV   rW   s        r   Útest_fsolve_nfevzTestNfev.test_fsolve_nfev  sK   € ØˆŒ	ŒÝ%œ_¨T¬[¸#È4ÐPÑPÔPÑˆˆ4��dØ�FŒ|˜tœyœ{Ò*Ð*Ð*Ð*Ð*Ð*r   N)
r"   r#   r$   rÎ   rÓ   ÚpytestÚmarkÚparametrizerÞ   rà   r&   r   r   rÈ   rÈ     s‚   € € € € € ð&ð &ð &ðð ð ð „[×Ò˜Xð (3ð (3ð (3ñ 4ô 4ð
,ð ,ñ4ô 4ð
,ð
+ð +ð +ð +ð +r   rÈ   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S )ÚTestLeastSqc                 ó
  — t          j        ddd¦  «        }d\  }}}|| _        |||f| _        ||dz  z  ||z  z   |z   }t           j                             d¦  «        }|d|                     |j        ¦  «        z  z   | _        d S )Nr   r�   é(   )gÍÌÌÌÌÌ@é*   g33333sÀr3   é{   g{®Gáz„?)	r   Úlinspacer    ÚabcÚrandomÚdefault_rngÚstandard_normalr   Úy_meas)r   r    ÚaÚbrÐ   Úy_trueÚrngs          r   rÎ   zTestLeastSq.setup_method!  sˆ   € ÝŒK˜˜2˜rÑ"Ô"ˆØ‰ˆˆ!ˆAØˆŒØ�Q�q�5ˆŒØ�1�a‘4‘˜!˜A™#‘ Ñ!ˆÝŒi×#Ò# CÑ(Ô(ˆØ˜t C×$7Ò$7¸¼Ñ$EÔ$EÑEÑEˆŒˆˆr   c                 ó:   — |\  }}}|||dz  z  ||z  z   |z   z
  }|S ©Nr3   r&   )r   r    rÒ   r    rð   rñ   rÐ   Úerrs           r   Ú	residualszTestLeastSq.residuals*  s1   € Ø‰ˆˆ!ˆAØ��1�a‘4‘˜!˜A™#‘ Ñ!Ñ"ˆØˆ
r   c                 óf   — t          j        |dz  |t          j        |¦  «        g¦  «        j         S rõ   )r   ÚvstackÚ	ones_likeÚT)r   Ú_pÚ_yr    s       r   Úresiduals_jacobianzTestLeastSq.residuals_jacobian/  s+   € Ý”	˜1˜a™4 ¥B¤L°¡O¤OÐ4Ñ5Ô5Ô7Ð7Ð7r   c                 óÎ   — t          g d¢¦  «        }t          | j        || j        | j        f¬¦  «        \  }}t          |dv d|› d�¦  «         t          || j        d¬¦  «         d S )N©r   r   r   rk   ©r4   r3   r|   rI   úsolution not found (ier=ú)r3   ©Údecimal©r	   r   r÷   rï   r    r   r   rë   ©r   Úp0Ú
params_fitrV   s       r   Ú
test_basiczTestLeastSq.test_basic2  sy   € Ý�7�7�7‰^Œ^ˆÝ! $¤.°"Ø(,¬°T´VÐ'<ð>ñ >ô >‰ˆ
�Cå��|Ð#Ð%FÀÐ%FÐ%FÐ%FÑGÔGÐGå! *¨d¬hÀÐBÑBÔBÐBÐBÐBr   c                 óÚ   — t          g d¢¦  «        }t          | j        || j        | j        f| j        ¬¦  «        \  }}t          |dv d|› d�¦  «         t          || j        d¬¦  «         d S )Nr   ©rO   ÚDfunr  r  r  r3   r  )	r	   r   r÷   rï   r    rþ   r   r   rë   r  s       r   Útest_basic_with_gradientz$TestLeastSq.test_basic_with_gradient:  s„   € Ý�7�7�7‰^Œ^ˆÝ! $¤.°"Ø(,¬°T´VÐ'<Ø'+Ô'>ð@ñ @ô @‰ˆ
�Cõ 	��|Ð#Ð%FÀÐ%FÐ%FÐ%FÑGÔGÐGå! *¨d¬hÀÐBÑBÔBÐBÐBÐBr   c                 ó¬   — t          g d¢g¦  «        }t          | j        || j        | j        fd¬¦  «        }|\  }}}}}t          |dv d|› �¦  «         d S )Nr   TrN   r  úsolution not found: )r	   r   r÷   rï   r    r   )r   r  rP   r	  Úcov_xÚinfodictrW   rV   s           r   Útest_full_outputzTestLeastSq.test_full_outputC  st   € Ý�G�G�G�9ÑÔˆÝ˜dœn¨bØ$(¤K°´Ð#8Ø*.ð0ñ 0ô 0ˆð 2=Ñ.ˆ
�E˜8 T¨3Ý��yÐ Ð"?¸Ð"?Ð"?Ñ@Ô@Ð@Ð@Ð@r   c                 óú   — t          g d¢t          ¬¦  «        }t          |d¬¦  «        }t          | j        || j        | j        fd¬¦  «        }|\  }}}}}t          |dv d|› �¦  «         t          ||¦  «         d S )Nr   rš   T)ÚcopyrN   r  r  )r	   r
   r   r÷   rï   r    r   r   )	r   r  Úp0_copyrP   r	  r  r  rW   rV   s	            r   Útest_input_untouchedz TestLeastSq.test_input_untouchedK  s™   € Ý�7�7�7¥Ð)Ñ)Ô)ˆÝ˜ Ð&Ñ&Ô&ˆÝ˜dœn¨bØ$(¤K°´Ð#8Ø*.ð0ñ 0ô 0ˆð 2=Ñ.ˆ
�E˜8 T¨3Ý��yÐ Ð"?¸Ð"?Ð"?Ñ@Ô@Ð@Ý˜2˜wÑ'Ô'Ð'Ð'Ð'r   c                 ón   — t          d¦  «        }ddg}t          t          t          j        ||¦  «         d S r_   ©r   rb   rc   r   r   rd   s      r   rg   z*TestLeastSq.test_wrong_shape_func_callableU  s5   € Ý˜1‰~Œ~ˆð �3ˆZˆÝ•i¥Ô!1°4¸Ñ<Ô<Ð<Ð<Ð<r   c                 ó^   — ddg}t          t          t          j        t          |d¬¦  «         d S ri   )rb   rc   r   r   r(   rl   s     r   rm   z*TestLeastSq.test_wrong_shape_func_function\  s/   € ð �3ˆZˆÝ•i¥Ô!1µ:¸rÈÐPÑPÔPÐPÐPÐPr   c                 óŒ   — t          d¦  «        }t          d¦  «        }t          t          t          j        |ddg|¬¦  «         d S )Nr4   ro   r   ©rf   r  r  rq   s      r   Útest_wrong_shape_Dfun_callablez*TestLeastSq.test_wrong_shape_Dfun_callableb  s@   € Ý˜1‰~Œ~ˆÝ  Ñ'Ô'ˆ
Ý•i¥Ô!1°4¸Q¸q¸EÈ
ÐSÑSÔSÐSÐSÐSr   c                 ó\   — d„ }d„ }t          t          t          j        |ddg|¬¦  «         d S )Nc                 ó"   — t          | d¦  «        S rv   rw   rx   s    r   re   z8TestLeastSq.test_wrong_shape_Dfun_function.<locals>.funch  ry   r   c                 ó"   — t          | d¦  «        S r{   rw   rx   s    r   rr   z>TestLeastSq.test_wrong_shape_Dfun_function.<locals>.deriv_funcj  r}   r   r   r4   r  ©rb   rc   r   r   rq   s      r   Útest_wrong_shape_Dfun_functionz*TestLeastSq.test_wrong_shape_Dfun_functiong  sF   € ð	'ð 	'ð 	'ð	)ð 	)ð 	)å•i¥Ô!1°4¸Q¸q¸EÈ
ÐSÑSÔSÐSÐSÐSr   c           	      óÆ  — d„ }t          j        g d¢t           j        ¬¦  «        }t          j        g d¢t           j        ¬¦  «        }t          j        g d¢¦  «        }t          j        ||||f¬¦  «        \  }}t          |dv ¦  «         t           ||||¦  «        dz                       ¦   «         d	 ||||¦  «        dz                       ¦   «         z  k     ¦  «         d S )
Nc                 ó�   — | d         t          j        || d         z
  dz   d| d         dz  z  z  ¦  «        z  | d         z   }||z
  S )Nr   r4   r3   rL   r|   ©r   Úexp)r    r    rÒ   Úqs       r   re   z&TestLeastSq.test_float32.<locals>.funcp  sK   € Ø�!”•R”V˜a  !¤™f q™[˜L¨#¨a°¬d°A©g©+Ñ6Ñ7Ô7Ñ7¸¸!¼Ñ<ˆAØ�q‘5ˆLr   )
gš™™™™™÷?gw¾Ÿ/Ýö?g%�•C‹ö?gNbX9´ö?gHáz®G÷?gçû©ñÒMø?gZd;ßO�÷?gÙÎ÷Sãõ?gú~j¼t“ô?gV-²ó?rš   )
gŒJê4‘?g¥N@aÃ“?g^KÈ=›•?gM„O¯”?gßà“©‚‘?g?W[±¿ìŽ?g‹lçû©ñ’?g³{ò°Pkš?gœÄ °rh¡?gõÛ×�sF¤?)ç      ð?r(  r(  r(  rk   r  r3   g-Cëâ6?)r   r	   rœ   r   r   r   r6   )r   re   r    rÒ   r  Úp1Úsuccesss          r   r¡   zTestLeastSq.test_float32n  s  € ð	ð 	ð 	õ ŒHð ð ð Ý%'¤Zð1ñ 1ô 1ˆåŒHð $ð $ð $Ý+-¬:ð7ñ 7ô 7ˆåŒXÐ'Ð'Ð'Ñ(Ô(ˆÝÔ& t¨R°q¸°eÐ<Ñ<Ô<‰ˆˆGå�˜9Ð$Ñ%Ô%Ð%Ý���b˜˜1‘”˜q‘×%Ò%Ñ'Ô'¨$°$°$°r¸!¸A±,´,À±/×1FÒ1FÑ1HÔ1HÑ*HÒHÑIÔIÐIÐIÐIr   c                 ó˜   — d„ }t          t          d¬¦  «        5  t          j        |dg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó    — t          d¦  «        ‚r�   rƒ   rk   s    r   re   z-TestLeastSq.test_func_can_raise.<locals>.func  r…   r   r‚   r†   r   rˆ   ©rb   r„   r   r   rŠ   s     r   r‹   zTestLeastSq.test_func_can_raise~  s¢   € ð	)ð 	)ð 	)õ �:¨ZÐ8Ñ8Ô8ð 	+ð 	+ÝÔ˜T q cÐ*Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+rŒ   c                 ó    — d„ }d„ }t          t          d¬¦  «        5  t          j        |dg|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó2   — | t          j        dg¦  «        z
  S r�   r‘   rx   s    r   re   z-TestLeastSq.test_Dfun_can_raise.<locals>.func†  r’   r   c                  ó    — t          d¦  «        ‚r�   rƒ   rk   s    r   rr   z3TestLeastSq.test_Dfun_can_raise.<locals>.deriv_func‰  r…   r   r‚   r†   r   r  r-  rq   s      r   r”   zTestLeastSq.test_Dfun_can_raise…  s³   € ð	&ð 	&ð 	&ð	)ð 	)ð 	)õ �:¨ZÐ8Ñ8Ô8ð 	<ð 	<ÝÔ˜T q c°
Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<r•   c                 óÐ   ‡ — ˆ fd„}t          g d¢¦  «        }t          ||‰ j        ‰ j        f¬¦  «        \  }}t	          |dv d|› d�¦  «         t          |‰ j        d¬¦  «         d S )	Nc                  ó@   •— ‰                      ¦   «           ‰j        | Ž S r   )r
  r÷   r¤   s    €r   re   z-TestLeastSq.test_reentrant_func.<locals>.func�  s"   ø€ Ø�OŠOÑÔÐØ!�4”> 4Ð(Ð(r   r   rk   r  r  r  r3   r  )r	   r   rï   r    r   r   rë   )r   re   r  r	  rV   s   `    r   r¥   zTestLeastSq.test_reentrant_func�  s“   ø€ ð	)ð 	)ð 	)ð 	)ð 	)õ �7�7�7‰^Œ^ˆÝ! $¨Ø(,¬°T´VÐ'<ð>ñ >ô >‰ˆ
�Cå��|Ð#Ð%FÀÐ%FÐ%FÐ%FÑGÔGÐGå! *¨d¬hÀÐBÑBÔBÐBÐBÐBr   c                 óÜ   ‡ — ˆ fd„}t          g d¢¦  «        }t          ‰ j        |‰ j        ‰ j        f|¬¦  «        \  }}t          |dv d|› d�¦  «         t          |‰ j        d¬¦  «         d S )	Nc                  ó@   •— ‰                      ¦   «           ‰j        | Ž S r   )r
  rþ   r¤   s    €r   rr   z3TestLeastSq.test_reentrant_Dfun.<locals>.deriv_funcœ  s#   ø€ Ø�OŠOÑÔÐØ*�4Ô*¨DÐ1Ð1r   r   r  r  r  r  r3   r  r  )r   rr   r  r	  rV   s   `    r   Útest_reentrant_DfunzTestLeastSq.test_reentrant_Dfun›  sš   ø€ ð	2ð 	2ð 	2ð 	2ð 	2õ �7�7�7‰^Œ^ˆÝ! $¤.°"Ø(,¬°T´VÐ'<Ø'1ð3ñ 3ô 3‰ˆ
�Cõ 	��|Ð#Ð%FÀÐ%FÐ%FÐ%FÑGÔGÐGå! *¨d¬hÀÐBÑBÔBÐBÐBÐBr   c                 ól   — t          | j        gdz  ¦  «        }t          d„ |D ¦   «         ¦  «        sJ ‚d S )Nr�   c                 ó   — g | ]}|d u ‘ŒS r   r&   r«   s     r   r®   z;TestLeastSq.test_concurrent_no_gradient.<locals>.<listcomp>ª  r¯   r   )r1   r
  r°   r±   s     r   r³   z'TestLeastSq.test_concurrent_no_gradient¨  sB   € Ý˜tœÐ/°"Ñ4Ñ5Ô5ˆÝÐ3Ð3°Ð3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r   c                 ól   — t          | j        gdz  ¦  «        }t          d„ |D ¦   «         ¦  «        sJ ‚d S )Nr�   c                 ó   — g | ]}|d u ‘ŒS r   r&   r«   s     r   r®   z=TestLeastSq.test_concurrent_with_gradient.<locals>.<listcomp>®  r¯   r   )r1   r  r°   r±   s     r   r¶   z)TestLeastSq.test_concurrent_with_gradient¬  sC   € Ý˜tÔ<Ð=ÀÑBÑCÔCˆÝÐ3Ð3°Ð3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r   c                 óš   — d„ }t          t          d¬¦  «        5  t          j        |ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó*   — d| d         dz
  dz  z  dz   S )Nr3   r   r|   r4   r&   rx   s    r   re   z=TestLeastSq.test_func_input_output_length_check.<locals>.func²  s   € Ø˜˜!œ˜q™ Q‘Ñ&¨Ñ*Ð*r   z+Improper input: func input vector length N=r†   r   r4   rˆ   r!  rŠ   s     r   Ú#test_func_input_output_length_checkz/TestLeastSq.test_func_input_output_length_check°  s®   € ð	+ð 	+ð 	+õ �9Ø!NðPñ Pô Pð 	.ð 	.åÔ˜T q¨! fÐ-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   šA Á AÁAN)r"   r#   r$   rÎ   r÷   rþ   r
  r  r  r  rg   rm   r  r"  r¡   r‹   r”   r¥   r5  r³   r¶   r<  r&   r   r   rå   rå      sO  € € € € € ðFð Fð Fðð ð ð
8ð 8ð 8ðCð Cð CðCð Cð CðAð Að Að(ð (ð (ð=ð =ð =ðQð Qð QðTð Tð Tð
Tð Tð TðJð Jð Jð +ð +ð +ð<ð <ð <ð
Cð 
Cð 
CðCð Cð Cð5ð 5ð 5ð5ð 5ð 5ð.ð .ð .ð .ð .r   rå   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zed
„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zd„ Zd „ Zej                             d!d"d#g¦  «        d$„ ¦   «         Z d%„ Z!d&„ Z"d'„ Z#d(„ Z$d)„ Z%ej         &                    d*¦  «        d+„ ¦   «         Z'd,„ Z(d-„ Z)ej                             dd.d/g¦  «        d0„ ¦   «         Z*d1S )2ÚTestCurveFitc                 ó^   — t          g d¢¦  «        | _        t          g d¢¦  «        | _        d S )N)r(  gš™™™™™	@ç      #@gffffff+@)r(  rL   ç      @g      @)r	   rÒ   r    rÍ   s    r   rÎ   zTestCurveFit.setup_method»  s2   € ÝÐ,Ð,Ð,Ñ-Ô-ˆŒÝÐ+Ð+Ð+Ñ,Ô,ˆŒˆˆr   c                 ó„  — d„ }t          || j        | j        ¦  «        \  }}t          t	          |¦  «        dk    ¦  «         t          |j        dk    ¦  «         t          |d         dd¬¦  «         t          |d         d	d¬¦  «         t          || j        | j        dd
¬¦  «        }|\  }}}}}	t          ||¦  «         d S )Nc                 ó   — | |z  S r   r&   ©r    rð   s     r   re   z,TestCurveFit.test_one_argument.<locals>.funcÀ  ó   € Ø�a‘4ˆKr   r4   )r4   r4   r   g3Ä±.n£þ?rI   r  )r   r   g-Cëâ6Z?F)rP   Úcheck_finite)r   r    rÒ   r   r-   r   r   r   )
r   re   ÚpoptÚpcovÚresÚpopt2Úpcov2r  ÚerrmsgrV   s
             r   Útest_one_argumentzTestCurveFit.test_one_argument¿  sÔ   € ð	ð 	ð 	å˜t T¤V¨T¬VÑ4Ô4‰
ˆˆdÝ•�D‘	”	˜Q’ÑÔÐÝ�”
˜eÒ#Ñ$Ô$Ð$Ý˜D œG V°QÐ7Ñ7Ô7Ð7Ý˜D œI v°qÐ9Ñ9Ô9Ð9õ ˜˜dœf d¤fØ$%°Eð;ñ ;ô ;ˆà03Ñ-ˆ��x ¨Ý! $¨Ñ.Ô.Ð.Ð.Ð.r   c                 ó  — d„ }t          || j        | j        ¦  «        \  }}t          t	          |¦  «        dk    ¦  «         t          |j        dk    ¦  «         t          |ddgd¬¦  «         t          |dd	gd	d
ggd¬¦  «         d S )Nc                 ó   — || |z  z  S r   r&   ©r    rð   rñ   s      r   re   z,TestCurveFit.test_two_argument.<locals>.funcÐ  s   € Ø�Q˜‘T‘6ˆMr   r3   ro   çñcÌ]KÈü?çà-� ò?rI   r  çäƒžÍªÏµ?çTã¥›Ä À¿ç·bÙ=yÈ?)r   r    rÒ   r   r-   r   r   )r   re   rG  rH  s       r   Útest_two_argumentzTestCurveFit.test_two_argumentÏ  s¨   € ð	ð 	ð 	å˜t T¤V¨T¬VÑ4Ô4‰
ˆˆdÝ•�D‘	”	˜Q’ÑÔÐÝ�”
˜eÒ#Ñ$Ô$Ð$Ý! $¨°Ð(8À!ÐDÑDÔDÐDÝ! $¨&°'Ð):¸WÀfÐ<MÐ(NØ*+ð	-ñ 	-ô 	-ð 	-ð 	-ð 	-r   c                 ó  —  G d„ d¦  «        } |¦   «         }t          |j        | j        | j        ¦  «        \  }}t	          |j        dk    ¦  «         t          |ddgd¬¦  «         t          |dd	gd	d
ggd¬¦  «         d S )Nc                   ó   — e Zd ZdZd„ ZdS )ú8TestCurveFit.test_func_is_classmethod.<locals>.test_selfz”This class tests if curve_fit passes the correct number of
               arguments when the model function is a class instance method.
            c                 ó   — |||z  z  S r   r&   )r   r    rð   rñ   s       r   re   z=TestCurveFit.test_func_is_classmethod.<locals>.test_self.funcß  s   € Ø˜1˜a™4‘x�r   N)r"   r#   r$   r%   re   r&   r   r   Ú	test_selfrY  Ú  s-   € € € € € ðð ð ð  ð  ð  ð  r   r[  ro   rQ  rR  rI   r  rS  rT  rU  )r   re   r    rÒ   r   r   r   )r   r[  Útest_self_instrG  rH  s        r   Útest_func_is_classmethodz%TestCurveFit.test_func_is_classmethodÙ  s¹   € ð	 ð 	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð #˜™œˆÝ˜~Ô2°D´F¸D¼FÑCÔC‰
ˆˆdÝ�”
˜eÒ#Ñ$Ô$Ð$Ý! $¨°Ð(8À!ÐDÑDÔDÐDÝ! $¨&°'Ð):¸WÀfÐ<MÐ(NØ*+ð	-ñ 	-ô 	-ð 	-ð 	-ð 	-r   c                 ó~   — g d¢}g d¢}g d¢}g d¢}d„ }t          ||||d¬¦  «        \  }}t          ||d¬	¦  «         d S )
N)
gB`åÐ"ñ�@g¬Zd;ñ�@g¸…ëQñ�@g#Ûù~jñ�@g/Ý$�ñ�@g;ßO�—ñ�@g¦›Ä °ñ�@g²�ï§Æñ�@gZd;ßñ�@g)\�Âõñ�@)
ç     ØŠ@g     (�@g     Œš@g     X¤@g     tŸ@g     °ž@g     £@g     8˜@g     ¨�@g     HŠ@)g€^w8}ñ�@gU]ƒ}¹ñ�@ç     X”@r`  g2ï9°l?r_  )gäƒžÍjñ�@gºÂj¬ñ�@g…”ŸT{7›@g|'f½ØÉ˜@g ‘Æž„?g©„'ôšËŠ@c                 ó¦   — |t          j        | |z
  dz   d|dz  z  z  ¦  «        z  |t          j        | |z
  dz   d|dz  z  z  ¦  «        z  z   |z   S )Nr3   rL   r%  )r    rf   Úx1ÚA0ÚA1ÚsigmarÐ   s          r   Úf_double_gaussz9TestCurveFit.test_regression_2639.<locals>.f_double_gaussö  sf   € Ø•r”v  "¡ q™y˜j¨"¨U°A©X©+Ñ6Ñ7Ô7Ñ7Ø�œ ! B¡$¨¡ 
¨B¨u°a©x©KÑ 8Ñ9Ô9Ñ9ñ:Ø<=ñ>ð ?r   i'  ©Úmaxfevgñhãˆµøä>©Úrtol)r   r   )r   r    rÒ   ÚguessÚgoodrf  rG  rH  s           r   Útest_regression_2639z!TestCurveFit.test_regression_2639é  sŽ   € ðð ð ˆð#ð #ð #ˆð/ð /ð /ˆð/ð /ð /ˆð	?ð 	?ð 	?õ ˜~¨q°!°UÀ5ÐIÑIÔI‰
ˆˆdÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.r   c           
      ón  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }d„ }dD �][}t          |||ddg||¬¦  «        \  }}t          j        t          j        |¦  «        ¦  «        }t          |d	d
gd¬¦  «         t          |||ddgd|z  |¬¦  «        \  }}t          j        t          j        |¦  «        ¦  «        }t          |d	d
gd¬¦  «         t          |||ddg|d|¬¦  «        \  }}t          j        t          j        |¦  «        ¦  «        }	t          |	ddgd¬¦  «         t          |||ddgd|z  d|¬¦  «        \  }}t          j        t          j        |¦  «        ¦  «        }	t          |	ddgd¬¦  «         �Œ]d„ }
t          j        t           j        gdz  ¦  «                             dd¦  «        }t          j	        ¦   «         5  t          j
        ddt          ¦  «         t          |
||ddg|¬¦  «        \  }}t          ||d d…         |d d…         ddg¬¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   t          |j        dk    ¦  «         t          ||¦  «         t          |j        dk    ¦  «         t          ||¦  «         d S )N)r   r4   r3   r|   rI   é   )r4   r4   ro  é   é   é   )r4   r3   r4   r3   r4   r3   c                 ó   — || z  |z   S r   r&   rP  s      r   r+   z!TestCurveFit.test_pcov.<locals>.f  ó   € Ø�Q‘3˜‘7ˆNr   ©rÆ   ÚtrfÚdogboxr3   r   )r  re  r¼   g´N"ãÍqÊ?g²~uM/Nâ?r�   ri  r|   T)r  re  Úabsolute_sigmar¼   g´ÁO=N¨Ó?g5=¬`é6ë?gŽ¢÷[u|í?gè-�/i@c                 ó   — || z  S r   r&   rP  s      r   Úf_flatz&TestCurveFit.test_pcov.<locals>.f_flat  s   € Ø�Q‘3ˆJr   rI   Úignorez3Covariance of the parameters could not be estimated©r  re  ©r  ro   )r   r	   r   Úsqrtr>   r   ÚinfÚreshapeÚwarningsÚcatch_warningsÚfilterwarningsr   r   r   r   )r   ÚxdataÚydatare  r+   r¼   rG  rH  Úperr_scaledÚperrrz  Úpcov_expectedÚpopt1Úpcov1s                 r   Ú	test_pcovzTestCurveFit.test_pcovü  sP  € Ý”Ð+Ð+Ð+Ñ,Ô,ˆÝ”Ð,Ð,Ð,Ñ-Ô-ˆÝ”Ð+Ð+Ð+Ñ,Ô,ˆð	ð 	ð 	ð .ð 	Kñ 	KˆFÝ" 1 e¨U¸¸1°vÀUØ*0ð2ñ 2ô 2‰JˆD�$åœ'¥"¤'¨$¡-¤-Ñ0Ô0ˆKÝ˜K¨*°jÐ)AÈÐMÑMÔMÐMå" 1 e¨U¸¸1°vÀQÀuÁWØ*0ð2ñ 2ô 2‰JˆD�$åœ'¥"¤'¨$¡-¤-Ñ0Ô0ˆKÝ˜K¨*°jÐ)AÈÐMÑMÔMÐMå" 1 e¨U¸¸1°vÀUØ26¸vðGñ Gô G‰JˆD�$å”7�2œ7 4™=œ=Ñ)Ô)ˆDÝ˜D :¨zÐ":ÀÐFÑFÔFÐFå" 1 e¨U¸¸1°vÀQÀuÁWØ26¸vðGñ Gô G‰JˆD�$å”7�2œ7 4™=œ=Ñ)Ô)ˆDÝ˜D <°Ð">ÀTÐJÑJÔJÐJÑJð	ð 	ð 	õ œ¥"¤& ¨!¡Ñ,Ô,×4Ò4°Q¸Ñ:Ô:ˆåÔ$Ñ&Ô&ð 	Ið 	IÝÔ#ØØEÝñ!ô !ð !õ # 6¨5°%¸QÀ¸FÈ%ÐPÑPÔP‰JˆD�$Ý$ Q¨¨b¨q¨b¬	°5¸¸!¸´9À!ÀQÀÐHÑHÔH‰LˆE�5ð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iõ 	�”
˜fÒ$Ñ%Ô%Ð%Ý˜4 Ñ/Ô/Ð/å�”˜vÒ%Ñ&Ô&Ð&Ý˜5 -Ñ0Ô0Ð0Ð0Ð0s   Ç1AIÉIÉ!Ic                 ón   — d„ }g d¢}g d¢}t          t          |||¦  «        d         ddgd¬¦  «         d S )	Nc                 ó   — || z  |z   S r   r&   rP  s      r   Úf_linearz.TestCurveFit.test_array_like.<locals>.f_linear0  rt  r   r  )r|   ro  rp  é	   r   r3   r4   g»½×Ùß|Û=rž   )r   r   )r   rŽ  r    rÒ   s       r   Útest_array_likezTestCurveFit.test_array_like.  sU   € ð	ð 	ð 	ð ˆLˆLˆØˆLˆLˆÝ�	 (¨A¨qÑ1Ô1°!Ô4°q¸!°fÀ5ÐIÑIÔIÐIÐIÐIr   c                 óæ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        t          ¦  «        5  t          d„ ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r4   r3   r|   rI   ro  é   )r4   r3   r|   rI   g      @r’  c                 ó   — || z  S r   r&   rP  s      r   r,   z<TestCurveFit.test_indeterminate_covariance.<locals>.<lambda><  s
   €  a¨¡c€ r   )r   r	   rá   Úwarnsr   r   ©r   r„  r…  s      r   Útest_indeterminate_covariancez*TestCurveFit.test_indeterminate_covariance7  s¸   € å”Ð+Ð+Ð+Ñ,Ô,ˆÝ”Ð-Ð-Ð-Ñ.Ô.ˆÝŒ\�/Ñ*Ô*ð 	9ð 	9ÝÐ)Ð)¨5°%Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   ÁA&Á&A*Á-A*c                 ó(  — t          j        dt           j        dg¦  «        }t          j        g d¢¦  «        }t          t          t
          d„ ||¦  «         t          t          t
          d„ ||¦  «         t          t          t
          d„ ||fi ddi¤Ž d S )	Nr4   r|   ©r4   r3   r|   c                 ó   — || z  |z   S r   r&   rP  s      r   r,   z0TestCurveFit.test_NaN_handling.<locals>.<lambda>F  ó   €  a¨¡c¨A¡g€ r   c                 ó   — || z  |z   S r   r&   rP  s      r   r,   z0TestCurveFit.test_NaN_handling.<locals>.<lambda>H  rš  r   c                 ó   — || z  |z   S r   r&   rP  s      r   r,   z0TestCurveFit.test_NaN_handling.<locals>.<lambda>J  s   € ¸Q¸q¹SÀ1¹W€ r   rF  T)r   r	   Únanrb   r„   r   r•  s      r   Útest_NaN_handlingzTestCurveFit.test_NaN_handling>  s­   € õ ”˜!�RœV Q˜Ñ(Ô(ˆÝ”˜˜˜Ñ#Ô#ˆå•j¥)Ø-Ð-¨u°eñ	=ô 	=ð 	=å•j¥)Ø-Ð-¨u°eñ	=ô 	=ð 	=õ 	•j¥)Ð-DÐ-DØ˜Uð	>ð 	>Ø'5°tÐ&<ð	>ð 	>ð 	>ð 	>ð 	>r   c                 ó  — | |||ddœ}d}t          t          |¬¦  «        5  t          di |¤dddœ¤Ž d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          di |¤d	d
i¤Ž d d d ¦  «         n# 1 swxY w Y   t          di |¤d	di¤Ž\  }}	||d<   ||d<   t          di |¤Ž\  }
}	t          ||
¦  «         d}t          t          |¬¦  «        5  t          di |¤d	di¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )NF)r+   r„  r…  r¼   rF  z;`nan_policy='propagate'` is not supported by this function.r†   Ú	propagateiÐ  )Ú
nan_policyrh  zThe input contains nanr¡  ÚraiseÚomitr„  r…  zTnan_policy must be one of \{(?:'raise'|'omit'|None)(?:, ?(?:'raise'|'omit'|None))*\}Úhir&   )rb   r„   r   r   )r+   Úxdata_with_nanÚxdata_without_nanÚydata_with_nanÚydata_without_nanr¼   ÚkwargsÚ	error_msgÚresult_with_nanÚ_Úresult_without_nans              r   Ú_check_nan_policyzTestCurveFit._check_nan_policyM  sE  € ð  >¸NØ"°Eð;ð ;ˆð)ˆ	å�:¨YÐ7Ñ7Ô7ð 	Eð 	EÝÐDÐD˜ÐD¨;¸tÐDÐDÐDÐDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eõ �:Ð-EÐFÑFÔFð 	4ð 	4ÝÐ3Ð3˜Ð3Ð3¨7Ð3Ð3Ð3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4õ 'ÐCÐC¨ÐCÐC¸FÐCÐCÐCÑˆ˜Ø+ˆˆw‰Ø+ˆˆw‰Ý )Ð 3Ð 3¨FÐ 3Ð 3ÑÐ˜AÝ˜Ð);Ñ<Ô<Ð<ð:ˆ	å�:¨YÐ7Ñ7Ô7ð 	1ð 	1ÝÐ0Ð0˜Ð0Ð0¨4Ð0Ð0Ð0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s3   ¡?¿AÁAÁ A=Á=BÂBÃC:Ã:C>ÄC>r¼   ru  c                 ó<  — d„ }t          j        ddt           j        ddt           j        g¦  «        }t          j        ddddt           j        dg¦  «        }t          j        g d¢¦  «        }t          j        g d	¢¦  «        }|                      ||||||¦  «         d S )
Nc                 ó   — || z  |z   S r   r&   rP  s      r   r+   z*TestCurveFit.test_nan_policy_1d.<locals>.fl  rt  r   r3   r|   rI   r4   ro  rp  )r3   r|   rI   r˜  ©r   r	   r�  r®  ©r   r¼   r+   r¥  r§  r¦  r¨  s          r   Útest_nan_policy_1dzTestCurveFit.test_nan_policy_1dj  s¯   € ð	ð 	ð 	õ œ 1 a­¬°°Aµr´vÐ">Ñ?Ô?ˆÝœ 1 a¨¨A­r¬v°qÐ"9Ñ:Ô:ˆÝœH Y Y YÑ/Ô/ÐÝœH Y Y YÑ/Ô/Ðà×Ò˜q .Ð2CØ-Ð/@À&ñ	Jô 	Jð 	Jð 	Jð 	Jr   c           
      ó–  — d„ }t          j        ddt           j        ddt           j        dgddt           j        t           j        dt           j        dgg¦  «        }t          j        ddddt           j        ddg¦  «        }t          j        g d	¢g d
¢g¦  «        }t          j        g d¢¦  «        }|                      ||||||¦  «         d S )Nc                 óH   — | dd d …f         }| dd d …f         }||z  |z   |z   S ©Nr   r4   r&   ©r    rð   rñ   rb  Úx2s        r   r+   z*TestCurveFit.test_nan_policy_2d.<locals>.fy  s6   € Ø�1�a�a�a�4”ˆBØ�1�a�a�a�4”ˆBØ�R‘4˜!‘8˜b‘=Ð r   r3   r|   rI   ro  rp  r4   r�   ©r3   r|   ro  ©r3   r|   rp  ©r4   r3   r�   r±  r²  s          r   Útest_nan_policy_2dzTestCurveFit.test_nan_policy_2dw  sà   € ð	!ð 	!ð 	!õ
 œ A q­"¬&°!°Q½¼ÀÐ#BØ$% q­"¬&µ"´&¸!½R¼VÀQÐ#Gð#Iñ Jô Jˆåœ 1 a¨¨A­r¬v°q¸"Ð"=Ñ>Ô>ˆÝœH i i i°°°Ð%;Ñ<Ô<ÐÝœH Z Z ZÑ0Ô0Ðà×Ò˜q .Ð2CØ-Ð/@À&ñ	Jô 	Jð 	Jð 	Jð 	Jr   r@   r3   r|   c           
      óÒ  — d„ }t          j        ddt           j        ddt           j        dgddt           j        t           j        dt           j        dggg¦  «        }|dk    r|                     ¦   «         n|}t          j        ddddt           j        ddg¦  «        }t          j        g d	¢g d
¢gg¦  «        }t          j        g d¢¦  «        }|                      ||||||¦  «         d S )Nc                 ó”   — | ddd d …f                               ¦   «         }| ddd d …f                               ¦   «         }||z  |z   |z   S )N.r   r4   )Úsqueezer·  s        r   r+   z,TestCurveFit.test_nan_policy_2_3d.<locals>.fŠ  sR   € Ø�3˜˜1˜1˜1�9”×%Ò%Ñ'Ô'ˆBØ�3˜˜1˜1˜1�9”×%Ò%Ñ'Ô'ˆBØ�R‘4˜!‘8˜b‘=Ð r   r3   r|   rI   ro  rp  r4   r�   r¹  rº  r»  )r   r	   r�  r¿  r®  )r   r@   r¼   r+   r¥  r§  r¦  r¨  s           r   Útest_nan_policy_2_3dz!TestCurveFit.test_nan_policy_2_3d‡  s  € ð	!ð 	!ð 	!õ
 œ Q¨­2¬6°1°a½¼ÀÐ$CØ$% q­"¬&µ"´&¸!½R¼VÀQÐ#Gð$Ið #Jñ Kô Kˆà56¸!²V°V˜×/Ò/Ñ1Ô1Ð1ÀˆÝœ 1 a¨¨A­r¬v°q¸"Ð"=Ñ>Ô>ˆÝœH y y y°)°)°)Ð&<Ð%=Ñ>Ô>ÐÝœH Z Z ZÑ0Ô0Ðà×Ò˜q .Ð2CØ-Ð/@À&ñ	Jô 	Jð 	Jð 	Jð 	Jr   c                 ó  — t          t          t          d„ g g ¦  «         t          t          t          d„ g g d¬¦  «         t          t          t          d„ dgg ¦  «         t          t          t          d„ dgg d¬¦  «         d S )	Nc                 ó   — || z  S r   r&   rD  s     r   r,   z0TestCurveFit.test_empty_inputs.<locals>.<lambda>›  ó
   € ¸!¸A¹#€ r   c                 ó   — || z  S r   r&   rD  s     r   r,   z0TestCurveFit.test_empty_inputs.<locals>.<lambda>œ  rÃ  r   )r4   r3   )Úboundsc                 ó   — || z  S r   r&   rD  s     r   r,   z0TestCurveFit.test_empty_inputs.<locals>.<lambda>ž  rÃ  r   r4   c                 ó   — || z  S r   r&   rD  s     r   r,   z0TestCurveFit.test_empty_inputs.<locals>.<lambda>Ÿ  rÃ  r   r3   ©rb   r„   r   rÍ   s    r   Útest_empty_inputszTestCurveFit.test_empty_inputs™  s”   € å•j¥)Ð-=Ð-=¸rÀ2ÑFÔFÐFÝ•j¥)Ð-=Ð-=¸rÀ2Ø#ð	%ñ 	%ô 	%ð 	%å•j¥)Ð-=Ð-=À¸sÀBÑGÔGÐGÝ•j¥)Ð-=Ð-=À¸sÀBØ#ð	%ñ 	%ô 	%ð 	%ð 	%ð 	%r   c                 óJ   — t          t          t          d„ ddgddg¦  «         d S )Nc                 ó   — | S r   r&   rx   s    r   r,   z8TestCurveFit.test_function_zero_params.<locals>.<lambda>¤  s   € °q€ r   r4   r3   r|   rI   rÈ  rÍ   s    r   Útest_function_zero_paramsz&TestCurveFit.test_function_zero_params¢  s(   € å•j¥)¨[¨[¸1¸a¸&À1ÀaÀ&ÑIÔIÐIÐIÐIr   c                 ó|   — t          d„ d dt          j        d¦  «        z  ¦  «        \  }}t          |dg¦  «         d S )Nc                 ó0   — |t          j        d¦  «        z  S r�   )r   Úarange)r¬  rð   s     r   r,   z*TestCurveFit.test_None_x.<locals>.<lambda>§  s   € ¨Aµ´	¸"±´Ñ,=€ r   r3   r�   rL   )r   r   rÏ  r   )r   rG  rH  s      r   Útest_None_xzTestCurveFit.test_None_x¦  sE   € ÝÐ=Ð=Ø# Q­¬°2©¬Ñ%6ñ8ô 8‰
ˆˆdå˜˜r˜dÑ#Ô#Ð#Ð#Ð#r   c                 óê   — d„ }t          j        ddd¦  «        } ||dd¦  «        }dD ]*}t          ||||¬¦  «        \  }}t          |ddg¦  «         Œ+t	          t
          t          |||d¬¦  «         d S )	Nc                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   r+   z,TestCurveFit.test_method_argument.<locals>.f¬  ó   € Ø•r”v˜q˜b ™d‘|”|Ñ#Ð#r   r   r4   é   rL   ©rv  rw  rÆ   NrÜ   Úunknown)r   rê   r   r   rb   r„   )r   r+   r„  r…  r¼   rG  rH  s          r   Útest_method_argumentz!TestCurveFit.test_method_argument«  sš   € ð	$ð 	$ð 	$õ ”˜A˜q "Ñ%Ô%ˆØ��%˜˜RÑ Ô ˆà3ð 	,ð 	,ˆFÝ" 1 e¨U¸6ÐBÑBÔB‰JˆD�$Ý˜D 2 r (Ñ+Ô+Ð+Ð+å•j¥)¨Q°°uÀYÐOÑOÔOÐOÐOÐOr   c                 ó:  — d„ }t          j        ddd¦  «        } ||dd¦  «        }dD ]q}t          ||||d¬¦  «        \  }}}}}	t          |ddg¦  «         d	|v sJ ‚d
|v sJ ‚|dk    s|€d|v sJ ‚d|v sJ ‚d|v sJ ‚t	          |t
          ¦  «        sJ ‚|	dv sJ ‚Œrd S )Nc                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   r+   z(TestCurveFit.test_full_output.<locals>.f¹  s   € Ø•r”v˜q˜b 1™f‘~”~Ñ%Ð%r   r   r4   rÔ  rL   rÕ  T)r¼   rP   rÌ   ÚfvecrÆ   ÚfjacÚipvtÚqtfr  )r   rê   r   r   Ú
isinstanceÚstr)
r   r+   r„  r…  r¼   rG  rH  r  rL  rV   s
             r   r  zTestCurveFit.test_full_output¸  s  € ð	&ð 	&ð 	&õ ”˜A˜q "Ñ%Ô%ˆØ��%˜˜RÑ Ô ˆà3ð 	'ð 	'ˆFÝ09Ø�5˜%¨¸Dð1Bñ 1Bô 1BÑ-ˆD�$˜ &¨#å˜D 2 r (Ñ+Ô+Ð+Ø˜XÐ%Ð%Ð%Ð%Ø˜XÐ%Ð%Ð%Ð%Ø˜Š~ˆ~  Ø Ð)Ð)Ð)Ð)Ø Ð)Ð)Ð)Ð)Ø Ð(Ð(Ð(Ð(Ý˜f¥cÑ*Ô*Ð*Ð*Ð*Ø˜,Ð&Ð&Ð&Ð&Ð&ð	'ð 	'r   c           	      óö  — d„ }t          j        ddd¦  «        } ||dd¦  «        }ddg}ddg}||f}t          ||¦  «        }d	D ]V}t          |||||¬
¦  «        \  }	}
t	          |	d         d¦  «         t          |||||¬
¦  «        \  }}t	          ||	¦  «         ŒWt          |||dddgdt           j        gf¬¦  «        \  }	}
t	          |	d         d¦  «         t          t          t          ||||d¬
¦  «         d S )Nc                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   r+   z#TestCurveFit.test_bounds.<locals>.fÍ  rÓ  r   r   r4   rÔ  rL   r(  r`   rA  )Nrv  rw  )rÅ  r¼   rv  rM   g333333ã?)r¼   rÅ  rÆ   )r   rê   r   r   r   r  rb   r„   )r   r+   r„  r…  ÚlbÚubrÅ  Úbounds_classr¼   rG  rH  Ú
popt_classÚ
pcov_classs                r   Útest_boundszTestCurveFit.test_boundsÌ  sb  € ð	$ð 	$ð 	$õ ”˜A˜q "Ñ%Ô%ˆØ��%˜˜RÑ Ô ˆð �!ˆWˆØ�2ˆYˆð �b�ˆÝ˜b "‘~”~ˆØ-ð 	.ð 	.ˆFÝ" 1 e¨U¸6Ø*0ð2ñ 2ô 2‰JˆD�$å˜D œG SÑ)Ô)Ð)å%.¨q°%¸Ø6BØ6<ð&>ñ &>ô &>Ñ"ˆJ˜
õ ˜J¨Ñ-Ô-Ð-Ð-õ ˜q %¨°uØ(*¨A w°µb´f°Ð&>ð@ñ @ô @‰
ˆˆdå˜˜Qœ Ñ%Ô%Ð%õ 	•j¥)¨Q°°uÀVØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r   c           	      óŠ  — d„ }t          j        dt           j        z  dt           j        z  d¦  «        }t          j        |¦  «        }dt           j        z  dt           j        z  f}dD ]Z}t	          |||dt           j        z  ¬	¦  «        \  }}t	          |||dt           j        z  ||¬
¦  «        \  }}t          ||¦  «         Œ[d S )Nc                 ó0   — t          j        | |z   ¦  «        S r   )r   ÚsinrD  s     r   r+   z&TestCurveFit.test_bounds_p0.<locals>.fñ  s   € Ý”6˜!˜a™%‘=”=Ð r   éþÿÿÿr3   rç   éýÿÿÿr|   ©rv  rw  gÍÌÌÌÌÌ @r}  ©r  rÅ  r¼   )r   rê   Úpirê  r   r   )	r   r+   r„  r…  rÅ  r¼   Úpopt_1r¬  Úpopt_2s	            r   Útest_bounds_p0zTestCurveFit.test_bounds_p0î  sÑ   € ð	!ð 	!ð 	!õ ”˜B�rœu™H a­¬¡g¨rÑ2Ô2ˆÝ”�u‘”ˆØ•r”u‘*˜a¥"¤%™iÐ(ˆØ'ð 	,ð 	,ˆFÝ! ! U¨E°c½"¼%±iÐ@Ñ@Ô@‰IˆF�AÝ! ! U¨E°c½"¼%±iØ)/¸ð@ñ @ô @‰IˆF�Aõ ˜F FÑ+Ô+Ð+Ð+ð	,ð 	,r   c           	      óÎ  — d„ }d„ }t          j        ddd¦  «        } ||dd¦  «        }dD ]0}dD ]+}t          |||||¬	¦  «        \  }}t          |d
d
g¦  «         Œ,Œ1dD ]+}t          |||||¬¦  «        \  }}t          |d
d
g¦  «         Œ,d|d<   t          j        |j        d         ¦  «        }	d|	d<   dD ].}t          ||||	||¬¦  «        \  }}t          |d
d
gd¬¦  «         Œ/d S )Nc                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   r+   z TestCurveFit.test_jac.<locals>.f  rÓ  r   c                 óv   — t          j        | | z  ¦  «        }t          j        || | z  |z  f¦  «        j        S r   ©r   r&  rù   rû   ©r    rð   rñ   Úes       r   rB   z"TestCurveFit.test_jac.<locals>.jac  ó6   € Ý”˜�r˜!‘t‘”ˆAÝ”9˜a !  a¡¨!¡˜_Ñ-Ô-Ô/Ð/r   r   r4   rÔ  rL   rí  )z2-pointz3-pointÚcs)rB   r¼   r3   ru  ©r¼   rB   r˜   ro  éÈ   )re  r¼   rB   r�   ri  )r   rê   r   r   r   r   )
r   r+   rB   r„  r…  r¼   ÚschemerG  rH  re  s
             r   Útest_jaczTestCurveFit.test_jacÿ  sp  € ð	$ð 	$ð 	$ð	0ð 	0ð 	0õ ”˜A˜q "Ñ%Ô%ˆØ��%˜˜RÑ Ô ˆð (ð 	.ð 	.ˆFØ6ð .ð .�Ý& q¨%°¸FØ.4ð6ñ 6ô 6‘
��då  q¨! fÑ-Ô-Ð-Ð-ð.ð .ð 	*ð 	*ˆFÝ" 1 e¨U¸6ÀsÐKÑKÔK‰JˆD�$Ý˜D 1 a &Ñ)Ô)Ð)Ð)ð ˆˆa‰Ý”˜œ AœÑ'Ô'ˆØˆˆa‰Ø-ð 	5ð 	5ˆFÝ" 1 e¨U¸%ÈØ'*ð,ñ ,ô ,‰JˆD�$õ ˜D 1 a &¨tÐ4Ñ4Ô4Ð4Ð4ð	5ð 	5r   c                 óâ   — t          j        dd¦  «        }d|z  }t          d„ ||dd¬¦  «        \  }}t          d„ ||dd¬	¦  «        \  }}t          |dd
¬¦  «         t          |dd
¬¦  «         d S )Nr   r�   r3   c                 ó   — || z  S r   r&   ©r    r    s     r   r,   z5TestCurveFit.test_maxfev_and_bounds.<locals>.<lambda>(  ó
   € ¨¨1©€ r   )r   r|   r˜   )rÅ  rh  c                 ó   — || z  S r   r&   r  s     r   r,   z5TestCurveFit.test_maxfev_and_bounds.<locals>.<lambda>)  r  r   )rÅ  Úmax_nfevç›+¡†›„=rž   )r   rÏ  r   r   )r   r    rÒ   r‰  r¬  rJ  s         r   Útest_maxfev_and_boundsz#TestCurveFit.test_maxfev_and_bounds#  sŠ   € õ ŒI�a˜ÑÔˆØˆa‰CˆÝ˜_˜_¨a°¸6È#ÐNÑNÔN‰ˆˆqÝ˜_˜_¨a°¸6ÈCÐPÑPÔP‰ˆˆqå˜˜q uÐ-Ñ-Ô-Ð-Ý˜˜q uÐ-Ñ-Ô-Ð-Ð-Ð-r   Ú	sigma_dim)r   r4   r3   c                 ó²  — d„ }t           j                             d¦  «        }d}t          j        dd|¦  «        } ||dd¦  «        }|dk    rd	}||                     d||¦  «        z  }n…|dk    r |d	z  }||                     d||¦  «        z  }n_|d
k    rO|                     dd
||f¦  «        }||j        z  }||                     t          j        |¦  «        |¦  «        z  }n
J d¦   «         ‚ddg}	|                     |d¬¦  «        }
|                     |d¬¦  «        }t           j	        ||
<   t           j	        ||<   t          ||||	|d¬¦  «        \  }}t          j        t          j        |
|f¦  «        ¦  «        }t          j        ||d¬¦  «        }t          j        ||d¬¦  «        }t          j        |¦  «        }|j        dk    rt          j        ||¦  «        }n9|j        d
k    r.t          j        ||d¬¦  «        }t          j        ||d¬¦  «        }t          ||||	|¬¦  «        \  }}t!          ||d¬¦  «         t!          ||d¬¦  «         d S )Nc                 ó6   — |t          j        || z  ¦  «        z  S r   r%  rP  s      r   Úexponentialz7TestCurveFit.test_curvefit_omitnan.<locals>.exponential0  s   € Ø•r”v˜a !™e‘}”}Ñ$Ð$r   l   lt*GÊ7 r˜   r4   r�   çš™™™™™É?rJ   r   gš™™™™™©?r3   Fz1The sigma must be a scalar, 1D array or 2D array.gš™™™™™¹?r(  ro  ©Úsizer£  )r  re  r¡  )Úaxisr|  r  rž   )r   rì   rí   rê   Únormalrû   Úmultivariate_normalÚ
zeros_likeÚintegersr�  r   ÚuniqueÚconcatenateÚdeleteÚasarrayÚndimr   )r   r  r
  ró   ÚNr    rÒ   re  rð   r  Úi_xÚi_yÚres_optÚres_covÚi_deleteÚref_optÚref_covs                    r   Útest_curvefit_omitnanz"TestCurveFit.test_curvefit_omitnan.  s{  € ð	%ð 	%ð 	%õ Œi×#Ò# OÑ4Ô4ˆØˆÝŒK˜˜2˜qÑ!Ô!ˆØˆK˜˜3 Ñ$Ô$ˆà˜ŠNˆNØˆEØ�—’˜A˜u aÑ(Ô(Ñ(ˆAˆAà˜1ŠnˆnØ˜‘HˆEØ�—’˜A˜u aÑ(Ô(Ñ(ˆAˆAà˜1Šnˆnà—
’
˜1˜a ! Q Ñ(Ô(ˆAØ˜œ‘GˆEØ�×(Ò(­¬°qÑ)9Ô)9¸5ÑAÔAÑAˆAˆAàMÐMÑMÔM�5à�3ˆZˆð �lŠl˜1 1ˆlÑ%Ô%ˆØ�lŠl˜1 1ˆlÑ%Ô%ˆõ ”ˆˆ#‰Ý”ˆˆ#‰Ý$ [°!°Q¸2ÀUØ06ð8ñ 8ô 8Ñˆ�õ
 ”9�Rœ^¨S°#¨JÑ7Ô7Ñ8Ô8ˆÝŒI�a˜¨Ð*Ñ*Ô*ˆÝŒI�a˜¨Ð*Ñ*Ô*ˆå”
˜5Ñ!Ô!ˆØŒ:˜Š?ˆ?Ý”I˜e XÑ.Ô.ˆEˆEØŒZ˜1Š_ˆ_Ý”I˜e X°AÐ6Ñ6Ô6ˆEÝ”I˜e X°AÐ6Ñ6Ô6ˆEÝ$ [°!°Q¸2ÀUÐKÑKÔKÑˆ�å˜ ¨uÐ5Ñ5Ô5Ð5Ý˜ ¨uÐ5Ñ5Ô5Ð5Ð5Ð5r   c           
      ó(  — d„ }d„ }t           j                             d¦  «        }t          j        ddd¦  «        } ||dd¦  «        }|d	|                     t          |¦  «        ¬
¦  «        z  z   }t          j        t          |¦  «        ¦  «        d	z   }t          j        |dz  ¦  «        }||fdfD ]^\  }	}
dD ]V}t          |||||	|¬¦  «        \  }}t          |||||
|¬¦  «        \  }}t          ||d¬¦  «         t          ||d¬¦  «         ŒWŒ_d S )Nc                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   re   z9TestCurveFit.test_curvefit_simplecovariance.<locals>.funcg  rÓ  r   c                 óv   — t          j        | | z  ¦  «        }t          j        || | z  |z  f¦  «        j        S r   rö  r÷  s       r   rB   z8TestCurveFit.test_curvefit_simplecovariance.<locals>.jacj  rù  r   ré   r   rI   é2   ç      @çÍÌÌÌÌÌô?r  r  r3   ©NN©FT©re  rB   rx  r  rž   )
r   rì   rí   rê   rî   r-   Úzerosr>   r   r   )r   re   rB   ró   r„  rÒ   r…  re  ÚcovarÚjac1Újac2rx  r‰  rŠ  rJ  rK  s                   r   Útest_curvefit_simplecovariancez+TestCurveFit.test_curvefit_simplecovariancee  si  € ð	$ð 	$ð 	$ð	0ð 	0ð 	0õ Œi×#Ò# CÑ(Ô(ˆÝ”˜A˜q "Ñ%Ô%ˆØˆD�˜˜SÑ!Ô!ˆØ�C˜#×-Ò-µ3°u±:´:Ð-Ñ>Ô>Ñ>Ñ>ˆå”�˜U™œÑ$Ô$ sÑ*ˆÝ”˜˜q™Ñ!Ô!ˆà ˜: |Ð4ð 	:ð 	:‰JˆD�$Ø"/ð :ð :�Ý(¨¨u°eÀ5Ø °ð Añ  Aô  A‘��uå(¨¨u°eÀ5Ø °ð Añ  Aô  A‘��uõ    u°5Ð9Ñ9Ô9Ð9Ý  u°5Ð9Ñ9Ô9Ð9Ð9ð:ð	:ð 	:r   c           
      ó   — d„ }d„ }d„ }d„ }t           j                             d¦  «        }t          j        dd¦  «        } ||dd	¦  «        }|d
|                     t          |¦  «        ¬¦  «        z  z   }t          j        t          |¦  «        ¦  «        d
z   }	t          j        |	dz  ¦  «        }
t          j        d	t          j	        d¦  «        z  dt          j	        d¦  «        z  dgd	t          j	        d¦  «        z  d	t          j	        d¦  «        z  dgg d¢g¦  «        }| 
                    |¦  «        }| 
                    |
¦  «         
                    |j        ¦  «        }||fdfD ]`\  }}dD ]X}t          ||||	||¬¦  «        \  }}t          ||||||¬¦  «        \  }}t          ||dd¬¦  «         t          ||dd¬¦  «         ŒYŒad S )Nc                 óD  — t          j        dt          j        d¦  «        z  dt          j        d¦  «        z  dgdt          j        d¦  «        z  dt          j        d¦  «        z  dgg d¢g¦  «        }|                     |t          j        | | z  ¦  «        z  ¦  «        S ©Nr(  r3   ç      ð¿r   ©r   r   r(  )r   r	   r~  Údotr&  )r    rð   rñ   Úrotns       r   Úfuncpz4TestCurveFit.test_curvefit_covariance.<locals>.funcp‚  s‰   € Ý”8˜b¥¤¨¡¤™m¨Sµ´¸±´©^¸QÐ?Ø ¥¤¨¡¤™m¨Rµ´¸±
´
©]¸AÐ>Ø(˜[˜[ð*ñ +ô +ˆDð —8’8˜A¥¤¨ r¨!¡t¡¤Ñ,Ñ-Ô-Ð-r   c                 ó‚  — t          j        dt          j        d¦  «        z  dt          j        d¦  «        z  dgdt          j        d¦  «        z  dt          j        d¦  «        z  dgg d¢g¦  «        }t          j        | | z  ¦  «        }|                     t          j        || | z  |z  f¦  «        j        ¦  «        S r1  )r   r	   r~  r&  r4  rù   rû   )r    rð   rñ   r5  rø  s        r   Újacpz3TestCurveFit.test_curvefit_covariance.<locals>.jacpˆ  s¤   € Ý”8˜b¥¤¨¡¤™m¨Sµ´¸±´©^¸QÐ?Ø ¥¤¨¡¤™m¨Rµ´¸±
´
©]¸AÐ>Ø(˜[˜[ð*ñ +ô +ˆDõ ”˜�r˜!‘t‘”ˆAØ—8’8�BœI q¨1¨"¨q©&°1©* oÑ6Ô6Ô8Ñ9Ô9Ð9r   c                 ó8   — |t          j        | | z  ¦  «        z  S r   r%  rP  s      r   re   z3TestCurveFit.test_curvefit_covariance.<locals>.func�  rÓ  r   c                 óv   — t          j        | | z  ¦  «        }t          j        || | z  |z  f¦  «        j        S r   rö  r÷  s       r   rB   z2TestCurveFit.test_curvefit_covariance.<locals>.jac’  rù  r   iÒ  r4   rI   r%  r(  r  r  r3   r2  r   r3  r'  r(  r)  g³zê]Ê‚>r  )rj  rŸ   )r   rì   rí   rÏ  rî   r-   r*  r>   r	   r~  r4  rû   r   r   )r   r6  r8  re   rB   ró   r„  rÒ   r…  re  r+  r5  ÚydatapÚcovarpr,  r-  rx  r‰  rŠ  rJ  rK  s                        r   Útest_curvefit_covariancez%TestCurveFit.test_curvefit_covariance€  s   € ð	.ð 	.ð 	.ð	:ð 	:ð 	:ð	$ð 	$ð 	$ð	0ð 	0ð 	0õ Œi×#Ò# DÑ)Ô)ˆÝ”	˜!˜Q‘”ˆØˆD�˜˜SÑ!Ô!ˆØ�C˜#×-Ò-µ3°u±:´:Ð-Ñ>Ô>Ñ>Ñ>ˆÝ”�˜U™œÑ$Ô$ sÑ*ˆÝ”˜˜q™Ñ!Ô!ˆõ Œx˜"�RœW Q™ZœZ™-¨­R¬W°Q©Z¬Z©¸Ð;Ø�RœW Q™ZœZ™-¨­B¬G°A©J¬J©¸Ð:Ø$˜˜ð&ñ 'ô 'ˆð —’˜%‘”ˆØ—’˜%‘”×$Ò$ T¤VÑ,Ô,ˆà ˜;¨Ð5ð 	Gð 	G‰JˆD�$Ø"/ð Gð G�Ý(¨¨u°eÀ5Ø °ð Añ  Aô  A‘��uå(¨°°vÀVØ °ð Añ  Aô  A‘��uõ    u°6ÀÐFÑFÔFÐFÝ  u°6ÀÐFÑFÔFÐFÐFðGð	Gð 	Gr   rx  FTc           	      óÞ   — d„ }| j         | j        }}t          |||d|¬¦  «        \  }}t          |||t          j        |d¦  «        |¬¦  «        \  }}t          j        ||k    ¦  «        sJ ‚d S )Nc                 ó   — || z  |z   S r   r&   rP  s      r   re   z5TestCurveFit.test_curvefit_scalar_sigma.<locals>.func´  ó   € Ø�q‘5˜1‘9Ðr   r3   )re  rx  )r    rÒ   r   r   Ú	full_liker°   )r   rx  re   r    rÒ   r¬  rŠ  rK  s           r   Útest_curvefit_scalar_sigmaz'TestCurveFit.test_curvefit_scalar_sigma²  s�   € ð	ð 	ð 	ð Œv�t”vˆ1ˆÝ˜T 1 a¨qÀÐPÑPÔP‰ˆˆ5åØ�a˜¥"¤,¨q°!Ñ"4Ô"4À^ð
ñ 
ô 
‰ˆˆ5õ Œv�e˜u’nÑ%Ô%Ð%Ð%Ð%Ð%Ð%r   c           	      óv  — t          j        dd¦  «        }d|z  dz   dt          j        |¦  «        z  z   }d„ }dD ]ý}t           j        t           j        fD ]â}t           j        t           j        fD ],}|                     |¦  «        }|                     |¦  «        }Œ-t          j        ¦   «         5  t          j        dt          ¦  «         t          ||||¬	¦  «        \  }}t          j        |¦  «                             ¦   «         sJ ‚t          j        |d
¦  «        rJ ‚	 d d d ¦  «         n# 1 swxY w Y   ŒãŒþd S )Nrì  ro  r`   rA  rJ   c                 ó   — || z  |z   S r   r&   rP  s      r   re   z&TestCurveFit.test_dtypes.<locals>.funcÄ  rt  r   ru  ÚerrorrÜ   r4   )r   rÏ  rê  rœ   r
   Úastyper�  r‚  Úsimplefilterr   r   Úisfiniter°   Úallclose)	r   r    rÒ   re   r¼   ÚdtxÚdtyr    Úcovs	            r   Útest_dtypeszTestCurveFit.test_dtypes¿  s  € åŒI�b˜!ÑÔˆØ�‰E�C‰K˜#�bœf Q™iœi™-Ñ'ˆð	ð 	ð 	ð .ð 	1ð 	1ˆFÝœ
¥B¤JÐ/ð 
1ð 
1�ÝœJ­¬
Ð3ð &ð &�CØŸš ™œ�AØŸš ™œ�A�AåÔ,Ñ.Ô.ð 1ð 1ÝÔ)¨'µ?ÑCÔCÐCÝ& t¨Q°¸&ÐAÑAÔA‘F�A�såœ; sÑ+Ô+×/Ò/Ñ1Ô1Ð1Ð1Ð1Ý!œ{¨1¨aÑ0Ô0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1øð
1ð	1ð 	1s   Â/A0D,Ä,D0Ä3D0c                 ó®  — d„ }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }g d¢}t          j        g d¢¦  «        } ||g|¢R Ž }t          ||||||f¬¦  «        \  }}	|                     t           j        ¦  «        } ||g|¢R Ž }t          ||||||f¬¦  «        \  }
}	t          |
|d¬	¦  «         d S )
Nc                 ó†   — ||z   dz  }||z
  dz  }||| |z
  z  z   |t          j        | |z
  dz  |dz  dz  z   ¦  «        z  z   S )Nr3   rI   )r   r~  )r    Ús_1Ús_2Úo_xÚo_yrÐ   Úb_2Úb_1s           r   Ú	hyperbolaz,TestCurveFit.test_dtypes2.<locals>.hyperbola×  sX   € Ø˜‘9 ‘/ˆCØ˜‘9 ‘/ˆCØ˜˜a ™e™Ñ$ s­2¬7°A°c±E¸A±:ÀÀ1ÁÀQÁÑ3FÑ+GÔ+GÑ'GÑGÐGr   )g      ÀrM   ç       Àg      $ÀrM   )rM   rA  rA  rM   g      $@)g«ªªªªªê¿gUUUUUUõ?r(  g      ÀrJ   )rë  gš™™™™™Ù?éÿÿÿÿéûÿÿÿr@  )iàÿÿÿiðÿÿÿiøÿÿÿrI   rI   rq  é   é    )r+   r„  r…  r  rÅ  gñhãˆµøô>rž   )r   r	   r   rF  rœ   r   )r   rV  Úmin_fitÚmax_fitrk  Úparamsr„  r…  Úpopt_64r¬  Úpopt_32s              r   Útest_dtypes2zTestCurveFit.test_dtypes2Ô  s+  € ð	Hð 	Hð 	Hõ
 ”(Ð8Ð8Ð8Ñ9Ô9ˆÝ”(Ð5Ð5Ð5Ñ6Ô6ˆÝ”Ð:Ð:Ð:Ñ;Ô;ˆà&Ð&Ð&ˆÝ”Ð8Ð8Ð8Ñ9Ô9ˆØ�	˜%Ð) &Ð)Ð)Ð)ˆõ  °%¸uÈØ'.°Ð&8ð:ñ :ô :‰
ˆ�ð —’�RœZÑ(Ô(ˆØ�	˜%Ð) &Ð)Ð)Ð)ˆå °%¸uÈØ'.°Ð&8ð:ñ :ô :‰
ˆ�õ 	˜ ¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   c                 ó‚  ‡	— t          j        d¦  «        }t           j                             d¦  «        }d|dz  z  d|z  z   |                     t	          |¦  «        ¬¦  «        z   Š	ˆ	fd„}dD ]P}t          ||t          j        |¦  «        |¬	¦  «        \  }}t          ||d
|¬	¦  «        \  }}t          ||¦  «         ŒQd S )Nr�   ré   gÍÌÌÌÌÌ@r3   g      @r  c                 ó&   •— || dz  z  || z  z   ‰z
  S rõ   r&   )r    rð   rñ   Útargets      €r   Úfit_funcz/TestCurveFit.test_broadcast_y.<locals>.fit_funcô  s   ø€ Ø�q˜A‘v‘:  A¡Ñ%¨Ñ.Ð.r   ru  )r„  r…  r¼   r   )r   rÏ  rì   rí   r-   r   r  r   )
r   r„  ró   re  r¼   Úpopt0Úpcov0r‰  rŠ  rd  s
            @r   Útest_broadcast_yzTestCurveFit.test_broadcast_yð  sî   ø€ Ý”	˜"‘”ˆÝŒi×#Ò# CÑ(Ô(ˆØ�u ‘zÑ! C¨%¡KÑ/°#·*²*Å#ÀeÁ*Ä*°*Ñ2MÔ2MÑMˆð	/ð 	/ð 	/ð 	/ð 	/à-ð 		*ð 		*ˆFÝ$ XØ+0Ý+-¬=¸Ñ+?Ô+?Ø,2ð4ñ 4ô 4‰LˆE�5õ % XØ+0Ø+,Ø,2ð4ñ 4ô 4‰LˆE�5õ ˜E 5Ñ)Ô)Ð)Ð)ð		*ð 		*r   c                 ó˜   — d„ }t          t          ¦  «        5  t          |g d¢g d¢dgd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — || z  |z   S r   r&   rP  s      r   re   z.TestCurveFit.test_args_in_kwargs.<locals>.func  r@  r   r  ©ro  r�  é   é   r4   rj   )r„  r…  r  rO   rÈ  rŠ   s     r   Útest_args_in_kwargsz TestCurveFit.test_args_in_kwargs  s´   € ð	ð 	ð 	õ �:Ñ&Ô&ð 	!ð 	!Ý�dØ(˜L˜LØ*˜N˜NØ˜Øð	!ñ !ô !ð !ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ˜?¿AÁAc                 ó–   — d„ }t          t          d¬¦  «        5  t          |g d¢g d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óJ   — |t          j        | | z  ¦  «        z  |z   |z   |z   S r   r%  ©r    rð   rñ   rÐ   Údrø  s         r   re   z<TestCurveFit.test_data_point_number_validation.<locals>.func  s*   € Ø•r”v˜q˜b 1™f‘~”~Ñ%¨Ñ)¨AÑ-°Ñ1Ð1r   zThe number of func parameters=r†   r  rk  )r„  r…  )rb   rc   r   rŠ   s     r   Ú!test_data_point_number_validationz.TestCurveFit.test_data_point_number_validation  s²   € ð	2ð 	2ð 	2õ �9Ð,LÐMÑMÔMð 	,ð 	,Ý�dØ(˜L˜LØ*˜N˜Nð,ñ ,ô ,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   š>¾AÁAzignore::RuntimeWarningc                 óî  — d„ }t           j                             d¦  «        }d}t          j        |¦  «        }t          j        dd|¦  «        |                     |¦  «        z   }t          j        |||d¬¦  «        \  }}t          j        t          j        |¦  «        dk    ¦  «        sJ ‚t          j
        |¦  «        d         }t          j        |d	k    ¦  «        sJ ‚t          ||j        ¦  «         d S )
Nc                 ó~   — |t          j        | dz   |z   ¦  «        z  |t          j        | dz   |z   ¦  «        z  z   |z   S ©Nr4   ©r   Úlogrq  s         r   r+   z#TestCurveFit.test_gh4555.<locals>.f  s@   € Ø•R”V˜A ™E A™IÑ&Ô&Ñ&¨­2¬6°!°a±%¸!±)Ñ+<Ô+<Ñ)<Ñ<¸qÑ@Ð@r   ì   MI9V$O-r˜   r3   rp  i † rg  r   g{®Gáz„¿)r   rì   rí   rÏ  rê   r   r   r°   r>   r   Úeighr   rû   )	r   r+   ró   r@   r    rÒ   r    rL  Úeigss	            r   Útest_gh4555zTestCurveFit.test_gh4555  sæ   € ð	Að 	Að 	Aõ Œi×#Ò#Ð$6Ñ7Ô7ˆØˆÝŒI�a‰LŒLˆÝŒK˜˜1˜aÑ Ô  3§:¢:¨a¡=¤=Ñ0ˆÝÔ# A q¨!°FÐ;Ñ;Ô;‰ˆˆ3ÝŒv•b”g˜c‘l”l QÒ&Ñ'Ô'Ð'Ð'Ð'ÝŒ{˜3ÑÔ Ô"ˆåŒv�d˜U’lÑ#Ô#Ð#Ð#Ð#Ý˜˜SœUÑ#Ô#Ð#Ð#Ð#r   c                 ó8  — t           j                             d¦  «        }d„ }t          j        ddd¦  «        } ||ddd¦  «        }d	|                     |j        ¬
¦  «        z  }||z   }t          |||¦  «        \  }}g d¢g d¢g d¢g}	t          ||	d¦  «         d S )Nry  c                 ó>   — |t          j        | | z  ¦  «        z  |z   S r   r%  )r    rð   rñ   rÐ   s       r   re   z'TestCurveFit.test_gh4555b.<locals>.func0  s    € Ø•r”v˜q˜b 1™f‘~”~Ñ%¨Ñ)Ð)r   r   rI   r$  r%  r&  rJ   r  r  )gƒt¢^G�?çd£*.æX|?ç�ÓTû}H¿)r  g×1”©xÿ”?çuô`v?)r€  r�  gšonÁ2Íf?gH¯¼šò×Š>)r   rì   rí   rê   r  r  r   r   )
r   ró   re   r„  rÒ   Úy_noiser…  r¬  rI  Úrefs
             r   Útest_gh4555bzTestCurveFit.test_gh4555b+  sÈ   € õ Œi×#Ò#Ð$6Ñ7Ô7ˆð	*ð 	*ð 	*õ ”˜A˜q "Ñ%Ô%ˆØˆD�˜˜S #Ñ&Ô&ˆØ˜Ÿ
š
¨¬
˜
Ñ3Ô3Ñ3ˆØ�G‘ˆÝ˜4 ¨Ñ.Ô.‰ˆˆ3àMÐMÐMØMÐMÐMØMÐMÐMðOˆõ 	˜˜S $Ñ'Ô'Ð'Ð'Ð'r   c                 ó>  ‡‡— t           j                             d¦  «        }t          j        ddd¦  «        }d|z  dz   |                     d¬¦  «        dz  z   }ˆfd	„Šˆfd
„Šd ‰_        d ‰_        t          j        ddg¦  «        }t          ‰|||d‰¬¦  «         d S )Nl   ¾FÂjGbð r   r|   ée   r3   r4   r  rJ   c                 óx   •— t          j        ‰j        |k    ¦  «        rJ ‚|‰_        | |d         z  |d         z   S r¶  )r   r°   Úlast_p)r    r    Úlines     €r   r‰  z'TestCurveFit.test_gh13670.<locals>.lineH  s=   ø€ Ý”v˜dœk¨QÒ.Ñ/Ô/Ð/Ð/Ð/ØˆDŒKØ�q˜”t‘8˜a œd‘?Ð"r   c                 óª   •— t          j        ‰j        |k    ¦  «        rJ ‚|‰_        t          j        | t          j        | ¦  «        g¦  «        j        S r   )r   r°   rˆ  r	   rú   rû   )r    r    rB   s     €r   rB   z&TestCurveFit.test_gh13670.<locals>.jacM  sF   ø€ Ý”v˜cœj¨AšoÑ.Ô.Ð.Ð.Ð.ØˆCŒJÝ”8˜Q¥¤¨Q¡¤Ð0Ñ1Ô1Ô3Ð3r   r(  g      @rÆ   rû  )r   rì   rí   rê   r  rˆ  r	   r   )r   ró   r    rÒ   r  rB   r‰  s        @@r   Útest_gh13670zTestCurveFit.test_gh13670?  sÊ   øø€ õ
 Œi×#Ò#Ð$7Ñ8Ô8ˆÝŒK˜˜1˜cÑ"Ô"ˆØ�‰E�A‰I˜Ÿ
š
¨˜
Ñ,Ô,¨sÑ2Ñ2ˆð	#ð 	#ð 	#ð 	#ð 	#ð
	4ð 	4ð 	4ð 	4ð 	4ð
 ˆŒØˆŒ
ÝŒX�s˜C�jÑ!Ô!ˆÝ�$˜˜1˜b¨°3Ð7Ñ7Ô7Ð7Ð7Ð7r   rv  rw  c           	      ó¸   — d„ }d}t          j        t          |¬¦  «        5  t          || j        | j        dgd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — | |z  S r   r&   rD  s     r   re   z9TestCurveFit.test_gh20155_error_mentions_x0.<locals>.func[  rE  r   z+Initial guess is outside of provided boundsr†   r4   )r™   ié  rî  )rá   r   r„   r   r    rÒ   )r   r¼   re   Úmessages       r   Útest_gh20155_error_mentions_x0z+TestCurveFit.test_gh20155_error_mentions_x0W  s¹   € ð	ð 	ð 	à?ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	%ð 	%Ý�d˜DœF D¤F°¨s¸<Ø#ð%ñ %ô %ð %ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ¡!AÁAÁAN)+r"   r#   r$   rÎ   rM  rV  r]  rm  r‹  r�  r–  rž  Ústaticmethodr®  rá   râ   rã   r³  r¼  rÀ  rÉ  rÌ  rÐ  r×  r  rç  rò  rþ  r  r   r.  r=  rB  rM  ra  rh  rn  rs  rƒ  r|  r„  r‹  r�  r&   r   r   r>  r>  º  sf  € € € € € ð-ð -ð -ð/ð /ð /ð -ð -ð -ð-ð -ð -ð /ð /ð /ð&01ð 01ð 01ðdJð Jð Jð9ð 9ð 9ð>ð >ð >ð ð1ð 1ñ „\ð1ð8 „[×Ò˜XÐ'>Ð'>Ð'>Ñ?Ô?ð
Jð 
Jñ @Ô?ð
Jð „[×Ò˜XÐ'>Ð'>Ð'>Ñ?Ô?ðJð Jñ @Ô?ðJð „[×Ò˜S 1 a &Ñ)Ô)Ø„[×Ò˜XÐ'>Ð'>Ð'>Ñ?Ô?ðJð Jñ @Ô?ñ *Ô)ðJð %ð %ð %ðJð Jð Jð$ð $ð $ð
Pð Pð Pð'ð 'ð 'ð( #ð  #ð  #ðD,ð ,ð ,ð""5ð "5ð "5ðH	.ð 	.ð 	.ð „[×Ò˜[¨)¨)¨)Ñ4Ô4ð46ð 46ñ 5Ô4ð46ðl:ð :ð :ð60Gð 0Gð 0Gðd „[×ÒÐ-°°t¨}Ñ=Ô=ð
&ð 
&ñ >Ô=ð
&ð1ð 1ð 1ð*5ð 5ð 5ð8*ð *ð *ð"!ð !ð !ð,ð ,ð ,ð „[×ÒÐ 8Ñ9Ô9ð$ð $ñ :Ô9ð$ð&(ð (ð (ð(8ð 8ð 8ð0 „[×Ò˜X¨¨xÐ'8Ñ9Ô9ð%ð %ñ :Ô9ð%ð %ð %r   r>  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestFixedPointc                 óP   — d„ }d}t          ||¦  «        }t          |d¦  «         d S )Nc                 ó   — d| z  S ©NrL   r&   rx   s    r   re   z0TestFixedPoint.test_scalar_trivial.<locals>.funcg  ó   € Ø�q‘5ˆLr   r(  rM   ©r   r   ©r   re   rf   r    s       r   Útest_scalar_trivialz"TestFixedPoint.test_scalar_triviale  s;   € ð	ð 	ð 	àˆÝ˜˜bÑ!Ô!ˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 óP   — d„ }d}t          ||¦  «        }t          |d¦  «         d S )Nc                 ó   — | dz  S rõ   r&   rx   s    r   re   z/TestFixedPoint.test_scalar_basic1.<locals>.funco  rE  r   çÍÌÌÌÌÌð?r(  r—  r˜  s       r   Útest_scalar_basic1z!TestFixedPoint.test_scalar_basic1m  s;   € ð	ð 	ð 	àˆÝ˜˜bÑ!Ô!ˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 óP   — d„ }d}t          ||¦  «        }t          |d¦  «         d S )Nc                 ó   — | dz  S ©NrJ   r&   rx   s    r   re   z/TestFixedPoint.test_scalar_basic2.<locals>.funcw  s   € Ø�c‘6ˆMr   rœ  r(  r—  r˜  s       r   Útest_scalar_basic2z!TestFixedPoint.test_scalar_basic2u  s;   € ð	ð 	ð 	àˆÝ˜˜bÑ!Ô!ˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 ó²   — d„ }ddg}t          j        d¬¦  «        5  t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |ddg¦  «         d S )Nc                 ó   — d| z  S r•  r&   rx   s    r   re   z/TestFixedPoint.test_array_trivial.<locals>.func~  r–  r   g333333Ó?g333333Ã?r{  ©r°   rM   )r   Úerrstater   r   r˜  s       r   Útest_array_trivialz!TestFixedPoint.test_array_trivial}  s«   € ð	ð 	ð 	à�4ˆ[ˆÝŒ[˜XÐ&Ñ&Ô&ð 	&ð 	&Ý˜D "Ñ%Ô%ˆAð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å˜A  S˜zÑ*Ô*Ð*Ð*Ð*s   �:º>Á>c                 óÜ   — d„ }t          g d¢¦  «        }g d¢}t          j        d¬¦  «        5  t          |||f¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |d|z  ¦  «         d S )Nc                 ó   — || dz  z  S rõ   r&   ©r    rÐ   s     r   re   z.TestFixedPoint.test_array_basic1.<locals>.func‡  s   € Ø�q˜!‘t‘8ˆOr   ©g      è?r(  g      ô?)çš™™™™™ñ?gffffffò?gÍÌÌÌÌÌì?r{  r¤  rk   r(  )r	   r   r¥  r   r   ©r   re   rÐ   rf   r    s        r   Útest_array_basic1z TestFixedPoint.test_array_basic1…  sÈ   € ð	ð 	ð 	åÐ#Ð#Ð#Ñ$Ô$ˆØÐÐˆÝŒ[˜XÐ&Ñ&Ô&ð 	1ð 	1Ý˜D "¨A¨4Ð0Ñ0Ô0ˆAð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1å˜A˜s 1™uÑ%Ô%Ð%Ð%Ð%s   ®AÁAÁAc                 ó‚   — d„ }t          g d¢¦  «        }g d¢}t          |||f¬¦  «        }t          ||dz  ¦  «         d S )Nc                 ó   — || dz  z  S r   r&   r©  s     r   re   z.TestFixedPoint.test_array_basic2.<locals>.func‘  s   € Ø�q˜#‘v‘:Ðr   rª  )gš™™™™™é?r«  r«  rk   r3   )r	   r   r   r¬  s        r   Útest_array_basic2z TestFixedPoint.test_array_basic2�  s^   € ð	ð 	ð 	åÐ#Ð#Ð#Ñ$Ô$ˆØˆ_ˆ_ˆÝ˜˜b¨ tÐ,Ñ,Ô,ˆÝ˜A˜q !™tÑ$Ô$Ð$Ð$Ð$r   c                 óÀ   — t          d„ dddd¬¦  «        }t          |t          j        d|z  ¦  «        dz  ¦  «         t          |t	          d	¦  «        d
z  ¦  «         d S )Nc                 ó6   — t          j        d| z  ¦  «        dz  S )NrW  rL   r%  )Úxxs    r   r,   z.TestFixedPoint.test_lambertw.<locals>.<lambda>š  s   € ­¬¨t°B©w©¬¸Ñ(;€ r   r(  r&   gê-�™—q=iô  )rO   ÚxtolÚmaxiterrW  rL   r4   r3   )r   r   r   r&  r   )r   Úxxroots     r   Útest_lambertwzTestFixedPoint.test_lambertw˜  sh   € åÐ;Ð;¸SØ˜e¨Sð2ñ 2ô 2ˆå˜¥¤ t¨F¡{Ñ 3Ô 3°CÑ 7Ñ8Ô8Ð8Ý˜¥¨¡¤¨A¡Ñ.Ô.Ð.Ð.Ð.r   c                 ó¢   ‡‡‡— dŠdŠd}d}|dz
  |z  ‰‰z  |z  d|dz
  z  z  z  Šˆˆˆfd„}t          ||d¬¦  «        }t          ||¦  «         d S )	Nr3   r’  r&  gj¼t“ð?r4   c                 óz   •— t          j        ‰‰z  | z  ¦  «        t          j        ‰| z  | dz
  z  ¦  «        z  dz   S rv  rw  )r@   Úi0ÚklÚkss    €€€r   re   z1TestFixedPoint.test_no_acceleration.<locals>.func§  s9   ø€ Ý”6˜"˜R™% ™'‘?”?¥R¤V¨B¨q©D°!°a±%©LÑ%9Ô%9Ñ9¸AÑ=Ð=r   Ú	iterationrÜ   )r   r   )r   ÚmÚn0re   r@   rº  r»  r¼  s        @@@r   Útest_no_accelerationz#TestFixedPoint.test_no_accelerationŸ  s�   øøø€ àˆØˆØˆØˆØ�‰s�A‰g˜˜2™˜a™ 1 a¨¡c¡7Ñ+Ñ+ˆð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>õ ˜˜b¨Ð5Ñ5Ô5ˆÝ˜˜1ÑÔÐÐÐr   N)r"   r#   r$   r™  r�  r¡  r¦  r­  r°  r·  rÀ  r&   r   r   r’  r’  c  sŒ   € € € € € ð$ð $ð $ð$ð $ð $ð$ð $ð $ð+ð +ð +ð&ð &ð &ð%ð %ð %ð/ð /ð /ðð ð ð ð r   r’  ),r%   r�  rá   rÊ   Únumpy.testingr   r   r   r   r   r   rb   Únumpyr   r	   r
   Úmultiprocessing.poolr   Úscipyr   r   Úscipy.specialr   Úscipy.optimize._minpack_pyr   r   r   Úscipy.optimizer   Úscipy.optimize._minimizer   r   r(   r1   r<   rC   rE   rG   r¸   rÄ   rÈ   rå   r>  r’  r&   r   r   ú<module>rÉ     sò  ððð ð €€€Ø €€€Ø Ð Ð Ð ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gà *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø +Ð +Ð +Ð +Ð +Ð +à "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ *Ð *Ð *Ð *Ð *Ð *Ø +Ð +Ð +Ð +Ð +Ð +ð#ð #ð #ð #ð #ñ #ô #ð #ðð ð ð+ð +ð +ðð ð ð>ð ð ð.<ð <ð <ð
i5ð i5ð i5ð i5ð i5ñ i5ô i5ð i5ðX;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð@;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð+ð +ð +ð +ð +ñ +ô +ð +ð4W.ð W.ð W.ð W.ð W.ñ W.ô W.ð W.ðtf
%ð f
%ð f
%ð f
%ð f
%ñ f
%ô f
%ð f
%ðRHð Hð Hð Hð Hñ Hô Hð Hð Hð Hr   