+
    ,im                     r   ^ RI t ^ RIt^ RIt^ RIHu Ht ^ RIHu H	t
 ^ RIHtHtHt ^ RIHtHt ^ RIHtHtHt ^ RIHtHtHt ^ RIHt Rt]P:                  P=                  R]R	7      ]P:                  P=                  R
RR	7       ! R R4      4       4       t ! R R4      t ]P:                  P=                  R]R	7      ]P:                  P=                  R
RR	7       ! R R] 4      4       4       t!]P:                  P=                  R]R	7      ]P:                  P=                  R
RR	7       ! R R] 4      4       4       t"R# )    N)xp_assert_closexp_assert_equalxp_assert_less)is_numpyis_torch)statsoptimizespecial)
derivativejacobianhessian)_EERRORINCREASEz5Array API does not support fancy indexing assignment.array_api_strict)reasonz
dask.arrayzboolean indexing assignmentc            	         a  ] tR t^t o R t]P                  P                  RR]P                  ! R"R^
4      .4      R 4       t
]P                  P                  RR7      ]P                  P                  R]P                  P                  4      R	 4       4       t]P                  P                  R
^^.4      ]P                  P                  R]! 4       R#R$R%.4      R 4       4       tR tR tR tR tR tR tR tR tR t]P                  P                  RR&4      ]P                  P                  RRRR.34      ]P                  P                  RR'4      R 4       4       4       tR tR t]P                  P                  RR7      ]P                  P<                  ]P                  P                  RR ^3R ^334      R 4       4       4       tR t V t!R!# )(TestDerivativec                .    \         P                  ! V4      # Nr
   ndtr)selfxs   &&N/usr/lib/python3/dist-packages/scipy/differentiate/tests/test_differentiate.pyfTestDerivative.f   s    ||A    r   333333??c                   VP                  R 4      P                  p\        V P                  VP                  WR7      4      pVP                  \        P
                  ! 4       P                  V4      VR7      p\        VP                  V4       \        V4      '       g9   \        VP                  VP                  V,
          4      VP                  4       R# R# )      ?dtypeN)asarrayr"   r   r   r   normpdfr   dfr   r   abserror)r   r   xpdefault_dtyperesrefs   &&&   r   
test_basicTestDerivative.test_basic   s     

