+
    /i%                     J   ^ RI t ^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHtHtHt ^ R	IHt  ! R
 R4      t ! R R]4      t ! R R4      t  ! R R]4      t!R t"R t#R t$] PJ                  PM                  ]PN                  ! 4       R8H  RR7      R 4       t(] PJ                  PM                  ]PN                  ! 4       R8H  RR7      R 4       t)] PJ                  PM                  ]PN                  ! 4       R8H  RR7      R 4       t*R# )    N)TestCaseassert_array_almost_equalassert_array_equalassert_assert_allcloseassert_equal)assert_deallocated)
MapWrapper	csr_array)LinearOperator)ScalarFunctionVectorFunctionLinearVectorFunctionIdentityVectorFunction)rosen	rosen_der
rosen_hess)BFGSc                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )ExScalarFunctionc                0    ^ V n         ^ V n        ^ V n        R# r   Nnfevngevnhevselfs   &p/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/optimize/tests/test_differentiable_functions.py__init__ExScalarFunction.__init__       			    c                    V ;P                   ^,          un         ^V^ ,          ^,          V^,          ^,          ,           ^,
          ,          V^ ,          ,
          #    )r   r   xs   &&r    funExScalarFunction.fun   s=    		Q	!A$'AaD!G#a'(1Q4//r$   c                    V ;P                   ^,          un         \        P                  ! ^V^ ,          ,          ^,
          ^V^,          ,          .4      # r&   )r   nparrayr(   s   &&r    gradExScalarFunction.grad   s7    		Q	xx1Q41QqT6*++r$   c                n    V ;P                   ^,          un         ^\        P                  ! ^4      ,          # r&   )r   r-   eyer(   s   &&r    hessExScalarFunction.hess"   s!    		Q	{r$   r   N)
__name__
__module____qualname____firstlineno__r!   r*   r/   r3   __static_attributes____classdictcell____classdict__s   @r    r   r      s     
0, r$   r   c                      a  ] tR t^'t o R t]P                  P                  R4      R 4       tR t	R t
R tR tR tR	tV tR
# )TestScalarFunctionc           
     r   \        4       p^ p^ pRR.p\        VP                  VRVP                  VP                  R\
        P                  ) \
        P                  34      pV^,          pV^,          p\        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  VRRVP                  R\
        P                  ) \
        P                  34      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       \        VP                  VP                  4       \        VP                  VP                  4       ^
