
    ^Mh                     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                  g/var/www/html/test/jupyter/venv/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}t          j        | fdt           j                  }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        d|z  | z  d| z  z   d|z  |z  z   d|z  z   t           j                  }t          j        d| z  t           j                  }t          j        dt           j                  }t          j        dt           j                  }t          j        dt           j                  }t          j        dt           j                  }t          j        dt           j                  }t          d          D ]r}t          |	          \  }
}t          j        ||	||||
|||||||||||           |	|k                                    r|	|k                                    s
J d            sdS )zdtest if setulb() violates bounds

    checks for violation due to floating point rounding error
       
   g    cAgh㈵>      )shape
fill_valuedtype)r'   r   r               ,         z9_lbfgsb.setulb() stepped to a point outside of the boundsN)r	   fullint32zerosfloat64onesr
   r   ranger   r   setulball)nmfactrpgtolmaxlsnbdlow_bnd	upper_bndr   r   r   r   waiwataskln_tasklsaveisavedsaven_iters                       r   test_setulb_floatroundrG   E   sB    	
A
AEEE
'"(
;
;
;Chq
+++G,,,I		 	 	
 
B 	A
BJ'''A
"*%%%A	!A#a%!A#+1Q&1,BJ	?	?	?B
(1Q3bh
'
'
'C8ARX&&&Dhq)))GHQbh'''EHRrx(((EHRrz***E(( I Iayy1q!WiaE5"D%ug	G 	G 	G 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_precisiont   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)rM   ress     r   test_gh_issue18730rU   q   sd    # # # 'BHb"X,>,>D$& & &CJsw77777r   )numpyr	   scipy.optimizer   r   r   rG   rU    r   r   <module>rY      se        , , , , , , , ,=$ =$ =$@)I )I )IX	8 	8 	8 	8 	8r   