2,,A!CDjj))!,MjB$ ||266#&&3,/; r   T)np_onlycasec                    Vw  r4\        \        V4      ! V!  pVP                  4       R ,           p\        VP                  V4      pVP                  V4      p\        VP                  VRR7       R# )皙?绽|=atolN)getattrr   medianr   cdfr%   r   r&   )	r   r0   r)   distnameparamsdistr   r+   r,   s	   &&&      r   test_accuracyTestDerivative.test_accuracy%   sZ      uh'0KKMC1%hhqk%0r   ordershapec                  a aaa V'       d(   \         P                  ! RR^4      P                  V4      MRp\         P                  ! V4      o/ o\         P                  VV 3R l4       pVV V3R lpRSR&   ^ SR&   \        WcP                  WCP                  R7      SR7      pV! V4      P                  4       pV U	u. uF  qP                  NK  	  p
p	\        VP                  VP                  R4      VP                  V
4      4       V U	u. uF  qP                  NK  	  pp	\        VP                  VP                  R4      VP                  V4      4       V U	u. uF  qP                  NK  	  pp	\        VP                  VP                  R4      VP                  V4      R	R
7       V U	u. uF  p	\        V	P                  4      NK  	  pp	\        VP                  VP                  R4      VP                  V4      4       V U	u. uF#  p	\         P                   ! V	P"                  4      NK%  	  pp	\        VP                  VP"                  R4      VP                  V4      4       V U	u. uF#  p	\         P                   ! V	P$                  4      NK%  	  pp	\        VP                  VP$                  R4      VP                  V4      4       \'        V4      '       d*   VP)                  VP$                  4      SR,          8X  g   Q hV U	u. uF#  p	\         P                   ! V	P*                  4      NK%  	  pp	\        VP                  VP*                  R4      VP                  V4      4       \'        V4      '       d,   VP)                  VP*                  4      SR,          8X  g   Q hR# R# u up	i u up	i u up	i u up	i u up	i u up	i u up	i )皙?r   r   c                 4   < \        SP                  V SR 7      # )r>   )r   r   )r   r>   r   s   &r   _derivative_single=TestDerivative.test_vectorization.<locals>._derivative_single8   s    dffau55r   c                    < SR ;;,          ^,          uu&   SR;;,          V P                   S8X  g   V P                  ^8:  d   ^MV P                  R,          ,          uu&   SP                  ! V .VO5/ VB # )nitfeval)sizendimr?   r   )r   argskwargsnr   states   &*,r   r   ,TestDerivative.test_vectorization.<locals>.f<   sV    %LAL'NAFFaK166A:aAGGBKON66!-d-f--r   rG   rH   r!   rC   g-q=r4   N皙rI   rI   )nplinspacereshaperJ   	vectorizer   r#   float64ravelr   r   r&   r(   boolsuccessr   int32statusnfevr   maxrG   )r   r>   r?   r)   r   rD   r   r+   refsr,   ref_xref_df	ref_errorref_successref_flagref_nfevref_nitrN   rO   s   ff&&             @@r   test_vectorization!TestDerivative.test_vectorization/   s   
 <ABKKtR(007cGGAJ		6 
	6	.
 egJJq

J;5I!!$**,"&'$3$'

355%0"**U2CD$()DS&&D)

366512::f3EF*./$3YY$	/

399e4bjj6K"	$ 599DStCKK(D9

3;;6

;8OP489DSBHHSZZ(D9

3::u5rzz(7KL267$3BHHSXX&$7

388U3RZZ5IJB<<66#((#uW~555045288CGG$5

377E2BJJw4GHB<<66#''?eEl222 / ( * 0 : : 8
 6s*   ;N#
N(N-*N2)N7')N<)Oc                  aaa \         P                  P                  R 4      oVVV3R lo^ Sn        SP	                  ^SP
                  R7      3p\        SSP                  ^SP                  R7      \        RR7      ^VR7      pSP                  \        P                  \        \        P                  \        P                  .SP                   R7      p\#        VP$                  V4       R# )   ;O c                   < S;P                   ^,          un         R VV3R lV3R lV3R l.p\        V SP                  VR4      4       UUu. uF  w  r4V\        V4      ,          ! V4      NK  	  pppSP	                  V4      # u uppi )   c                     V R ,
          # g      @ r   s   &r   <lambda>6TestDerivative.test_flags.<locals>.f.<locals>.<lambda>g   s    q3wr   c                 P   < SP                  V 4      SP                  4       ,          # r   )exprandom)r   rngr)   s   &r   rq   rr   h   s    rvvay5r   c                 &   < SP                  V 4      # r   rt   r   r)   s   &r   rq   rr   i   s    rvvayr   c                 <   < SP                  V SP                  4      # r   )	full_likenanry   s   &r   rq   rr   j   s    r||Arvv6r   rR   )rG   ziprU   intstack)	xsjsfuncsr   jr+   r   rv   r)   s	   &&    r   r   $TestDerivative.test_flags.<locals>.fe   sp    EEQJE&5(68E 14B

2u8M0NO0N5Q=#0NCO88C=  Ps   #Br!   +=rtol)
tolerancesr>   rL   N)rS   ru   default_rngrG   arangeint64r   onesrW   dictr#   eim_ECONVERGEDr   	_ECONVERR
_EVALUEERRr[   r   r\   )r   r)   rL   r+   	ref_flagsr   rv   s   &f   @@r   
test_flagsTestDerivative.test_flagsa   s     ii##$45	! 		!288	,.BGGARZZG8$(e$4 t- JJ / # # 0 8:xx  A	 	

I.r   c                  aa \         P                  P                  R 4      oVV3R lp\        VSP	                  ^SP
                  R7      \        RR7      ^RR7      pSP	                  \        P                  \        \        P                  \        P                  .SP                  R7      p\        VP                  V4       R# )rj   c                    < V R ,
          SP                  V 4      SP                  4       ,          SP                  V 4      SP                  V SP                  4      .pSP	                  V4      # rn   )rt   ru   r{   r|   r   )r   outrv   r)   s   & r   r   3TestDerivative.test_flags_preserve_shape.<locals>.f}   sT    s766!9SZZ\)66!9<<266*,C 88C= r   r!   r   r   T)r   r>   preserve_shapeN)rS   ru   r   r   r#   rW   r   r   r   r   r   r   r[   r   r\   )r   r)   r   r+   r   rv   s   &f   @r   test_flags_preserve_shape(TestDerivative.test_flags_preserve_shapez   s    ii##$45	! BJJq

J;$(e$4 7 JJ / # # 0 8:xx  A	 	

I.r   c                  a V3R  lpSP                  R4      pSP                  SP                  ^4      ^SP                  ^V,          4      ,          ^^
SP                  ^
V,          4      ,          ,           ^SP                  ^V,          4      ,          V^,
          ^,          ,          ^SP                  ^V,          4      ,          V^,
          ,          ,           .4      p\        W#RR7      p\	        VP
                  V4       R# )c                    < V SP                  ^V ,          4      V SP                  ^
V ,          4      ,           SP                  ^V ,          4      V ^,
          ^,          ,          .pSP                  V4      # )   )sinr   )r   r   r)   s   & r   r   -TestDerivative.test_preserve_shape.<locals>.f   sT    bffQqSk1RVVBqD\>266"Q$<1q3HIC88C= r           Tr   N)r#   cosr   r   r   r&   )r   r)   r   r   r,   r+   s   &f    r   test_preserve_shape"TestDerivative.test_preserve_shape   s    	! JJrNjj"**Q-266!A#;"RVVBqD\/8IRVVBqD\/1Q3(2Qrvvbd|^QqS5IIK Ld3$r   c                   VP                  R VP                  R7      p\        P                  p\	        \
        P                  P                  R 4      4      p\        ^ ^ R7      pVP                  4       pRVR&   \        W2V^R7      p\        VP                  V,
          4      R8  g   Q hRVR&   \        W2V^R7      p\        VP                  V,
          4      R8  g   Q h\        VP                  V,
          4      \        VP                  V,
          4      8  g   Q hVP                  4       pRVR&   \        W2V^R7      p\        VP                  V,
          4      RV,          8  g   Q hRVR&   \        W2V^R7      p\        VP                  V,
          4      RV,          8  g   Q h\        VP                  V,
          4      \        VP                  V,
          4      8  g   Q hR# )	r    r!   )r5   r   gMbP?r5   )r   r>   gư>r   N)r#   rW   r
   r   floatr   r$   r%   r   copyr   r'   r&   )	r   r)   r   r   r,   tolerances0r   res1res2s	   &&       r   test_convergenceTestDerivative.test_convergence   s   JJrJ,LLEJJNN2&'* %%'
!
6!:Q?477S=!D(((!
6!:Q?477S=!D(((477S=!C#$6666 %%'
!
6!:Q?477S=!D3J...!
6!:Q?477S=!D3J...477S=!C#$6666r   c                N   VP                  R VP                  R7      p\        P                  p\	        \
        P                  P                  R 4      4      p\        W2R^R7      p\        W2R^R7      p\        VP                  V,
          4      \        VP                  V,
          4      8  g   Q h\        W2^^R7      p\        W2^^R7      p\        VP                  V,
          4      \        VP                  V,
          4      8  g   Q h\        ^^^ R7      p\        W23RRRR/VB p\        W23R^R^/VB p\        VP                  VP                  R	R
7       \        ^^^R7      p\        W23R^R^/VB p\        W23R^\        P                  ! ^4      ,          RR/VB p\        VP                  VP                  R	R
7       RVR&   \        W23R^R^/VB p\        W23R^\        P                  ! ^4      ,          RR/VB p\        VP                  VP                  R	R
7       R# )r    r!         ?)initial_stepmaxiterrA   )step_factorr   )r>   r   step_directionr   r   g+<r   r   NrI   )r#   rW   r
   r   r   r   r$   r%   r   r'   r&   r   r   rS   sqrt)	r   r)   r   r   r,   r   r   rM   r+   s	   &&       r   test_step_parameters#TestDerivative.test_step_parameters   s   JJrJ,LLEJJNN2&'!S!<!T1=477S=!C#$6666!Aq9!B:477S=!C#$6666 Aq;KCKSKFKGAG1GGU3 Aq;GAG1GGTAbggajLTcTVTU3#% GAG1GGTAbggajLTcTVTU3r   c                  a V3R  lpSP                  ^ ^^
4      pSP                  V4      p\        P                  ! V4      VR8  ,          P	                  ^4      p\        P                  ! V4      VR8  ,          P	                  R4      p\        W#VR7      p\        VP                  SP                  V4      4       SP                  VP                  4      '       g   Q hR# )c                    < SP                  V 4      p\        P                  ! V4      V ^ 8  V ^8  ,           ,          P                  SP                  4      pV# r   )rt   xpxatsetr|   r   yr)   s   & r   r   -TestDerivative.test_step_direction.<locals>.f   sC    q	Aq	1q5QU+,008AHr   r   gffffff?r   NrI   )rT   
zeros_liker   r   r   r   r   r&   rt   allrZ   )r   r)   r   r   r   r+   s   &f    r   test_step_direction"TestDerivative.test_step_direction   s    	
 KK1b!q)/C8<<Q?/C8<<R@n=q	*vvckk""""r   c                   R  pR pVP                  VP                  . RO4      R4      pVP                  VP                  . RO4      R	4      pVP                  VP                  ^^.4      R
4      p\        W$WV3R7      pVP                  V! WF4      VP                  P
                  4      pVP                  WP                  R4      P                  R7      p\        VP                  V4       R# )c                     W,          # r   ro   r   ps   &&r   r   =TestDerivative.test_vectorized_step_direction_args.<locals>.f   s	    6Mr   c                 .    WV^,
          ,          ,          # rl   ro   r   s   &&r   r&   >TestDerivative.test_vectorized_step_direction_args.<locals>.df   s    QU|##r   )r   rL   r    r!   N)rl      r      )rI   rl   rl   rI   r   rl   )rl   rI   rl   )rl   rl   rI   )rU   r#   r   broadcast_tor&   r?   r"   r   )	r   r)   r   r&   r   hdirr   r+   r,   s	   &&       r   #test_vectorized_step_direction_args2TestDerivative.test_vectorized_step_direction_args   s    		$ JJrzz,/<zz"**Z0*=JJrzz1a&):6d>oobh5jjJJrN$8$8j9$r   c           
     R  a V3R  lpSP                  RSP                  R7      pSP                  . R
O4      pSP                  SP                  R^ ^
4      R4      p\	        W#V^^VR7      pSP                  VP                  V! V4      ,
          4      pSP                  VRR	1R3,          VR,          8  4      '       g   Q h\        VP                  ^ ,          4       FF  p\	        W#WX^ 3,          ^^VR7      p	\        VP                  VR3,          V	P                  RR7       KH  	  R# )c                 &   < SP                  V 4      # r   rx   ry   s   &r   r   +TestDerivative.test_initial_step.<locals>.f   s    66!9r   r   r!   )r   r>   r   r   N.:NNNr   r   rI   r   )rI   rl   ):rl   NN.)r#   rW   rU   logspacer   r'   r&   r   ranger?   r   )
r   r)   r   r   r   h0r+   errir,   s
   &f        r   test_initial_step TestDerivative.test_initial_step   s    	 JJrJ,J/ZZB2.8Ba(68ffSVVad]# vvc#2#s(mc'l23333 rxx{#AQa41,:<CCFF1a4L#&&u= $r   c           	     &  aa	 VP                  R VP                  R7      p^o	R p^p\        W2S	\        RR7      R7      pVP	                  VP
                  4      '       d   Q hVP                  VP                  V^,           S	^,
          ^,          ,           8H  4      '       g   Q hVP                  VP                  S	8H  4      '       g   Q hVV	3R loR
Sn	        RSn
        \        4       Sn        \        W2S\        RR7      R7      pVP                  4        Fw  pVR	8X  d=   WW,          \        P                  8X  g   Q hWg,          \        P                   8X  g   Q hKF  Wg,          SP                  V,          u;8X  d   WW,          8X  d   Kt  Q h Q h	  R# )g~,?r!   c                 2    \         P                  ! V 4      pV# r   r   )r   r+   s   & r   r   /TestDerivative.test_maxiter_callback.<locals>.f  s    ,,q/CJr   V瞯<r   )r   r   c                   < S;P                   ^,          un         V Sn        \        V R4      '       g   Q h\        V P                  4      SP
                  9  g   Q hSP
                  P                  \        V P                  4      4       V P                  \        P                  8X  g   Q hSP                   S8X  d   \        hR# )rl   r   N)iterr+   hasattrr   r&   dfsaddr\   r   _EINPROGRESSStopIteration)r+   callbackr   s   &r   r   6TestDerivative.test_maxiter_callback.<locals>.callback  s    MMQMHL3$$$$=444LLU366]+::!1!1111}}'## (r   N)r   r   r\   rI   )r#   rW   r   r   anyrZ   r   r]   rG   r   r+   r   r   keysr   r   
_ECALLBACK)
r   r)   r   r   default_orderr+   r   keyr   r   s
   &&      @@r   test_maxiter_callback$TestDerivative.test_maxiter_callback  s<   JJxrzzJ2	 w4U;KL66#++&&&&vvchh-!"3w{Ao"EEFFFFvvcgg())))	$ u!d>NO 88:Chx3==000yCNN222yHLL$5AAAAAA r   r   g?gffffff?r"   c                t  aa SR 8X  d(   \        S4      '       g   \        P                  ! R4       \        SS4      oSP	                  VSR7      pVV3R lpV3R lp\        WR^WR7      pVP                  P                  S8X  g   Q hVP                  P                  S8X  g   Q hVP                  P                  S8X  g   Q hSP                  S4      P                  p\        S4      '       d   VR,          ^2,          MVR,          p	\        VP                  SP                  VP                  4      V	R7       R# )	float16z+float16 not tested for alternative backendsr!   c                 L   < V P                   S8X  g   Q hSP                  V 4      # r   )r"   rt   )r   r"   r)   s   &r   r   $TestDerivative.test_dtype.<locals>.f8  s#    77e###66!9r   c                    < V P                   P                  S8X  g   Q hV P                  P                  S8X  g   Q hV P                  P                  S8X  g   Q hR # r   )r   r"   r&   r(   )r+   r"   s   &r   r   +TestDerivative.test_dtype.<locals>.callback<  sE    55;;%'''66<<5(((99??e+++r   )r>   r   r   r   r   N)r   pytestskipr6   r#   r   r   r"   r&   r(   finfoepsr   r   rt   )
r   r   r   r"   r)   r   r   r+   r   r   s
   &&&ff     r   
test_dtypeTestDerivative.test_dtype-  s     IhrllKKEF E"JJqJ&		,
 QtOuu{{e###vv||u$$$yy%'''hhuo!! (sCx"}#s(suuD9r   c           
     2   VP                  ^4      pRp\        P                  ! \        VR7      ;_uu_ 4        \	        RV4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VP                  R"4      4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VP                  R#R$.4      4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R	 V\        R%R
7      R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \	        R V\        RR7      R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \	        R V\        4       R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VRR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \	        R V^ R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VRR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \	        R V^ R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \	        R VR R!7       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL}; i  + '       g   i     ELI; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELk; i  + '       g   i     ELC; i  + '       g   i     EL; i  + '       g   i     R# ; i)&rl   z`f` must be callable.matchNz3Abscissae and function output must be real numbers.c                     V # r   ro   rp   s   &r   rq   6TestDerivative.test_input_validation.<locals>.<lambda>T      r   z6When `preserve_shape=False`, the shape of the array...c                 
    . RO# )rl   )rl   r   r   ro   rp   s   &r   rq   r  X  s    r   z6Tolerances and step parameters must be non-negative...c                     V # r   ro   rp   s   &r   rq   r  \  r  r   r4   r   c                     V # r   ro   rp   s   &r   rq   r  ^  r  r   ekkir   c                     V # r   ro   rp   s   &r   rq   r  `  r  r   r   %`maxiter` must be a positive integer.c                     V # r   ro   rp   s   &r   rq   r  d  r  r         ?r   c                     V # r   ro   rp   s   &r   rq   r  f  r  r   z"`order` must be a positive integerc                     V # r   ro   rp   s   &r   rq   r  j  r  r   rC   c                     V # r   ro   rp   s   &r   rq   r  l  r  r   z'`preserve_shape` must be True or False.c                     V # r   ro   rp   s   &r   rq   r  p  r  r   herringr   z`callback` must be callable.c                     V # r   ro   rp   s   &r   rq   r  t  r  r   	shrubbery)r   y            ?r   rI   )r#   r   raises
ValueErrorr   r   object)r   r)   onemessages   &&  r   test_input_validation$TestDerivative.test_input_validationJ  s   jjm)]]:W55tS! 6 H]]:W55{BJJu$56 6 K]]:W55*BJJBx,@A 6 K]]:W55{CDbMB 6]]:W55{CDf4EF 6]]:W55{CVX> 6 :]]:W55{C5 6]]:W55{C3 6 7]]:W55{Cs3 6]]:W55{Cq1 6 <]]:W55{C	B 6 1]]:W55{C+> 65I 655 655 655 655555555 655555 655555 655 655s   L)3L=>MM%M9NN!N5O	OO1P)L:	=M	M"	%M6	9N
	N	!N2	5O		O	O.	1P	P	c           
       aa V3R  lp\        S4      '       ga   \        VSP                  ^4      \        RR7      R7      pVP                  '       g   Q h\        VP                  SP                  R4      4       \        SP                  SP                  ^4      SP                  R7      p\        VP                  SP                  SP                  4      4       \        VP                  SP                  RSP                  R7      4       \        SP                  SP                  ^4      ^ R7      p\        VP                  SP                  SP                  4      4       \        VP                  SP                  RSP                  R7      4       \        ^4       EF  oSP                  RSP                  R7      pV3R lp^S,          VS^,
          ,          ,          p\        W$^\        ^S4      R	7      p\        VP                  VR
R7       \        VP                  SP                  SP                  SP                  R7      4       \        W$\        ^S4      R7      pVP                  '       g   Q hVP                   ^8X  g   Q h\        VP                  VR
R7       EK	  	  R p\        VSP                  ^4      SP                  ^4      R7      p\        VP                  SP                  R4      4       R# )c                 l   < SP                  V P                  R 4      '       g   Q hV ^c,          ^,
          # )zreal floating)isdtyper"   ry   s   &r   r   ,TestDerivative.test_special_cases.<locals>.f{  s,    ::agg77777Q;r   r3   r   r  r   r!   r   r  c                 $   < ^V S,          ,          # r   ro   )r   rN   s   &r   r   r"    s    Avr   )r   r>   r   rC   c                      W,          ^,
          # r   ro   )r   cs   &&r   r   r"    s    37Nr   )rL   g      @Ngl)~IQr   )r   r   r#   r   rZ   r   r&   rt   r|   r   r\   r[   r   rW   r^   r(   rG   )r   r)   r   r+   r   r,   rN   s   &f    @r   test_special_cases!TestDerivative.test_special_casesv  s   
	 ||Q

1$E:JKC;;;;CFFBJJy$9: ArvvF

266 23

BJJrJ$BCAQ?

266 23

BJJrJ$BC qA

3bjj
1A A#a!A#h,CQ1C1I>CCFFCe4CIIrzz"&&

z'KLQQ3C;;;;77a<<CFFCe44 "	 BJJqM

1>

2/r   c                "    V ^,
          ^,          # r   ro   rp   s   &r   rq   TestDerivative.<lambda>  s    AEa<r   c                p    \         P                  ! V ^8  V ^,
          ^,          V ^,
          ^,          4      # r   )rS   whererp   s   &r   rq   r+    s%    288AEAEa<!a%A>r   c                    R p\        VR. RORV/ p\        P                  ! VP                  4      '       g   Q h\	        VP
                  ^ VR7       R# )gؗҜ<r   r5   r4   Nr   )r   rS   r   rZ   r   r&   )r   r0   r)   r5   r+   s   &&&  r   test_saddle_gh18811"TestDerivative.test_saddle_gh18811  sF     $EzEEvvckk""""-r   ro   NrQ   )   r   r   )r   r   r   r   )r   float32rW   )"__name__
__module____qualname____firstlineno__r   r   markparametrizerS   rT   r-   skip_xp_backendsr   _distr_paramsdistcontr<   tuplerg   r   r   r   r   r   r   r   r   r   r   r  r(  xfailr/  __static_attributes____classdictcell____classdict__s   @r   r   r      s     [[S3E4(D"EF	< G	< [[!!$!/[[VU%8%8%A%AB1 C 01 [[Wq!f-[[Wuwvy&IJ.3 K ..3`/2/(
%724>#% >,$BL [[VZ0[[S4$"56[[W&GH: I 7 1:4*?X30l [[!!$!/[[[[V	#	>B& .	  0.r   r   c                   &   a  ] tR tRt o R tRtV tR# )JacobianHessianTesti  c           
     T   V P                   P                  pR p\        P                  ! \        VR7      ;_uu_ 4        V! VP
                  ^\        RR7      R7       RRR4       VP                  ^4      p\        P                  pRp\        P                  ! \        VR7      ;_uu_ 4        V! WT\        RR7      R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        V! WT\        RR7      R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        V! WTRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        V! WTRR	7       RRR4       R
p\        P                  ! \        VR7      ;_uu_ 4        V! WTRR7       RRR4       R#   + '       g   i     ELa; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)z"Argument `x` must be at least 1-D.r   r4   r  Nz<Tolerances and step parameters must be non-negative scalars.r   r  z#`order` must be a positive integer.rC   r  r  rI   )
jh_func__func__r   r  r  r   r   r   r	   rosen)r   r)   rF  r  r   funcs   &&    r   test_ivJacobianHessianTest.test_iv  sS   ,,'' 7]]:W55BFFA$B-8 6
 GGAJ~~P]]:W55D"6 6]]:W55D"6 6]]:W55D, 6 8]]:W55D2& 6 :]]:W55DR( 65) 655 6555555 65 655sG    F5,G	-G.G0'H H5G		G	G-	0H 	H	H'	ro   N)r4  r5  r6  r7  rJ  r?  r@  rA  s   @r   rD  rD    s     ) )r   rD  c                     a  ] tR tRt o ]tR tR tR]n        ]]n	        R t