R.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       \        W4       \        W4       RR.pVP                  V4      p	V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       VP                  V4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       \        W4       RR.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       \        W4       \        W4       ^R.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  ,           V4       \        W4       \        W4       R# )	r         ?        N2-point333333?       @      @ )r   r   r*   r/   r3   r-   infr   r   r   fr   g)r   exr   r   x0analitapproxr)   f_analitg_analitf_approxg_approxs   &           r    test_finite_difference_grad.TestScalarFunction.test_finite_difference_grad)   s   3ZB "/@B		277D)6;;-277D)6;;-B	 "/@B		277D)6;;v{{2D96;;v{{2D9688VXX.!&((FHH5I::a=;;q>		277D)6;;v{{2D96;;v{{2D9::a=;;q>		277D)6;;v{{2D96;;v{{2D9!(5!(5#J;;q>	277D)6;;v{{2D96;;v{{2D9;;q>		277D)6;;v{{2D96;;v{{2D9!(5#J::a=;;q>		277D)6;;v{{2D96;;v{{2D9::a=;;q>		277D)6;;v{{2D96;;v{{2D9!(5!(5H::a=;;q>		277D)6;;v{{2D96;;v{{2D9::a=;;q>		277D)6;;v{{2D96;;v{{2D9!(5!(5r$         @c                   \         P                  ! R R.4      p\        4       p\        4       p\        ^4      ;_uu_ 4       p\	        VP
                  VRRVP                  R\         P                  ) \         P                  3VR7      p\	        VP
                  VRRVP                  R\         P                  ) \         P                  34      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        4       p\        4       p\	        VP
                  VRRVP                  R\         P                  ) \         P                  3VR7      p\	        VP
                  VRRVP                  R\         P                  ) \         P                  34      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        4       p\        4       p\         P                  ! RR.4      p\	        VP
                  VRVP                  RR\         P                  ) \         P                  3VR7      p\	        VP
                  VRVP                  RR\         P                  ) \         P                  34      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       VP                  V4       VP                  V4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       RRR4       R#   + '       g   i     R# ; i)	rD   rC   rB   Nworkers3-point      @      @rF   )r-   r.   r   r
   r   r*   r3   rG   r   r/   r   r   r   r   )r   rK   rJ   ex2mapperrM   approx_seriesx1s   &       r    test_workersTestScalarFunction.test_workers   s   XXsCj! ]]f#BFFBI$&GGTRVVGRVV3D,24F +377BI+.88TRVVGRVV;L-M FKKORWWR[9M..r2BGGBK@M..r2BGGBK@FKKORWWR[9m&8&89++SXX6m&8&89m&8&89++SXX6!#B"$C#BFFBI$&GGTRVVGRVV3D,24F +377BI+.88TRVVGRVV;L,M FKKORWWR[9M..r2BGGBK@M..r2BGGBK@FKKORWWR[9m&8&89++SXX6m&8&89m&8&89++SXX6!#B"$C3*%B#BFFBBGG$-trvvgrvv5F,24F +377BCHH+4dbffWbff<M-M FKKORWWR[9M..r2BGGBK@r"KKOm&8&89++SXX6m&8&89++SXX6m&8&89++SXX6m ]]]s    V%W//X 	c           
        \        4       pR  pRR.p\        VP                  VRVP                  VP                  R\
        P                  ) \
        P                  34      pVP                  V4      VP                  V4      3pV! VP                  V4      V4       VP                  ^8X  g   Q hRV^&   VP                  V4      VP                  V4      3pV! VP                  V4      V4       RR.p\        VP                  VRRVP                  R\
        P                  ) \
        P                  34      pVP                  ^8X  g   Q hVP                  V4      VP                  V4      3pV! VP                  V4      V4       VP                  ^8X  g   Q hRV^&   VP                  V4      VP                  V4      3pV! VP                  V4      V4       R# )c                 n    \        V ^ ,          V^ ,          4       \        V ^,          V^,          4       R# r   )r   )r)   ys   &&r    fg_allclose9TestScalarFunction.test_fun_and_grad.<locals>.fg_allclose   s&    AaD!A$'AaD!A$'r$   rD   rC   Nr@   rX   rF   )	r   r   r*   r/   r3   r-   rG   fun_and_gradr   )r   rJ   rd   rK   rL   fgsfs   &      r    test_fun_and_grad$TestScalarFunction.test_fun_and_grad   s   	(
 3ZB "/@B VVBZ$F''+R0{{a1VVBZ$F''+R0 3ZBFFBI "/@Bww!||VVBZ$BOOB',ww!||1VVBZ$BOOB',r$   c           
        \        4       p^ p^ p^ pRR.p\        VP                  VRVP                  VP                  R\
        P                  ) \
        P                  34      pV^,          pV^,          pV^,          p\        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  VRVP                  RR\
        P                  ) \
        P                  34      p\        \        VP                  \        4      4       RR.RR.RR.3 F  p\        VP                  VP                  4       \!        VP"                  VP"                  4       \!        VP                  P%                  V4      VP                  P%                  V4      4       K  	  V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p	VP	                  V	4      p
