
    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?gbsE]?)      ?        r   r   r   )r   r   gDW?r   gB|m?)r   r   gҥ?r   g0Ԕ?gܥ+@g5s@g2a@g`_@)gFg ?gwQgb@gf漍B@)g8ۿg	MpB#?g8B92@g柇P?@g 3)g8F޿gƌJ?g%Gg;S9H@gMG@)g4</޿g dZ?gc4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 
{1b "	Q		 "	Q		 	"	Q		 "!" " 	" GAJJ

##    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    cAgh㈵>      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hq"*%%G2:&&I		 	 	
 
B 	A
bj!!A
BJA-&,K	!A#a%!A#+1Q&1,bj	9	9B
(1Q3
$
$C8AuDHQEHQ$$EHR%%EHR$$EDG(( I Iayy1q!WiaEb#tVUEeU	, 	, 	, 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    HHRZ  va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    # # # 'BHb"X,>,>D$& & &CJsw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   