R tR]
n        ]]
n	        R tR tR]n        ]]n	        R tR	 tR]n        ]]n	        R
 tR tR]n        ]]n	        R tR]n        ]P(                  ]n	        ]P,                  P/                  RR4      ]P,                  P/                  R. RO4      ]P,                  P/                  R]]
]]]].4      R 4       4       4       tR tR tRtV tR# )TestJacobiani  c                    V w  r#VP                  V^,          V,          ^V,          VP                  V4      ,           .4      # r%  r   r   )zr)   r   r   s   &&  r   f1TestJacobian.f1  s6    xxa!QURVVAY%6788r   c                    V w  r^V,          V,          V^,          .\         P                  ! V^4      \         P                  ! V4      ..# r%  )rS   r{   r   )rP  r   r   s   &  r   df1TestJacobian.df1  s=    QAF#bll1a&8"&&)%DEEr   c                    V w  r#VP                  W!P                  V4      ,          W!P                  V4      ,          .4      # r   r   r   r   )rP  r)   rphis   &&  r   f2TestJacobian.f2  s1    xxVVC[!ffSk/:;;r   c                    V w  r\         P                  ! V4      V) \         P                  ! V4      ,          .\         P                  ! V4      V\         P                  ! V4      ,          ..# r   )rS   r   r   )rP  rX  rY  s   &  r   df2TestJacobian.df2  sN    qb266#;./a"&&+o.0 	0r   c                
   V w  r#pVP                  W!P                  V4      ,          VP                  V4      ,          W!P                  V4      ,          VP                  V4      ,          W!P                  V4      ,          .4      # r   )r   r   r   )rP  r)   rX  rY  ths   &&   r   f3TestJacobian.f3  sa    