V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP	                  V	4      p\        \        V\        4      4       RR.RR.RR.3 F-  p\!        V
P%                  V4      VP%                  V4      4       K/  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       R	R
.p	VP	                  V	4      p
V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP	                  V	4      p\        \        V\        4      4       RR.RR.RR.3 F-  p\!        V
P%                  V4      VP%                  V4      4       K/  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p	VP                  V	4      pVP	                  V	4      p
V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V	4      pVP	                  V	4      p\        \        V\        4      4       RR.RR.RR.3 F-  p\!        V
P%                  V4      VP%                  V4      4       K/  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p	VP                  V	4      pVP	                  V	4      p
V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V	4      pVP	                  V	4      p\        \        V\        4      4       RR.RR.RR.3 F-  p\!        V
P%                  V4      VP%                  V4      4       K/  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       R# )r   r@   rA   NrB   rD   rY   rZ   rT    @333333?rE   rC   @ffffff@rF   )r   r   r*   r/   r3   r-   rG   r   r   r   r   r   
isinstanceHr   rH   r   rI   dot)r   rJ   r   r   r   rK   rL   rM   vr)   H_analitH_approx_s   &            r    +test_finite_difference_hess_linear_operator>TestScalarFunction.test_finite_difference_hess_linear_operator   s   3ZB "/@B			277D)6;;-277D)6;;-277D)6;;-B )4266'2661BD
688^45*sCj3*5Avxx2%fhh9%fhhll1ovxx||AG 6 			277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#J;;q>	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9;;q>
8^45*sCj3*5A%hll1ox||AG 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#J;;q>	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9;;q>
8^45*sCj3*5A%hll1ox||AG 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#JKKN;;q>		277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9KKN;;q>
8^45*sCj3*5A%hll1ox||AG 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#JKKN;;q>		277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9KKN;;q>
8^45*sCj3*5A%hll1ox||AG 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9r$   c           
        R  p\         P                  ! . R	O4      p\        WR
RR R\         P                  ) \         P                  34      pW#P                  Jg   Q h\        VP                  V4      R4       W#P                  Jg   Q hRV^ &   VP                  V4      p\        VR4       ^V^ &   VP                  V4      p\        VR4       W#P                  Jg   Q h\        4       p\         P                  ! . R	O4      p\        WR
RVR\         P                  ) \         P                  34      pW#P                  Jg   Q h\        VP                  V4      R4       W#P                  Jg   Q hRV^ &   VP                  V4      p\        VR4       ^V^ &   VP                  V4      p\        VR4       W#P                  Jg   Q hR p\         P                  ! . R	O4      p\        WrR
RR R\         P                  ) \         P                  34      pW#P                  Jg   Q h\        VP                  V4      R4       \        VP                  \         P                  ! . R	O4      4       W#P                  Jg   Q hR# )c                 d    \         P                  ! \         P                  ! V 4      ^,          4      # )   )r-   sumasarrayr)   s   &r    rH   4TestScalarFunction.test_x_storage_overlap.<locals>.fe  s    66"**Q-1,--r$   rX   c                     V # NrF   r~   s   &r    <lambda>;TestScalarFunction.test_x_storage_overlap.<locals>.<lambda>i  s    1r$   Ng      ,@rA   g      *@c                 >    W ,          p \         P                  ! V 4      # r   )r-   r|   r~   s   &r    ff5TestScalarFunction.test_x_storage_overlap.<locals>.ff  s    FA66!9r$   c                     V # r   rF   r~   s   &r    r   r     s    Ar$   )r@   rD   rY   rF   )r-   r.   r   rG   r)   r   r*   r   )r   rH   r)   rh   f1f2r3   r   s   &       r    test_x_storage_overlap)TestScalarFunction.test_x_storage_overlap`  s   
	. HH\"A"idbffWbffDUV}}RVVAY%}}!VVAYR!VVAYR}} vHH\"A"itrvvgrvv=NO}}RVVAY%}}!VVAYR!VVAYR}}	 HH\"2y+trvvgrvv5F
 }}RVVAY%RTT288L12}}r$   c           
        \         P                  ! . RO4      p\        \        VR\        \
        RR4      pVP                  . RO4       VP                  V4       VP                  . RO4       VP                  . RO4       \        VP                  R4       \        VP                  . RO4       \        \        VRR\
        R\         P                  ) \         P                  34      pVP                  . RO4       VP                  V4       VP                  . RO4       VP                  . RO4       \        VP                  R4       \        VP                  . RO4       R# )	r{   NrA   rB   r{         rF   )r'   r'   r'   )g)\(?r'   r@   )r@   r@   r@   )r-   r.   r   r   r   r   r*   r/   r   	_lowest_f	_lowest_xrG   )r   rK   rh   s   &  r    test_lowest_x TestScalarFunction.test_lowest_x  s    XXi E2r9j $(
y
r

~
R\\3'R\\?3E2r9j BFF7BFF"35
y
r

