+
    0iH                     B    ^ RI HtHtHtHtHt ^ RIHt RR ltRR lt	R# )    )arangenewaxishstackprodarray)linalgc                   W^,           8  d   \        R4      hV ^,          ^ 8X  d   \        R4      hV ^,	          p\        V) VR,           4      pVR\        3,          pVR,          p\        ^V 4       F  p\	        WCV,          .4      pK  	  \        \        ^V^,           4      ^ R7      \        P                  ! V4      V,          ,          pV# )a#  
Return weights for an Np-point central derivative.

Assumes equally-spaced function points.

If weights are in the vector w, then
derivative is w[0] * f(x-ho*dx) + ... + w[-1] * f(x+h0*dx)

Parameters
----------
Np : int
    Number of points for the central derivative.
ndiv : int, optional
    Number of divisions. Default is 1.

Returns
-------
w : ndarray
    Weights for an Np-point central derivative. Its size is `Np`.

Notes
-----
Can be inaccurate for a large number of points.

Examples
--------
We can calculate a derivative value of a function.

>>> def f(x):
...     return 2 * x**2 + 3
>>> x = 3.0 # derivative point
>>> h = 0.1 # differential step
>>> Np = 3 # point number for central derivative
>>> weights = _central_diff_weights(Np) # weights for first derivative
>>> vals = [f(x + (i - Np/2) * h) for i in range(Np)]
>>> sum(w * v for (w, v) in zip(weights, vals))/h
11.79999999999998

This value is close to the analytical solution:
f'(x) = 4x, so f'(3) = 12

References
----------
.. [1] https://en.wikipedia.org/wiki/Finite_difference

z;Number of points must be at least the derivative order + 1.z!The number of points must be odd.      ?:NNN        axis)
ValueErrorr   r   ranger   r   r   inv)NpndivhoxXkws   &&     ]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/stats/_finite_differences.py_central_diff_weightsr      s    ^ 
1H}I
 	
 
Av{<==	qBsBHA	!W*A	3A1b\A!t9 VAtax q)FJJqM$,??AH    c                R   WS^,           8  d   \        R4      hV^,          ^ 8X  d   \        R4      hV^8X  d~   V^8X  d   \        . RO4      R,          pMV^8X  d   \        . RO4      R,          pMV^8X  d   \        . RO4      R,          pMV^	8X  d   \        . RO4      R,          pM\        V^4      pMV^8X  dw   V^8X  d   \        . RO4      pMlV^8X  d   \        . RO4      R,          pMPV^8X  d   \        . RO4      R,          pM4V^	8X  d   \        . RO4      R,          pM\        V^4      pM\        WS4      pR	pV^,	          p\        V4       F5  p	WvV	,          V ! WV,
          V,          ,           .VO5!  ,          ,          pK7  	  V\	        V3V,          ^ R
7      ,          # )a  
Find the nth derivative of a function at a point.

Given a function, use a central difference formula with spacing `dx` to
compute the nth derivative at `x0`.

Parameters
----------
func : function
    Input function.
x0 : float
    The point at which the nth derivative is found.
dx : float, optional
    Spacing.
n : int, optional
    Order of the derivative. Default is 1.
args : tuple, optional
    Arguments
order : int, optional
    Number of points to use, must be odd.

Notes
-----
Decreasing the step size too small can result in round-off error.

Examples
--------
>>> def f(x):
...     return x**3 + x**2
>>> _derivative(f, 1.0, dx=1e-6)
4.9999999999217337

zm'order' (the number of points used to compute the derivative), must be at least the derivative order 'n' + 1.zJ'order' (the number of points used to compute the derivative) must be odd.g       @g      (@g      N@g     @@g     f@g     @r   r   )r      )r   ir      r   )r   	   ir   -   r   )	   i   i`r   i  iX    )r   g       r   )r      ir&   r   )     ir)   r(   r'   )	r!        ir,   r+   r*   r!   )r   r   r   r   r   )
funcx0dxnargsorderweightsvalr   r   s
   &&&&&&    r   _derivativer5   E   s   D 1u}=
 	
 qyA~
 	

 	AvA:J'#-GaZ-.5GaZ67$>GaZEFNG+E15G	
aA:L)GaZ12T9GaZ<=EGaZJK 
 ,E15G'1
C	!B5\qzD2vm!3;d;;; reaia(((r   N)r   )r
   r    r"   )
numpyr   r   r   r   r   scipyr   r   r5   r6   r   r   <module>r9      s    6 6 =@L)r   