xxVVC[266":5q66#;PR7SVVC[* + 	+r   c                   V w  rp\         P                  ! V4      \         P                  ! V4      ,          V\         P                  ! V4      ,          \         P                  ! V4      ,          V) \         P                  ! V4      ,          \         P                  ! V4      ,          .\         P                  ! V4      \         P                  ! V4      ,          V\         P                  ! V4      ,          \         P                  ! V4      ,          V\         P                  ! V4      ,          \         P                  ! V4      ,          .\         P                  ! V4      V) \         P                  ! V4      ,          \         P                  ! V4      ..# r   )rS   r   r   r   )rP  rX  rY  r`  s   &   r   df3TestJacobian.df3  s    
rvvbz)1rvvc{?RVVBZ+GbffSk!BFF2J.0rvvbz)1rvvc{?RVVBZ+GRVVC[266":-/qb266#;.a0@A	C 	Cr   c           	         V w  r#pVP                  V^V,          ^V^,          ,          ^V,          ,
          WAP                  V4      ,          .4      #    rO  r   r)   x1x2x3s   &&   r   f4TestJacobian.f4	  sB    
xxQVQq[1r6%92r
?KLLr   c                8   V w  rp\         P                  ! V4      pV^ V,          ^ V,          .^ V,          ^ V,          ^V,          .^ V,          ^V,          RV,          .V\         P                  ! V4      ,          ^ V,          \         P                  ! V4      ..# r   r  )rS   	ones_liker   r   r   rj  rk  rl  r  s   &    r   df4TestJacobian.df4  s    
ll2a#gq3w'S!c'1s7+S!b&"s(+bffRj!c'266":68 	8r   c           	         V w  r#pVP                  ^V,          ^V^,          ,          ^VP                  W4,          4      ,          ,
          W4,          .4      # rg  rO  ri  s   &&   r   f5TestJacobian.f5  sC    
xxRR1Wq266"'?/B!BBGLMMr   c                8   V w  rp\         P                  ! V4      p^ V,          ^V,          ^ V,          .^V,          RV,          \         P                  ! W#,          4      ,          RV,          \         P                  ! W#,          4      ,          .^ V,          W2..# rp  )rS   rq  r   rr  s   &    r   df5TestJacobian.df5  sy    
ll2S!c'1s7+Rb266"'?2BGbffRWo4MNS"!# 	#r   c                .    \         P                  ! V 4      # r   )r	   rH  )r   _s   &&r   rH  TestJacobian.rosen&  s    HNN1--r   r"   rJ   rI  c                  aa VR 8X  d   RMRp\        SV4      p\        P                  P                  R4      pSP                  w  rxVP                  V3V,           R7      p	\        VV3R lSP                  WR7      4      p
SP                  \        P                  ! SP                  V	4      4      VR7      p\        V
P                  WR7       R# )	rW   r3   ghUM`?   6H2)rJ   c                    < S! V S4      # r   ro   )r   rI  r)   s   &r   rq   ,TestJacobian.test_examples.<locals>.<lambda>3  s    a"r   r!   r4   N)
r6   rS   ru   r   mnr   r#   r,   r   r&   )r   r"   rJ   rI  r)   r5   rv   mrN   r   r+   r,   s   &&&ff       r   test_examplesTestJacobian.test_examples*  s     *uE"ii##L1wwJJQD4KJ(-rzz!z/IJjjDHHQK0j>/r   c           
       aaaa SP                  R R.4      oV3R lpV3R loV3R lo\        VS^
R7      p\        S4      '       gO   \        P                  ! VP
                  4      ^8X  g   Q h\        P                  ! VP                  4      ^8X  g   Q h\        VV3R lSR,          ^
R7      p\        VV3R lSR	,          ^
R7      p\        VV3R
 lSR,          ^
R7      p\        VV3R lSR	,          ^
R7      p\        P                  ! 4       pR F  p	SP                  \        WI4      \        WY4      .\        Wi4      \        Wy4      ..4      p
SP                  T
\        ;QJ d'    . R \        V
P                  4       4       F  NK  	  5M ! R \        V
P                  4       4       4      R7      W&   W9,          P                  SP                  8X  d   RMRp\!        W9,          W,          VR7       K  	  R# )r         ?c                    < V w  rSP                  SP                  R V,          4      SP                  V4      ,          SP                  ^V,          4      V^,          ,          .4      # r   rW  )rP  r   r   r)   s   &  r   rT  $TestJacobian.test_attrs.<locals>.df1>  sL    DA88RVVCE]RVVAY6qsad8JKLLr   c                 `   < SP                  R V ,          4      SP                  V4      ,          # r  )r   r   s   &&r   df1_0xy(TestJacobian.test_attrs.<locals>.df1_0xyB  s"    66#a%=266!9,,r   c                 P   < SP                  ^V ,          4      V^,          ,          # r%  )r   r   s   &&r   df1_1xy(TestJacobian.test_attrs.<locals>.df1_1xyE  s    66!A#;A%%r   r#  c                 $   < S! V S^,          4      # r   ro   )r   r  rP  s   &r   rq   )TestJacobian.test_attrs.<locals>.<lambda>N      71ad#3r   r   rl   Nc                 $   < S! S^ ,          V 4      # r   ro   )r   r  rP  s   &r   rq   r  O      71Q4#3r   rl   r   Nc                 $   < S! V S^,          4      # r   ro   )r   r  rP  s   &r   rq   r  P  r  r   c                 $   < S! S^ ,          V 4      # r   ro   )r   r  rP  s   &r   rq   r  Q  r  r   c              3   <   "   T F  w  rV^8X  g   K  Vx  K  	  R# 5i)rl   Nro   ).0axrJ   s   &  r   	<genexpr>*TestJacobian.test_attrs.<locals>.<genexpr>X  s     U.G("4ST922.Gs   
)axisgiUMu>gt=r   N)rZ   r\   r&   rG   r]   )r#   r   r   r   nuniquerG   r]   r	   OptimizeResultr6   squeezer=  	enumerater?   r"   r3  r   )r   r)   rT  r+   res00res01res10res11r,   attrref_attrr   r  r  rP  s   &f          @@@r   
test_attrsTestJacobian.test_attrs8  s   JJT{#	M	-	& sAB/||;;sww'1,,,;;sxx(A---3QsV"M3QsV"M3QsV"M3QsV"M%%'>DzzGE$8'%:N#O$+E$8'%:N#O#Q RH

UUi.GUUUUi.GUU # CI !Y__

:6DCIsyt< ?r   c                  aa	a
 \         P                  P                  R 4      pVP                  ^4      o	Ro
V	V
V3R lp. R	Op. R
OpRR/p\        VSP	                  S	SP
                  R7      VWFR7      pSP	                  \        P                  S	4      SP
                  R7      p\        VP                  VRR7       SP                  SP                  V4      4      '       g   Q hR# )l   ]2ZVgHz>c                   < \         P                  ! V 4      ^ V ^ ,          S^ ,          8  3,          P                  SP                  4      p \         P                  ! V 4      ^ V ^ ,          S^ ,          R,           8  3,          P                  SP                  4      p \         P                  ! V 4      ^V ^,          S^,          8  3,          P                  SP                  4      p \         P                  ! V 4      ^V ^,          S^,          R,
          S,
          8  3,          P                  SP                  4      p \        P                  V S4      # )r   r  r2   )r   r   r   r|   rM  rv  )r   br   r)   s   &r   r   0TestJacobian.test_step_direction_size.<locals>.fd  s    q	!QqTAaD[.)--bff5Aq	!QqTAaD4K//044RVV<Aq	!QqTAaD[.)--bff5Aq	!QqTAaD3JsN22377?A??1b))r   r5   :0yE>r!   )r   r   r   r4   N)rl   rI   r   )r  r2   r   )rS   ru   r   r   r#   rW   rM  ry  r   r&   r   isfinite)r   r)   rv   r   dirr   r5   r+   r,   r  r   s   &f       @@r   test_step_direction_size%TestJacobian.test_step_direction_size]  s     ii##N3JJqM	* ~q"**Qbjj*9&)<jj))!,BJJj?$/vvbkk#&''''r   ro   N)r   r   )r   r   r2  )rh  rl   )r3  rW   )ro   )   )r   r   )r4  r5  r6  r7  r   rF  rQ  rT  r  r,   rZ  r]  ra  rd  rm  rs  rv  ry  rH  r	   	rosen_derr   r8  r9  r  r  r  r?  r@  rA  s   @r   rM  rM    s     G
9F BEBF<0
 BEBF+
C BEBFM8 BEBFN# BEBF-EH""EI[[W&<=[[V%78[[Vb"b"b%%@A	0 B 9 >	0#=J( (r   rM  c                      a  ] tR tRt o ]t]P                  P                  R. RO4      R 4       t	R t
R t]P                  P                  ]P                  P                  RRR7      R	 4       4       tR
tV tR# )TestHessianiu  r?   c                Z   \         P                  P                  R 4      p^pVP                  VP                  V3V,           4      VP                  R7      p\        \        P                  V4      pV'       d   VP                  WTR34      pTP                  VP                   Uu. uF  p\        P                  ! V4      NK  	  up4      pVP                  V^ R4      pVP                  WV3V,           4      pM\        P                  ! V4      p\        VP                  VRR7       R# u upi )r  r!   r  r4   NrI   )rS   ru   r   r#   rW   r   r	   rH  rU   r   T
rosen_hessmoveaxisr   ddf)	r   r?   r)   rv   r  r   r+   xir,   s	   &&&      r   test_exampleTestHessian.test_examplez  s    ii##L1JJszz1$,/rzzJBhnna(