~
R\\3'R\\?3r$   c           
     @   \         P                  ! . RO4      P                  \         P                  4      pR p\	        W!RR\
        R\         P                  ) \         P                  34      pVP                  V4      pVP                  \         P                  8X  g   Q hR# )r{   c                 Z    V P                   \        P                  8X  g   Q h\        V 4      # r   )dtyper-   float32r   r~   s   &r    rosen_2TestScalarFunction.test_float_size.<locals>.rosen_  s!    77bjj(((8Or$   rB   Nr   rF   )	r-   r.   astyper   r   r   rG   r*   r   )r   rK   r   rh   ress   &    r    test_float_size"TestScalarFunction.test_float_size  so    XXi ''

3	 FIz BFF7BFF"35ffRjyyBJJ&&&r$   rF   N)r5   r6   r7   r8   rR   pytestmark	fail_slowr_   ri   rw   r   r   r   r9   r:   r;   s   @r    r>   r>   '   sR     [6z [[3:7  :7x-Bz:x6p4*' 'r$   r>   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )ExVectorialFunctioni  c                0    ^ V n         ^ V n        ^ V n        R# r   )r   njevr   r   s   &r    r!   ExVectorialFunction.__init__  r#   r$   c                   V ;P                   ^,          un         \        P                  ! ^V^ ,          ^,          V^,          ^,          ,           ^,
          ,          V^ ,          ,
          ^V^ ,          ^,          V^,          ^,          ,           ^,
          ,          ^V^ ,          ,          ,
          .VP                  R7      # r'   )r   )r   r-   r.   r   r(   s   &&r    r*   ExVectorialFunction.fun  s    		Q	xxAaD!GadAg-12QqT9AaD!GadAg-12QqtV;=DEGGM 	Mr$   c                   V ;P                   ^,          un         \        P                  ! ^V^ ,          ,          ^,
          ^V^,          ,          .^V^ ,          ^,          ,          ^,
          ^V^,          ,          ..VP                  R7      # r   )r   r-   r.   r   r(   s   &&r    jacExVectorialFunction.jac  si    		Q	xx!AaD&(AadF+QqT1W*Q,!A$/189A 	Ar$   c                   V ;P                   ^,          un         V^ ,          ^,          \        P                  ! ^4      ,          V^,          \        P                  ! ^V^ ,          ,          ^ .^ ^..4      ,          ,           # r&   )r   r-   r2   r.   )r   r)   rs   s   &&&r    r3   ExVectorialFunction.hess  sa    		Q	tAvbffQi!A$rxx"QqT'123Q19 (: #: : 	:r$   )r   r   r   N)
r5   r6   r7   r8   r!   r*   r   r3   r9   r:   r;   s   @r    r   r     s      
M
A
: :r$   r   c                      a  ] tR tRt o R tR t]P                  P                  R4      R 4       t	R t
R tR tR	 tR
 tR tRtV tR# )TestVectorialFunctioni  c           
     d   \        4       p^ p^ pRR.p\        VP                  WAP                  VP                  RR\
        P                  ) \
        P                  3R4      pV^,          pV^,          p\        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  VRVP                  4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  VP                  4       \        VP                  VP                  4       ^
R.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        W4       \        W^R7       RR.pVP                  V4      p	V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        W4       RR.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        W4       \        W4       ^R.pVP                  V4      pVP                  V4      p	V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V4      p
VP                  V4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        W4       \        W4       R# )	r   r@   rA   NrB   rC   decimalrD   rE   )r   r   r*   r   r3   r-   rG   r   r   r   rH   r   J)r   rJ   r   r   rK   rL   rM   r)   rN   J_analitrP   J_approxs   &           r    test_finite_difference_jac0TestVectorialFunction.test_finite_difference_jac  s    "3ZFFBGGT4"$&&"&& 149		277D)6;;-277D)6;;-  Irww?	277D)6;;v{{2D9277D)6;;v{{2D9688VXX.!&((FHH5I::a=::a=		277D)6;;v{{2D9277D)6;;v{{2D9::a=::a=	277D)6;;v{{2D9277D)6;;v{{2D9!(5!(a@#J::a=	277D)6;;v{{2D9277D)6;;v{{2D9::a=	277D)6;;v{{2D9277D)6;;v{{2D9!(5#J::a=::a=		277D)6;;v{{2D9277D)6;;v{{2D9::a=::a=	277D)6;;v{{2D9277D)6;;v{{2D9!(5!(5H::a=::a=		277D)6;;v{{2D9277D)6;;v{{2D9::a=::a=	277D)6;;v{{2D9277D)6;;v{{2D9!(5!(5r$   c                <   \         P                  ! R R.4      p\        4       p\        VP                  WP
                  VP                  4      pVP                  '       g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP	                  V4       VP                  V4       VP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hR# )rE   rY   N)
