§
    ¢éUg  ã                   ó0   — d dl Zd dlmZmZ d„ Zd„ Zd„ ZdS )é    N)Ú_lbfgsbÚminimizec                 ó   — g d¢}g d¢}g d¢}g d¢}d}d}d}d}t          j        g d	¢¦  «        }	t          j        g d
¢¦  «        }
t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        | |¦  «        r|}|	}n]t          j        | |¦  «        r|}|
}nCt          j        | |¦  «        r|}|}n)t          j        | |¦  «        r|}|}nt          d¦  «        ‚t          j        |¦  «        t          j        |¦  «        fS )z8simplified objective func to test lbfgsb bound violation©gú     ì?gŠ     è?gleffffî?gŒ%I’$Iê?gbsÑE]ä?)ç      ð?ç        r   r   r   )r   r   gDÊÔW«¥ï?r   gB¦|müš?)r   r   gá·Ò¥ï?r   gèý0Ÿ‡Ô”?g‘ÚÜ¥+´@g¡5sÑ´@g2ìa´@g`� Þ_´@)gF§Îýâ¿g¼Çî¢ ú?gœ¬¦ÂwÿQÀg’½þÌôb@gfæ¼�B@)g8‘‚µÛ¿g	MpB#ð?g‘öû8B92@gÄæŸ‡Pí?@g ¨µâª3À)gÊÀÿ8FÞ¿gÆŒíÇJî?gŸƒ…%ƒG‘¿g;S™9H@g€Ñô‚MG@)g4</­Þ¿g ŠdZ½Âî?g”c�4’y?g(¹,ÿÀ7H@g ¾Äëœ@z<Simplified objective function not defined at requested point)ÚnpÚarrayÚallcloseÚ
ValueErrorÚcopy)ÚxÚx0Úx1Úx2Úx3Úf0Úf1Úf2Úf3Úg0Úg1Úg2Úg3ÚfÚgs                  úf/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/tests/test_lbfgsb_setulb.pyÚobjfunr      s”  € ð
ð 
ð 
€Bð
 
#Ð	"Ð	"€Bð
 ð 
 ð 
 €Bð

 ð 
 ð 
 €Bð 
€BØ	€BØ	€BØ	€Bå	Œð &ð &ð &ñ 
'ô 
'€Bõ
 
Œð (ð (ð (ñ 
)ô 
)€Bõ
 
Œð &ð &ð &ñ 
'ô 
'€Bõ
 
Œð &ð &ð &ñ 
'ô 
'€Bõ 
„{�1�bÑÔð "ØˆØˆˆÝ	Œ�Q˜Ñ	Ô	ð "ØˆØˆˆÝ	Œ�Q˜Ñ	Ô	ð 	"ØˆØˆˆÝ	Œ�Q˜Ñ	Ô	ð "ØˆØˆˆåð!ñ"ô "ð 	"õ ŒG�A‰JŒJ�œ ™
œ
Ð#Ð#ó    c                  ó`  — d} d}d}d}d}d}t          j        | fd¦  «        }t          j        | t           j        ¦  «        }t          j        | t           j        ¦  «        }t          j        g d¢¦  «        }	t          j        |	¦  «        }
t          j        d	t           j        ¦  «        }t          j        | t           j        ¦  «        }t          j        j	        j
        }t          j        d|z  | z  d| z  z   d
|z  |z  z   d|z  z   t           j        ¦  «        }t          j        d| z  |¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }t          j        d|¦  «        }t          j        d|¦  «        }t          j        dt           j        ¦  «        }d|dd…<   t          d¦  «        D ]s}t          |
¦  «        \  }}t          j        ||
||||||||||||||||¦  «         |
|k                         ¦   «         r|
|k                         ¦   «         s
J d¦   «         ‚ŒtdS )zdtest if setulb() violates bounds

    checks for violation due to floating point rounding error
    é   é
   g    ÐcAgñhãˆµøä>é   éÿÿÿÿé   r   r   é   é   é   é   ÚS60é   é,   é   s   STARTNé   z9_lbfgsb.setulb() stepped to a point outside of the bounds)r	   ÚfullÚzerosÚfloat64Úonesr
   r   r   ÚtypesÚintvarÚdtypeÚranger   ÚsetulbÚall)ÚnÚmÚfactrÚpgtolÚmaxlsÚiprintÚnbdÚlow_bndÚ	upper_bndr   r   r   r   Úfortran_intÚwaÚiwaÚtaskÚcsaveÚlsaveÚisaveÚdsaveÚn_iters                         r   Útest_setulb_floatroundrK   E   s/  € ð 	
€AØ
€AØ€EØ€EØ€EØ€FÝ
Œ'�1�$˜Ñ
Ô
€CÝŒh�q�"œ*Ñ%Ô%€GÝ”˜�2œ:Ñ&Ô&€Iå	Œð	ð 	ð 	ñ
ô 
€Bõ 	Œ�‰Œ€Aå
Œ�•b”jÑ!Ô!€AÝ
Œ�•B”JÑÔ€Aå”-Ô&Ô,€Kå	Œ�!�A‘#�a‘%˜!˜A™#‘+  1¡ Q¡Ñ&¨¨1©Ñ,­b¬jÑ	9Ô	9€BÝ
Œ(�1�Q‘3˜Ñ
$Ô
$€CÝŒ8�A�uÑÔ€DÝŒH�Q˜ÑÔ€EÝŒH�Q˜Ñ$Ô$€EÝŒH�R˜Ñ%Ô%€EÝŒH�R�œÑ$Ô$€Eà€Dˆˆˆ�Gå˜‘(”(ð Ið IˆÝ�a‰yŒy‰ˆˆ1åŒ�q˜!˜W i°°a¸¸EØ˜b # t¨V°U¸EØ˜e Uñ	,ô 	,ð 	,ð �Y’×#Ò#Ñ%Ô%ð 	I¨1°ª<×*<Ò*<Ñ*>Ô*>ð 	Ið 	IØGñ	Iô 	Ið 	Ið 	IðIð Ir   c                  ó¨   — d„ } t          | t          j        ddg¦  «        dd¬¦  «        }t          j                             |j        dd¬¦  «         d S )	Nc                 óx   — |                       t          j        ¦  «        } t          j        | dz  ¦  «        d| z  fS )Nr%   )Úastyper	   Úfloat32Úsum)r   s    r   Úfun_single_precisionz0test_gh_issue18730.<locals>.fun_single_precisionz   s0   € Ø�HŠH•R”ZÑ Ô ˆÝŒv�a˜‘d‰|Œ|˜a ™cÐ"Ð"r   r   Tzl-bfgs-b)r   ÚjacÚmethodr   gVçž¯Ò<)Úatol)r   r	   r
   ÚtestingÚassert_allcloseÚfun)rQ   Úress     r   Útest_gh_issue18730rY   w   sd   € ð#ð #ð #õ Ð'­B¬H°b¸"°XÑ,>Ô,>ÀDØ$ð&ñ &ô &€Cå„J×Ò˜sœw¨°ÐÑ7Ô7Ð7Ð7Ð7r   )Únumpyr	   Úscipy.optimizer   r   r   rK   rY   © r   r   ú<module>r]      se   ðØ Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð=$ð =$ð =$ð@/Ið /Ið /Iðd	8ð 	8ð 	8ð 	8ð 	8r   