1"g&A((accBcH//3cBCC++c1b)C**Sa'E/2C%%a(C40 Cs   $D(c                   \         P                  P                  R 4      pVP                  VP                  ^4      VP                  R7      p\        \        P                  V4      p\        P                  ! V4      pV^ 8g  p\        VP                  V,          WV,          4       RVP                  VP                  WV,          4      4      ,          p\        VP                  V( ,          WV( ,          VR7       R# )r  r!   g{Gz?r4   N)rS   ru   r   r#   r3  r   r	   rH  r  r   r  r'   min)r   r)   rv   r   r+   r,   maskr5   s   &&      r   test_float32TestHessian.test_float32  s    ii##L1JJszz!}BJJJ7hnna(!!!$qsy1bffRVVCI.//E
>r   c                  aaa SP                  R R.4      oVV3R lo^ Sn        \        SS^
R7      p^ Sn        \        VV3R lSR,          ^
R7      pVP                  R	,          SP                  u;8X  d   VP                  R	,          8X  g   Q h Q h^ Sn        \        VV3R lSR,          ^
R7      pVP                  R
,          SP                  u;8X  d   VP                  R	,          8X  g   Q h Q hR# )r   r  c                   < SP                   ! V !  w  rSP                  VP                  ^8  d(   \        P                  ! VP
                  R,          4      M^,           Sn        SP                  V4      V^,          ,          # )r   :r   NN)broadcast_arraysr]   rK   mathprodr?   r   )rP  r   r   rQ  r)   s   &  r   rQ  !TestHessian.test_nfev.<locals>.f1  sY    &&*DAgg166A:1772;!71MBG66!9qAv%%r   r#  c                 4   < S! V ^ ,          S^,          .4      # r   ro   )r   rQ  rP  s   &r   rq   'TestHessian.test_nfev.<locals>.<lambda>      "adAaD\"2r   r  c                 4   < S! S^ ,          V ^ ,          .4      # r   ro   )r   rQ  rP  s   &r   rq   r    r  r   r  N)r   r   )rl   rl   )r#   r]   r   )r   r)   r+   r  r  rQ  rP  s   &f   @@r   	test_nfevTestHessian.test_nfev  s    JJT{#	&  b!"-2AcFLxx~<EJJt,<<<<<<2AcFLxx~<EJJt,<<<<<<r   Tz$Python list input uses NumPy backend)r/   r   c           
         R p\         P                  ! \        VR7      ;_uu_ 4        \        VP                  R.\        RR7      R7       RRR4       R#   + '       g   i     R# ; i)z"The specified `rtol=1e-15`, but...r   r    r   r   r  N)r   warnsRuntimeWarningr   r   r   )r   r)   r  s   && r   test_small_rtol_warning#TestHessian.test_small_rtol_warning  s@     7\\.88BFFRDTu-=> 9888s   $AA&	ro   N)ro   )r   )r   r   )r4  r5  r6  r7  r   rF  r   r8  r9  r  r  r  thread_unsafer:  r  r?  r@  rA  s   @r   r  r  u  s{      G[[W&891 :1&?=0 [[[[!!$)O " Q?Q ?r   r  )#r  r   numpyrS   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipy._lib.array_api_extraarray_api_extrar   scipy._lib._array_api_no_0dr   r   r   scipy._lib._array_apir   r   scipyr   r	   r
   scipy.differentiater   r   r   "scipy.differentiate._differentiater   array_api_strict_skip_reasonr8  r:  r   rD  rM  r  ro   r   r   <module>r     s:      6 6 ( ( X X 4 * * = = >V  09UVl3PQe. e. R We.P) )< 09UVl3PQV(& V( R WV(r 09UVl3PQ??% ?? R W??r   