r-   r.   r   r   r*   r   r3   	f_updatedr   r   )r   rK   rJ   vfs   &   r    test_updating_on_initial_setup4TestVectorialFunction.test_updating_on_initial_setup6  s     XXsCj! "BFFB8||||ww!||ww!||ww!||ww!||
r

r
ww!||ww!||ww!||ww!||r$   rT   c                   \         P                  ! R R.4      p\        4       p\        4       p\         P                  ! RR.4      p\        ^4      ;_uu_ 4       p\	        VP
                  VRVP                  RR\         P                  ) \         P                  3RVR7	      p\	        VP
                  VRVP                  RR\         P                  ) \         P                  3R4      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  W4      VP                  W4      4       \        VP                  W4      VP                  W4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       ^ ;Vn        ;Vn        Vn        ^ ;Vn        ;Vn        Vn        \	        VP
                  VRVP                  RR\         P                  ) \         P                  3RVR7	      p\	        VP
                  VRVP                  RR\         P                  ) \         P                  3R4      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       \        VP                  W4      VP                  W4      4       \        VP                  W4      VP                  W4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       ^ ;Vn        ;Vn        Vn        ^ ;Vn        ;Vn        Vn        \	        VP
                  WP                  RRR\         P                  ) \         P                  3RVR7	      p\	        VP
                  WP                  RRR\         P                  ) \         P                  3R4      p\        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       VP                  W4      pVP                  W4      p	VP                  W4      p
^R.p\        V
P                  V4      VP                  V4      4       \        V	P                  V4      VP                  V4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       RRR4       R#   + '       g   i     R# ; i)	rE   rY   r@   rD   rB   NFrV   rX   )r-   r.   r   r
   r   r*   r3   rG   r   r   r   r   r   r   rr   )r   rK   rJ   r[   rs   r\   rM   r]   rt   H_approx_seriesru   r)   s   &           r    r_   "TestVectorialFunction.test_workersH  s|   XXsCj! "!#HHc3Z ]]f#BFFB	$&GGT4266'2669J$)6;F +377B	+.88T4266'266AR+02M FJJrNBFF2J7M--b1266":>M..r5rwwr~FFKK.?m&8&89++SXX6m&8&89m&8&89++SXX6*++BG+bg-..CH.sx#(#BFFB	$&GGT4266'2669J$)6;F +377B	+.88T4266'266AR+02M FJJrNBFF2J7M--b1266":>M..r5rwwr~FFKK.?m&8&89++SXX6m&8&89m&8&89++SXX6
 +,+BG+bg-..CH.sx#(#BFFB$-tTRVVGRVV;L$)6;F +377B+4dDBFF7BFFBS+02M FJJrNBFF2J7M--b1266":>xxH+007O{{2)HCAHLLOX\\!_=O//2HLLODm&8&89++SXX6m&8&89m&8&89{ ]]]s   W&YY	c           
     Z   \        4       p^ p^ p^ pRR.pRR.p\        VP                  WQP                  VP                  RR\
        P                  ) \
        P                  3R4      pV^,          pV^,          pV^,          p\        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  V4       \        VP                  WQP                  RRR\
        P                  ) \
        P                  3R4      p\        \        VP                  \        4      4       RR.RR.RR.3 F  p	\        VP                  VP                  4       \!        VP"                  VP"                  4       \!        VP                  P%                  V	4      VP                  P%                  V	4      4       K  	  V^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p
VP	                  W4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP	                  W4      p\        \        V\        4      4       RR.RR.RR.3 F/  p	\!        VP%                  V	4      VP%                  V	4      ^R	7       K1  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       R
R.p
RR.pVP	                  W4      pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP	                  W4      p\        \        V\        4      4       RR.RR.RR.3 F-  p\!        VP%                  V4      VP%                  V4      4       K/  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p
VP                  V
4      pVP	                  W4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V
4      pVP	                  W4      p\        \        V\        4      4       RR.RR.RR.3 F/  p\!        VP%                  V4      VP%                  V4      ^R	7       K1  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       RR.p
RR.pVP                  V
4      pVP	                  W4      pV^,          pV^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       VP                  V
4      pVP	                  W4      p\        \        V\        4      4       RR.RR.RR.3 F/  p\!        VP%                  V4      VP%                  V4      ^R	7       K1  	  V^,          p\        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \        VP                  V4       \        VP                  VP                  ,           V4       \
        P&                  ! RR.4      p
\
        P&                  ! RR.4      pVP(                  P                  pVP)                  WRR7      p\        V\        4      '       g   Q hVP(                  P                  V^,           8X  g   Q hR# )r   r@   rA   rD   NrB   rY   rZ   rT   r   rl   rm   rE   rC   rn   ro   g      ?g      ?)J0)r   r   r*   r   r3   r-   rG   r   r   r   r   r   rp   rq   r   rH   r   r   rr   r.   hess_wrapped)r   rJ   r   r   r   rK   v0rL   rM   pr)   rt   ru   rs   rv   njev_beforerq   s   &                r    rw   ATestVectorialFunction.test_finite_difference_hess_linear_operator  sE    "3Z3ZFFBGGT4"$&&"&& 149			277D)6;;-277D)6;;-277D)6;;-FFItT"$&&"&& 149
688^45*sCj3*5Avxx2%fhh9%fhhll1ovxx||AG 6 			277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#J;;q%	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9;;q%
8^45*sCj3*5A%hll1ox||A./1 6 		277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#J#J;;q$	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9;;q$
8^45*sCj3*5A%hll1ox||AG 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#JJJqM;;q%		277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9JJqM;;q%
8^45*sCj3*5A%hll1ox||APQR 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9#J#JJJqM;;q$		277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9JJqM;;q$
8^45*sCj3*5A%hll1ox||APQR 6	277D)6;;v{{2D9277D)6;;v{{2D9277D)6;;v{{2D9 HHc3Z HHc3Z ))...!^,,,,""'';?:::r$   c           
        \        4       p\        P                  ! R R.4      p\        VP                  VRVP
                  RR\        P                  ) \        P                  3R4      pVP	                  \        P                  ! RR.4      4      pVP                  RR.4      pVP                  VJg   Q hVP                  VJg   Q h\        WCP                  4       \        WSP                  4       \        VP                  W!P                  VP
                  RR\        P                  ) \        P                  3R4      pVP	                  \        P                  ! RR.4      4      pVP                  RR.4      pVP                  VJg   Q hVP                  VJg   Q h\        WCP                  4       \        WSP                  4       R# )r@   rA   rX   Ng?g?)r   r-   r.   r   r*   r3   rG   r   rH   r   r   )r   rJ   rK   r   rH   r   s   &     r    test_fgh_overlap&TestVectorialFunction.test_fgh_overlap  sL    "XXsCj!BFFB	277D$ ffWbff-t5FF288S#J'(FFC:tt1}}tt1}}QQBFFBt ffWbff-t5FF288S#J'(FFC:tt1}}tt1}}QQr$   c           
     >   \        4       p\        P                  ! R R.4      p\        VP                  VRVP
                  RR\        P                  ) \        P                  3R4      pW#P                  Jg   Q h\        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q hRV^ &   \        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q hR V^ &   \        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q h\        4       p\        P                  ! R R.4      p\        VP                  VRVRR\        P                  ) \        P                  3R4      p\        P                  ! \        4      ;_uu_ 4        W#P                  Jg   Q h\        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q hRV^ &   \        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q hR V^ &   \        VP	                  V4      VP	                  V4      4       W#P                  Jg   Q h RRR4       R#   + '       g   i     R# ; i)r@   rA   rX   NrD   )r   r-   r.   r   r*   r3   rG   r)   r   r   r   warnsUserWarning)r   rJ   rK   r   r3   s   &    r    r   ,TestVectorialFunction.test_x_storage_overlap.  s    !"XXsCj!BFFB	277D$ ffWbff-t5 ~~RVVBZ,~~1RVVBZ,~~1RVVBZ,~~ vXXsCj!BFFB	4t ffWbff-t5 \\+&& TT>!>RVVBZ0TT>!>BqERVVBZ0TT>!>BqERVVBZ0TT>!> '&&&s   3CJJ	c           
        \        4       p\        P                  ! R R.4      P                  \        P                  4      p\        VP                  W!P                  VP                  RR\        P                  ) \        P                  3R4      pVP                  V4      pVP                  \        P                  8X  g   Q hVP                  V4      pVP                  \        P                  8X  g   Q hR# )r@   rA   N)r   r-   r.   r   r   r   r*   r   r3   rG   r   )r   rJ   rK   r   r   s   &    r    r   %TestVectorialFunction.test_float_sizeY  s     "XXsCj!((4BFFBt ffWbff-t5 ffRjyyBJJ&&&ffRjyyBJJ&&&r$   c                   \        4       p\        P                  ! R R.4      pR p\        VP                  W!P
                  VP                  RR\        P                  ) \        P                  3RR7      p\        VP                  W#! VP
                  4      VP                  RR\        P                  ) \        P                  3RR7      pVP                  V^,           4      pVP                  V^,           4      p\        Wg4       R# )r@   rA   c                    a  V 3R  lpV# )c                 *   < S! V 4      p\        V4      # r   r   )r)   f_xfuncs   & r    innerUTestVectorialFunction.test_sparse_analytic_jac.<locals>.sparse_adapter.<locals>.innerj  s    1g ~%r$   rF   )r   r   s   f r    sparse_adapterFTestVectorialFunction.test_sparse_analytic_jac.<locals>.sparse_adapteri  s    & Lr$   Nsparse_jacobianF)	r   r-   r.   r   r*   r   r3   rG   r   )r   rJ   rK   r   vf1vf2res1res2s   &       r    test_sparse_analytic_jac.TestVectorialFunction.test_sparse_analytic_jacf  s     "XXsCj!	 RVVR$ ffWbff-tE RVVR)?$PT ffWbff-uF wwrAvwwrAvT r$   c                .   \        4       p\        P                  ! R R.4      p\        V4      p\	        VP
                  VRVP                  RR\        P                  ) \        P                  3RR7      p\        \        P                  ! W334      4      p\	        VP
                  VRVP                  RV\        P                  ) \        P                  3RR7      pVP                  V^,           4      pVP                  V^,           4      p\        Wx4       R# )r@   rA   rB   Nr   F)r   r-   r.   lenr   r*   r3   rG   r   onesr   r   )	r   rJ   rK   Nr   finite_diff_jac_sparsityr   r   r   s	   &        r    test_sparse_numerical_jac/TestVectorialFunction.test_sparse_numerical_jacz  s     "XXsCj!G RVVRBGGT4!vvgrvv.F $-RWWaV_#= RVVRBGGT57H-24 wwrAvwwrAvT r$   rF   N)r5   r6   r7   r8   r   r   r   r   r   r_   rw   r   r   r   r   r   r9   r:   r;   s   @r    r   r     s]     _6B$ [[3C:  C:JG;R.)"V'!(! !r$   r   c                  D   \         P                  ! . RO. RO.4      p \         P                  ! ^4      p\        V 4      p\         P                  ! . RO4      p\         P                  ! R^.4      p\         P                  ! RR	.4      p\	        WR4      p\        VP                  '       * 4       \	        WR4      p\        VP                  4       \	        WR4      p\        VP                  '       * 4       \	        W!R4      p	\        V	P                  4       \	        W!R4      p
\        V
P                  4       \	        W!R4      p\        VP                  '       * 4       \        VP                  V4      V4       \        VP                  V4      V4       \        VP                  V4      V 4       \        VP                  V4      P                  4       VP                  4       4       \        VP                  W44      P                  4       \         P                  ! R
4      4       R# )r'   NTFr   r{   r   r   r   r{   )r'   r   r   r   r   )r-   r.   zerosr   r   r   r   r   r*   r   toarrayr3   )A_denserK   A_sparser)   rs   Axr   r   f3f4f5f6s               r    test_LinearVectorFunctionr     s   hh G 
!B!H
A
"aA	2r(	B	g4	0B"""#	g4	0BB	g5	1B"""#	hD	1BB	hD	1BB	hE	2B"""#rvvay"%rvvay"%rvvay'*rvvay((*H,<,<,>?rwwq},,.0@Ar$   c                  p   \         P                  ! . RO. RO.4      p \         P                  ! . RO4      p\        WR4      p\        WP                  4       \        V P                  V4      VP                  4       \         P                  ! . RO4      p\        WP                  V4      4       \        W2P                  4       \        V P                  V4      VP                  4       \        V P                  V4      VP                  V4      4       \        V P                  V4      VP                  4       R# )r'   FNr   r   )r'   r{   r   )r   r   
   )	r-   r.   r   r   r)   rr   rH   r   r*   )ArK   r*   r^   s       r    %test_LinearVectorFunction_memoizationr     s    
*i()A	*	B
qe
,Cr55!quuRy#%%(	+	Bq''"+&r55!quuRy#%%(quuRy#''"+.quuRy#%%(r$   c                      \         P                  ! ^4      p \        V R4      p\        V R4      p\        V R4      p\        VP                  4       \        VP                  '       * 4       \        VP                  4       \         P
                  ! . RO4      p\         P
                  ! . RO4      p\        VP                  V4      V4       \        VP                  V4      V4       \        VP                  V4      P                  4       \         P                  ! ^4      4       \        VP                  V4      \         P                  ! ^4      4       \        VP                  WE4      P                  4       \         P                  ! R4      4       R# )r   NFT)r   r{   r'   )r   r   r   )r-   r   r   r   r   r.   r   r*   r   r   r2   r3   )rK   r   r   r   r)   rs   s         r    test_IdentityVectorFunctionr     s   	!B	D	)B	E	*B	D	)BB"""#B
A
Arvvay!$rvvay!$rvvay((*BFF1I6rvvay"&&),rwwq},,.0@Ar$   PyPyz'assert_deallocate not available on PyPy)reasonc                    a a \        4       o \        P                  ! ^4      o\        V V3R l4      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)Regression test for gh-20768.c            
         < \        S P                  SRS P                  S P                  R \        P
                  ) \        P
                  34      # )NrF   )r   r*   r/   r3   r-   rG   rJ   rK   s   r    r   5test_ScalarFunctionNoReferenceCycle.<locals>.<lambda>  s4    N2662r277GGTRVVGRVV+<%>r$   N)r   r-   r   r	   r  s   @@r    #test_ScalarFunctionNoReferenceCycler    sD     
	B	!B	 > 
? 
?
? 
? 
? 
?s   AA	c                    a a \        4       o RR.o\        V V3R l4      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)r  r@   rA   c            
         < \        S P                  SS P                  S P                  R R \        P
                  ) \        P
                  3R 4      # r   )r   r*   r   r3   r-   rG   r  s   r    r   5test_VectorFunctionNoReferenceCycle.<locals>.<lambda>  s7    N2662rvvGGT4266'2661BD%Jr$   N)r   r	   r  s   @@r    #test_VectorFunctionNoReferenceCycler    sG     
	B
sB	 J 
K 
K
K 
K 
K 
Ks	   5A	c                    aa \         P                  ! . RO. RO.4      p \         P                  ! ^4      o\        V 4      o\	        VV3R l4      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)r  c                     < \        S SR 4      # r   )r   )r   rK   s   r    r   ;test_LinearVectorFunctionNoReferenceCycle.<locals>.<lambda>  s    $82t$Lr$   Nr   r   )r-   r.   r   r   r	   )r   r   rK   s    @@r    )test_LinearVectorFunctionNoReferenceCycler    sV     hh G 
!B!H	L	M	M 
N	M	M	Ms   A$$A5	)+r   platformnumpyr-   numpy.testingr   r   r   r   r   r   scipy._lib._gcutilsr	   scipy._lib._utilr
   scipy.sparser   scipy.sparse.linalgr   (scipy.optimize._differentiable_functionsr   r   r   r   scipy.optimizer   r   r   'scipy.optimize._hessian_update_strategyr   r   r>   r   r   r   r   r   r   skipifpython_implementationr  r  r  rF   r$   r    <module>r     s5     ) ) 3 ' " .N N 8 7 8 (R' R'j: :.w!H w!t!BH) B. ""$.4  	 ""$.4  	 ""$.4  			r$   